实验要求
1、AS1存在两个环回,一个地址为192.168.1.0/24,该地址不能在任何协议中宣告;
AS3存在两个环回,一个地址为192.168.2.0/24,该地址不能在任何协议中宣告;
AS1还有一个环回地址为10.1.1.0/24,AS3另一个环回地址是11.1.1.0/24,最终要求这两个环回可以互相通讯。
2、整个AS2的IP地址为172.16.0.0/16
3、AS间的骨干链路IP地址随意分配。
4、使用BGP协议让整个网络所有设备的环回可以互相访问。
5、减少路由条目数量,避免环路出现。
拓扑图
1.用OSPF做通IGP可达
R2:
R3:
R4:
R5:
R6:
R7:
查看OSPF路由表是否学全所有未知网段路由,并测试连通性:
2.建立EBGP和IBGP对等体关系
R1:
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 12.0.0.2 as-number 2
R2:
[R2]bgp 64512
[R2-bgp]confederation id 2
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 12.0.0.1 as-number 1
[R2-bgp]peer 172.16.3.1 as-number 64512
[R2-bgp]peer 172.16.3.1 connect-interface LoopBack 0
[R2-bgp]peer 172.16.3.1 next-hop-local
[R2-bgp]confederation peer-as 64513 ---指定自己的邻居的成员AS号
[R2-bgp]peer 172.16.5.1 as-number 64513
[R2-bgp]peer 172.16.5.1 connect-interface l 0
[R2-bgp]peer 172.16.5.1 ebgp-max-hop -----修改TTL为最大,后面不写默认TTL值填最大。
[R2-bgp]peer 172.16.5.1 next-hop-local
R3:
[R3]bgp 64512
[R3-bgp]router-id 3.3.3.3
[R3-bgp]confederation id 2
[R3-bgp]peer 172.16.2.1 as-number 64512
[R3-bgp]peer 172.16.2.1 connect-interface LoopBack 0
[R3-bgp]peer 172.16.4.1 as-number 64512
[R3-bgp]peer 172.16.4.1 connect-interface LoopBack 0
R4:
[R4]bgp 64512
[R4-bgp]router-id 4.4.4.4
[R4-bgp]confederation id 2
[R4-bgp]peer 172.16.3.1 as-number 64512
[R4-bgp]peer 172.16.3.1 connect-interface LoopBack 0
[R4-bgp]confederation peer-as 64513 ---指定自己的邻居的成员AS号
[R4-bgp]peer 172.16.7.1 as-number 64513
[R4-bgp]peer 172.16.7.1 connect-interface LoopBack 0
[R4-bgp]peer 172.16.7.1 ebgp-max-hop --修改TTL为最大,后面不写默认TTL值填最大
R5:
[R5]bgp 64513
[R5-bgp]router-id 5.5.5.5
[R5-bgp]confederation id 2
[R5-bgp]confederation peer-as 64512
[R5-bgp]peer 172.16.2.1 as-number 64512
[R5-bgp]peer 172.16.2.1 connect-interface l 0
[R5-bgp]peer 172.16.2.1 ebgp-max-hop
[R5-bgp]peer 172.16.6.1 as-number 64513
[R5-bgp]peer 172.16.6.1 connect-interface LoopBack 0
R6:
[R6]bgp 64513
[R6-bgp]router-id 6.6.6.6
[R6-bgp]confederation id 2
[R6-bgp]peer 172.16.5.1 as-number 64513
[R6-bgp]peer 172.16.5.1 connect-interface LoopBack 0
[R6-bgp]peer 172.16.7.1 as-number 64513
[R6-bgp]peer 172.16.7.1 connect-interface LoopBack 0
R7:
[R7]bgp 64513
[R7-bgp]confederation id 2
[[R7-bgp]peer 172.16.6.1 as-number 64513
[R7-bgp]peer 172.16.6.1 connect-interface LoopBack 0
[R7-bgp]confederation peer-as 64512
[R7-bgp]peer 172.16.4.1 as-number 64512
[R7-bgp]peer 172.16.4.1 connect-interface LoopBack 0
[R7-bgp]peer 172.16.4.1 ebgp-max-hop
[R7-bgp]peer 172.16.4.1 next-hop-local
[R7-bgp]peer 172.16.6.1 next-hop-local
R8:
[R8]bgp 3
[R8-bgp]router-id 8.8.8.8
[R8-bgp]peer 78.0.0.1 as-number 2
查看BGP路由表:
3.用network方式发布路由,将R1和R8的环回宣告。
[R1-bgp]network 10.1.1.0 24
[R8-bgp]network 11.1.1.0 24
查看BGP路由表,就拿宣告的10.1.1.0这条路由来说吧。这会的R2\R3\R5\R6都能学到R1路由信息,但是R4\R7学不到R1的路由信息。同样的R5\R2也学不到R8宣告的11.1.1.0路由信息。
原因:IBGP水平分割机制(路由器无法将自己从IBGP对等体学习到的路由信息传递给IBGP对等体),使得R2学来的路由往R3传递,但R3不会往R4传递;由此R6学来的路由也不会往R7传递。
解决方法:做路由反射器。选择R3和R6为路由反射器,同时把R3、R6作为RR,并且设置客户端。
在R3上把R2设置为客户端
[R3-bgp]peer 172.16.2.1 reflect-client
查看BGP路由表,这会就学到了R1的路由信息了。
在R6上把R7设置为客户端。
[R6-bgp]peer 172.16.7.1 reflect-client
这会在R1R8相互访问对方环回,查看连通性:
3.对AS 2区域内的路由进行聚合并且宣告到BGP中,并配置空接口防环。
[R2]ip route-static 172.16.0.0 16 NULL 0
[R2]bgp 64512
[R2-bgp]network 172.16.0.0 16
[R7]ip route-static 172.16.0.0 16 NULL 0
[R7]bgp 64513
[R7-bgp]network 172.16.0.0 16
测试一下连通性,这会的AS 2区域内的设备都能访问到AS 1和AS 3。
但是AS 1 、AS 3区域无法访问AS 2区域内的设备。
解决方法:在AS 2区域内的R2、R7上宣告其他AS区域的网段进来。
[R2-bgp]network 12.0.0.0 24
[R7-bgp]network 78.0.0.0 24
测试连通情况:
4.现在宣告发布的路由我们都可以正常访问,但因为实验要求192.168.1.0和192.168.2.0不能宣告在任何协议中,所以这里我们用tunnel建立隧道来将R1和R8打通,打通后不能宣告的网段也可以进行访问。
假设用来配置虚拟接口的网段18.0.0.0/24
R1:
[R1]int t0/0/0
[R1-Tunnel0/0/0]ip add 18.0.0.1 24
[R1-Tunnel0/0/0]source 10.1.1.1
[R1-Tunnel0/0/0]destination 11.1.1.1
R8:
[R8]int t0/0/0
[R8-Tunnel0/0/0]ip add 18.0.0.2 24
[R8-Tunnel0/0/0]tunnel-protocol gre
[R8-Tunnel0/0/0]source 11.1.1.1
测试虚拟隧道连通性:
但是这会无法访问环回地址:
因为现在两边没有对端的路由信息,需要我们手工配置静态指向对端的入隧道接口地址。
[R1]ip route-static 192.168.2.0 24 18.0.0.2
[R8]ip route-static 192.168.1.0 24 18.0.0.1
测试连通性:
总结:
本次实验用到GRE,OSPF,BGP的路由反射器和联邦。