关于思科路由器工作在有类模式下的问题


在Cisco IOS 10.0之后的版本里面,就出现了一条命令,ip classless命令,这条命令的作用是让路由器工作在无类模式下,也就是如果关闭这条命令,路由器就会工作在有类模式下,那有什么区别呢,本文将做一个探究。

实验现象

两台路由器,我们想办法让R1的路由表变成如下情况:

R1#show ip route
Gateway of last resort is not set
C    192.168.12.0/24 is directly connected, Ethernet0/0
     172.16.0.0/32 is subnetted, 2 subnets
O       172.16.1.1 [110/11] via 192.168.12.2, 00:08:56, Ethernet0/0
O       172.16.2.1 [110/11] via 192.168.12.2, 00:08:56, Ethernet0/0
S    172.0.0.0/8 [1/0] via 192.168.12.2

R2上面三个loopback接口,分别为172.16.1.1/24、172.16.2.1/24、172.16.3.1/24。然后我只宣告了1.1和2.1的地址进入OSPF。导致R1没有学习到172.16.3.1/24的路由。为了保证可达性,我在R1上加了一条超网静态路由。

ip route 172.0.0.0 255.0.0.0 192.168.12.2

最终让路由表呈现上面一种形态,按照我们之前的理解,路由表会最长匹配原则,我如果去访问172.16.3.1的话,在172.16.0.0/32这个子网里面是没有被匹配中的,所以肯定会匹配上172.0.0.0/8,事实上我们去ping的时候,也确实通了。

R1#ping 172.16.3.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/34/40 ms

我们查看R1的配置的时候,发现默认情况下就开启了ip classless(在running-config中不显示,这个为默认的配置),我们尝试关闭这条命令:

R1(config)#no ip classless

然后再次尝试去ping 172.16.3.1

R1#ping 172.16.3.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.3.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)

然后会发现在路由表一样的情况下,路由器对同样的数据包的处理方式不一样。

总结

IP classless的作用:
1、ip classless这条命令是作用于路由转发进程的,告诉路由器工作在无类环境下
2、它能让路由器超越有类网络的边界而根据最长匹配条目来转发数据包;
3、当目的网络没有出现在路由表中时通过默认路由转发数据包,而不是简单的丢弃
4、如果路由器工作在有类环境下,当目的网络出现在路由表中,但没有具体的网络匹配时,路由器将丢弃数据包。


文章作者: AaronXu
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 AaronXu !
评论
 上一篇
EIGRP的默认缺省路由 EIGRP的默认缺省路由
EIGRP是思科创造的路由协议(思科在2013年将该协议公有化),这个协议的优点很多,但是给人最大的感触就是收敛速度真的很快,比常见的OSPF或者IS-IS协议都快的多,但是EIGRP本身并没有提供发布缺省路由的命令,只能通过其他的方式来
下一篇 
探讨路由器静态路由下一跳指向 探讨路由器静态路由下一跳指向
众所周知在路由器上面写静态路由的时候,下一跳可以写为IP地址形式,也可以写成下一跳出接口的方式,那两种方式的区别在哪里呢,本文就以此作为一个探讨。
  目录