我试图让 Quagga 做一些简单的事情,比如向另一个 eBGP 连接的邻居通告 eBGP 学习的前缀。够简单吧?
BGPd 配置片段
!
router bgp 64620
bgp router-id 172.29.253.80
bgp log-neighbor-changes
network 172.29.253.80/32
timers bgp 10 30
neighbor 10.35.253.2 remote-as 64901
neighbor 10.35.253.2 next-hop-self
neighbor 10.35.253.2 soft-reconfiguration inbound
neighbor 10.47.0.254 remote-as 64621
neighbor 10.47.0.254 ebgp-multihop 255
neighbor 10.47.0.254 next-hop-self
neighbor 10.47.0.254 soft-reconfiguration inbound
!
前缀 10.47.0.0/16 从邻居 10.47.0.254 学习并重新通告到 10.35.253.2
# sh ip bgp 10.47.0.0/16
BGP routing table entry for 10.47.0.0/16
Paths: (1 available, best #1, table Default-IP-Routing-Table)
Advertised to non peer-group peers:
10.35.253.2
64621
10.47.0.254 from 10.47.0.254 (10.47.0.254)
Origin IGP, localpref 100, valid, external, best
Last update: Mon Mar 19 08:35:28 2018
但是检查到 10.35.253.2 的通告路由发现它(10.47.0.0/16)确实没有被通告。我还用 tcpdump 验证了这一点。
# sh ip bgp neighbors 10.35.253.2 advertised-routes
BGP table version is 0, local router ID is 172.29.253.80
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
*> 172.29.253.80/32 10.35.253.1 0 32768 i
Total number of prefixes 1
BGPd版本
# /usr/lib/quagga/bgpd --version
bgpd version 0.99.24.1