如上圖, 三層交換機上劃分vlan6并且VLANip:10.1.1.1/24。所有交換機接口都是switch access vlan 6。 假設R_a、R_b都已添加正确的靜态路由。三層交換機沒有添加靜态路由。 那麼将出現下面兩種情況: host_A:ping 192.168.1.2 不通。 host_B:ping 192.168.1.2 通。
原因分析: 由于host_A通路的IP:192.168.1.2不屬于區域網路10.1.1.1/24内,是跨網段通路,是以必須經過IP路由表的路由選擇才可以到192.168.1.0網段。因host_A的網關是10.1.1.1,是以host_A資料轉成幀,幀裡邊的源MAC為host_A,目标MAC為三層交換機f0/1。(這在之前博文已經解釋過,區域網路内是使用硬體位址MAC尋址的) 當三層交換機從fa0/1接口收到比特後,并逐層解封裝到網絡層時,三層交換機将分組中的目标IP位址提取出來,并在路由表中搜尋,但由于沒有添加靜态路由,是以三層交換機不知道怎麼轉發進而丢棄此資料報。結果host_A無法ping通192.168.1.2。 同樣host_B通路ip:192.168.1.2也是跨網段,是以必須要将資料交給網關10.1.1.254,在這裡可能會有個疑問,為什麼網關是10.1.1.254而不是10.1.1.1呢?這個問題的答案之前已經回答了的—— 區域網路内主機(路由、交換機接口占用的IP也算是個主機)之間的通路是通過硬體位址MAC尋址的,也就是說區域網路内任何主機(接口)IP都可以做為網關,而不是隻有建立IP的路由器(三層交換機)的接口(vlan)的IP才可以做為整個區域網路的網關(大多數情況下我們遇到的網絡拓撲圖是區域網路中隻有一個做為連接配接外網的路由器(三層交換機)并且此路由器作為建立IP的裝置,進而習慣的将這個路由器接口的IP做為網關),是以以後要清楚能夠路由選擇的裝置的IP都可以作為整個區域網路的網關。最後在R_a接口fa0/1上收到host_B的幀中源mac是host_B,目标mac是R_a接口。結果R_a通過查路由表與arp表将目标ip位址成功轉發出去。 注意:兩個跨網段通信的主機都必須設定預設網關,否則也無法PING通。如上圖host_C沒網關192.168.1.1,那麼host_B ping192.168.1.2時會顯示out time(逾時),因為host_C回複host_B時由于是跨網段進而要将資料傳遞網關192.168.1.1處理,是以沒有網關不能找到網關MAC,所有host_C資料發不出去。
又例如下圖再次說明網關的作用:
下例實驗過程說明: 路由器、三層交換機上的任何接口(包括二層交換口)都可以作為靜态路由的出口。 路由器上所有LAN口(二層交換口,不包括三層路由口)即都屬于vlan1,功能相當于一個 三層交換機所有接口都為二層且啟動了 vlan1,是以這些路由器上的lan口連接配接到其他路由接口等裝置且有其他網段時,帶lan口的路由器上一樣可以做靜态路由指向lan口所連接配接的裝置網段上。有如下圖, 1、網關巧妙選用。即選用區域網路中任何能到達目标網絡的區域網路IP做網關,不管這個IP是不是在自己所實體直接裝置的接口或vlan ip。
由于PC0選用192.168.1.100作為網關,是以當跨網段通信時,PC0将資料包交給router1處理(幀中目标mac位址為g0/0,而Router0僅做轉發接口而已。 2、如果pc0想上外網,又想通路172.16.1.x這網段時,pc0網關必須設定成vlan的IP192.168.1.1。則pc0不能ping通172.16.1.2。如下圖
由于pc0網關為192.168.1.1,是以資料在router0時沒有指向172.16.1.X的出口,隻能使用預設路由出到外網f0/0接口去。 是以我們要在router0上添加一條靜态路由:ip route 172.16.1.0 255.255.255.0 192.168.1.100,這樣當router0接到172.16.1.x時就從192.168.1.100作為下一條轉發出去。