路由確定過程
當(dāng)TCP/IP需要向某個IP地址發(fā)起通信時,它會對路由表進(jìn)行評估,以確定如何發(fā)送數(shù)據(jù)包。評估過程如下:
TCP/IP使用需要通信的目的IP地址和路由表中每一個路由項(xiàng)的網(wǎng)絡(luò)掩碼進(jìn)行相與計(jì)算,如果相與后的結(jié)果匹配對應(yīng)路由項(xiàng)的網(wǎng)絡(luò)地址,則記錄下此路由項(xiàng);
當(dāng)計(jì)算完路由表中所有的路由項(xiàng)后,TCP/IP選擇記錄下的路由項(xiàng)中的最長匹配路由(網(wǎng)絡(luò)掩碼中具有最多“1”位的路由項(xiàng))來和此目的IP地址進(jìn)行通信。如果存在多個最長匹配路由,那么選擇具有最低躍點(diǎn)數(shù)的路由項(xiàng);如果存在多個具有最低躍點(diǎn)數(shù)的最長匹配路由,那么:
如果是發(fā)送響應(yīng)數(shù)據(jù)包,并且數(shù)據(jù)包的源IP地址是某個最長匹配路由的接口的IP地址,那么選擇此最長匹配路由;
其他情況下均根據(jù)最長匹配路由所對應(yīng)的網(wǎng)絡(luò)接口在網(wǎng)絡(luò)連接的高級設(shè)置中的綁定優(yōu)先級來決定,如下圖所示:

網(wǎng)關(guān)和接口確定過程
在確定使用的路由項(xiàng)后,網(wǎng)關(guān)和接口通過以下方式確定:
如果路由項(xiàng)中的網(wǎng)關(guān)地址為空或者為本地計(jì)算機(jī)上的某個網(wǎng)絡(luò)接口,那么在發(fā)送數(shù)據(jù)包時:
通過路由項(xiàng)中對應(yīng)的網(wǎng)絡(luò)接口發(fā)送;
源IP地址為此網(wǎng)絡(luò)接口的IP地址;
源MAC地址為此網(wǎng)絡(luò)接口的MAC地址;
目的IP地址為接收此數(shù)據(jù)包的目的主機(jī)的IP地址;
目的MAC地址為接收此數(shù)據(jù)包的目的主機(jī)的MAC地址;
如果路由項(xiàng)中的網(wǎng)關(guān)地址并不屬于本地計(jì)算機(jī)上的任何網(wǎng)絡(luò)接口,那么在發(fā)送數(shù)據(jù)包時:
通過路由項(xiàng)中對應(yīng)的網(wǎng)絡(luò)接口發(fā)送;
源IP地址為路由項(xiàng)中對應(yīng)網(wǎng)絡(luò)接口的IP地址;
源MAC地址路由項(xiàng)中對應(yīng)網(wǎng)絡(luò)接口的MAC地址;
目的IP地址為接收此數(shù)據(jù)包的目的主機(jī)的IP地址;
目的MAC地址為網(wǎng)關(guān)的MAC地址;
在此我以上面的路由表為基礎(chǔ),舉例進(jìn)行說明:
和單播IP地址 192.168.1.8 的通信:在進(jìn)行相與計(jì)算時,1、3 項(xiàng)匹配,但是3項(xiàng)為最長匹配路由,因此選擇3項(xiàng)。3項(xiàng)的網(wǎng)關(guān)地址為本地計(jì)算機(jī)的網(wǎng)絡(luò)接口192.168.1.6,因此發(fā)送數(shù)據(jù)包時,目的IP地址為192.168.1.8、目的MAC地址為192.168.1.8的MAC地址(通過ARP解析獲得)。
和單播IP地址 192.168.1.6 的通信:在進(jìn)行相與計(jì)算時,1、3、6 項(xiàng)匹配,但是6項(xiàng)為最長匹配路由,因此選擇6項(xiàng)。6項(xiàng)的網(wǎng)關(guān)地址為本地環(huán)回地址127.0.0.1,因此直接將數(shù)據(jù)包發(fā)送至本地環(huán)回地址。
和單播IP地址 192.168.1.245 的通信:在進(jìn)行相與計(jì)算時,1、3、4、5 項(xiàng)匹配,但是4、5項(xiàng)均為最長匹配路由,所以此時根據(jù)躍點(diǎn)數(shù)進(jìn)行選擇,5 項(xiàng)具有更低的躍點(diǎn)數(shù),因此選擇5項(xiàng);在發(fā)送數(shù)據(jù)包時,目的IP地址為192.168.1.254、目的MAC地址為192.168.1.7的MAC地址(通過ARP解析獲得)。
和單播IP地址 10.1.1.1 的通信:在進(jìn)行相與計(jì)算時,只有 1 項(xiàng)匹配;在發(fā)送數(shù)據(jù)包時,目的IP地址為10.1.1.1、目的MAC地址為192.168.1.1的MAC地址(通過ARP解析獲得)。
和子網(wǎng)廣播地址 192.168.1.255 的通信:在進(jìn)行相與計(jì)算時,1、3、4、5、7 項(xiàng)匹配,但是7項(xiàng)為最長匹配路由,因此選擇7項(xiàng)。7項(xiàng)的網(wǎng)關(guān)地址為本地計(jì)算機(jī)的網(wǎng)絡(luò)接口,因此在發(fā)送數(shù)據(jù)包時,目的IP地址為192.168.1.255,目的MAC地址為以太網(wǎng)廣播地址FF:FF:FF:FF:FF:FF。
默認(rèn)路由與默認(rèn)網(wǎng)關(guān)
由于在路由表中存儲針對每個主機(jī)或子網(wǎng)的路由項(xiàng)不可行,因此提出了默認(rèn)路由的概念,默認(rèn)路由中的網(wǎng)關(guān)稱為默認(rèn)網(wǎng)關(guān)。默認(rèn)路由的網(wǎng)絡(luò)地址為0.0.0.0,網(wǎng)絡(luò)掩碼為0.0.0.0,它匹配任何網(wǎng)絡(luò)通信,因此當(dāng)?shù)竭_(dá)特定主機(jī)或特定子網(wǎng)的路由并未在路由表中指定時,均可以通過默認(rèn)路由來進(jìn)行轉(zhuǎn)發(fā)。如果沒有設(shè)置默認(rèn)路由,那么無法到達(dá)未在路由表中指定路由項(xiàng)的網(wǎng)絡(luò)目的地址。
設(shè)置默認(rèn)路由后,把數(shù)據(jù)包的路由責(zé)任移交到了路由器,優(yōu)點(diǎn)是簡化了本地計(jì)算機(jī)上的路由表和配置,缺點(diǎn)則是計(jì)算機(jī)無法明確目的地址是否可達(dá),從而可能發(fā)送針對不可到達(dá)地址的流量。雖然位于路由路徑上的路由器知道目的地址不可達(dá)時會使用ICMP目的地址不可達(dá)信息來通知原始發(fā)送主機(jī),但是這個過程中,已經(jīng)占用了額外的網(wǎng)絡(luò)流量。
在Windows系統(tǒng)中,創(chuàng)建默認(rèn)路由可以通過以下兩種方式實(shí)現(xiàn):
在網(wǎng)絡(luò)接口的TCP/IP選項(xiàng)中設(shè)置默認(rèn)網(wǎng)關(guān),從而創(chuàng)建默認(rèn)路由;
使用 route add 命令添加網(wǎng)絡(luò)地址為0.0.0.0、網(wǎng)絡(luò)掩碼為0.0.0.0的默認(rèn)路由;
推薦大家總是使用前一種方式。
配置多個默認(rèn)網(wǎng)關(guān)
你可以在單個網(wǎng)絡(luò)接口、多個網(wǎng)絡(luò)接口上同時配置多個默認(rèn)網(wǎng)關(guān),但是TCP/IP同時只會使用一個默認(rèn)網(wǎng)關(guān)(默認(rèn)路由),這個當(dāng)前使用的默認(rèn)網(wǎng)關(guān)稱為活動默認(rèn)網(wǎng)關(guān)(活動默認(rèn)路由)。當(dāng)不同網(wǎng)絡(luò)接口所連接的網(wǎng)絡(luò)之間沒有連接性時(如一個網(wǎng)絡(luò)接口連接到Internet,而一個網(wǎng)絡(luò)接口連接到內(nèi)部網(wǎng)絡(luò)),在多個網(wǎng)絡(luò)接口上同時配置默認(rèn)網(wǎng)關(guān)可能會帶來連接性問題(具體的問題我將在后文描述),因此微軟不推薦大家在多個網(wǎng)絡(luò)接口上同時配置默認(rèn)網(wǎng)關(guān),并且當(dāng)你進(jìn)行這種配置時會進(jìn)行警告,不過不會阻止你的操作。
當(dāng)在配置多個默認(rèn)網(wǎng)關(guān)時,將根據(jù)以下條件來選擇活動默認(rèn)網(wǎng)關(guān):
當(dāng)路由表中具有多個默認(rèn)網(wǎng)關(guān)時,TCP/IP根據(jù)躍點(diǎn)數(shù)來進(jìn)行選擇,躍點(diǎn)數(shù)最低的默認(rèn)網(wǎng)關(guān)具有最高的優(yōu)先級;
如果路由表中具有多個具有最低躍點(diǎn)數(shù)的默認(rèn)網(wǎng)關(guān),那么TCP/IP根據(jù)默認(rèn)網(wǎng)關(guān)對應(yīng)的網(wǎng)絡(luò)接口在網(wǎng)絡(luò)連接的高級設(shè)置中的綁定優(yōu)先級來決定,如下圖所示:
本新聞共
3頁,當(dāng)前在第
2頁
1 2 3