ICMP重定向報(bào)文是ICMP控制報(bào)文中的一種。在特定的情況下,當(dāng)路由器檢測(cè)
到一臺(tái)機(jī)器使用非優(yōu)化路由的時(shí)候,它會(huì)向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,請(qǐng)求主機(jī)改變路由。路由器也會(huì)把初始數(shù)據(jù)報(bào)向它的目的地轉(zhuǎn)發(fā),ICMP雖然不
是路由協(xié)議,但是有時(shí)它也可以指導(dǎo)數(shù)據(jù)包的流向(使數(shù)據(jù)流向正確的網(wǎng)關(guān))。ICMP協(xié)議通過(guò)ICMP重定向數(shù)據(jù)包(類型5、代碼0:網(wǎng)絡(luò)重定向)達(dá)到這個(gè)
目的。 案例1:圖1 ICMP重定向 如圖1所示,主機(jī)PC要ping路由器R2的loopback
0地址:192.168.3.1,主機(jī)將判斷出目標(biāo)屬于不同的網(wǎng)段,因此它要將ICMP請(qǐng)求包發(fā)往自己的默認(rèn)網(wǎng)關(guān)192.168.1.253(路由器R1
的E0接口)。但是,這之前主機(jī)PC首先必須發(fā)送ARP請(qǐng)求,請(qǐng)求路由器R1的E0(192.168.1.253)的MAC地址。 圖2 ICMP重定向包 圖3 ICMP重定向包-續(xù) 如果還有后續(xù)的ICMP請(qǐng)求包,則除了ARP消息,所有的事件序列和上面的敘述相同。如圖9所示?!? 圖4 ICMP重定向事件序列 案例2:
如上圖所示,假設(shè)有主機(jī)Host1,路由器RT1和RT2,Host1的網(wǎng)關(guān)指向RT1的以太口Host1。RT1、RT2的以太口在一個(gè)網(wǎng)段內(nèi) RT1和RT2通過(guò)廣域網(wǎng)連接至Intranet,Intranet上有一臺(tái)主機(jī)Host2。RT1、RT2、Intranet內(nèi)路由器運(yùn)行動(dòng)態(tài)路由協(xié) 議。正常情況下RT1和RT2上都有到10.0.0.0/8這個(gè)網(wǎng)段都會(huì)有兩條路由,分別通過(guò)廣域網(wǎng)接口直接出去和通過(guò)以太口經(jīng)由另一臺(tái)路由器出去,但只 有經(jīng)過(guò)廣域網(wǎng)接口的這條路由會(huì)進(jìn)到路由表中。Host1訪問(wèn)Host2的時(shí)候IP包被發(fā)到RT1,經(jīng)過(guò)廣域網(wǎng)轉(zhuǎn)發(fā)出去 如果RT1的廣域網(wǎng)鏈路down掉,則RT1上另一條路由就會(huì)進(jìn)到路由表中,到達(dá)10.0.0./8這個(gè)網(wǎng)段的下一跳便是RT2的以太口。此時(shí)如果 Host1需要和Host2通信,Host1仍然會(huì)將IP包發(fā)送到RT1的以太口上,RT1查路由表,得知下一跳是RT2的以太口,這時(shí)RT1會(huì)將該報(bào)文 從以太口轉(zhuǎn)發(fā)到RT2的以太口,同時(shí)向Host1發(fā)送一條ICMP重定向報(bào)文,使Host1在路由表上加一條主機(jī)路由:目標(biāo)地址是10.0.0.1/8, 下一跳是1.1.1.3,這樣Host1到Host2以后的IP包就會(huì)被直接發(fā)送到RT2的以太口。 總結(jié):ICMP 重定向報(bào)文的接收者必須查看三個(gè)IP地址:
關(guān)于ICMP重定向報(bào)文有很多規(guī)則: 在4.4,B,S,D系統(tǒng)中,當(dāng)主機(jī)作為路由器使用時(shí),要進(jìn)行下列檢查,在生成,ICMP,重定向報(bào)文之前這些條件都要滿足,
另外,一臺(tái)4.4,B,S,D主機(jī)收到,ICMP,重定向報(bào)文后,在修改路由表之前要作一些檢查,這是為了防止路由器或主機(jī)的誤操作,以及惡意用戶的破壞,導(dǎo)致錯(cuò)誤地修改系統(tǒng)路由表
關(guān)于重定向最后要指出的是,路由器應(yīng)該發(fā)送的只是對(duì)主機(jī)的重定向,代碼1或3,而不是對(duì)網(wǎng)絡(luò)的重定向。子網(wǎng)的存在使得難于準(zhǔn)確指明何時(shí)應(yīng)發(fā)送對(duì)網(wǎng)絡(luò)的重定向而不是對(duì)主機(jī)的重定向,只當(dāng)路由器發(fā)送了錯(cuò)誤的類型時(shí),一些主機(jī)才把收到的對(duì)網(wǎng)絡(luò)的重定向當(dāng)作對(duì)主機(jī)的重定向來(lái)處理。 |
|
來(lái)自: 譚逸逸 > 《計(jì)算機(jī)網(wǎng)絡(luò)》