前言:
•傳統交換二層組網中,默認所有網絡都處于同一個廣播域,這帶了諸多問題。VLAN(Virtual Local Area Network,虛擬局域網)技術的提出,滿足了二層組網隔離廣播域需求,使得屬于不同VLAN的網絡無法互訪,但不同VLAN之間又存在著相互訪問的需求。
•主要描述如何實現不同VLAN之間的相互通信。
VLAN間通信 (1)
•實際網絡部署中一般會將不同IP地址段劃分到不同的VLAN。
•同VLAN且同網段的PC之間可直接進行通信,無需借助三層轉發設備,該通信方式被稱為二層通信。
•VLAN之間需要通過三層通信實現互訪,三層通信需借助三層設備。
VLAN間通信 (2)
•常見的三層設備:路由器、三層交換機、防火墻等。
•將二層交換機與路由器的三層接口互聯,由三層設備進行路由轉發來實現通信。
使用路由器物理接口
路由器三層接口作為網關,轉發本網段前往其它網段的流量。
路由器三層接口無法處理攜帶VLAN Tag的數據幀,因此交換機上聯路由器的接口需配置為Access。
路由器的一個物理接口作為一個VLAN的網關,因此存在一個VLAN就需要占用一個路由器物理接口。
路由器作為三層轉發設備其接口數量較少,方案的可擴展性太差。
•在二層交換機上配置VLAN,每個VLAN單獨使用一個交換機接口與路由器互聯。
•路由器使用兩個物理接口,分別作為VLAN 10及VLAN 20內PC的默認網關,使用路由器的物理接口實現VLAN之間的通信。
物理連接圖
使用路由器子接口
子接口(Sub-Interface)是基于路由器以太網接口所創建的邏輯接口,以物理接口ID+子接口ID進行標識,子接口同物理接口一樣可進行三層轉發。
子接口不同于物理接口,可以終結攜帶VLAN Tag的數據幀。
•R1使用一個物理接口(GE0/0/1)與交換機SW1對接,并基于該物理接口創建兩個子接口:GE0/0/1.10及GE0/0/1.20,分別使用這兩個子接口作為VLAN 10及VLAN 20的默認網關。
•由于三層子接口不支持VLAN報文,當它收到VLAN報文時,會將VLAN報文當成是非法報文而丟棄。因此,需要在子接口上將VLAN Tag剝掉,也就是需要VLAN終結(VLAN Termination)。
物理連接圖
子接口處理流程
•交換機連接路由器的接口類型配置為Trunk,根據報文的VLAN Tag不同,路由器將收到的報文交由對應的子接口處理。
•子接口終結VLAN的實質包含兩個方面:
?對接口接收到報文,剝除VLAN標簽后進行三層轉發或其他處理。
?對接口發出的報文,又將相應的VLAN標簽添加到報文中后再發送。
子接口配置示例
•interface interface-type interface-number.sub-interface number命令用來創建子接口。sub-interface number代表物理接口內的邏輯接口通道。一般情況下,為了方便記憶,子接口ID與所要終結的VLAN ID相同。
•dot1q termination vid命令用來配置子接口Dot1q終結的單層VLAN ID。缺省情況,子接口沒有配置dot1q終結的單層VLAN ID。arp broadcast enable命令用來使能終結子接口的ARP廣播功能。缺省情況下,終結子接口沒有使能ARP廣播功能。終結子接口不能轉發廣播報文,在收到廣播報文后它們直接把該報文丟棄。為了允許終結子接口能轉發廣播報文,可以通過在子接口上執行此命令。
三層交換機和VLANIF接口
二層交換機(Layer 2 Switch)指的是只具備二層交換功能的交換機。
三層交換機(Layer 3 Switch)除了具備二層交換機的功能,還支持通過三層接口(如VLANIF接口)實現路由轉發功能。
VLANIF接口是一種三層的邏輯接口,支持VLAN Tag的剝離和添加,因此可以通過VLANIF接口實現VLAN之間的通信。
VLANIF接口編號與所對應的VLAN ID相同,如VLAN 10對應VLANIF 10。
VLANIF配置示例
•配置需求:
兩臺PC分別屬于VLAN 10、VLAN 20。通過三層交換機完成兩臺PC之間的相互通信。
基礎配置:
[SW1]vlan batch 10 20
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type access
[SW1-GigabitEthernet0/0/1] port default vlan 10
[SW1] interface GigabitEthernet 0/0/2
[SW1-GigabitEthernet0/0/2] port link-type access
[SW1-GigabitEthernet0/0/2] port default vlan 20
配置Vlanif:
[SW1]interface Vlanif 10
[SW1-Vlanif10]ip address 192.168.10.254 24
[SW1]interface Vlanif 20
[SW1-Vlanif20]ip address 192.168.20.254 24
•interface vlanif vlan-id命令用來創建VLANIF接口并進入到VLANIF接口視圖。vlan-id表示與VLANIF接口相關聯的VLAN編號。VLANIF接口的IP地址作為主機的網關IP地址,和主機的IP地址必須位于同一網段。
VLANIF轉發流程 (1)
假設PC、三層交換機上都已存在相應的ARP或mac表項。
PC1與PC2之間通信過程如下:
PC1通過本地IP地址、本地掩碼、對端IP地址進行計算,發現目的設備PC2與自身不在同一個網段,判斷該通信為三層通信,將去往PC2的流量發給網關。PC1發送的數據幀:源MAC = MAC1,目的MAC = MAC2。
VLANIF轉發流程 (2)
交換機收到PC1發送的去往PC2的報文,經解封裝發現目的MAC為VLANIF10接口的MAC地址,所以將報文交給路由模塊繼續處理。
路由模塊解析發現目的IP為192.168.20.2,非本地接口存在的IP地址,因此需要對該報文三層轉發。查找路由表后,匹配中VLANIF20產生的直連路由。
VLANIF轉發流程 (3)
因為匹配的為直連路由,說明已經到達最后一跳,所以交換機在ARP表中查找192.168.20.2,獲取192.168.20.2的MAC地址,交由交換模塊重新封裝為數據幀。
交換模塊查找MAC地址表以明確報文出接口、是否需要攜帶VLAN Tag。最終交換模塊發送的數據幀:源MAC = MAC2,目的MAC = MAC3,VLAN Tag = None。
網絡拓撲
連接邏輯圖
•NAPT(Network Address Port Translation,網絡地址端口轉換):將IP數據報文頭中的IP地址、端口號轉換為另一個IP地址、端口號的過程,主要用于實現內部網絡(私有IP地址)訪問外部網絡(公有IP地址)的功能,NAPT支持多個內部地址映射到同一個公有地址上,可以實現使用一個公有地址支持內網多個內部地址同時訪問外部網絡。
通信過程 (1)
•假設所有設備上都已存在相應的ARP或MAC表項。
通信過程 (2)
通信過程 (3)
通信過程 (4)
通信過程 (5)
|
二層接口(Layer2 Interface) |
三層接口(Layer3 Interface) |
|
二層接口不能配置IP地址 |
三層接口可以配置IP地址 |
|
二層接口不具備MAC地址 |
三層接口具備MAC地址 |
|
當二層接口收到數據幀時,設備在其MAC地址表中查詢該幀的目的MAC地址,找到匹配的MAC地址表項后按照該表項的指示轉發幀;如果沒有找到匹配的MAC地址表項,則將幀進行泛洪。 |
三層接口收到數據幀后,如果數據幀的目的MAC地址與設備的本地MAC地址相同,則將數據幀解除封裝,然后在路由表中查詢數據包的目的IP地址,找到匹配的路由表項后按照該表項的指示轉發包;如果沒有找到匹配的表項,則將包丟棄。 |
|
典型的二層接口如二層交換機(只具備二層交換能力的交換機)的物理接口;大部分三層交換機(同時具備二層及三層交換能力的交換機)的物理接口缺省為二層接口。 |
典型的三層接口如路由器的三層接口。 某些三層交換機的物理接口可以切換成三層模式。 此外除了物理三層接口,還存在邏輯三層接口,例如交換機的VLANIF,或者網絡設備上的邏輯子接口,如GE0/0/1.10。 |
|
二層接口并不隔離廣播域,當二層接口收到廣播幀時,會將數據幀進行泛洪。 |
三層接口隔離廣播域,當三層接口收到廣播幀時,缺省不會進行泛洪,而是直接終結。 |






