原理概述
Hybrid接口既可以連接普通終端的接入鏈路又可以連接交換機間的干道鏈路,它允許多個VLAN的幀通過,並可以在出接口方向將某些VLAN幀的標簽剝掉。
Hybrid 接口處理VLAN幀的過程如下:
(1)收到一個二層幀,判斷是否有VLAN標簽。沒有標簽,則標記上Hybrid接口的PVID,進行下一步處理;有標簽,判斷該Hybrid接口是否允許該VLAN的幀進入,允許則進行下一步處理,否則丟棄。
(2)當數據幀從Hybrid接口發出時,交換機判斷VLAN在本接口的屬性是Untagged還是Tagged。如果是Untagged,先剝離幀的VLAN標簽,再發送;如果是Tagged,則直接發送幀。
通過配置Hybrid接口,能夠實現對VLAN標簽的靈活控制,既能夠實現Access接口的功能,又能夠實現Trunk接口的功能。
實驗目的
●掌握配置 Hybrid接口的方法
●理解Hybrid接口處理Untagged數據幀過程
●理解Hybrid接口處理Tagged數據幀過程
●理解Hybrid接口的應用場景
實驗內容
某企業二層網絡使用兩台S3700交換機S1和S2,且兩台設備在不同的樓層。網絡管理員規划了3個不同VLAN, HR部門使用VLAN 10,市場部門使用VLAN20, It部門使用VLAN 30。現在需要讓處於不同樓層的HR部門和市場部門實現部門內部通信,而兩部門之間不允許互相通信; IT 部門可以訪問任意部門。可以通過配置Hybrid接口來實現較復雜的VLAN控制。
實驗拓撲
實驗步驟
1.基本配置
按照實驗編址表為PC配置IP地址,如圖所示的配置過程適用於所有終端。
完成配置后,測試主機之間的連通性。在PC-1上,使用ping命令。
可以觀察到,此時PC-1訪問其他主機通信正常,其他主機上的測試過程省略。
在沒有定義VLAN及接口類型之前,默認情況下,交換機上所有接口都是Hybrid類型,接口的PVID是VLAN 1,即所有接口收到沒有標簽的二層數據幀,都被轉發到VLAN1中,並繼續以Untagged的方式把幀發送至同為VLAN1的其他接口。所以,即使未做任何配置,主機之間默認仍然可以互相通信。
在S1上使用display port vlan命令查看接口的默認類型。
可以觀察到,接口默認是Hybrid類型,接口PVID是VLAN1,其他接口也一樣。
在交換機上使用display vlan命令查看接口和所屬VLAN的對應關系。
可以觀察到,所有接口都默認屬於VLAN 1,其他交換機也都- -樣, 因此VLAN 1內所有的主機都可以直接訪問。
2.實現組內通信、組間隔離
交換機接口的類型可以是Access、Trunk 和Hybrid. Access 類型的接口僅屬於- - 1VLAN,只能接收、轉發相應VLAN的幀:而Trunk類型接口則默認屬於所有VLAN,任何Tagged幀都能經過Trunk接收和轉發: Hybrid 類型接口則介於二者之間,可自主定義端口上能接收和轉發哪些VLAN Tag的幀,並可決定VLAN Tag是否繼續攜帶或者剿離。Acess 和Trunk 類型接口是Hybrid 類型接口的兩個特例,一個僅支持一個VLAN的傳遞,一個默認 支持所有VLAN的傳遞,而Access 類型和Trunk類型的接口 能做到的,Hybrid接口都能做到。
目前要求實現HR部門和市場部門的員工終端可以進行部門內部通信,即VLAN10內PC-2和PC-4之間可以自由訪問,VLAN20內PC-1和PC-3之間可以自由訪問,而兩個部門間的員工不能互相訪問,即VLAN 10和VLAN 20之間不能互相訪問。要實現此需求,可以使用Access和Trunk的配置方法,也可以僅使用Hybrid的配置方法。
使用Trunk和Access類型接口的配置過程如下。
將S1上的E 0/0/2 和S2上的E 0/0/2 配置為Access類型,並將相應的接口加入到VLAN 20。同理,將S1.上的E 0/0/3和S2上的E 0/0/3也配置為Access類型接口,並加入到VLAN10.而交換機之間的互連鏈路的兩個E0/0/1接口則配置為Trunk類型。
[fengnuoS1]vlan 10
[fengnuoS1-vlan10]vlan 20
[fengnuoS1-vlan20]int e0/0/3
[fengnuoS1-Ethernet0/0/3]port link-type access
[fengnuoS1-Ethernet0/0/3]port default vlan 10
[fengnuoS1-Ethernet0/0/3]int e0/0/2
[fengnuoS1-Ethernet0/0/2]port link-type access
[fengnuoS1-Ethernet0/0/2]port default vlan 20
[fengnuoS1]int e0/0/1
[fengnuoS1-Ethernet0/0/1]port link-type trunk
[fengnuoS1-Ethernet0/0/1]port trunk allow-pass vlan all
[fengnuoS2]vlan 10
[fengnuoS2-vlan10]vlan 20
[fengnuoS2-vlan20]int e0/0/3
[fengnuoS2-Ethernet0/0/3]port link-type access
[fengnuoS2-Ethernet0/0/3]port default vlan 10
[fengnuoS2-Ethernet0/0/3]int e0/0/2
[fengnuoS2-Ethernet0/0/2]port link-type access
[fengnuoS2-Ethernet0/0/2]port default vlan 20
[fengnuoS2-Ethernet0/0/2]int e0/0/1
[fengnuoS2-Ethernet0/0/1]port link-type trunk
[fengnuoS2-Ethernet0/0/1]port trunk allow-pass vlan all
配置完成后,查看接口和VLAN的對應關系。
可以觀察到,配置已經生效。
在PC1上測試與同VLAN20的PC3的連通性,以及與VLAN10內終端的連通性。
可以觀察到,在單台交換機及跨交換機間的訪問控制使用Trunk和Access類型接口實現了需求,但同樣的需求使用Hybrid實現會更靈活。
S1的E 0/0/2接口連接PC1主機,該接口收到的PC1發送的Untagged的幀會被交換機轉發到VLAN 20。同樣,交換機從其他接口收到VLAN 20的發往PC1的幀也會以Untagged的方式從E 0/0/2 接口發送。S1 的E 0/0/3接口連接PC2主機,該接口收到Untagged的幀會被轉發到VLAN 10。如果交換機收到的VLAN 10的發往PC2的幀也會以Untagged的方式從接口E 0/0/3發送。VLAN 10和VLAN 20的幀也要經過交換機間鏈路發送至鄰居交換機S2。反之,S1 收到來自鄰居交換機S2的Tagged的幀后,也會根據VLAN Tag轉發到相應的VLAN。
在S1的E 0/0/2接口上使用undo port default vlan命令用來恢復接口默認VLAN。
配置port link-type hybrid命令修改接口類型為默認的Hybrid類型。
配置port hybrid untagged vlan 20命令使得交換機在該接口轉發VLAN 20的幀時,剝離掉相應的VLAN Tag 20,以Untagged的方式發送給PC。
配置port hybrid pvid vlan 20命令設置Hybrid類型接口的默認VLANID,即使得該端口,上接收到PC發來的未帶VLAN Tag的幀時,加上VLAN Tag20,並轉發到VLAN 20。
同樣在連接另一台終端的E 0/0/3接口做同樣配置。
[fengnuoS1-Ethernet0/0/2]int e0/0/3
[fengnuoS1-Ethernet0/0/3]undo port default vlan
[fengnuoS1-Ethernet0/0/3]port link-type hybrid
[fengnuoS1-Ethernet0/0/3]port hybrid untagged vlan 10
[fengnuoS1-Ethernet0/0/3]port hybrid pvid vlan 10
在連接交換機S2的E 0/0/1接口上修改端口類型為默認的Hybrid類型,並使用porthybrid tagged vlan 10 20命令設置該鏈路僅接收帶有VLAN Tag 10和20的幀,而交換機也僅轉發VLAN 10和VLAN 20的幀到該鏈路。一般該命令配置在交換機互連的鏈路接口之上。
(按照以上做法第二句錯誤,無法更改成默認hybrid接口,不知道是不是因為之前設置成trunk接口,現在改不過來,我重新配置了S1,沒有設置0/0/1為trunk接口,因為這個配置操作本來就是在接口默認為hybrid類型的,所以重新配置也只用配置VLAN即可,配置完成后直接執行以下命令)
S2交換機將在E 0/0/1接口接收到的Tagged幀,根據VLAN Tag標識,向接口E 0/0/2轉發VLAN20的幀,向接口E0/0/3轉發VLAN30的幀。反之,接口E0/0/2接收到PC發送的未帶Tag的幀轉發到VLAN 20,端口E 0/0/3 接收的到未帶Tag的幀會被轉發到VLAN 10,並且這些幀發送到鄰居交換機S1時,會保留原有Tag。
S2上的配置和SI類似,這里不再解釋。
[fengnuoS2]int e0/0/2
[fengnuoS2-Ethernet0/0/2]undo port default vlan
[fengnuoS2-Ethernet0/0/2]port link-type hybrid
[fengnuoS2-Ethernet0/0/2]port hybrid untagged vlan 20 [fengnuoS2-Ethernet0/0/2]port hybrid pvid vlan 20
[fengnuoS2-Ethernet0/0/2]int e0/0/3
[fengnuoS2-Ethernet0/0/3]undo port default vlan
[fengnuoS2-Ethernet0/0/3]port link-type hybrid
[fengnuoS2-Ethernet0/0/3]port hybrid untagged vlan 10
[fengnuoS2-Ethernet0/0/3]port hybrid pvid vlan 10
(和S2配置出現相同問題,重新配置S1操作如下)
[fengnuoS2]vlan 10
[fengnuoS2-vlan10]vlan 20
[fengnuoS2-vlan20]int e0/0/2
[fengnuoS2-Ethernet0/0/2]port link-type hybrid
[fengnuoS2-Ethernet0/0/2]port hybrid untagged vlan 20
[fengnuoS2-Ethernet0/0/2]int e0/0/3
[fengnuoS2-Ethernet0/0/3]port link-type hybrid
[fengnuoS2-Ethernet0/0/3]port hybrid untagged vlan 10
[fengnuoS2-Ethernet0/0/3]int e0/0/1
[fengnuoS2-Ethernet0/0/1]port link-type hybrid
[fengnuoS2-Ethernet0/0/1]port hybrid tagged vlan 10 20
配置完成后,使用display vlan命令查看使用Hybrid配置下接口和VLAN的對應關系。
可以觀察到,同樣的需求,Hybrid 和Access、Trunk 都能實現(測試省略),但Hybrid的靈活性及解決復雜需求的能力是Access和Trunk達不到的。
3.實現網管員對所有網絡的訪問
在實現各部門內部終端可以互相訪問,不同部門間的終端隔離訪問后,要求網絡管理員所在的IT部門(使用終端PC-5)能夠實現對所有部門的訪問。即要求實現VLAN 30訪問VLAN 10和VLAN 20, VLAN 10和VLAN 20之間仍然不允許互相訪問。如果S1的E 0/0/2接口仍是Access類型且屬於VLAN 10,則不能被其他VLAN訪問。若要VLAN30的終端能訪問VLAN 10的終端,則需要修改接口的配置,使其既能被VLAN 10訪問,又能被VLAN 30訪問,這就要求此接口同時要屬於多個VLAN,且端口所連設備是PC,不能識別帶VLAN Tag的幀,故此時只能使用Hybrid類型接口。Hybrid 端口既能破加入多個VLAN中,又能夠在將其余VLAN的幀轉發到此接口時,剝離掉相應的VLAN Tag.
配置S1交換機,E 0/0/4接口是網絡管理員的PC終端,屬於VLAN 30,該接口收到的PC發送的Untagged幀要能夠發送至VLAN 30中,配置port hybrid pvid vlan 30命令設置Untagged幀加入至VLAN 30。
[fengnuoS1]vlan 30
[fengnuoS1-vlan30]int e0/0/4
[fengnuoS1-Ethernet0/0/4]port hybrid pvid vlan 30
因為在華為交換上,默認所有接口都為Hybrid類型接口,所以在該接口下不需要修改配置。
S1交換機收到VLAN 10, VLAN 20和VLAN 30的幀也要能夠從該接口發送至PC,配置port hybrid untagged vlan 10 20 30命令使得上述3個VLAN的幀會以Untagged的方式從該接口發送出去。
同理,端口E0/0/2接PC-1,接口收到PC的Untagged幀需要發送至VLAN20,使用port hybrid pvid vlan 20命令。E 0/0/2接口同時也要能夠被VLAN 30和.VLAN 20的主機訪問,即VLAN 20和30的幀能夠從該接口發送出去,並以Untagged的方式發送至PC1。
接口E 0/0/3收到Untagged的幀需發送至VLAN 10,同時VLAN 10和30的幀要能從該接口發送出去。
VLANI0、VLAN20和VLAN30的幀要能夠發送至鄰居交換機S2,且要保留原有的VLANTag,以便於鄰居交換機S2根據VLAN Tag繼續轉發到相應的VLAN。同樣,鄰居交換機S2發送過來的幀也會帶有相應的VLAN Tag,所以S1與S2間互連的接口E0/0/1配置如下。
同理在S2交換機上, E 0/0/1接口收到的帶有相應VLAN Tag標記的幀,如果是VLAN10的幀要能發送至接口E 0/0/3,如果是VLAN 20的幀要能發送至E 0/0/2。 而如果是VLAN 30的幀要能發送至接口E 0/0/2和E 0/0/3.VLAN10、20和30的幀都是以Untagged的方式發送至接口E 0/0/2或E 0/0/3.反之,如果PC-3發出的Untagged的幀發送至接口E 0/0/2時會進入到Hybrid接口PVID所指明的VLAN 20中,PC-4 發出的Untagged的幀發送至接口E 0/0/3時會進入到Hybrid接口PVID所指明的VLAN 10中,具體配置過程如下。
[fengnuoS2-Ethernet0/0/1]int e0/0/2
[fengnuoS2-Ethernet0/0/2]port hybrid untagged vlan 20 30
[fengnuoS2-Ethernet0/0/3]int e0/0/3
[fengnuoS2-Ethernet0/0/3]port hybrid untagged vlan 10 30
S1和S2上全部配置完成后,使用ping命令在IT部門的網絡管理員的PC-5.上測試與不同部門內的各台主機間的連通性,以PC-1為例。
可以觀察到,PC-5 所屬網絡管理員所在的VLAN 30,能夠正常訪問到其他部門的所有終端。
同理,選擇市場部門所在VLAN 20內的主機PC-1,測試其與其他主機間的連通性。
測試PC-1與本部門內的主機PC-3間的連通性。
可以正常通信。
測試PC-1與外部門的主機PC-2和PC-4間的連通性。
不能正常通信,實現了設計要求。
測試PC-1與IT部門網絡管理員主機PC-5間的連通性。
可以正常通信。
在交換機上可以定義多個VLAN,每個VLAN都可以看做是一-個廣 播域,通常情況下每個VLAN都會分配-一個獨立的IP網絡,根據需要把相應主機所在的接口划入到指定的VLAN中,並配置相應的網絡IP地址,VLAN間通過路由來實現互相訪問。這是較為常用的方法。但是相比於基於端口的Hybrid配置,三層路由方式則不夠靈活,原因在於VLAN之間的訪問控制要借助於路由設備來實現。而控制VLAN訪問使用Hybrid接口則極大地簡化了配置的復雜性,它僅需在端口上自主定義基於VLAN Tag的過濾規則,來決定指定的VLAN的二二層幀是否允許發送:它是通過二層來實現VLAN間的訪問控制,既不需要每個VLAN定義單獨的IP網段,更不需要在VLAN聞引入路由設備,配置更為靈活方便。
思考:
在本實驗中,如果將PC-5所連交換機的接口E 0/0/4下的port hybrid pvid 30命令刪除,PC-4所連的端口E 0/0/3下port bhybrid pvid 10命令刪除,其他端口配置則保持不變。此時在PC-5與PC-4間的連通性是否正常?報文經過S1和S2間端口時使用的VLAN Tag是哪個?為什么?