大家应该知道,对运行在公网上面的网路设备来说,路由条目的数量一般非常多(十几万甚至几十万条),这么庞大的路由表对路由器的性能和转发效率肯定有要求。而且路由器使用最长掩码查表的方式转发数据包,一旦路由器条目越多,就可能导致查表的时间越长,数据转发延迟也就相对增大。

那么优化路由表肯定是必须要做的事情。

下面要说的是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

2.0.0.0/32 is subnetted, 1 subnets

O 2.2.2.2 [110/11] via 24.1.1.2,Ethernet0/1

3.0.0.0/32 is subnetted, 1 subnets

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路由条目会发现,只剩下了其他路由器的环回介面路由。

如下:

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

R4#show ip route ospf

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

2.0.0.0/32 is subnetted, 1 subnets

O 2.2.2.2 [110/11] via 24.1.1.2,Ethernet0/1

3.0.0.0/32 is subnetted, 1 subnets

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 ospf 1

R1(config-router)#passive-interface e0/0

R4(config)#router ospf 1

R4(config-router)#passive-interface e0/0

再查看R1和R4的路由表,如下:

R1#show ip route ospf

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

R4#show ip route ospf

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训练营

定期更新更多技术干货


推荐阅读:
相关文章