VLAN之間通信
VLAN在分割廣播域的同時也限制了不同VLAN間的主機進行二層通信
解決vlan間通信方法如下:
二層交換機+一臺路由器實現vlan之間通信(多臂路由)
單臂路由的方式實現vlan之間通信
現網中實際運用vlanif邏輯接口來實現vlan之間通信
1.二層交換機+一臺路由器實現vlan之間通信
因爲不同VLAN之間的主機是無法實現二層通信的,所以必須通過三層路由才能將報文從一個VLAN轉發到另外一個VLAN,在二層交換機上配置VLAN,每一個VLAN使用一條獨佔的物理鏈路連接到路由器的一個接口上,來實現vlan之間的通信
實戰演練
交換機的配置
#
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
#
路由器的配置
#
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
#
連通性的檢測
分析一下通信過程
PC1訪問PC2的過程
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訪問PC1的過程
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就可以收到該數據了
不足點:
1.隨着每個交換機上VLAN數量的增加,這樣做必然需要大量的路由器接口,而路由器的接口數量是極其有限的。
2.某些VLAN之間的主機可能不需要頻繁進行通信,如果這樣配置的話,會導致路由器的接口利用率很低
2.單臂路由的方式實現vlan之間通信
將交換機和路由器之間的鏈路配置爲Trunk鏈路,並且在路由器上創建子接口以支持VLAN路由,配置能夠讓路由器子接口識別vlan的tag數據
配置路由器子接口封裝vlan 在路由器相應的子接口下配置下面兩條命令
dot1q termination vid "幾"
命令配置子接口對一層tag報文的終結功能,即配置該命令後路由器子接口在接收帶有vlan tag 的報文時 將剝掉tag進行三層轉發 在發送報文時 會將與該子接口對應vlan的vlan tag添加到報文中
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訪問PC2的過程
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訪問PC1的過程
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主機
思考:如果在子接口下面配置DHCP SERVER功能
請問:還需要在子接口上面啓用arp廣播功能嗎?
不足點:
1、 存在單點故障的可能性
2、 此場景需要一臺路由器,成本相對較高
3.現網中運用vlanif邏輯接口來實現vlan之間通信
在三層交換機上配置VLANIF接口來實現VLAN間路由
什麼是三層交換機
二層交換機和路由器在功能上的集成構成了三層交換機,三層交換機在功能上實現了VLAN的劃分、VLAN內部的二層交換和VLAN間路由的功能
三層交換機的原理
就是二層交換機和路由器的結合體,但是會比這種方式更加高效
三層交換機裏面有路由引擎和交換引擎
當三層交換機識別到主機發送的DMAC地址不是我自己的時候,就會交給交換引擎,從對應的接口轉發出去
當三層交換機識別到主機發送的DMAC地址是我自己的時候,就會交給路由引擎處理,三層交換機就會進行路由 從對應的vlan發送出來
第一個數據包交給路由引擎處理(CPU處理的)然後會把信息交給交換引擎 同一個數據流的後面的報文不會交給路由引擎處理了 都會交給二層的芯片的轉發(更快) 因爲芯片轉發更快 這些信息包括出接口 arp信息等 這就是一次路由 多次交換
VLANIF接口
華爲中低端交換機接口幾乎都是二層功能 二層接口不能配置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
#
結論: