1、什麼是vlan?
.
vlan就是虛擬局域網,是在二層交換機上將一個物理的LAN在邏輯上劃分紅多個廣播域(多個vlan)的通訊技術。同一個vlan內的主機能夠直接通訊,而不一樣vlan之間進行通行的話,則須要依賴三層網絡設備(三層交換機、路由器等)。
.
vlan具備靈活性和可擴展性等特色,使用vlan技術有如下好處:
.安全
vlan分爲動態vlan和靜態vlan兩種:
.
一、靜態vlan:也稱爲基於端口的vlan,是目前最多見的vlan實現方式。靜態vlan就是指明交換機的某個端口屬於哪一個vlan,須要手動配置,當主機鏈接到交換機端口上,主機就被分配到了對應vlan中。
.
二、動態vlan:動態vlan的實現方法不少,目前最廣泛的實現方法是基於MAC地址的動態vlan。基於MAC地址的動態vlan,是根據主機的MAC地址自動將其指派到指定的vlan中,這種方式的vlan劃分,最大的優勢是,當用戶物理位置移動時, 即從一個交換機移動到其餘交換機時,所對應的vlan不會變,這種方法的缺點是初始化時全部的用戶都必須進行配置,若是用戶多的話,這種配置方法很是不方便,因此這種劃分方法不適用於大型局域網。
.
vlan的範圍參照:服務器
Cisco和華爲的交換機設備所支持的vlan範圍(vlan ID)是同樣的,下面是具體的vlan範圍做用:
交換機全部的接口默認都屬於vlan 1,咱們正常建立vlan時,使用的vlan ID取值範圍在2~1001之間,這些ID號足夠咱們使用了。
.
關於vlan的介紹就很少敘述了,在vlan中還有一個概念,就是vlan標籤,這裏不解釋了,能夠理解爲,交換機爲了區分某一個數據幀屬於哪一個vlan而給數據幀自己打了一個標識,用於區分不一樣vlan的數據幀。
.
2、華爲交換機的三種接口模式。
.
華爲交換機的接口模式有三種:Access、Trunk和Hybrid。其中,Access、Trunk接口模式和Cisco交換機的接口模式同樣,Hybrid接口是華爲設備特有的接口模式,Hybrid接口和Trunk接口的相同之處是均可以容許多個vlan的流量經過並打標籤,不一樣之處在於Hybrid接口能夠容許多個vlan的報文發送時不打vlan標籤。
.網絡
華爲交換機的三種接口模式功能介紹以下:併發
- Access接口模式:Access接口必須加入某一vlan(這也是默認全部接口都屬於vlan1的緣由),對交換機而言,該接口只能容許一個vlan流量通行,且不打vlan標籤,用於鏈接PC、服務器、路由器(非單臂路由)等設備。
- Trunk接口模式:該接口默認容許全部vlan通行(用於承載多個vlan通行),且對每一個vlan經過打不一樣標識加以區分,主要用於鏈接交換機等設備。
- Hybrid接口模式:華爲交換機接口默認爲Hybrid模式(Cisco交換機默認爲Access模式),既能夠實現Access接口的功能,也能夠實現Trunk接口的功能,能夠在沒有三層網絡設備(路由器、三層交換機)的狀況下實現跨vlan通訊和訪問控制(固然了,也有侷限性,就是各個vlan中的IP地址都屬於同一網段,不然,仍然須要經過三層網絡設備來進行通訊,)。相對於Access接口和Trunk接口具備更高的靈活性與可控性。
關於Access和Trunk接口模式是在Cisco設備中就有的概念,其做用於特性徹底和華爲設備一致,因此關於這兩個接口模式就不說了,下面寫一下Hybrid接口的做用。
.
Hybrid接口的做用體現爲能夠實現流量隔離與互通:
.ide
- 流量隔離:Hybrid接口自己擁有強大的訪問控制能力,經過對接口的配置能夠隔離來自於同一個vlan的流量,也能夠隔離來自於不一樣vlan的流量。
- 流量互通:Hybrid接口可使不一樣的vlan之間在二層實現通行。Cisco交換機設備須要藉助三層網絡設備才能夠實現不一樣vlan之間的通訊,總的來講,二層的解決方案永遠比三層的解決方案要好,由於二層的效率要高於三層。所涉及的網絡層次越高,效率越低。
hybrid接口的工做原理。
.
Hybrid接口可以靈活地控制一個接口上數據幀vlan標籤的添加和移除。例如,在接口對端的設備是交換機的狀況下,能夠配置接口容許某一些vlan的數據幀攜帶vlan標籤經過該接口,而另一些vlan則不攜帶vlan標籤發出。在接口對端是終端主機的狀況下,能夠配置發送到這些接口的數據幀不攜帶任何vlan標籤。
.
Hybrid接口的工做原理涉及接口的三個屬性,分別是untag列表、tag列表及PVID(port-base VLAN ID,基於端口的vlan ID)。
.
Hybrid接口的三個屬性介紹:ui
交換機的Hybrid接口基於untag列表和tag列表接收或發送數據,其工做原理以下:
.3d
- 每一個Hybrid接口都有一個默認的untag列表,其中包含一個或多個vlan編號,默認值爲vlan 1。
- 每一個Hybrid接口都有一個tag列表,默認值爲空,也能夠設置包含一個或多個vlan編號。
- Hybrid接口收到數據幀後,首先檢查該數據幀是否攜帶標籤,若是攜帶標籤,則檢查本接口的tag列表,若tag列表中存在數據幀封裝的vlan ID,則接受,不然丟棄;若是不攜帶標籤,那麼根據Hybrid接口的PVID進行標記。
- Hybrid接口發送數據幀以前,檢查本接口的untag和tag列表,若數據幀封裝的vlan ID存在untag列表中,則去掉802.1Q封裝發送原始數據幀;若存在於tag列表中,則保留802.1Q封裝併發送帶標籤的數據幀;若兩個列表中都沒有數據幀的vlan ID,則不發送該數據幀。
- 上述原理比較抽象,總的來講就是:
- 數據包到達一個接口,若攜帶了vlan標籤(通常出如今交換機與交換機互聯的接口上),就只檢查tag列表,tag列表中有這個vlan ID,那麼就接收這個數據包,反之丟棄。能夠理解爲tag列表就是一個白名單,在白名單上的vlan ID都容許經過,不在白名單上,就不容許經過;若是沒有攜帶vlan標籤,這樣就好辦了,交換機給該數據包打上該接口自己的PVID,就OK了。
- 數據包要從某個接口發送出去的話,那麼須要檢查本接口的untag和tag這兩個列表。若數據包的vlan ID存在untag列表中,就給該數據去掉vlan ID,使其變成原始以太網數據幀(通常用於鏈接終端設備或路由器(單臂路由除外)時,相應的vlan ID會出如今untag列表,去掉vlan ID發送給終端設備或路由器,由於終端設備或路由器(單臂路由除外)不能識別vlan ID)。若存在tag列表,則直接放行,保留數據原有的vlan ID。
從上面能夠得出結論,接口收到數據包後的處理方式,和Hybrid接口的tag列表、PVID這兩個屬性有關;接口發送數據包時的處理方式,與Hybrid接口的untag列表和tag列表有關。
.
上個圖,來更直觀的看一下Hybrid接口收發數據幀時的處理流程吧!
Hybrid接口和Trunk接口均可以給多個vlan打標籤,也能夠傳輸多個vlan的流量;可是Hybrid接口能夠容許多個不一樣vlan的報文發送時不打標籤(把相應的vlan ID添加到untag列表中便可實現咯),而Trunk接口只容許默認vlan 的報文發送時不打標籤。日誌
三種類型的接口能夠共同存在一臺交換機上,但Trunk接口不能直接切換爲Hybrid接口,只能先設爲Access接口,再設置爲Hybrid接口(Hybrid接口能夠直接設置爲Trunk接口,無論如何切換,都有一些限制,如Trunk接口切換至Access接口時,須要刪除或更改一些接口配置,才能夠更換爲Access接口,牽扯原理比較多,舉個栗子,華爲交換機設置爲Trunk接口時,須要手動容許全部vlan流量經過,才能夠正常工做,不然默認只容許vlan1的流量經過Trunk接口,這樣Trunk接口便沒有存在的意義了,而Access只容許一個vlan的流量經過,因此,若想從Trunk改成Access,必須先更改原有的「容許全部vlan經過」相關的配置)。
.
囉嗦了這麼多,舉個栗子來配置一下吧,將理論應用到實際,才能夠更好使用該技術。
.
環境以下(只是單純的爲了舉栗子,不以生產環境來講):code
須要實現以下需求:對象
生產部客戶端和銷售部客戶端能夠相互訪問,並且只能訪問服務器1。
財務部客戶端不能和任何部門通訊,只能訪問服務器2。
配置以下:
一、自行配置各個PC及服務器的IP地址,無須配置網關,由於各個vlan的IP地址處於同一網段。
二、配置交換機S1:
<S1>un ter mo <!--關閉日誌提示消息--> <S1>sys <!--進入系統視圖--> [S1]vlan ba 2 3 10 <!--建立相應vlan,vlan 1默認存在,不用建立--> [S1]in g0/0/1 <!--進入該接口--> [S1-GigabitEthernet0/0/1]port link-type hybrid <!-- 配置接口模式爲Hybrid,默認就是這個模式, 這裏只是爲了將命令寫下來,在之後的配置中將省略該步驟 --> [S1-GigabitEthernet0/0/1]port hybrid pvid vlan 1 <!--同上,默認全部接口的PVID爲vlan 1,也是爲了展現命令--> [S1-GigabitEthernet0/0/1]port hybrid untagged vlan 1 to 2 <!--將vlan 1-2加入untag列表--> [S1-GigabitEthernet0/0/1]in g0/0/2 <!--進入該接口--> [S1-GigabitEthernet0/0/2]port hybrid untagged vlan 1 to 2 <!--將vlan 1-2加入untag列表--> [S1-GigabitEthernet0/0/2]in g0/0/3 <!--進入該接口--> [S1-GigabitEthernet0/0/3]port hybrid pvid vlan 10 <!--設置接口PVID爲vlan 10--> [S1-GigabitEthernet0/0/3]port hybrid untagged vlan 3 10 <!--將vlan 3和vlan 10加入untag列表--> [S1-GigabitEthernet0/0/3]in g0/0/4 <!--進入該接口--> [S1-GigabitEthernet0/0/4]port hybrid untagged vlan 1 to 2 <!--將vlan 1-2加入untag列表--> [S1-GigabitEthernet0/0/4]port hybrid tagged vlan 3 10 <!--將vlan 3 10加入tag列表-->
二、配置交換機S2(全部配置命令字在S1的配置過程當中都將註釋寫了下來):
<S2>un ter mo [S2]vlan ba 2 3 10 [S2]in g0/0/1 [S2-GigabitEthernet0/0/1]port hybrid untagged vlan 1 to 2 [S2-GigabitEthernet0/0/1]port hybrid tagged vlan 3 10 [S2-GigabitEthernet0/0/1]in g0/0/2 [S2-GigabitEthernet0/0/2]port hybrid pvid vlan 2 [S2-GigabitEthernet0/0/2]port hybrid untagged vlan 1 to 2 [S2-GigabitEthernet0/0/2]in g0/0/3 [S2-GigabitEthernet0/0/3]port hybrid pvid vlan 3 [S2-GigabitEthernet0/0/3]port hybrid untagged vlan 3 10 [S2-GigabitEthernet0/0/3]quit
三、至此,已經配置完成了,須要實現的需求已經實現了,再提示一下,這種方式僅限於各個vlan中的IP地址在同一網段上,若不屬於同一網段,那麼不一樣vlan之間的通訊還需通過三層設備。
四、那麼,如今若想要生產部和財務部能夠通訊呢?能夠配置以下:
[S1]in g0/0/1 [S1-GigabitEthernet0/0/1]port hybrid untagged vlan 10 [S1-GigabitEthernet0/0/1]in g0/0/3 [S1-GigabitEthernet0/0/3]port hybrid untagged vlan 1
通過上面的簡單配置,就又實現了生產部和財務部的通訊,但也僅僅是實現了這兩個部門的通訊,銷售部和生產部都處於vlan 1,但銷售部和財務部依然沒法通訊,仍需設置相應接口。.其實,在上述需求中還有另外一種比較簡單,又不難理解的配置方法,我將思路說一下,有興趣的話,自行配置試試吧,我經過這種方法實現過,就是把S1的G0/0/4接口和S2的G0/0/1接口都設置爲Trunk接口模式,而且容許全部vlan流量經過,而後在須要通訊的接口中設置爲Hybrid接口模式,而且將須要通訊的雙方vlan ID加入到untag列表中,就能夠通訊了,好比,財務部須要和服務器1通訊,它們分別屬於vlan 10和vlan 2,那麼,將交換機互聯的接口設置爲Trunk接口模式而且容許全部vlan流量經過後,在S1交換機鏈接財務部客戶端的接口中,設置爲Hybrid接口模式,並將vlan 10 和vlan 2添加到untag列表中,在S2交換機鏈接服務器1的接口中,將vlan 10 和vlan 2添加到untag列表中,便可實現這兩個處於不一樣vlan中的終端設備進行通訊,整個通訊過程與tag列表無關(注意設置相應接口的PVID標籤,以便將終端設備加入相應的vlan中)。