|
今天写写有关BGP ,主要是从建邻居到相互的环回口Ping通。。。很基础但十分的重要!!
先写两个概念,AS号(公有0-64511 ,私有64512-65535)这就类似于公有和私有的IP地址 ;IGP邻居通过hello包建邻居,维持邻居关系 ; BGP就不一样了,建邻居通过open包 ,维持邻居关系通过keepalive包 ,说到包BGP还有两个,update 传输BGP路由 ;notification 发生错误会发送 ;回顾一下路由的更新方式 :周期+触发(rip ,ospf ,isis), 触发(eigrp ,bgp)原因你们懂得 路由太大周期更新消耗带宽 。
好,正式说说BGP吧,先给个拓扑图 1--)-(--2----3----4--)-(--5
左至右 ,AS号分别是 1 ,2 ,3 ,路由器1,2,4,5运行BGP,AS2中跑OSPF 。
如何建邻居,BGP基于TCP(179),不同于IGP协议 ,它使用单播传路由 ,所以邻居的概念不像IGP,它不一定要直连 ,BGP需要基于IGP提供底层的可达性,边写命令边解释吧 。
路由器1,2建邻居 ,R1(router bgp 1 ; neighbor 12.1.1.2 remote-as 2 ;)
R2(router bgp 2 ; neighbor 12.1.1.1 remote-as 1;) ; 邻居建立可以用直连亦可以环回口 ,环回口保证了冗余性,下面演示命令 ,
R2,R4建邻居 ,R2(router bgp 2 ; neighbor 4.4.4.4 remote 2 ; neighbor 4.4.4.4 update-source loopback 0 ;)
R4(router bgp 2 ; neighbor 2.2.2.2 remote 2 ; neighbor 2.2.2.2 update-source loopback 0 ;) ;
R4,R5建邻居 R4(router bgp 2 ; neighbor 5.5.5.5 remote-as 3 ; neighbor 5.5.5.5 update-source lookback 0 ; neighbor 5.5.5.5 ebgp-multihop ; ip route 5.5.5.5 255.255.255.255 45.1.1.5 ;)
R5(router bgp 3 ; neighbor 4.4.4.4 remote-as 2 ; neighbor 4.4.4.4 update-source lookback 0 ; neighbor 4.4.4.4 ebgp-multihop ; ip route 4.4.4.4 255.255.255.255 45.1.1.4 ;)
解释一下几条命令 neighbor 4.4.4.4 update-source loopback 0 :
R2 R4
neighbor 4.4.4.4 neighbor 2.2.2.2
updatesource 23.1.1.2 updatesource 34.1.1.4
R2看到R4的更新不是来自邻居(4.4.4.4)这个IP地址 , 所以R2就会丢弃R4发过来的路由 ,那么加一条update-source loopback 0 ,就等同于R4的 updatesource 是4.4.4.4
下一条命令 neighbor 4.4.4.4 ebgp-multihop :EBGP的多跳 ,默认EBGP的TTL值是1 ,只能跳一下 ,R4到R5环回口有两条 ,那么多条的目的就在于此,IBGP中就没有这个概念了 ,ip route 4.4.4.4 255.255.255.255 45.1.1.4 ,这条静态路由告诉你怎么去环回口 。
邻居就建完了 ,下面宣告网络 ,BGP和IGP通告网络不同 ,必须严格匹配路由表上的 ,把R1 ,R5的环回口宣告出来 ,能否Ping通 ,不能! '>'BGP路由表这个符号熟悉吧 ,有了这个符号,那条路由就是最优 ,就放进路由表,就能给其他BGP邻居 ,什么情况会有'>' , 答案BGP路由的下一跳底层可达 ,就是有路由可以到达 。现在可以把每一个AS比作一台路由器 ,R1把1.1.1.1宣告给R2 ,R2的下一跳就是12.1.1.1 ,从这可以到1.1.1.1 ;R2 ,R4在一个AS中 ,他们下一跳相同 ,R4要到1.1.1.1下一跳12.1.1.1 ,但它不知道怎么去 ,所以Ping不通1.1.1.1 ;怎么解决 ,很多人想到把R1和R2的直连路由重分发进OSPF,那么R3有了去1.1.1.1的路由 ,OK! 还有种比较常用的方法 ,使用next-hop-self命令 ,一般使用在边界上 ,这样R2告诉R4我是宣告1.1.1.1的人,你要访问就发给我吧,命令 neighbor 4.4.4.4 next-hop-self .
解决了下一跳 的问题,R1和R5环回可以Ping吗 ?答案 : 不能 ! !奇怪了 ,路由不都是有了吗 ,你忽略了R3的存在 ,两边发包要经过R3 ,可R3它不知道怎么去R1 ,R5 所以包到它那就被丢弃了 ,这就是著名的‘路由黑洞’ ,怎么办,R3也跑BGP吧,这样一个接一个的传总能通了吧 ,答案 :不能!!! IBGP它还遵循着水平分割 ,确切的说 ,从IGBP邻居收到的路由不会发给其他邻居 ,没辙了,全网互联吧 ,R2-R3 ,R3-R4 ,R2-R4我都给你建上邻居 ,终于OK了 ,还有其他方法 ,时间关系 ,下次写吧 !
<完>
鐵血 、諾言
|
|