BGP环境,全网可达;R3为IGP启用IGP协议,其余均启用BGP协议
1.如图配置IP地址,环回R1为1.1.1.1 24 ,2.2.2.2 24.......;
2.配置IGP环境;
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 23.1.1.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 34.1.1.0 0.0.0.255
[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 34.1.1.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
3.看能不能通;
4.启用BGP协议,互相建邻
[R1]bgp 1
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 12.1.1.2 as-number 2
[R2]bgp 2
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 12.1.1.1 as-number 1
R4、R5建邻采用环回地址方式建邻,建邻的前提条件为互相可达,所以需先配置静态路由:
[R4]ip route-static 5.5.5.0 24 45.1.1.2
[R4]ip route-static 5.5.5.0 24 54.1.1.2
[R5]ip route-static 4.4.4.0 24 45.1.1.1
[R5]ip route-static 4.4.4.0 24 54.1.1.
使用环回地址进行BGP手工建邻:
[R4-bgp]peer 5.5.5.5 as-number 3
[R5-bgp]peer 4.4.4.4 as-number 2
R4和R5是无法建邻成功的;因为路由器默认是以出接口为源来发包传递数据的,但是此时建邻却是以环回地址,这样就倒是回包的时候是回到了R4的出接口,并非R4的环回接口,所以我们需要将源改为环回接口即可,为了保证网络的可靠性,我们需要将两端的源均改为环回接口
[R4-bgp] peer 5.5.5.5 connect-interface LoopBack0
[R5-bgp] peer 4.4.4.4 connect-interface LoopBack0
而此时我们将源改为环回接口是必须经过2跳才能抵达对方的环回接口,所以需要进一步将默认跳数修改为2,保证数据包抵达目的地
[R4-bgp] peer 5.5.5.5 ebgp-max-hop 2
[R5-bgp] peer 4.4.4.4 ebgp-max-hop 2
建邻成功
BGP路由宣告
[R1-bgp]network 1.1.1.1 24
[R2-bgp]network 2.2.2.2 24
[R4-bgp]network 4.4.4.4 24
[R5-bgp]network 5.5.5.5 24
查看一下BGP表
R4上学到R1的路由的下一跳依然是R1的12.1.1.1接口,此时如果R4需要访问R1,下一跳不是R2的23.1.1.1接口,是无法访问的,因为中间存在EBGP,是无法跨过其直接访问R1,所以,我们需要将R2从R1学到的路由的下一跳地址统一修改为自己本身
[R2-bgp]peer 34.1.1.2 next-hop-local
OK
R4不会通过BGP学R5的路由的或者说不加表
[R4]undo ip route-static 5.5.5.0 24 45.1.1.2
[R4]undo ip route-static 5.5.5.0 24 54.1.1.2
[R4]ip route-static 5.5.5.5 32 45.1.1.2
[R4]ip route-static 5.5.5.5 32 54.1.1.2
在R1上是优的
解决路由黑洞,全都启用BGP,所以在R3上也需要启用BGP协议:
分别和R2、R4建邻
[R2-bgp] peer 23.1.1.2 next-hop-local
[R4-bgp] peer 34.1.1.1 next-hop-local
R3上学到R1和R5的路由是优的
r1ping