路由器首先匹配主網路號,如果主網路號存在,就繼續匹配子網號,且不考慮預設路由,如果子網無法匹配,丟棄資料包,在分類路由下,路由器認為知道所有主網路下的全部子網,並使用ICMP返回一個不可達回應。如果主網路號不存在,使用預設路由。
一、路由器首先匹配先在路由中找一條和目標ip地址長的最像的,如果一條都找不到,最後會使用預設路由轉發,其主網路號,如果主網路號存在,就繼續匹配子網號,且不考慮預設路由,如果子網無法匹配,丟棄資料包,並使用ICMP返回一個不可達回應。
二、這大多出現在某些早期iOS版本里,這些早期版本預設沒有開啟ip classless,而開啟ip classless以後將改變路由器的路由行為,此時路由器將進行最長最精確匹配或使用預設路由進行匹配,使用無類路由,如果沒有找到最具體的匹配,就使用預設路由,ip classless命令的作用主要是改變有類路由協議的查詢路由表的行為。
三、目標IP為10.3.1.1,所在的主網路為124.215.2.12,目前的路由表中存在124.215.2.12的子網路由,此時路由器要進一步查詢子網路由,是否能夠精確匹配,我們看到路由表中的兩條子網路由124.216.2.12/16和12.36.124.78/16均不能匹配我們的目標地址,根據有類路由協議的原則,它不會選擇預設路由,所以報文B被路由器丟棄。
四、目標IP為124.205.6.13,所在的主網路為124.215.2.12,目前的路由表中存在124.215.2.12的子網路由,此時路由器要進一步查詢子網路由,是否能夠精確匹配,我們看到124.216.2.12/16可以匹配我們的目標地址,所以報文A根據這條路由進行轉發。
五、目標IP為126.205.6.13,所在的主網路為11.0.0.0,目前的路由表中不存在126.23.25.26的子網路由,此時路由器直接採用預設路由,所以路由器採用預設路由對報文C進行轉發,上面的結果是有類路由協議查詢路由的行為,而配置ip classless的目的就是改變它的這種行為,配置完該命令後查詢路由的行為是根據最長匹配的原則,就可以透過預設路由進行轉發了。
六、首先查詢目標IP所在的主網路,若路由表中有該主網路的任何一個子網路由的話,就必須精確匹配其中的子網 路由;如果沒有找到精確匹配的子網路由,它不會選擇最後的預設路由,而是丟棄報文。若路由表中不存在該主網路的任何一個子網路由,則最終選擇預設路由。
最後要說明一下,該命令對於一個無類路由協議來說沒有任何意義,因為無類路由協議查詢路由的方式就是最長匹配的原則,更多關於路由器匹配的問題,有興趣的網友可看下本站其它路由器設定。