同vlan不同網段能否ping通?

2019-07-05     弱電

又開始糾結起來這個問題了,兩個PC連接一台二層交換機,或者一台關閉路由功能的三層交換機,把連接PC的交換機埠劃入同一個vlan中,但是兩個pc的ip地址不在同一個網段,能否互相ping通?

默認情況下所有交換機埠屬於vlan1,也就是現在PCA 和PCB屬於同一個vlan。

以上說的情況又分為兩種,首先第一種PCA,PCB只設置IP位址,不設置網關。

比如PCA的地址:192.168.1.10/24

PCB的地址:192.168.2.10/24

1、網關全部為空

設置完成之後在cmd下使用ipconfig命令查看是否設置成功,在這個過程中小獅子就發現了一個奇怪的地方,雖然我沒有設置網關,但是在cmd下看到的兩個PC的默認網關都是0.0.0.0。

注意這裡的0.0.0.0經過小獅子的實驗得出結論表示的是你把網關設置成了自己,這個跟沒有網關是很大區別的,嚴重影響到實驗的效果,因為下一個實驗我們正是需要把網關設置成自己。在這裡,我們可以在cmd下輸入:

route delete 0.0.0.0

刪除這個奇怪的網關,再次使用ipconfig命令驗證一下,發現此時「默認網關」這裡空空如也。達到目的。

另外需要注意的一點就是需要把Windows的防火牆關閉,要不然怎麼樣都是ping不通的。

進入測試階段,PCA ping PCB發現不通,反之亦然。但是為什麼不通呢?這個過程是什麼樣子的呢?經過查找資料和小獅子自己的思考發現,電腦在不設置網關的情況下去ping一個與自己不同網段的地址(電腦怎麼知道對方跟自己不同一個網段呢?因為電腦在ping的時候會根據目的ip地址做一個掩碼的計算,具體自行查找資料),由於跟自己不同網段而且自己沒有設置網關,所以PC根本不會發送什麼報文,直接就把這個ping包丟棄,我們此時在cmd下看到的就是:

根本沒有ping包出去。

如果ping的是跟自己同一個網段的ip,即使沒有設置網關,PC發現與自己同一個網段的,就會發送一個ARP的報文在整個vlan中詢問所有vlan中的主機,目的主機的mac地址。所以同一網段,不設網關也是可以通的。

2、把對方的ip地址設置為自己的網關

那麼怎麼能夠讓不同網段相同vlan的PC通呢?只要把對方的IP設置為自己的網關,或者把自己的ip設置為自己的網關就可以了。

經過實驗發現上面的做法是可以通的,那麼這又是為什麼呢?原因就是PC在ping的時候,發現不同網段,這個時候就要去找網關了,(默認情況下網關都跟自己是同一個網段的,這裡我們把網關設置跟自己不同一個網段,在windows下會提示警告的,不過PC自己可不關心,反正它就覺得網關就在我這個vlan裡面的,所以就會發ARP廣播包)在這裡又分了兩種情況,第一種就是把網關設置為對方的ip,在這種情況下PC首先尋找的是網關,它會發送一個arp請求在整個vlan中廣播,詢問網關的mac地址,由於這裡兩個PC屬於同一個vlan都能夠收到對方的ARP報文自然也做出了響應,當然也就能夠獲得到網關的地址了,接著網關就要尋找目的的ip地址了,不過網關這個時候發現目的的ip地址不就是我自己嘛,所以也就順理的找到了自己,回復了對方。

第二種情況就是把網關設置成自己,這種情況下pc不會去找網關的mac地址,因為網關就是我自己啊,我當然知道自己的mac地址了還找什麼.所以這種情況下,網關會去尋找目的ip的mac地址,也是發ARP廣播包。恰好目的主機也在同一vlan,也就通信成功了。

文章來源: https://twgreatdaily.com/z-JuCGwBmyVoG_1Z9hJD.html