ip classless和no ip classless的對待默認路由的區別
R3(config)#no ip classless
R3#show ip route
<cut>
Gateway of last resort is 168.13.1.101 to network 0.0.0.0
168.13.0.0/24 is subnetted, 4 subnets
R 168.13.1.0 [120/1] via 168.13.100.1, 00:00:13, Serial0/1
C 168.13.3.0 is directly connected, Ethernet0
R 168.13.2.0 [120/1] via 168.13.100.2, 00:00:06, Serial0/1
C 168.13.100.0 is directly connected, Serial0.1
S* 0.0.0.0/0 [1/0] via 168.13.1.101
先來:ping 10.1.1.1
R3#ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/89/114 ms
R3#
再來:ping 168.13.200.1
R3#ping 168.13.200.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 168.13.200.1, timeout is 2 seconds:
...
Success rate is 0 percent (0/5)
相反:
R3(config)# ip classless
R3#ping 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 84/89/114 ms
R3#
再來:ping 168.13.200.1
R3#ping 168.13.200.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 168.13.200.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 80/88/112ms
R3#
這是爲什麼呢?
Cisco早期的IOS是缺省關閉該命令的,這也是爲什麼cisco路由器的路由表中一直會有諸如以下條目出現的原因
1.0.0.0/32 is subnetted, 1 subnets
C 1.1.1.1 is directly connected, Loopback0
172.30.0.0/24 is subnetted, 1 subnets
C 172.30.1.0 is directly connected, Ethernet0
其實不管是否開啓ip classless,Cisco路由表一直會有類似於“172.30.0.0/24 is subnetted, 1 subnets”的主類條目,它顯示該網絡被24位的掩碼進行子網劃分(然後再列出具體的子網),這是因爲Cisco軟件早期是將IPv4子網分類別對待的。(那個時候,查詢路由只看主類號,不看具體子網號)。所以在ping 168.13.200.1的時候,路由器發現它是b類網絡的,屬於168.13.0.0網段,接着,到此網段範圍之內去查找路由,最後發現找不到匹配的。然後就丟棄!所以ping不通。然而,在ping 10.1.1.1的時候,路由器發現它是屬於A類網絡的,然後查找路由表,沒有找到A類網絡的條目,於是就把它交給默認路由處理!
後來開啓ip classless,cisco路由器纔將IPv4視爲無類別的,在查找路由時,會比較子網號。往下找,若找不到,就會使用默認路由。
1。若找到自己隸屬的標準網段的話,然後就侷限於此標準網段,看裏邊是否有符合自己的,符合則成功,不符則拋棄。不會再往下找了,也不會用默認路由。
2。找不到自己隸屬的標準網段,就會去使用默認路由。(當然,假設默認路由是存在的)