The provided BGP sample configuration for Quagga on Cymru’s web site didn’t work for me. Since my AS is IPv6-only, I’m only interested in the IPv6 Bogon feed. Here’s an excerpt from my Quagga
router bgp aut-num bgp router-id id bgp log-neighbor-changes no bgp default ipv4-unicast neighbor cymru-bogon peer-group neighbor cymru-bogon remote-as 65332 neighbor cymru-bogon timers 3600 10800 neighbor cymru-bogon description AS65332 Cymru FullBogon Feed neighbor cymru-bogon ebgp-multihop 255 neighbor cymru-bogon password changeme neighbor cymru-bogon activate neighbor cymru-bogon prefix-list pl-cymru-ipv4-in in neighbor cymru-bogon prefix-list pl-cymru-out out neighbor 38.xx.xx.xx peer-group cymru-bogon neighbor 193.xx.xx.xx peer-group cymru-bogon address-family ipv6 neighbor cymru-bogon activate neighbor cymru-bogon soft-reconfiguration inbound neighbor cymru-bogon route-map rm-cymru-ipv6-in in neighbor cymru-bogon prefix-list pl-cymru-ipv6-out out neighbor 38.xx.xx.xx peer-group cymru-bogon neighbor 193.xx.xx.xx peer-group cymru-bogon exit-address-family ip prefix-list pl-cymru-ipv4-in seq 5 deny any ip prefix-list pl-cymru-out seq 5 deny any ipv6 prefix-list pl-cymru-ipv6-out seq 5 deny any ip community-list 10 permit 65332:888 route-map rm-cymru-ipv6-in permit 10 match community 10 set ip next-hop 192.0.2.1 set ipv6 next-hop global 100::dead:beef:1
Zebra won’t install routes learned over BGP that are not routable, I also needed to make sure that
100::dead:beef:1 is (null-)routed. My solution was to install a Cisco-style Null0 interface in
# blackhole iface Null0 inet manual pre-up ip link add dev Null0 type dummy pre-up ip link set Null0 up up ip -6 route add 100::/64 dev Null0 proto static metric 255 up ip -4 route add 192.0.2.1/32 dev Null0 proto static metric 255 down ip link del dev Null0
By the way, that 100::/64 I’m using to null-route is a designated (RFC6666) IPv6 discard-only address block.
Once the BGP session is up, only IPv6 routes will be learned from Cymru’s bogon feed. I’m using IPv4 transport for the BGP session but it should work using IPv6 transport as well.
BGP neighbor is 38.xx.xx.xx, remote AS 65332, local AS xxxxx, external link Member of peer-group cymru-bogon for session parameters BGP version 4, remote router ID 38.xx.xx.xx BGP state = Established, up for 18:52:18 Last read 00:11:49, hold time is 10800, keepalive interval is 3600 seconds Configured hold time is 10800, keepalive interval is 3600 seconds Neighbor capabilities: 4 Byte AS: advertised and received Route refresh: advertised and received(old & new) Address family IPv4 Unicast: advertised and received Address family IPv6 Unicast: advertised and received Message statistics: Inq depth is 0 Outq depth is 0 Sent Rcvd Opens: 1 1 Notifications: 0 0 Updates: 0 118 Keepalives: 20 19 Route Refresh: 0 0 Capability: 0 0 Total: 21 138 Minimum time between advertisement runs is 30 seconds For address family: IPv4 Unicast cymru-bogon peer-group member AF-dependant capabilities: Outbound Route Filter (ORF) type (128) Prefix-list: Send-mode: received Community attribute sent to this neighbor(both) Inbound path policy configured Outbound path policy configured Incoming update prefix filter list is *pl-cymru-ipv4-in Outgoing update prefix filter list is *pl-cymru-out 0 accepted prefixes For address family: IPv6 Unicast cymru-bogon peer-group member Inbound soft reconfiguration allowed Community attribute sent to this neighbor(both) Inbound path policy configured Outbound path policy configured Outgoing update prefix filter list is *pl-cymru-ipv6-out Route map for incoming advertisements is *rm-cymru-ipv6-in 60088 accepted prefixes Connections established 1; dropped 0 Last reset never External BGP neighbor may be up to 255 hops away. Local host: 185.xx.xx.xx, Local port: 59623 Foreign host: 38.xx.xx.xx, Foreign port: 179 Nexthop: 185.xx.xx.xx Nexthop global: 2001:xxxx:xxxx:: Nexthop local: fe80::225:xxxx:xxxx:xxxx BGP connection: non shared network Read thread: on Write thread: off