Mailing List Archive

bgpd (1.1.1-gentoo) not supporting confederations with AS Path length > 3.
I am having a problem with bgpd (1.1.1-gentoo) not supporting
confederations with an AS Path length greater than 3 ASs. The
subsequent confederated ASs don't show up nor do non-confederated ASs
beyond the confederation.

I've searched the quagga-users archive and didn't find any occurrence of
anything that I thought was related.

I'm using the following test network:

[R0]---[R1]---[R2]---[R3]---[R4]---[R5]---[R6]---[R7]---[R8]

Each network is numbered by concatenating the router on the left and right.
Each router uses it's number as it's AS number.
Each router uses it's number as the last octet in the IP(v4) address
192.168.<number>.0/24. (No IPv6.)
R0 and R8 are just place holders to hold local interfaces up on R1 & R7
respectively.

If routers 2 through 6 are part of the BGP confederation (ID / AS 64512)
I find that confederations do not show more than 3 ASs. Everything
further away than 3 is simply not shown, including non-confederated ASs.

Below are bgpd config snippets from R1, R2, R6, and R7. Routers 3, 4,
and 5 are configured like routers 2 and 6.


->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r1# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 1
- bgp router-id 192.168.12.1
- redistribute connected
- neighbor 192.168.12.2 remote-as 64512
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r1#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r2# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 2
- bgp router-id 192.168.23.2
- bgp confederation identifier 64512
- bgp confederation peers 3 4 5 6
- redistribute connected
- neighbor 192.168.12.1 remote-as 1
- neighbor 192.168.23.3 remote-as 3
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r2#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r6# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 6
- bgp router-id 192.168.67.6
- bgp confederation identifier 64512
- bgp confederation peers 2 3 4 5
- redistribute connected
- neighbor 192.168.56.5 remote-as 5
- neighbor 192.168.67.7 remote-as 7
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r6#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r7# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 7
- bgp router-id 192.168.78.7
- redistribute connected
- neighbor 192.168.67.6 remote-as 64512
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r7#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-


Below is the output of "show ip bgp" from all seven routers with routers
2 through 6 configured in the confederation.


-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r1# show ip bgp
- BGP table version is 0, local router ID is 192.168.12.1
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 0.0.0.0 0 32768 ?
- * 192.168.12.0/24 192.168.12.2 0 0 64512 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.23.0/24 192.168.12.2 0 0 64512 ?
- *> 192.168.34.0/24 192.168.12.2 0 64512 ?
- *> 192.168.45.0/24 192.168.12.2 0 64512 ?
-
- Displayed 5 out of 6 total prefixes
- r1#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r2# show ip bgp
- BGP table version is 0, local router ID is 192.168.23.2
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.12.1 0 0 1 ?
- * 192.168.12.0/24 192.168.12.1 0 0 1 ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.23.0/24 192.168.23.3 0 100 0 (3) ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.34.0/24 192.168.23.3 0 100 0 (3) ?
- *> 192.168.45.0/24 192.168.34.4 0 100 0 (3 4) ?
- 192.168.56.0/24 192.168.45.5 0 100 0 (3 4 5) ?
-
- Displayed 6 out of 8 total prefixes
- r2#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r3# show ip bgp
- BGP table version is 0, local router ID is 192.168.34.3
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.12.1 0 100 0 (2) 1 ?
- *> 192.168.12.0/24 192.168.23.2 0 100 0 (2) ?
- * 192.168.23.0/24 192.168.23.2 0 100 0 (2) ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.34.0/24 192.168.34.4 0 100 0 (4) ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.45.0/24 192.168.34.4 0 100 0 (4) ?
- *> 192.168.56.0/24 192.168.45.5 0 100 0 (4 5) ?
- 192.168.67.0/24 192.168.56.6 0 100 0 (4 5 6) ?
-
- Displayed 7 out of 9 total prefixes
- r3#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r4# show ip bgp
- BGP table version is 0, local router ID is 192.168.45.4
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- 192.168.1.0/24 192.168.12.1 0 100 0 (3 2) 1 ?
- *> 192.168.12.0/24 192.168.23.2 0 100 0 (3 2) ?
- *> 192.168.23.0/24 192.168.34.3 0 100 0 (3) ?
- * 192.168.34.0/24 192.168.34.3 0 100 0 (3) ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.45.0/24 192.168.45.5 0 100 0 (5) ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.56.0/24 192.168.45.5 0 100 0 (5) ?
- *> 192.168.67.0/24 192.168.56.6 0 100 0 (5 6) ?
- 192.168.78.0/24 192.168.67.7 0 100 0 (5 6) 7 ?
-
- Displayed 8 out of 10 total prefixes
- r4#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r5# show ip bgp
- BGP table version is 0, local router ID is 192.168.56.5
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- 192.168.12.0/24 192.168.23.2 0 100 0 (4 3 2) ?
- *> 192.168.23.0/24 192.168.34.3 0 100 0 (4 3) ?
- *> 192.168.34.0/24 192.168.45.4 0 100 0 (4) ?
- * 192.168.45.0/24 192.168.45.4 0 100 0 (4) ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.56.0/24 192.168.56.6 0 100 0 (6) ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.67.0/24 192.168.56.6 0 100 0 (6) ?
- *> 192.168.78.0/24 192.168.67.7 0 100 0 (6) 7 ?
-
- Displayed 7 out of 9 total prefixes
- r5#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r6# show ip bgp
- BGP table version is 0, local router ID is 192.168.67.6
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- 192.168.23.0/24 192.168.34.3 0 100 0 (5 4 3) ?
- *> 192.168.34.0/24 192.168.45.4 0 100 0 (5 4) ?
- *> 192.168.45.0/24 192.168.56.5 0 100 0 (5) ?
- * 192.168.56.0/24 192.168.56.5 0 100 0 (5) ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.67.0/24 192.168.67.7 0 0 7 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.78.0/24 192.168.67.7 0 0 7 ?
-
- Displayed 6 out of 8 total prefixes
- r6#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r7# show ip bgp
- BGP table version is 0, local router ID is 192.168.78.7
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.34.0/24 192.168.67.6 0 64512 ?
- *> 192.168.45.0/24 192.168.67.6 0 64512 ?
- *> 192.168.56.0/24 192.168.67.6 0 0 64512 ?
- * 192.168.67.0/24 192.168.67.6 0 0 64512 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.78.0/24 0.0.0.0 0 32768 ?
-
- Displayed 5 out of 6 total prefixes
- r7#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-


As you can see, routers are not seeing any ASs when the path length is
greater than 3. Further, the confederation is not passing ASs from the
outside the confederation from one side to the other.

Conversely, if I remove all confederation configuration, I see the
expected AS numbers everywhere.

Below are bgpd config snippets from R1, R2, R6, and R7 with
confederation configuration removed from all routers.


-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r1# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 1
- bgp router-id 192.168.12.1
- redistribute connected
- neighbor 192.168.12.2 remote-as 2
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r1#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r2# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 2
- bgp router-id 192.168.23.2
- redistribute connected
- neighbor 192.168.12.1 remote-as 1
- neighbor 192.168.23.3 remote-as 3
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r2#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r6# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 6
- bgp router-id 192.168.67.6
- redistribute connected
- neighbor 192.168.56.5 remote-as 5
- neighbor 192.168.67.7 remote-as 7
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r6#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r7# show run bgpd
- hostname bgpd
- password password
- log stdout
- !
- router bgp 7
- bgp router-id 192.168.78.7
- redistribute connected
- neighbor 192.168.67.6 remote-as 6
- !
- address-family ipv6
- exit-address-family
- exit
- !
- line vty
- !
- r7#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-


Below is the output of "show ip bgp" from all seven routers with the bgp
confederation configuration removed and routers 1 and 7 having their
remote-as's adjusted appropriately.

You can clearly see that all routers see all ASs and networks as expected.


-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r1# show ip bgp
- BGP table version is 0, local router ID is 192.168.12.1
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 0.0.0.0 0 32768 ?
- * 192.168.12.0/24 192.168.12.2 0 0 2 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.23.0/24 192.168.12.2 0 0 2 ?
- *> 192.168.34.0/24 192.168.12.2 0 2 3 ?
- *> 192.168.45.0/24 192.168.12.2 0 2 3 4 ?
- *> 192.168.56.0/24 192.168.12.2 0 2 3 4 5 ?
- *> 192.168.67.0/24 192.168.12.2 0 2 3 4 5 6 ?
- *> 192.168.78.0/24 192.168.12.2 0 2 3 4 5 6 7 ?
-
- Displayed 8 out of 9 total prefixes
- r1#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r2# show ip bgp
- BGP table version is 0, local router ID is 192.168.23.2
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.12.1 0 0 1 ?
- * 192.168.12.0/24 192.168.12.1 0 0 1 ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.23.0/24 192.168.23.3 0 0 3 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.34.0/24 192.168.23.3 0 0 3 ?
- *> 192.168.45.0/24 192.168.23.3 0 3 4 ?
- *> 192.168.56.0/24 192.168.23.3 0 3 4 5 ?
- *> 192.168.67.0/24 192.168.23.3 0 3 4 5 6 ?
- *> 192.168.78.0/24 192.168.23.3 0 3 4 5 6 7 ?
-
- Displayed 8 out of 10 total prefixes
- r2#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r3# show ip bgp
- BGP table version is 0, local router ID is 192.168.34.3
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.23.2 0 2 1 ?
- *> 192.168.12.0/24 192.168.23.2 0 0 2 ?
- * 192.168.23.0/24 192.168.23.2 0 0 2 ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.34.0/24 192.168.34.4 0 0 4 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.45.0/24 192.168.34.4 0 0 4 ?
- *> 192.168.56.0/24 192.168.34.4 0 4 5 ?
- *> 192.168.67.0/24 192.168.34.4 0 4 5 6 ?
- *> 192.168.78.0/24 192.168.34.4 0 4 5 6 7 ?
-
- Displayed 8 out of 10 total prefixes
- r3#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r4# show ip bgp
- BGP table version is 0, local router ID is 192.168.45.4
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.34.3 0 3 2 1 ?
- *> 192.168.12.0/24 192.168.34.3 0 3 2 ?
- *> 192.168.23.0/24 192.168.34.3 0 0 3 ?
- * 192.168.34.0/24 192.168.34.3 0 0 3 ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.45.0/24 192.168.45.5 0 0 5 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.56.0/24 192.168.45.5 0 0 5 ?
- *> 192.168.67.0/24 192.168.45.5 0 5 6 ?
- *> 192.168.78.0/24 192.168.45.5 0 5 6 7 ?
-
- Displayed 8 out of 10 total prefixes
- r4#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r5# show ip bgp
- BGP table version is 0, local router ID is 192.168.56.5
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.45.4 0 4 3 2 1 ?
- *> 192.168.12.0/24 192.168.45.4 0 4 3 2 ?
- *> 192.168.23.0/24 192.168.45.4 0 4 3 ?
- *> 192.168.34.0/24 192.168.45.4 0 0 4 ?
- * 192.168.45.0/24 192.168.45.4 0 0 4 ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.56.0/24 192.168.56.6 0 0 6 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.67.0/24 192.168.56.6 0 0 6 ?
- *> 192.168.78.0/24 192.168.56.6 0 6 7 ?
-
- Displayed 8 out of 10 total prefixes
- r5#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-
- r6# show ip bgp
- BGP table version is 0, local router ID is 192.168.67.6
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.56.5 0 5 4 3 2 1 ?
- *> 192.168.12.0/24 192.168.56.5 0 5 4 3 2 ?
- *> 192.168.23.0/24 192.168.56.5 0 5 4 3 ?
- *> 192.168.34.0/24 192.168.56.5 0 5 4 ?
- *> 192.168.45.0/24 192.168.56.5 0 0 5 ?
- * 192.168.56.0/24 192.168.56.5 0 0 5 ?
- *> 0.0.0.0 0 32768 ?
- * 192.168.67.0/24 192.168.67.7 0 0 7 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.78.0/24 192.168.67.7 0 0 7 ?
-
- Displayed 8 out of 10 total prefixes
- r6#
-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-8<-
- r7# show ip bgp
- BGP table version is 0, local router ID is 192.168.78.7
- Status codes: s suppressed, d damped, h history, * valid, > best, =
multipath,
- i internal, r RIB-failure, S Stale, R Removed
- Origin codes: i - IGP, e - EGP, ? - incomplete
-
- Network Next Hop Metric LocPrf Weight Path
- *> 192.168.1.0/24 192.168.67.6 0 6 5 4 3 2 1 ?
- *> 192.168.12.0/24 192.168.67.6 0 6 5 4 3 2 ?
- *> 192.168.23.0/24 192.168.67.6 0 6 5 4 3 ?
- *> 192.168.34.0/24 192.168.67.6 0 6 5 4 ?
- *> 192.168.45.0/24 192.168.67.6 0 6 5 ?
- *> 192.168.56.0/24 192.168.67.6 0 0 6 ?
- * 192.168.67.0/24 192.168.67.6 0 0 6 ?
- *> 0.0.0.0 0 32768 ?
- *> 192.168.78.0/24 0.0.0.0 0 32768 ?
-
- Displayed 8 out of 9 total prefixes
- r7#
->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8->8-


I re-created this same network in GNS3 and was able to see the expected
behavior with Cisco IOS. Namely all routers saw all the proper ASs and
networks advertised. Thus I believe this is either a configuration
problem that I'm overlooking or that there is something wrong with
Quagga's BGP support specific to BGP Confederations.

Any help or pointers would be greatly appreciated.



--
Grant. . . .
unix || die