細(xì)說路由器
介紹
以太網(wǎng)交換機(jī)工作在第二層即數(shù)據(jù)鏈路層,用于在同一網(wǎng)絡(luò)內(nèi)部轉(zhuǎn)發(fā)以太網(wǎng)幀。但是,當(dāng)源和目的IP地址位于不同網(wǎng)絡(luò)時(shí),以太網(wǎng)幀必須發(fā)送給路由器。路由器負(fù)責(zé)在不同網(wǎng)絡(luò)間傳輸報(bào)文,通過路由表來決定最佳轉(zhuǎn)發(fā)路徑。當(dāng)主機(jī)將報(bào)文發(fā)送至不同IP地址時(shí),由于主機(jī)無法直接與本地網(wǎng)絡(luò)以外的設(shè)備通信,報(bào)文被轉(zhuǎn)發(fā)至默認(rèn)網(wǎng)關(guān)。默認(rèn)網(wǎng)關(guān)就是數(shù)據(jù)流從本地網(wǎng)絡(luò)路由至遠(yuǎn)端設(shè)備的目的地。它通常用來連接本地網(wǎng)與公共網(wǎng)。
報(bào)文轉(zhuǎn)發(fā)過程:
路由器在一個(gè)接口接收?qǐng)?bào)文并將它從另一個(gè)接口轉(zhuǎn)發(fā)出去,這一過程的關(guān)鍵步驟是為輸出鏈路將報(bào)文封裝在適當(dāng)?shù)臄?shù)據(jù)鏈路幀中。路由器主要執(zhí)行以下三個(gè)步驟:
1. 將第二層的幀頭和幀尾移除,解析出第三層報(bào)文。
2. 檢查IP報(bào)文的目的IP地址,在路由表中查找最佳路由。
3. 如果路由器找到一條最佳路徑,則將三層報(bào)文封裝到新的二層幀中,并將幀轉(zhuǎn)發(fā)到輸出端口。
如下圖所示:設(shè)備有三層IPv4地址,以太網(wǎng)接口有二層數(shù)據(jù)鏈路地址。例如PC 1的IPv4地址192.168.1.10,示例MAC地址0A-10。在報(bào)文從原設(shè)備傳輸至目的設(shè)備的過程中,三層IP地址不會(huì)改變。但是,每一跳隨著報(bào)文在路由器中被解封裝和重新封裝,二層數(shù)據(jù)鏈路地址都會(huì)改變。很可能報(bào)文被封裝成與接收時(shí)不同的另一種類型的二層幀。

發(fā)送報(bào)文:
PC 1發(fā)送報(bào)文給PC 2時(shí),首先必須確定目的IPv4地址是否位于同一網(wǎng)絡(luò)。PC 1通過將自己的IPv4地址與子網(wǎng)掩碼做與操作,來判斷PC 1所屬的網(wǎng)段。接下來,PC 1對(duì)目的IPv4地址與PC 1的子網(wǎng)掩碼做同樣的與操作。如果目的網(wǎng)絡(luò)地址與PC 1網(wǎng)絡(luò)相同,則PC 1不使用默認(rèn)網(wǎng)關(guān),而是在ARP緩存中查找目的IPv4地址的設(shè)備MAC地址。如果MAC地址不在緩存中,則PC 1產(chǎn)生一個(gè)ARP請(qǐng)求來獲取地址并將報(bào)文發(fā)給目的地址。如果目的網(wǎng)絡(luò)地址位于另一網(wǎng)絡(luò),則PC 1將報(bào)文轉(zhuǎn)發(fā)至默認(rèn)網(wǎng)關(guān)。
要確定默認(rèn)網(wǎng)關(guān)的MAC地址,PC 1在它的ARP表中查找默認(rèn)網(wǎng)關(guān)的IPv4地址以及相應(yīng)的MAC地址。如果ARP表中沒有默認(rèn)網(wǎng)關(guān)的對(duì)應(yīng)表項(xiàng),則PC 1發(fā)送ARP請(qǐng)求。路由器R1回復(fù)ARP響應(yīng)。之后PC 1將報(bào)文轉(zhuǎn)發(fā)至默認(rèn)網(wǎng)關(guān)的MAC地址,即路由器R1的Fa0/0接口。
轉(zhuǎn)發(fā)至下一跳:
R1從PC 1接收到以太網(wǎng)幀后執(zhí)行以下步驟:
1. R1檢查目的MAC地址,與接收端口FastEthernet 0/0相匹配,因此,將幀復(fù)制到buffer。
2. R1識(shí)別以太網(wǎng)類型為0x800,意味著以太網(wǎng)幀的數(shù)據(jù)部分包含IPv4報(bào)文。
3. R1解封裝該以太網(wǎng)幀。
4. 由于目的IPv4地址與R1直連的任何網(wǎng)絡(luò)都不相符,R1在路由表中查找包含該目的IPv4地址主機(jī)的網(wǎng)絡(luò)地址。本例中,路由表中有192.168.4.0/24網(wǎng)絡(luò)的路由。目的IPv4地址為192.168.4.10,即該網(wǎng)絡(luò)上的主機(jī)IPv4地址。
R1找到192.168.4.0/24路由的下一條IPv4地址為192.168.2.2以及輸出端口FastEthernet 0/1,這意味著IPv4報(bào)文封裝到一個(gè)新的以太網(wǎng)幀中,目標(biāo)MAC地址是下一跳路由器的MAC地址。
由于下一個(gè)接口是在以太網(wǎng)上,所以R1必須用ARP解析出下一跳IPv4地址的MAC地址。
1. R1在ARP cache中查找下一跳IPv4地址192.168.2.2。如果表項(xiàng)不在ARP cache中,R1會(huì)從FastEthernet 0/1 接口發(fā)送ARP請(qǐng)求,R2會(huì)返回ARP響應(yīng)。R1之后在ARP cache中更新192.168.2.2的MAC地址。
2. IPv4報(bào)文封裝到新的以太網(wǎng)幀中并從R1的FastEthernet 0/1 接口轉(zhuǎn)發(fā)出去。
到達(dá)目的地:
當(dāng)幀到達(dá)R3時(shí)執(zhí)行以下步驟:
1. R3將數(shù)據(jù)鏈路幀復(fù)制到它的buffer。
2. R3解封裝該數(shù)據(jù)鏈路幀。
3. R3在路由表中查找該目的IPv4地址。R3路由表中有直接連接到該網(wǎng)絡(luò)的路由。這表示報(bào)文可直接發(fā)送到目的設(shè)備而無需發(fā)送至路由器。
由于輸出接口是一個(gè)直連以太網(wǎng),所以R3必須用ARP解析出目的IPv4地址的MAC地址。
1. R3在它的ARP cache中查找目的IPv4地址,如果此ARP cache中沒有此表項(xiàng),R3會(huì)從FastEthernet 0/0 接口發(fā)送ARP請(qǐng)求。PC 2回復(fù)ARP響應(yīng)告知它的MAC地址。R3之后在ARP cache中更新192.168.4.10的MAC地址。
2. IPv4報(bào)文封裝到新的以太網(wǎng)幀中并從R3的FastEthernet 0/0 接口發(fā)出。
3. 當(dāng)PC 2接收到該幀,檢查幀的目的MAC地址,與網(wǎng)卡接收端口的MAC地址相匹配,PC 2于是將幀的剩余部分復(fù)制到自己的buffer。
4. PC 2識(shí)別到以太網(wǎng)類型為0x800,也就是幀的數(shù)據(jù)部分包含IPv4報(bào)文。
5. PC 2解封裝以太網(wǎng)幀,將IPv4報(bào)文傳遞給操作系統(tǒng)的IPv4進(jìn)程。
路由表:
路由表存儲(chǔ)的信息包括:
直連路徑:來自活動(dòng)路由接口的路徑。當(dāng)接口為活動(dòng)狀態(tài)并配置了IP地址時(shí),路由器添加一條直連路徑。
遠(yuǎn)端路徑:遠(yuǎn)端的網(wǎng)絡(luò)連接到其他路由。通過靜態(tài)配置或動(dòng)態(tài)路由協(xié)議到達(dá)該網(wǎng)絡(luò)。
路由表是存儲(chǔ)在RAM中的一份數(shù)據(jù)文件,用于存儲(chǔ)直連以及遠(yuǎn)端網(wǎng)絡(luò)的路由信息。路由表中包含網(wǎng)絡(luò)或下一跳地址的信息。這些信息告知路由器可以通過將報(bào)文發(fā)送至代表下一跳地址的路由器以最佳路勁到達(dá)目的地址。下一跳信息也可以是到下一個(gè)目的地的輸出接口。
路由表內(nèi)容:
Cisco IOS路由器可用show IP route命令顯示IPv4路由表。路由器還提供一些額外的路由信息,包括路徑是怎樣學(xué)習(xí)到的,路徑在表中有多長(zhǎng)時(shí)間,使用哪一接口去到達(dá)預(yù)定義的目的地。
路由表中的表項(xiàng)可作為以下內(nèi)容添加:
本地路徑接口:當(dāng)接口配置并激活時(shí)添加。
直連接口:當(dāng)接口配置并激活時(shí)添加。
靜態(tài)路徑:當(dāng)手動(dòng)配置路徑并且輸出接口激活時(shí)。
動(dòng)態(tài)路由協(xié)議:當(dāng)路由協(xié)議動(dòng)態(tài)學(xué)習(xí)到網(wǎng)絡(luò)時(shí)添加,如EIGRP或OSPF。
路由表項(xiàng)的來源通過代碼來標(biāo)識(shí),代碼表明路徑是怎樣學(xué)習(xí)到的。例如,常用代碼包括:
L:路由器接口地址。當(dāng)路由器接收到報(bào)文時(shí)發(fā)送至本地接口而無需轉(zhuǎn)發(fā)。
C:直連網(wǎng)段。
O:通過OSPF從另一個(gè)路由器動(dòng)態(tài)學(xué)習(xí)到的網(wǎng)絡(luò)。
D:通過EIGRP從另一個(gè)路由器動(dòng)態(tài)學(xué)習(xí)到的網(wǎng)絡(luò)。
下圖顯示了R1的路由表:

遠(yuǎn)端網(wǎng)絡(luò)路由表項(xiàng):
下圖顯示了R1到遠(yuǎn)端網(wǎng)絡(luò)10.1.1.0的表項(xiàng):

Route source:路徑是怎樣學(xué)習(xí)到的。
Destination network:遠(yuǎn)端網(wǎng)絡(luò)地址。
Administrative distance:路由來源的可信度。較低值表明優(yōu)先選擇。
Metric:是路由算法用以確定到達(dá)目的地的最佳路徑的計(jì)量標(biāo)準(zhǔn)。較低值表明優(yōu)先選擇。
Next hop:轉(zhuǎn)發(fā)報(bào)文的下一個(gè)路由器的IP地址。
Route timestamp:自學(xué)習(xí)到路徑以來過了多少時(shí)間。
Outgoing interface:用以轉(zhuǎn)發(fā)報(bào)文的輸出接口。
直連路由表項(xiàng):
下圖顯示了R1到直連網(wǎng)絡(luò)192.168.10.0的路由表項(xiàng):

在一個(gè)接口狀態(tài)為up/up并添加到IPv4路由表之前,接口必須:
· 指定有效的IPv4或IPv6地址。
· 通過no shutdown命令激活。
· 從另一設(shè)備(路由器,交換機(jī),主機(jī)等)接收到載體信號(hào)。
當(dāng)接口up之后,該接口的網(wǎng)絡(luò)作為直連網(wǎng)絡(luò)添加到路由表中。
-----END-----
來源:頭條?神龍網(wǎng)絡(luò)設(shè)計(jì)
版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系刪除。
推薦閱讀:
關(guān)注公眾號(hào),后臺(tái)回復(fù)「1024」獲取學(xué)習(xí)資料網(wǎng)盤鏈接。
歡迎點(diǎn)贊,關(guān)注,轉(zhuǎn)發(fā),在看,您的每一次鼓勵(lì),我都將銘記于心~
