解釋一,僅供參考,如有不正確,請指正:
多層交換下IP的網段是和網關不在一個網段的。
比如,路由器A局網IP段為192.168.1.x段,下接2個交換設備分別為192.168.2.1和192.168.100.1,這2個交換設備又分別連接不同的電腦192.168.2.2-100,192.168.100.2-100。
那麼這些PC的網關都需要設置成192.168.1.1才能上網。
電腦可以和路由不是一個網段,但必須和交換一個網段。
解釋二,僅供參考,如有不正確,請指正:
要深入理解這個問題,首先要搞清楚網路通訊的原理,網路上通訊工作在物理層和數據鏈路層,源地址和目標地址是通過源和目的的mac地址進行通訊的。
當源主機訪問目標主機時,首先看兩者的IP在不在同一網段,結果是:
1 兩者在同一網段,就會直接把包發向目標IP,這時要做:
1.1 查本地arp緩存,看看是否有IP和Mac的對應表.
1.1.1 有,直接向網路上發包,包中包括原mac及目標mac。
1.1.2 沒有,則向網路發arp廣播,用來查找與目標IP對應的mac地址(ARP發送的是廣播數據,電纜上的每個乙太網介面都要接收廣播的數據幀)。
1.1.2.1 如果查到了,則向網路發包。
1.1.2.2 沒查到,則不通訊。
2 兩者不在同一網段,則把目標地址轉為網關地址(也就是平時說的向網關發包),然後查找本地arp緩存,繼續1.1 。
由此可以看出,源主機和網關的通訊過程中,並不會檢查兩者是不是同一網段,而是直接去查arp緩存或者發送ARP廣播。所以是可能通訊的。
當然,這里說的只是單向的,要想讓目標主機響應的包能回到源地址上,還要在路由器上做路由策略,這里不說了。
什麼情況下用這樣,一般情況下單臂路由時用到的較多。路由器的一個內網介面接幾個不同的子網,網管為了省事兒,就這樣設了。
這樣有什麼好處呢,我想,這樣可以對網關起到一定的保護作用,使得網關不輕易暴露(外部攻擊)。但這樣做對於網路調試可能會有麻煩,或者當網路故障時,查錯比較麻煩。一般不建議這樣做。