《BGP路由黑洞解决的四种方法.pdf》由会员分享,可在线阅读,更多相关《BGP路由黑洞解决的四种方法.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、为了防止 AS 内部形成 IBGP 路由环路,从而要求从IBGP 学到的路由不会再传给其他 IBGP 邻居了,但是这样却造成了路由黑洞。那么怎么解决呢?可以用重分布实现同步,也就是 bgp 的路由能在 igp 路由表中看见。然而除非你了解后果,否则不允许bgp重分布到 igp 中,因为如果有几十万,几百万条路由,igp 路由表就爆了,所以现在思科路由默认不采用同步。那怎么解决路由黑洞呢?解决方法一:Full Mesh分别在 R2 和 R3,R3 和 R5 上运行 BGP ,这样 R3 就可以学到到达 R1 的路由,这时你需要在 R1、R2、R3 之间分别建立邻居关系,当路由器很多的时候,全互联
2、要求建立 n*(n-1)/2 个邻居关系,这显然是很麻烦。 (略)解决方法二:Foute-Reflector路由反射器,我们可以将R3 做成一个路由反射器,使它能将从R1 学的路由条目反射给 R5,正常情况下为了防止环路,从IBGP 学到的路由不会再传给其它IBGP邻居。 现在只需要在路由反射客户和路由反射器间建立邻居关系,邻居关系减少到 n-1 条。路由反射器(RR)的条件:1、如果路由是从非客户的IBGP 学到的只反射给客户2、如果路由是从客户学到的,将它反射给发起该路由的客户以外的所有非客户及客户3、如果路由是从 EBGP 对等体学到的,将它反射给所有客户和非客户做法:清除 R2 与 R
3、5 的邻居关系,只在R2 与 R3、R3 与 R5 之间建立 IBGP 关系然后在 R3 的路由配置模式下:neighbor 2.2.2.2 route-reflector-clientneighbor 5.5.5.5 route-reflector-client /将 R2 和 R5 作为 RR 的客户此时 R5 上能收到关于 R1 的路由,它也会传给 R7解决方法三 :Confederation联邦是将整个大的 AS 区域再划分成多个小的 AS 区域,比如现在有 AS200 就相当于中国,而整个中国显然可以再分为若干个省分,现在AS65012 和 AS65003 就是划分出来的“小 AS”
4、 ,意思这里的 AS 号是私有的,在出 AS200 时它将自动被去掉(64512-65535 可用) ,这样划分后,R3 和 R5 就为联邦 EBGP 邻居了,这时它关于R 1 的路由条目就可以传给R5 了。R2:router bgp 65012/指定的联邦 AS 号 no synchronization bgp log-neighbor-changes bgp confederation identifier 200/R2 对外宣称自己的 AS 号为 200,它会告诉 R1它的 AS 号为 200,因为 65012 是私有的 network 192.168.12.0 network 192.
5、168.23.0 neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 ebgp-multihop 255 neighbor 1.1.1.1 update-source Loopback0 neighbor 3.3.3.3 remote-as 65012 neighbor 3.3.3.3 update-source Loopback0 neighbor 3.3.3.3 next-hop-self no auto-summaryR3:r3#sh run | b r brouter bgp 65012 no synchronization bgp log-
6、neighbor-changes bgp confederation identifier 200 /对 R5 稳定自己的 AS 号为 200,它不会对 R2 宣称,因为它们属于同一个联邦AS neighbor 2.2.2.2 remote-as 65012 neighbor 2.2.2.2 update-source Loopback0 neighbor 5.5.5.5 remote-as 65003 neighbor 5.5.5.5 ebgp-multihop 255 neighbor 5.5.5.5 update-source Loopback0 no auto-summary!R5:r
7、outer bgp 65003 no synchronization bgp log-neighbor-changes bgp confederation identifier 200/对 R3 和 R7 宣称自己的 AS 号为 200 neighbor 3.3.3.3 remote-as 65012 neighbor 3.3.3.3 ebgp-multihop 255 neighbor 7.7.7.7 remote-as 300 neighbor 7.7.7.7 ebgp-multihop 255 neighbor 7.7.7.7 update-source Loopback0 no aut
8、o-summary!这时查看 R3 和 R5 的邻居关系r3#sh ip bgp suNeighborVAS MsgRcvd MsgSentTblVer InQ OutQ Up/Down State/PfxRcd2.2.2.24 65012109100 00:06:2625.5.5.54 6500311000 neverActive发现在它们始终处于 Active 状态,不能完成邻居的建立,这又是为什么呢?分析一下:R5 和 R3 都打了这条命令,bgp confederation identifier 200又因为他们处于不同的联邦AS,所以它们都会宣称自己的AS 号为 200,然而我们看到
9、它们的 Neighbor 却不是这样通告的 R3 上:neighbor 5.5.5.5 remote-as 65003R5 上:neighbor 3.3.3.3 remote-as 65012所以这时会报一个错误:AS 号错误,如下r5#*Oct 19 12:20:10.311: %SYS-5-CONFIG_I: Configured from console by consoler5#*Oct 19 12:20:19.155: %BGP-3-NOTIFICATION: sent to neighbor 3.3.3.3 2/2 (peer inwrong AS) 2 bytes 00C8r5#
10、 FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF 002D 0104 00C8 00B4 0303 0303 10020601 0400 0100 0102 0280 0002 0202 00解决方法:R3 上:bgp confederation peer 65003/ / 不对 65003 宣称自己的 AS 为 200R5 上:bgp confederation peer 65012/ 不对 65012 宣称自己的 AS 为 200验证r5#sh ip bgpBGP table version is 13, local router ID is 5.5.5.5
11、Status codes: s suppressed, d damped, h history, * valid, best, i - internal,r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetworkNext HopMetric LocPrf Weight Path* 1.1.1.0/242.2.2.201000 (65012) 100 ir 7.7.7.0/247.7.7.700 300 i* 192.168.12.02.2.2.201000 (65012) ir 192.168.23.0
12、3.3.3.301000 (65012) i* 192.168.35.00.0.0.0032768 i*3.3.3.301000 (65012) i/括号中的是私有 AS 号,在出 R5 时会被去掉,在看7 上可以看到效果* 192.168.57.00.0.0.0032768 i*7.7.7.700 300 ir7#sh ip bgpBGP table version is 12, local router ID is 7.7.7.7Status codes: s suppressed, d damped, h history, * valid, best, i - internal,r RIB-failure, S StaleOrigin codes: i - IGP, e - EGP, ? - incompleteNetworkNext HopMetric LocPrf Weight Path* 1.1.1.0/245.5.5.50 200 100 i* 7.7.7.0/240.0.0.0032768 i* 192.168.12.05.5.5.50 200 i* 192.168.23.05.5.5.50 200 i* 192.168.35.05.5.5.500 200 i* 192.168.57.05.5.5.500 200 i*0.0.0.0032768 i实验完毕!