- 論壇徽章:
- 0
|
這段時(shí)間在研究Linux平臺(tái)下靜態(tài)路由添加的問(wèn)題,目前在我們平臺(tái)上添加靜態(tài)路由是通過(guò)route add命令來(lái)實(shí)現(xiàn)的,在使用route add時(shí)發(fā)現(xiàn)了一些問(wèn)題,請(qǐng)大家?guī)兔σ黄鹂匆幌?br />
環(huán)境如下:
假設(shè)PC1有一張網(wǎng)卡,IP為192.168.1.100,mask為255.255.255.0,gateway為192.168.1.1,dev為eth0
如果沒(méi)有設(shè)定靜態(tài)路由的話(huà),對(duì)google(IP為203.208.39.104)做ping測(cè)試發(fā)現(xiàn)正常
使用route add -net 203.208.39.104 netmask 255.255.255.255 dev eth0,增加一條靜態(tài)路由
發(fā)現(xiàn)不能ping通203.208.39.104
刪除該路由,使用route add -net 203.208.39.104 netmask 255.255.255.255 gw 192.168.1.1,增加一條靜態(tài)路由
發(fā)現(xiàn)可以ping 通203.208.39.104
這里的問(wèn)題是為什么設(shè)定dev類(lèi)型的路由不能通?
下面做了兩個(gè)實(shí)驗(yàn)
1.使用ethereal抓包工具發(fā)現(xiàn),當(dāng)使用route add -net 203.208.39.104 netmask 255.255.255.255 dev eth0增加一條靜態(tài)路由時(shí),Ping 203.208.39.104這個(gè)地址會(huì)發(fā)送廣播包(arp)來(lái)詢(xún)問(wèn)
203.208.39.104地址的MAC地址,這個(gè)時(shí)候當(dāng)然不會(huì)有響應(yīng)。
2.使用route add -net 203.208.39.104 netmask 255.255.255.255 gw 192.168.1.1增加一條靜態(tài)路由時(shí),Ping 203.208.39.104這個(gè)地址直接將這個(gè)Ping包發(fā)送給網(wǎng)關(guān)192.168.1.1,這個(gè)時(shí)候網(wǎng)關(guān)就會(huì)
送出去然后會(huì)收到正常的回復(fù)
從上面的試驗(yàn)的結(jié)果可以看出,當(dāng)使用dev來(lái)設(shè)定路由時(shí),Linux的路由表中關(guān)于這條路由并沒(méi)有g(shù)ateway的值,這個(gè)時(shí)候會(huì)把丟到這個(gè)dev的報(bào)文當(dāng)作局域網(wǎng)的報(bào)文來(lái)處理。使用gw來(lái)設(shè)定時(shí),Linux路由表
中關(guān)于這條路由有g(shù)ateway的值,這個(gè)時(shí)候IP層會(huì)根據(jù)Dest IP和gw所在的dev的接口進(jìn)行判斷。如果是同網(wǎng)段內(nèi)就會(huì)發(fā)ARP包,然后根據(jù)回復(fù)丟出去,如果不在同一網(wǎng)段內(nèi)就會(huì)直接將報(bào)文轉(zhuǎn)給Gateway進(jìn)行
處理
這里帶來(lái)的問(wèn)題是:如果需要增加的靜態(tài)路由的Dest IP網(wǎng)段和dev不在同一網(wǎng)段就必須使用gw的方式增加路由,請(qǐng)問(wèn)使用dev方式來(lái)增加靜態(tài)路由主要用于那些場(chǎng)合?
謝謝! |
|