不同網段下進行通信的時候,若主機設置了默認網關,ARP協議的通信


一、ARP在同個網段下的工作原理

        首先,每台主機都會在自己的ARP緩沖區中建立一個 ARP列表,以表示IP地址和MAC地址的對應關系。當源主機需要將一個數據包要發送到目的主機時,會首先檢查自己 ARP列表中是否存在該 IP地址對應的MAC地址,如果有,就直接將數據包發送到這個MAC地址;如果沒有,就向本地網段發起一個ARP請求的廣播包,查詢此目的主機對應的MAC地址。此ARP請求數據包里包括源主機的IP地址、硬件地址、以及目的主機的IP地址。網絡中所有的主機收到這個ARP請求后,會檢查數據包中的目的IP是否和自己的IP地址一致。如果不相同就忽略此數據包;如果相同,該主機首先將發送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已經存在該IP的信息,則將其覆蓋,然后給源主機發送一個 ARP響應數據包,告訴對方自己是它需要查找的MAC地址;源主機收到這個ARP響應數據包后,將得到的目的主機的IP地址和MAC地址添加到自己的ARP列表中,並利用此信息開始數據的傳輸。如果源主機一直沒有收到ARP響應數據包,表示ARP查詢失敗。

例如:

A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA
B的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB

根據上面的所講的原理,我們簡單說明這個過程:A要和B通訊,A就需要知道B的以太網地址,於是A發送一個ARP請求廣播(誰是192.168.10.2 ,請告訴192.168.10.1),當B收到該廣播,就檢查自己,結果發現和自己的一致,然后就向A發送一個ARP單播應答(192.168.10.2 在BB-BB-BB-BB-BB-BB)。

 

二、局域網中跨網段主機間通訊

        不同網段的主機通信時,主機會封裝網關(通常是路由器)的mac地址,然后主機將數據發送給路由器,后續路由進行路由轉發,通過arp解析目標地址的mac地址,然后將數據包送達目的地。具體過程分析如下:

 



如上圖,主機A、B通過路由器連接,屬於兩個不同的網段子網掩碼24(255.255.255.0)

1、主機A有數據發往主機B,數據封裝IP之后發現沒有主機B的mac地址;然后查詢ARP,ARP回應:“我在192.168.3.0/24網段,目標地址在192.168.4.0/24,不屬於同一網段,需要使用默認網關”;ARP發現默認網關是192.168.3.2,但是沒有網關mac地址,需要先進行查詢;


2、主機將數據包先放到緩存中,然后發送ARP查詢報文:封裝自己的mac地址為源mac,目標mac地址寫全F的廣播地址,請求網關192.168.3.2的mac地址。然后以廣播方式發送出去;


3、路由器收到廣播數據包,首先將原192.168.3.1添加到自己的mac地址表中,對應mac地址為0800.0222.2222。路由發現是請求自己的mac地址,然后路由回復一個ARP應答:封裝自己的IP地址為源IP自己的mac地址為源mac,主機A的IP為目的IP主機A的mac為目的mac,發送一個單播應答“我是192.168.3.2.我的mac地址為0800.0333.2222”;


4、主機收到應答后,將網關mac地址對應192.168.4.2(跨網關通信,其他網段IP地址的mac地址均為網關mac),然后將緩存中的數據包,封裝網關mac地址進行發送;


5、路由收到數據包,檢查目的IP地址,發現不是給自己的,決定要進行路由,然后查詢路由表,需要發往192.168.4.0網段中的192.168.4.2地址。路由准備從相應接口上發出去,然后查詢mac地址表,發現沒有主機B的映射。路由器發送arp請求查詢主機B的mac地址(原理同2、3步,主機B收到請求后首先會添加網關的mac地址,然后單播回復arp請求);


6、路由器收到主機B的mac地址后,將其添加到路由mac地址表中,然后將緩存中的數據2層幀頭去掉,封裝自己的mac地址為源mac,主機B的mac地址為目的mac(源和目的IP地址不變),加上二層幀頭及校驗,發送給主機B;


7、主機B收到數據之后,進行處理,發送過程結束;


8、如果主機B收到數據后進行回復,主機B會進行地址判斷,不在同一網段,然后決定將數據發送給網關,主機B查詢mac地址表獲得網關mac地址,將數據封裝后發送(arp地址解析的過程不再需要了,mac地址表條目有一定的有效時間),網關收到數據后直接查詢mac表,將二層幀mac地址更改為A的mac發送出去。如此,主機A收到主機B的回復;

綜上在跨網段通信過程中有以下過程:
1、判斷地址是否同一網段
2、查詢目的IP地址的mac(發送arp請求)

此外需注意點:
1、ARP請求以廣播發送、以單播回應
2、路由器隔離廣播。每一個網段都是獨立的廣播域
3、跨越網段通信需要使用網關的mac地址
ps:如想深入分析,建議模擬環境,進行抓包操作,可以看到具體經歷了哪些過程,有助於深入了解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM