VLAN在分割廣播域的同時也限制了不一樣VLAN間的主機進行二層通訊
解決vlan間通訊方法以下:
二層交換機+一臺路由器實現vlan之間通訊(多臂路由)
單臂路由的方式實現vlan之間通訊
現網中實際運用vlanif邏輯接口來實現vlan之間通訊網絡
由於不一樣VLAN之間的主機是沒法實現二層通訊的,因此必須經過三層路由才能將報文從一個VLAN轉發到另一個VLAN,在二層交換機上配置VLAN,每個VLAN使用一條獨佔的物理鏈路鏈接到路由器的一個接口上,來實現vlan之間的通訊
ide
交換機的配置3d
# vlan batch 2 to 3 # interface GigabitEthernet0/0/1 port link-type trunk port trunk pvid vlan 2 port trunk allow-pass vlan 2 # interface GigabitEthernet0/0/2 port link-type trunk port trunk pvid vlan 3 port trunk allow-pass vlan 3 # interface GigabitEthernet0/0/3 port link-type access port default vlan 2 # interface GigabitEthernet0/0/4 port link-type access port default vlan 3 #
路由器的配置code
# interface GigabitEthernet0/0/0 ip address 192.168.1.254 255.255.255.0 # interface GigabitEthernet0/0/2 ip address 192.168.2.254 255.255.255.0 #
連通性的檢測
blog
PC1自身的SIP是192.168.1.1,訪問目標是192.168.2.1,PC1會用自身的掩碼和目標IP地址作一個與運算,發現訪問的目標和本身不在同一個網段,本身是192.168.1.0/24網段,目標是192.168.2.0/24網段,因而PC1會把數據發往AR1的G0/0/2接口,由於G0/0/2接口的IP地址剛好是個人網關地址,當數據到達交換機的時候,交換機進來會打上PVID是3的tag數據幀,交換機此時作的是解封裝和封裝停留在二層這塊,由於交換機並無作三層路由功能,查找MAC地址表項後,交換機會從G0/0/1接口發送出去,會剝離tag進行發送,由於路由器通常狀況是下是不識別vlan數據幀的。
當PC1的數據包到達AR1的G0/0/0接口後,因爲DIP是192.168.2.0/24網段,恰好AR1這邊有直連路由,因而AR1查找路由表,發現去往192.168.2.0/24從接口G0/0/2接口發送出去,交換機收到路由器的數據後
交換機會進行解封裝和封裝動做,交換機從G0/0/2接口收到的數據,會打上vlan 3的數據tag,而後查找MAC地址表項從G0/0/4接口發送出去,會剝離tag進行發送,此時PC2就能夠收到該數據了接口
PC2自身的SIP是192.168.2.1,訪問目標是192.168.1.1,PC1會用自身的掩碼和目標IP地址作一個與運算,發現訪問的目標和本身不在同一個網段,本身是192.168.2.0/24網段,目標是192.168.1.0/24網段,因而PC2會把數據發往AR1的G0/0/2接口,由於G0/0/2接口的IP地址剛好是個人網關地址,當數據到達交換機的時候,交換機進來會打上PVID是3的tag數據幀,交換機此時作的是解封裝和封裝停留在二層這塊,由於交換機並無作三層路由功能,查找MAC地址表項後,交換機會從G0/0/2接口發送出去,會剝離tag進行發送,由於路由器通常狀況是下是不識別vlan數據幀的。
當PC2的數據包到達AR1的G0/0/2接口後,因爲DIP是192.168.1.0/24網段,恰好AR1這邊有直連路由,因而AR1查找路由表,發現去往192.168.1.0/24從接口G0/0/0接口發送出去,交換機收到路由器的數據後
交換機會進行解封裝和封裝動做,交換機從G0/0/1接口收到的數據,會打上vlan 2的數據tag,而後查找MAC地址表項從G0/0/3接口發送出去,會剝離tag進行發送,此時PC1就能夠收到該數據了ip
1.隨着每一個交換機上VLAN數量的增長,這樣作必然須要大量的路由器接口,而路由器的接口數量是極其有限的。
2.某些VLAN之間的主機可能不須要頻繁進行通訊,若是這樣配置的話,會致使路由器的接口利用率很低路由
將交換機和路由器之間的鏈路配置爲Trunk鏈路,而且在路由器上建立子接口以支持VLAN路由,配置可以讓路由器子接口識別vlan的tag數據
配置路由器子接口封裝vlan 在路由器相應的子接口下配置下面兩條命令it
dot1q termination vid "幾"
命令配置子接口對一層tag報文的終結功能,即配置該命令後路由器子接口在接收帶有vlan tag 的報文時 將剝掉tag進行三層轉發 在發送報文時 會將與該子接口對應vlan的vlan tag添加到報文中io
ARP broadcast enable
命令開啓ARP廣播的功能 若是不配置該命令 將會致使該子接口沒法主動發送ARP廣播報文,以及向外轉發IP報文
交換機的配置
S2的配置
vlan batch 10 20 # interface Ethernet0/0/1 port link-type access port default vlan 10 # interface Ethernet0/0/2 port link-type access port default vlan 20 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 # S3的配置 vlan batch 30 # interface Ethernet0/0/1 port link-type access port default vlan 30 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 30 #
S1的配置
vlan batch 10 20 30 # interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 30 # interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 10 20 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 30 #
路由器的配置
vlan batch 10 20 30 # interface GigabitEthernet0/0/1.1 dot1q termination vid 10 ip address 192.168.1.254 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.2 dot1q termination vid 20 ip address 192.168.2.254 255.255.255.0 arp broadcast enable # interface GigabitEthernet0/0/1.3 dot1q termination vid 30 ip address 192.168.3.254 255.255.255.0 arp broadcast enable #
結論:
PC1自身的SIP是192.168.1.1,訪問目標是192.168.2.1,PC1會用自身的掩碼和目標IP地址作一個與運算,發現訪問的目標和本身不在同一個網段,本身是192.168.1.0/24網段,目標是192.168.2.0/24網段,因而PC1會把數據發往AR1的G0/0/1.1接口,由於G0/0/1.1接口的IP地址剛好是個人網關地址,當數據到達交換機的時候,交換機進來會打上PVID是10的tag數據幀,交換機此時作的是解封裝和封裝停留在二層這塊,由於交換機並無作三層路由功能,查找MAC地址表項後,交換機會從G0/0/2接口發送出去,會保持tag進行發送,S1交換機收到tag爲10的數據後,查找MAC地址表從G0/0/1接口發送出去,保持tag爲10的標籤進行發送,當這帶有tag爲10的數據到達AR1的G0/0/1.1接口後,因爲該接口配置子接口對一層tag 10報文的終結功能,將剝掉tag 10進行三層轉發 路由器查找路由表 發現從G0/0/1.2接口轉發,在發送報文時 會將與該G0/0/1.2子接口對應vlan的vlan tag 20添加到報文中 而且由該子接口須要發送arp報文進行數據封裝 因此 子接口須要支持主動發送arp報文的功能 因此須要在子接口上面配置該命令 ARP broadcast enable
當S1的數據包收到tag 20的數據後,會從G0/0/2接口發送出去,而後S2收到後,會從Eth0/0/2接口發送給PC2主機
PC2自身的SIP是192.168.2.1,訪問目標是192.168.1.1,PC1會用自身的掩碼和目標IP地址作一個與運算,發現訪問的目標和本身不在同一個網段,本身是192.168.2.0/24網段,目標是192.168.1.0/24網段,因而PC1會把數據發往AR1的G0/0/1.2接口,由於G0/0/1.2接口的IP地址剛好是個人網關地址,當數據到達交換機的時候,交換機進來會打上PVID是20的tag數據幀,交換機此時作的是解封裝和封裝停留在二層這塊,由於交換機並無作三層路由功能,查找MAC地址表項後,交換機會從G0/0/2接口發送出去,會保持tag進行發送,S1交換機收到tag爲20的數據後,查找MAC地址表從G0/0/1接口發送出去,保持tag爲20的標籤進行發送,當這帶有tag爲20的數據到達AR1的G0/0/1.2接口後,因爲該接口配置子接口對一層tag 20報文的終結功能,將剝掉tag 20進行三層轉發 路由器查找路由表 發現從G0/0/1.1接口轉發,在發送報文時 會將與該G0/0/1.1子接口對應vlan的vlan tag 10添加到報文中 而且由該子接口須要發送arp報文進行數據封裝 因此 子接口須要支持主動發送arp報文的功能 因此須要在子接口上面配置該命令 ARP broadcast enable
當S1的數據包收到tag 10的數據後,會從G0/0/2接口發送出去,而後S2收到後,會從Eth0/0/1接口發送給PC1主機
請問:還須要在子接口上面啓用arp廣播功能嗎?
一、 存在單點故障的可能性
二、 此場景須要一臺路由器,成本相對較高
在三層交換機上配置VLANIF接口來實現VLAN間路由
二層交換機和路由器在功能上的集成構成了三層交換機,三層交換機在功能上實現了VLAN的劃分、VLAN內部的二層交換和VLAN間路由的功能
就是二層交換機和路由器的結合體,可是會比這種方式更加高效
三層交換機裏面有路由引擎和交換引擎
當三層交換機識別到主機發送的DMAC地址不是我本身的時候,就會交給交換引擎,從對應的接口轉發出去
當三層交換機識別到主機發送的DMAC地址是我本身的時候,就會交給路由引擎處理,三層交換機就會進行路由 從對應的vlan發送出來
第一個數據包交給路由引擎處理(CPU處理的)而後會把信息交給交換引擎 同一個數據流的後面的報文不會交給路由引擎處理了 都會交給二層的芯片的轉發(更快) 由於芯片轉發更快 這些信息包括出接口 arp信息等 這就是一次路由 屢次交換
華爲中低端交換機接口幾乎都是二層功能 二層接口不能配置IP地址 但三層交換機須要一個邏輯接口 就是vlanif接口(思科是SVI接口) 這個接口具備三層功能 只要有接口在這個vlan當中 那麼 這個vlanif就是up狀態
在三層交換機上配置VLANIF接口來實現VLAN間路由。若是網絡上有多個VLAN,則須要給每一個VLAN配置一個VLANIF接口,並給每一個VLANIF接口配置一個IP地址。用戶設置的缺省網關就是三層交換機中VLANIF接口的IP地址
交換機的配置
vlan batch 10 20 # interface GigabitEthernet0/0/1 port link-type access port default vlan 10 # interface GigabitEthernet0/0/2 port link-type access port default vlan 10 # interface GigabitEthernet0/0/3 port link-type trunk port trunk allow-pass vlan 20 #
結論: