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