大家应该知道,对运行在公网上面的网路设备来说,路由条目的数量一般非常多(十几万甚至几十万条),这么庞大的路由表对路由器的性能和转发效率肯定有要求。而且路由器使用最长掩码查表的方式转发数据包,一旦路由器条目越多,就可能导致查表的时间越长,数据转发延迟也就相对增大。
那么优化路由表肯定是必须要做的事情。
下面要说的是OSPF里面的一个小特性,叫Prefix-Suppression。
这个特性作用:
1.抑制本地直连网段的通告,不让其他设备学到本地直连网路。
2.但是,本地环回介面和已经设置为passive的介面除外。
下面看图看实验:
问你们问题:如果说我最终的目的是保证PC1和PC2互通,那么R1有必须学到R2--R4、R3-R4之间的OSPF的路由吗?答案很明显,没必要。
为啥呢?因为路由器的工作原理就是收到一个数据包,提取数据包里面的目的 IP地址,然后查找本地路由表转发数据包,也就是说PC1去访问PC2,R1 R2 R3 R4只需要学到172.16.1.0/24的路由就可以了。反过来看PC2给PC1的回包路由,R4 R3 R2 R1只需要学到192.168.1.0/24的路由就够了。
那么我们看实验。当你把整个网路的OSPF做完之后。R和R4上OSPF学到的路由条目如下:
R1#show ip route ospf
2.0.0.0/32 is subnetted, 1 subnets
O 2.2.2.2 [110/11] via 12.1.1.2,Ethernet0/1
3.0.0.0/32 is subnetted, 1 subnets
O 3.3.3.3 [110/11] via 13.1.1.3,Ethernet0/2
4.0.0.0/32 is subnetted, 1 subnets
O 4.4.4.4 [110/21] via 13.1.1.3,Ethernet0/2
[110/21] via 12.1.1.2,Ethernet0/1
24.0.0.0/24 is subnetted, 1 subnets
O 24.1.1.0 [110/20] via 12.1.1.2,Ethernet0/1
34.0.0.0/24 is subnetted, 1 subnets
O 34.1.1.0 [110/20] via 13.1.1.3,Ethernet0/2
172.16.0.0/24 is subnetted, 1 subnets
O 172.16.1.0 [110/30] via 13.1.1.3,Ethernet0/2
[110/30] via 12.1.1.2, Ethernet0/1
除了最后一个172的路由对我们有用,其他都是没必要的。
R4#show ip route ospf
O 2.2.2.2 [110/11] via 24.1.1.2,Ethernet0/1
O 3.3.3.3 [110/11] via 34.1.1.3,Ethernet0/2
12.0.0.0/24 is subnetted, 1 subnets
O 12.1.1.0 [110/20] via 24.1.1.2,Ethernet0/1
13.0.0.0/24 is subnetted, 1 subnets
O 13.1.1.0 [110/20] via 34.1.1.3,Ethernet0/2
O 192.168.1.0/24 [110/30] via 34.1.1.3, Ethernet0/2
[110/30] via 24.1.1.2, Ethernet0/1
除了最后一个192的路由对我们有用,其他都是没必要的。
然后我们在四台路由器上设置Prefix-Suppression特性。
方法如下:
R1(config)#router ospf 1
R1(config-router)#prefix-suppression
然后查看R1 R4的OSPF路由条目会发现,只剩下了其他路由器的环回介面路由。
如下:
O 3.3.3.3 [110/11] via 13.1.1.3, Ethernet0/2
O 4.4.4.4 [110/21] via 13.1.1.3, Ethernet0/2
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/21] via 34.1.1.3,Ethernet0/2
[110/21] via 24.1.1.2,Ethernet0/1
O 3.3.3.3 [110/11] via 34.1.1.3, Ethernet0/2
因为环回介面和已经设置为Passive的介面不会被抑制,其他直连路由都会被抑制。
然后做两步操作,
第一步,抑制四台路由器换回介面的通告,方法如下:
R1(config)#int loopback 0
R1(config-if)#ip ospf prefix-suppression
这样做完之后再查看R1 R4的OSPF路由表发现没有了任何IOSPF的路由。
R1#show ip route os ||空的,里面啥也没有
R4#show ip route os ||空的,里面啥也没有
第二步,让R1和R4通告各自连接PC的网段,方法如下:
R1(config-router)#passive-interface e0/0
R4(config)#router ospf 1
R4(config-router)#passive-interface e0/0
再查看R1和R4的路由表,如下:
[110/30] via 12.1.1.2,Ethernet0/1
O 192.168.1.0/24 [110/30] via 34.1.1.3,Ethernet0/2
[110/30] via 24.1.1.2,Ethernet0/1
OK,满足了我们对路由表优化的要求。
以上是我整理的OSPF路由优化-Prefix-Suppression分析,希望可以对学习CCIE的同学有帮助,谢谢大家观看。
原文来自公众号:思科CCIE训练营
定期更新更多技术干货