[quagga-dev 7304] BGP unspecified IPv6 next-hop in Solaris container

Alexander Gall gall at switch.ch
Thu Oct 22 10:11:40 BST 2009

I'm trying to run bgpd in a Solaris 9 container (SunOS naomi 5.9
Generic_Virtual sun4v sparc SUNW,Sun-Blade-T6320) on a Solaris 10 host
(SunOS russein 5.10 Generic_141414-10 sun4v sparc
SUNW,Sun-Blade-T6320).  IPv4 works fine, but with IPv6, the next-hop
is always the unspecified address (::), which causes the route to be
ignored by the peer (tried quagga 0.99.3 and 0.99.15, both behave the
same way)

bgpd at naomi> sh bgp ipv6 ne 2001:620:0:a::3 advertised-routes 
BGP table version is 0, local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, R Removed
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
*> 2001:620::2a/128 ::                       1         32768 ?

Total number of prefixes 1

The address is configured on the loopback interface in the container

naomi [~] ifconfig -a6
lo0:1: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 ::1/128 
lo0:2: flags=2002000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv6> mtu 8252 index 1
        inet6 2001:620::2a/128 
e1000g1:2: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
        inet6 fe80::1c/64 
e1000g1:3: flags=2000841<UP,RUNNING,MULTICAST,IPv6> mtu 1500 index 3
        inet6 2001:620:0:a::1c/64 

I've tried using next-hop-self and even setting the next-hop
specifically with a route-map, without success (see attached BGP
configuration).  One thing that seems odd is that the zebra daemon
believes that the address resides on e1000g0

zebra at naomi# sh ipv6 ro
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
       I - ISIS, B - BGP, * - FIB route.

C>* ::1/128 is directly connected, e1000g0
C>* 2001:620::2a/128 is directly connected, e1000g0
C>* 2001:620:0:a::/64 is directly connected, e1000g0
C>* fe80::/64 is directly connected, e1000g0

Note that e1000g0 only carries an IPv4 address

naomi [~] ifconfig -a4
lo0:1: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet netmask ff000000 
lo0:2: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4> mtu 8232 index 1
        inet netmask ffffffff 
e1000g0:1: flags=1100843<UP,BROADCAST,RUNNING,MULTICAST,ROUTER,IPv4> mtu 1500 index 2
        inet netmask ffffffc0 broadcast

I also tried to configure the IPv6 address on the "physical" interface
e1000g1 rather than lo0, but that didn't help either.

Any ideas?


hostname bgpd at naomi
password 8 CmRd6irh0CM9Q
enable password 8 BiHnOItJ1r5nY
log file /var/log/quagga/bgpd.log
service password-encryption
router bgp 64530
 bgp router-id
 bgp log-neighbor-changes
 redistribute connected route-map connected-to-bgp
 timers bgp 5 15
 neighbor ROUTER peer-group
 neighbor ROUTER remote-as 65500
 neighbor ROUTER soft-reconfiguration inbound
 neighbor ROUTER prefix-list DENY-ALL in
 neighbor ROUTER route-map primary out
 neighbor ROUTER-BACKUP peer-group
 neighbor ROUTER-BACKUP remote-as 65500
 neighbor ROUTER-BACKUP soft-reconfiguration inbound
 neighbor ROUTER-BACKUP prefix-list DENY-ALL in
 neighbor ROUTER-BACKUP route-map secondary out
 neighbor ROUTERv6 peer-group
 neighbor ROUTERv6 remote-as 65500
 no neighbor ROUTERv6 activate
 neighbor ROUTERv6-BACKUP peer-group
 neighbor ROUTERv6-BACKUP remote-as 65500
 no neighbor ROUTERv6-BACKUP activate
 neighbor peer-group ROUTER
 neighbor peer-group ROUTER-BACKUP
 address-family ipv6
 redistribute connected route-map connected-to-bgp-ipv6
 neighbor ROUTERv6 activate
 neighbor ROUTERv6 soft-reconfiguration inbound
 neighbor ROUTERv6 prefix-list DENY-ALL-IPV6 in
 neighbor ROUTERv6 route-map primary out
 neighbor ROUTERv6-BACKUP activate
 neighbor ROUTERv6-BACKUP soft-reconfiguration inbound
 neighbor ROUTERv6-BACKUP prefix-list DENY-ALL-IPV6 in
 neighbor ROUTERv6-BACKUP route-map secondary out
 neighbor 2001:620:0:a::3 peer-group ROUTERv6
 neighbor 2001:620:0:a::4 peer-group ROUTERv6-BACKUP
ip prefix-list DENY-ALL seq 5 deny any
ip prefix-list hosts-loopback-net seq 5 permit ge 32
ipv6 prefix-list hosts-loopback-net-ipv6 seq 5 permit 2001:620::/64 ge 128
ipv6 prefix-list hosts-loopback-net-ipv6 seq 10 permit 2001:620:0:ff::/64 ge 128
route-map connected-to-bgp permit 10
 match ip address prefix-list hosts-loopback-net
route-map connected-to-bgp-ipv6 permit 10
 match ipv6 address prefix-list hosts-loopback-net-ipv6
 set ipv6 next-hop global 2001:620:0:a::1c
route-map primary permit 10
 set metric 1
route-map secondary permit 10
 set metric 10
line vty

More information about the Quagga-dev mailing list