【計算機網路】透過ensp實驗分析二三層資料包轉發過程

母粒發表於2024-05-02

一、實驗準備

需要提前安裝好wireshark、virtalbox、WinPcap和模擬工具ensp,具體的安裝過程可以自行百度~

特別提醒一點就是virtalbox和ensp的相容性問題,我安裝的是ensp1.3.00.100版本,該版本不支援virtalbox官網的6和7版本,我這邊退回到5版本才正常執行起來。

二、網路拓撲圖

pc1:ip地址 10.1.1.1/24,下一跳地址10.1.1.2/24,Mac地址:54-89-98-ba-30-20

pc2:ip地址 10.2.2.1/8,下一跳地址10.2.2.2/16,Mac地址:54-89-98-d5-75-f1

路由器 GE0/0/0:ip地址:10.1.1.2/24,Mac地址:00-e0-fc-34-7b-1a

GE0/0/0:ip地址:10.2.2.2/16,Mac地址:00-e0-fc-34-7b-1b

三、過程分析

在pc1上 ping 10.2.2.1,在路由器的左右兩介面處分別抓包

1.首先pc1會透過掩碼判斷,網路號是10.1.1.0/24網段的,和目標ip屬於不同的網段,所以要藉助自己的閘道器進行三層轉發

2.pc1查詢ARP快取表看是否有閘道器的MAC地址,發現沒有;便以廣播的形式在本網段傳送arp請求幀,請求自己閘道器10.1.1.2的Mac地址

3.路由器收到arp廣播,發現請求的是自己G0/0/0的介面ip的Mac地址,於是單播arp回覆給pc1,並且記錄pc1的mac地址到arp上

4.PC1收到應答後先把R1 MAC地址寫入自己的ARP快取表,然後把R1的MAC地址作為目標MAC地址,PC1的MAC地址作為源MAC地址封裝在資料包中,傳送給R1。路由器收到資料包,拆封到三層,發現目標ip不是自己,目標ip是10.2.2.1/?於是開始查路由,按掩碼最長的進行匹配。查到直連路由10.2.0.0/16可達,下一跳是自己的介面G0/0/1。

display ip routing-table

5.G0/0/1收到要去10.2.2.1,先做arp請求,arp廣播請求10.2.2.1的mac地址

pc2回覆了單播的arp,告知了自己的MAC地址

6.路由器會將pc2的mac地址快取下來

dis arp all

7.路由器根據目的ip查arp快取得到Mac地址,再查Mac表得到下一跳的介面,從出介面發出。

四、總結

1.源IP和目標IP始終不變,變的只是Mac地址。

pc1給pc2傳送icmp包時

路由器左介面抓包

路由器右介面抓包

2.ARP請求以廣播傳送,單播回應。
3.路由器隔離廣播,每一個網段都是獨立的廣播域。

4.pc根據自己的掩碼計算網路號,來決定是二層還是三層轉發。如果是三層,就請求自己的閘道器Mac,讓路由器去查路由,查arp進行轉發

相關文章