概述
我們都知道不同網段的PC之間要實現互通,中間必須要接個具有三層功能的設備,因為只有三層設備(通常是路由器)才能在不同的網段之間查找路由,實現跨網段互訪,如下圖所示:
PC通過路由器實現跨網段通信
但是如果將拓撲圖中的路由器換成二層交換機,就沒有辦法互訪了,小伙伴有沒有想過其中的原因呢?我也是回答了一個悟空問答,梳理它們之間的通信流程以后才知道的,今天和大家分享一下!
不同網段之間通信
拓撲
PC和二層交換機連接圖
- PC1和PC2配置不同的網段,PC1的網段是192.168.1.0/24, PC2的網段是192.168.2.0/24;
- PC1配置的網關是192.168.1.1,PC2配置的網關是192.168.2.1;
- PC1想要訪問PC2。
相關配置
PC1配置:只配置IP、網關、掩碼;
PC1配置
PC2配置:和PC1類似,只是網段不同;
PC2配置
二層交換機配置:將和PC1、PC2相連的接口配置在同一個VLAN里(VLAN2);
同一個VLAN
訪問過程
當PC1訪問PC2,發現PC2和自己不在同一個網段,所以就會把報文發送給網關。PC1配置的網關地址是192.168.1.1,PC1首先會在自己的ARP表項中查詢192.168.1.1對應的mac地址,如果下圖所示:
結果發現PC1中沒有網關對應的MAC,就會發送ARP Request去請求其MAC,格式如下:
ARP 請求
此時網絡中沒有任何設備配置為192.168.1.1,所以沒有人回復。
這樣PC1永遠都獲取不到網關的MAC,而獲取不到網關的MAC,就沒有辦法給網關發送數據,因為發送數據需要二層MAC封裝三層數據;
這樣就進入一個死循環,PC1在第一步獲取網關MAC地址時就被阻塞了,根本還沒有給PC2發送任何數據,更談不上通信。
訪問結果
PC1和PC2不能互通,不同網段之間使用二層交換機不能通信。
無法訪問
疑問解惑
估計有的小伙伴看到這里,會有疑問,交換機收到PC1發送的ARP請求以后,會轉發給PC2,PC2回復不就行了。的確PC2能夠收到PC1發送的ARP報文,但是這個ARP請求報文,請求的target IP對象并不是PC2,而是網關,所以PC2肯定不會回復,不然世界就亂了。
還有小伙伴會說:如果PC1能夠直接請求PC2的MAC,那么這兩臺PC之間不就可以通信了?這想法是好的,但是PC1卻不會這么做,因為按照規則,不同網段之間的通信,必須要通過網關,不會直接向PC2發送請求的。
查看交換機的MAC地址表,已經學習到PC1的MAC地址。
交換機MAC地址表
總結
各位小伙伴看到這里明白了嗎?不同的網段之間的PC通過二層交換機通信,直接在獲取網關的時候就阻塞了,后面更不可能通信了,這點應該好多人想不到:)
如果有疑問,歡迎在文章下面留言討論,也非常關注我的頭條號,一起討論網絡問題!