網(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)稱(chēng)為默認(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) 稱(chēng)為活動(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)決定
死網(wǎng)關(guān)檢測(cè)
TCP/IP會(huì)通過(guò)死網(wǎng)關(guān)檢測(cè)算法來(lái)檢測(cè)當(dāng)前活動(dòng)的默認(rèn)網(wǎng)關(guān)是否存活,如果活動(dòng)默認(rèn)網(wǎng)關(guān)發(fā)生故障,則TCP/IP會(huì)及時(shí)調(diào)整路由表,選擇使用下一個(gè)默認(rèn)網(wǎng)關(guān),選擇方式與原方式一致,只是排除了發(fā)生故障的原活動(dòng)默認(rèn)網(wǎng)關(guān)。
死網(wǎng)關(guān)檢測(cè)算法的完整描述如下:
當(dāng)TCP/IP在通過(guò)活動(dòng)默認(rèn)網(wǎng)關(guān)向某個(gè)目標(biāo)IP地址進(jìn)行TCP通信時(shí),如果失敗的嘗試次數(shù)達(dá)到 TcpMaxDataRetransmissions注冊(cè)表值(默認(rèn)為5)的一半(即3次)還沒(méi)有收到響應(yīng),TCP/IP將到達(dá)該目標(biāo)IP地址的通信改為 使用列表中的下一默認(rèn)網(wǎng)關(guān)。當(dāng)超過(guò)25%的TCP連接轉(zhuǎn)向下一默認(rèn)網(wǎng)關(guān)時(shí),TCP/IP將活動(dòng)默認(rèn)網(wǎng)關(guān)修改為這些連接當(dāng)前使用的默認(rèn)網(wǎng)關(guān)。
如果此時(shí)原始默認(rèn)網(wǎng)關(guān)從故障中回復(fù),TCP/IP將繼續(xù)使用當(dāng)前的活動(dòng)默認(rèn)網(wǎng)關(guān),而不會(huì)轉(zhuǎn)移到原始默認(rèn)網(wǎng)關(guān),除非重啟計(jì)算機(jī)。如果當(dāng)前的活動(dòng)默 認(rèn)網(wǎng)關(guān)也出現(xiàn)故障,那么TCP/IP就會(huì)繼續(xù)嘗試使用列表中的下一個(gè)默認(rèn)網(wǎng)關(guān),在嘗試完整個(gè)列表后將返回到列表的開(kāi)始,又從第一個(gè)默認(rèn)網(wǎng)關(guān)開(kāi)始進(jìn)行嘗試。
死網(wǎng)關(guān)檢測(cè)僅監(jiān)視TCP流量,如果其他類(lèi)型的流量連接失敗,不會(huì)切換默認(rèn)網(wǎng)關(guān)。另外TCP是端到端的協(xié)議,因此即使當(dāng)前默認(rèn)網(wǎng)關(guān)完全正常,本地計(jì)算機(jī)的TCP通信失敗也可能會(huì)導(dǎo)致切換默認(rèn)網(wǎng)關(guā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),在活動(dòng)默認(rèn)網(wǎng)關(guān)出現(xiàn)故障導(dǎo)致切換默認(rèn)網(wǎng)關(guān)時(shí),就可能會(huì)引起連接性故障。比如活動(dòng)默認(rèn)網(wǎng)關(guān)為Internet連接,當(dāng)它出現(xiàn)問(wèn)題時(shí),此時(shí) 默認(rèn)網(wǎng)關(guān)切換為內(nèi)部連接,此時(shí),本地計(jì)算機(jī)將無(wú)法再訪問(wèn)位于Internet連接上的主機(jī)。對(duì)于這種情況,微軟建議使用 route add 來(lái)添加對(duì)應(yīng)目的網(wǎng)絡(luò)的匹配路由,而不是設(shè)置多個(gè)默認(rèn)網(wǎng)關(guān)。
相關(guān)推薦:軟考網(wǎng)管:使用swatch實(shí)時(shí)監(jiān)控cisco路由器北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |