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