遶送流程
在本例中,Host_A 上的使用者對Host_B的IP 位址進行ping 的動作。這是最簡單的遶送,但是仍然涉及許多
步驟:
1. ICMP (Internet Control Message Protocol) 產生echo 請求的負載(payload)。
2. ICMP將該負載傳給IP以建立封包(此封包中至少包含IP 來源位址、IP 目的位址、和內容為01h 的協定欄位)
3. 一旦建立封包後,判斷目的IP 位址是位於本地網路或遠端網路。
4. 由於這是遠端請求,所以封包必須送往預設閘道以便遶送至遠端網路。
5. Host_A 的預設閘道是172.16.10.1,為了要將該封包送到預設閘道,必須先知道路由器界面Ethernet 0
的硬體位址。
● 因為如此該封包才能往下送給資料鏈結層來建立訊框,並且送往路由器連到172.16.10.0 網路的界面。
● 本地LAN 上的主機間只會透過硬體位址進行通訊
6. 接著檢查ARP 快取記憶體,看預設閘道的IP位址是否已被解析為硬體位址:
● 如果已有資訊,就可以立即送往資料鏈結層建立訊框。
● 如果ARP 快取記憶體中還沒有該硬體位址,則會對區域網路送出ARP 廣播,以搜尋172.16.10.1 的
硬體位址。
● 路由器會回應這個請求,並且提供Ethernet0 的硬體位址,而該主機則會將此位址放入快取中。同時,
路由器也會將Host_A 的硬體位址放入自己的ARP 快取中。
7. 當封包與目的硬體位址傳給資料鏈結層後,就會使用控制資訊封裝這個封包而產生訊框
● 在本例中,該訊框除了包含硬體的目的與來源位址外,還包含Ether-Type 欄位,用來描述將該封包
傳給資料鏈結層的網路層協定-在此為IP。訊框的結尾是訊框查核序列(Frame Check Sequence,
FCS) 欄位,存放循環冗餘檢查(CRC) 的結果。
8. 一旦完成訊框的裝填,就會交由實體層逐一將每個位元放入實體媒介中(本例為雙絞線)。
9. 碰撞網域中的每個裝置都會收到這些位元,建立訊框,執行CRC,並檢查FCS 欄位中的結果。
● 如果結果不符,訊框就會被丟棄。
● 如果CRC相符,則檢查硬體目的位址,判斷是否也符合(在本例為路由器的界面Ethernet 0)。
● 如果符合,則檢查Ether-Type 欄位以找出網路層所使用的協定。
10. 將封包由訊框中取出,傳給Ether-Type 欄位中所指定的協定(亦即IP),並且將訊框的剩餘
部份丟棄。
11. IP 收到封包,並且檢查IP 目的位址。
● 因為該封包的目的位址並不符合接收之路由器本身所設定的任何位址,該路由器會在它的路徑表中尋
找目的IP 的網路位址。
12. 路徑表必須包含網路172.16.20.0 的資料,否則封包會立刻被丟棄。並且送回「destination
network unreachable」的ICMP 訊息送給最初的裝置。
13. 如果路由器在表中找到目的網路,則封包會被交換到離開的界面-在本例為Ethernet 1。
14. 路由器透過封包交換,將封包送入Ethernet 1的緩衝區。
15. Ethernet 1 緩衝區必須知道目的主機的硬體位址,所以會先檢查它的ARP 快取。
● 如果過去已經解析過Host_B 的硬體位址,則將封包與硬體位址向下傳給資料鏈結層建立訊框。
● 如果尚未解析過該硬體位址,路由器會從E1 送出 ARP 請求,以尋找172.16.20.2 的硬體位址。
● Host_B 會回應自己的硬體位址,接著封包與目的位址會送往資料鏈結層建立訊框。
16. 資料鏈結層建立訊框,包含目的與來源硬體位址、Ether-Type 欄位、與訊框尾端的FCS欄位。
將該訊框送往實體層以便逐一將位元送到實體媒介中。
17. Host_B 收到訊框,並且立即執行CRC。
● 如果結果與FCS 欄位相符,就檢查硬體目的位址。如果仍然相符,就檢查Ether-Type 欄位以判
斷封包應該送往網路層的哪個協定-在本例為IP。
18. 在網路層中,IP 會接收這個封包,並且檢查IP 目的位址。當確定符合後會檢查協定欄位,
以找出其有效負載要交給誰。
19. 將有效負載交給ICMP
● 它瞭解這是個echo 請求,並且加以回應-立即丟棄這個封包,並且產生新的有效負載作為echo 的
回應。
20. 接著建立封包,包含來源與目的位址、協定欄位、以及負載;現在的目的裝置為Host_A。
21. IP 接著檢查目的IP 位址是位於本地LAN 或遠端網路上的裝置。因為目的裝置是位於遠端網路,所以
該封包必須送往預設的閘道。
22. 檢查ARP 快取以檢查該IP 位址是否已經解析為硬體位址。
23. 一旦找到預設閘道的硬體位址,將封包與目的硬體位址向下傳給資料鏈結層以建立訊框。
24. 資料鏈結層的訊框標頭中包含下列資訊:
● 目的與來源硬體位址
● 值為0x800 (IP) 的Ether-Type 欄位
● 包含CRC 結果的FCS 欄位
25. 將訊框下傳給實體層以逐一將每個位元送到網路媒介上。
26. 路由器的Ethernet 1 界面會接收這些位元並且建立訊框,執行CRC,檢查FCS 欄位以確保結果相符。
27. 如果CRC 正確,接著檢查硬體目的位址。
● 因為符合路由器的界面,所以將封包由訊框中取出,並且檢查Ether-Type 欄位,以找出應該將封
包遞送給網路層的哪個協定。
28. 判定協定為IP,所以由它取得封包。
● IP 會先對IP 標頭執行CRC 檢查,然後檢查目的IP 位址。
● 因為IP 目的位址並不符合路由器的任何界面,所以會檢查路徑表以找出是否有通往172.16.10.0 的
路徑。
29. 路由器知道如何抵達網路172.16.10.0-離開的界面是Ethernet 0-所以封包被交換到界面Ethernet 0
30. 路由器檢查ARP 快取以判斷是否已經解析過172.16.10.2 的硬體位址了。
31. 因為172.16.10.2 的硬體位址已經在原本前往Host_B 的旅程中就放入快取了,所以將硬體位址與封包傳
給資料鏈結層。
32. 資料鏈結層使用目的硬體位址與來源硬體位址建立訊框,並且將IP 放入Ether-Type 欄位。對訊框執行
CRC,將結果放入FCS 欄位中。
33. 接著將訊框傳給實體層,以便逐一將每個位元送入區域網路中。
34. 目的主機收到訊框,執行CRC,檢查目的硬體位址,並且檢視Ether-Type 欄位以找出要將封包傳給誰。
35. IP 是被指定的接收者;當封包傳給網路層的IP 時,它會檢查協定欄位尋求更進一步的指示。IP 根據指示
將有效負載交給ICMP,而ICMP接著判斷出這個封包是ICMP 的echo 回應。
36. ICMP送出驚歎號(!) 到使用者界面以確認它已收到回應,接著再嘗試傳送另外3 個echo 請求給目的主機。
====================================================================
| Router預設管理距離 | |
| 路徑來源 | 預設距離 |
| 連接界面(E0,S0) | 0 |
| 靜態傳送路徑 | 1 |
| EIGRP | 5 |
| 外部BGP | 20 |
| 內部增強IGRP | 90 |
| IGRP | 100 |
| OSPF | 110 |
| RIP | 120 |
| EGP | 140 |
====================================================================
Router#show ip route
Gateway of last resort is not set
S * 0.0.0.0/0 via 10.200.0.1 [d:1 m:0]
S 9.9.9.9/32 via 127.0.0.1 [d:1 m:0]
C 10.200.0.0/16 directly connected to Ethernet 0
i UD 12.2.41.19/32 via 55.55.55.1 [d:115 m:35]
i UD 12.2.41.20/32 via 55.55.55.1 [d:115 m:35]
R 192.168.50.0 [120/2] via 192.168.20.2, 00:00:26,s0/0
//R表RIP [120/1]表示路徑的管理距離(120)與抵達遠端網路的中繼站數目(2)
其中各英文字母的代碼整理如下:
- C - connected
- S - static
- R - RIP
- M - mobile
- B - BGP
- D - EIGRP
- EX - EIGRP external
- O - OSPF
- IA - OSPF inter area
- N1 - OSPF NSSA external type 1
- N2 - OSPF NSSA external type 2
- E1 - OSPF external type 1
- E2 - OSPF external type 2
- i - IS-IS
- su - IS-IS summary
- L1 - IS-IS level-1
- L2 - IS-IS level-2
- ia - IS-IS inter area
- * - candidate default
- U - per-user static route
- o - ODR
- P - periodic downloaded static route
1.靜態遶送(static routing)
在每台路由器的路徑表中手動加入路徑。
Router(config)#ip route〔destination_ network〕〔mask〕〔next-hop-address〕
ip route:用來建立靜態路徑的命令。
destination_network:要放在路徑表中的網路。
mask:該網路使用的子網路遮罩。
next-hop-address:負責接收封包並轉送至遠端網路之下一中繼站路由器位址。
例:
(ROUTER-A)f0/0:192.168.10.1
s0/0:192.168.20.1
(ROUTER-B)s0/0:192.168.20.2 NET
s0/1:192.168.40.1
Router A (config) # ip route 192.168.40.0 255.255.255.0 192.168.20.2
//ip route 目的位置 遠端網路遮罩 是我們送出封包的個中繼站(或路由器)位置
2.預設遶送(default routing)
只能在殘根型網路使用預設遶送,因殘根型網路(stub network)只有一條離開路徑之網路。
Router(config)#ip route 0.0.0.0.0.0.0.0〈Next-hop router〉
例:Router B(config):ip route 0.0.0.0.0.0.0.0 192.168.20.1
3.動態遶送(dynamic routing)
使用協定來尋找網路,並且更新路由器上之路徑表。協定包括RIP、IGRP、EIGRIP、OSPF等等。
(1)RIP (Routing information protocol)遶送資訊協定:
為距離向量協定,其管理性距離為120,每隔30秒從所有作用中的界面送出完整之路徑表,
RIP只使用中繼站數目來判斷通往遠端之最佳路徑,最大中繼站數目為15,它屬於有級
別遶送。適用小型網路,但在大型網路或是有大量路由器中缺乏效率
Router (config) # router rip
Router (config-router) # network 目的地IP
例:
Router(config) # router rip
Router(config-router) # Network 192.168.10.0
Router(config-router) # passive-interface serial1/0 //阻止RIP更新從該介面宣傳出去,
但該介面仍然能接收RIP更新
Router(config-router)#version 2 //執行RIPv2
RIPv1只使用有級別遶送(Classful routing,意即所有裝置必須使用相同子網路遮罩
RIPv2提供所謂前置位置遶送(prefix routing),並且在路徑更新中包含了子網路遮罩資訊
這稱為無級別遶送(Classless routing)
| RIPv1 | RIPv2 |
| 距離向量 | 距離向量 |
| 最大中繼站數目為15 | 最大中繼站數目為15 |
| 有級別 | 無級別 |
| 不支援VLSM | 支援VLSM |
| 不支援非連續的網路 | 支援非連續的網路 |
(2)IGRP(interior gateway Routing protocol)內部閘道遶送協定:
它專屬Cisco專屬距離向量遶送協定,若在網路中使用IGRP,其所有路由器必須為
Cisco路由器,IGRP最大中繼站數目為255,管理距離為100,使用線路頻寬與延遲
決定互連網路互連最佳路徑的指標,IGRP使用自治系統編號啟動,每隔90秒提供一
次完整路徑表更新。
Router (config) # router IGRP AS (Autonomous system) //AS,自治系統編號
Router (config-router) # Network network-number
例:Router (config) # router IGRP 10
Router A (config-router) # Network 192.168.10.0
Router A (config-router) # Network 192.168.20.0
| IGRP | RIP |
| 可以使用在大型的互連網路中 | 最好在較小的網路中運作 |
| 使用自治系統編號來啟動 | 不使用自治系統編號 |
| 每隔90秒提供一次完整的路徑表更新 | 每隔30秒提供一次完整的路徑表更新 |
| 管理性距離100 | 管理性距離120 |
|
使用線路的頻寬與延遲做為衡量指標(最低 的複合指標),最大中繼站數目為255 |
只使用中繼站數目來決定抵達遠端網 路的最佳路徑,最大中繼站數目為15 |
