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

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