一、VLAN的基本概念
對于一臺二層交換機來說,整機就是一個廣播域、一個LAN。這意味著,只要連接到這個廣播域的PC配置在一個IP子網內,即可進行互相訪問,而且更重要的一點是,處于同一個廣播域內的某個用戶,發送一個廣播數據幀,意味著在這個廣播域內的所有用戶都會收到這個數據幀,并且耗費資源來處理(即使她它可能并不需要這個數據幀)。當這個廣播域變得特別大、用戶數量變得特別多時,網絡就非常有可能被大量的廣播消耗掉大量資源。
另一方面,實際的網絡中經常存在這樣的需求:連接在同一個交換機上的用戶有可能是不同的業務部門,我希望對他們進行隔離,或者以獨立的網絡單元進行管理。
基于上述需求,引入VLAN的概念,所謂VLAN,翻譯為Virtual LAN,實際上是一個虛擬的、邏輯的LAN,通過VLAN技術,我們可以在交換機上,根據接口等信息進行LAN的劃定。例如:
上圖中,我們基于設備接口進行VLAN的劃分。將接口1、2劃分到了VLAN10,將接口23、24劃分到了VLAN20。這樣一來,接口1、2所連接的PC就加入了VLAN10,處于同一個LAN、同一個廣播域內,那么這些PC只要配置同一個網段的IP地址,就能夠直接進行互訪了。而接口23、24處于另一個VLAN20,另一個LAN、另一個廣播域。屬于VLAN20的PC之間能夠直接進行互訪。但是,不同的VLAN之間,用戶是被隔離的(除非借助路由設備),當然,一個VLAN內的廣播數據幀并不會被泛洪到另一個VLAN來,因為他們處于不同的廣播域。
有了VLAN技術,我們的網絡設計將更加靈活、更加可控。VLAN是一個虛擬的LAN,不再受設備的限制。我們可以根據實際的業務環境需要,靈活的進行VLAN的規劃。而VLAN更可以跨交換機,因此VLAN的成員,也就是業務PC所處的位置就非常靈活了。例如上圖所示,你可能希望每個部門單獨劃分到一個LAN中,部分之間互相隔離,而一個部門的員工又往往未必在同一樓層,可能分散在不同的樓層,那么有了VLAN技術,完全可以把分散在不同樓層的業務PC劃分入一個VLAN。
下面做一個小結:
一個VLAN中所有設備都是在同一廣播域內,不同的VLAN為不同的廣播域;
VLAN之間互相隔離,廣播不能跨越VLAN傳播,因此不同VLAN之間的設備一般無法互訪,不同VLAN間需通過三層設備實現相互通信;
一個VLAN一般為一個邏輯子網,由被配置為此VLAN成員的設備組成;
VLAN中成員多基于交換機的接口分配,劃分VLAN就是對交換機的接口劃分;
VLAN工作于OSI參考模型的第二層;
VLAN是二層交換機的一個非常根本的工作機制。
二、Access的基本概念
三、Trunk的基本概念
前面我們已經了解了VLAN的概念。我們可以借助VLAN技術,在一臺交換機上創建多個VLAN以便對應不同的業務部門,然后基于交換機的接口,將不同的接口劃分給不同的VLAN。
如果我分別在兩臺交換機上部署了VLAN,并且做了統一性的VLAN規劃,這時兩臺交換機對接的時候就需要小心。因為這兩臺交換機之間互聯的鏈路,需要承載多個VLAN的數據,那么如果某個特定VLAN的數據從一臺交換機發送出來,經過交換機之間的鏈路到達另一臺交換機,后者如何判定,這個數據到底應該放入哪一個VLAN呢?
這里我們就需要一種“標記”手段。在將數據送出這個互聯接口前,給數據做上相應的標記(tag),對端交換機在收到這個數據之后,就能夠根據前者對數據所做的標記來識別數據究竟是屬于哪一個VLAN的。這時候,我們稱兩臺交換機之間的互聯鏈路為一段干道鏈路,而鏈路兩端的接口稱為Trunk接口。
上面提到的“標記”手段,我們成為干道封裝協議,一個眾所周知的公有協議是802.1q,或者叫Dot1Q,由于是公有協議,因此幾乎所有的交換機廠商都能支持。Dot1q針對數據幀的處理方式很簡單,就是在原始的以太網數據幀中插入一個dot1q的字段,同時重新做CRC校驗。在插入的Dot1q字段中,就有VLANID字段用來指示這個數據幀所屬的VLAN。
下面做一個小結:
當一條鏈路,需要承載多VLAN信息的時候,需使用trunk來實現
Trunk兩端的交換機需采用相同的干道協議
Trunk一般見于交換機之間或交換機與路由器、服務器之間
四、二層接口的鏈路類型
1.以太網交換機的端口分類
- Access端口:
Access接口常用于連接PC、服務器或其他終端,或路由器等設備。
Access接口只能加入一個VLAN,一旦加入特定VLAN后,該接口所連接的設備也就加入了該VLAN。
- Trunk端口:
一般用于交換機之間連接的端口,trunk端口可以加入多個VLAN,可以接收和發送多個VLAN的報文。
- Hybrid端口:
可以用于交換機之間連接,也可以用于接用戶的計算機,hybrid端口可以屬于多個VLAN,可以接收和發送多個VLAN的報文。可根據需求靈活的設定vlan是否打標簽。
2.Access端口收到幀
如果該幀不帶tag,則接收幀并打上端口的pvid;
如果該幀攜帶tag,則當vlanID與缺省vlanID相同時,接收該報文,否則丟棄
3.Access端口發送幀
剝離802.1Q tag header,發出的幀為普通以太網幀
4.Trunk端口收到幀
若數據幀不帶tag,打上接口pvid,若pvid在允許通過的vlanID列表里,則接收該報文。若pvid不在允許通過的vlanID列表里,則丟棄該報文。
5.Trunk端口收到幀
若數據幀帶tag,且vlanID在接口允許通過的vlanID列表里,則接收該報文。否則丟棄該報文。
6.Trunk端口發送幀
若vlanID與接口pvid相同,且該vlan在allow-pass vlan列表中,則去掉Tag,發送數據幀。
若vlanID與接口pvid不同,且該vlan在allow-pass vlan列表中,則保持原有Tag,發送該帶tag的數據幀。
7.hybrid端口收到幀
若數據幀不帶tag,打上接口pvid,若pvid在允許通過的vlanID列表里,則接收該報文。若pvid不在允許通過的vlanID列表里,則丟棄該報文。
若數據幀帶tag,且vlanID在接口允許通過的vlanID列表里,則接收該報文。否則丟棄該報文。
8.Hybrid端口發送幀
當vlanID是該接口允許通過的vlanID時,發送該幀。可以通過命令設置發送時是否攜帶Tag。