路由匹配原则
使用有類路由:路由器首先匹配主網絡號,如果主網絡號存在,就繼續匹配子網號,且不考慮缺省路由,如果子網無法匹配,丟棄數據包(在分類路由下,路由器認為知道所有主網絡下的全部子網),并使用ICMP返回一個不可達回應。如果主網絡號不存在,使用缺省路由(缺省路由存在前提)。
上述情況出現在某些早期IOS版本里(12.0以前版本),這些早期版本默認沒有打開ip classless.
打開ip classless以后將改變路由器的路由行為,此時路由器將進行最長最精確匹配或使用默認路由進行匹配
使用無類路由,如果沒有找到最具體的匹配,就使用缺省路由。
ip classless命令的作用主要是改變有類路由協議的查找路由表的行為。
例1:某路由器上運行的路由協議為RIP(有類的路由協議),路由表如下:
?
| R 10.1.0.0/16 | via 1.1.1.1 |
| R 10.2.0.0/26 | via 1.1.1.2 |
| R* 0.0.0.0/0 | via 1.1.1.3 |
?
現在假設有3個IP報文,報文A的目標IP是10.1.1.1、報文B的目標IP是10.3.1.1、報文C的目標IP是11.11.1.1
有類路由協議查找路由表的行為如下:
首先查找目標IP所在的主網絡,若路由表中有該主網絡的任何一個子網路由的話,就必須精確匹配其中的子網 路由;如果沒有找到精確匹配的子網路由,它不會選擇最后的缺省路由,而是丟棄報文。若路由表中不存在該主網絡的任何一個子網路由,則最終選擇缺省路由。
報文A:目標IP為10.1.1.1,所在的主網絡為10.0.0.0,目前的路由表中存在10.0.0.0的子網路由,此時路由器要進一步查找子網路由,是否能夠精確匹配,我們看到10.1.0.0/16可以匹配我們的目標地址,所以報文A根據這條路由進行轉發。
報文B:目標IP為10.3.1.1,所在的主網絡為10.0.0.0,目前的路由表中存在10.0.0.0的子網路由,此時路由器要進一步查找子網路由,是否能夠精確匹配,我們看到路由表中的兩條子網路由10.1.0.0/16和10.2.0.0/16均不能匹配我們的目標地址,根據有類路由協議的原則,它不會選擇缺省路由,所以報文B被路由器丟棄。
報文C:目標IP為11.1.1.1,所在的主網絡為11.0.0.0,目前的路由表中不存在11.0.0.0的子網路由,此時路由器直接采用缺省路由,所以路由器采用缺省路由對報文C進行轉發。
上面的結果是有類路由協議查找路由的行為,而配置ip classless的目的就是改變它的這種行為,配置完該命令后查找路由的行為是根據最長匹配的原則,那上例中的報文B就可以通過缺省路由進行轉發了。
注意:該命令對于一個無類路由協議來說沒有任何意義,因為無類路由協議查找路由的方式就是最長匹配的原則。
轉載于:https://blog.51cto.com/fighterbar/697687
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 做最酷的Windows Phone应用
- 下一篇: 橙光游戏《百鬼夜行》攻略