由於虛擬區域網路(VLAN)的關鍵技術在於Trunk的應用,所以本文將依序介紹虛擬網路和Trunk的概念,以及如何在Cisco交換器網路設備上設定虛擬網路與Trunk。
虛擬區域網路的資料傳遞
一般來說,若在眾多的Switch設備之間架設VLAN,則只有同一個VLAN中的電腦才可以互相傳遞資料,在Switch設備內部,事實上是透過限制資料的轉送來達到這種VLAN的資料傳遞過程。
之前的文章提到,當Switch設備收到資料之後,會根據學習過的MAC位址對應表,來決定資料要送往哪個埠,如果沒有學習過的話,則預設會Flooding到所有的埠,這是因為預設上所有的埠都是屬於預設的VLAN之中,也就是所有的埠都屬於同一個VLAN。因此,這樣的Flooding動作不會有什麼問題。
但是,如果是有分割VLAN的話,就不能這樣做了,因為會把某個VLAN的資料送往其他的VLAN,所以在這種情況下,Switch設備會了解哪些埠是屬於哪個VLAN,而會限制Flooding時只能送往同一個VLAN。
而當VLAN的資料要跨越多個Switch設備傳遞到其他Switch設備所連接的同一個VLAN時,就必須使用Trunk技術。
因為Switch設備之間當然只會用一條網路線連接起來,而這條網路線就必須要能傳遞承載所有VLAN的資料,為了達到這種需求,在設定這種Switch設備之間的連線時,就必須設定成Trunk類型。有關Trunk的詳細資訊,後面會慢慢提到。
虛擬區域網路種類
在VLAN中的埠可以被分成不同的種類,以便形成不同類型的VLAN。在Cisco Catalyst Switch設備中主要分成以下兩種VLAN:
所謂的靜態VLAN,指的是讓系統管理員手動設定哪些埠是屬於哪個VLAN,而Cisco Catalyst的Switch設備也支援動態VLAN的分式,此種方式會使用VMPS(VLAN Management Policy Server)這種額外的設備來協助達成動態VLAN的設定,而VMPS可以採用Catalyst 5000系列的Switch設備或是其他的伺服器來架設。
不過要注意的是,一般最常用的Cisco Catalyst 2950不能拿來架設成VMPS。VMPS內部包含一個資料庫,用來儲存哪些MAC位址是屬於哪個VLAN的對應關係,所以動態VLAN可以說是依照MAC位址來分割VLAN,也就是MAC-based。
靜態VLAN則是根據埠來區分是哪個VLAN,也就是Port-based。但是,對於動態VLAN而言,一個埠底下的所有電腦必須都要屬於同一個VLAN,這樣才能正常運作,因為如此一來這個埠所連接的電腦的MAC位址都是對應的同一個VLAN,當Switch設備要決定丟到哪個VLAN時,才不會搞錯。
不過,一般多數會採用靜態VLAN的方式來分割VLAN,因為設定方便快速,而且也因為動態VLAN的方式還要架設另一台VMPS,成本過高,並且設定相當麻煩,所以並不建議使用動態VLAN的方式來架設VLAN。
用Trunk傳遞多個VLAN之間的資料
前面提到Trunk的使用時機是,當Switch設備之間要傳遞多個VLAN資料時,這之間就要建立Trunk,而要稍微注意一下的是,只有FastEthernet等級以上才可以做Trunk。
Trunk主要分成802.1Q和ISL兩種協定。簡單來說,Trunk會在資料中增加一個標籤(Tag),用來表示目前這份資料是屬於哪一個VLAN,貼上標籤後,再把這份資料傳到另一台設備,另一台設備收到之後,再根據這個標籤得知這份資料是屬於哪個VLAN,而把這份資料送往所屬的VLAN。
以上就是Trunk主要的工作,所以這個Trunk必須要能夠傳送所有VLAN的資料,反正也不會搞混,因為都會在資料內貼上標籤。以下分別針對這兩種Trunk協定探討之間的不同之處。
802.1Q協定
IEEE 802.1Q協定在VLAN中通常用來連接多個Switch與Router設備,而Cisco的設備在Fast Ethernet和Gigabit Ethernet的介面上都支援IEEE 802.1Q協定。
基本上,每一個套用802.1Q協定的埠都會被指定成Trunk類型,而所有在Trunk上的埠都隸屬於native VLAN當中,預設上是這樣沒錯,但管理者還是可以指定到不同的VLAN中。
native VLAN是設備上預設的VLAN,一開始拿到Cisco Switch設備時,所有的埠都會被指派到native VLAN中,所以全部的埠都可以互相通訊,因為都屬於同一個VLAN,而native VLAN有一個作用,就是所有沒有被貼上標籤的資料都會被送往這個native VLAN。每個VLAN都會有一個ID,用來區分各個VLAN,而native VLAN的預設ID就是VLAN 1。
還有一點值得注意的是,只有802.1Q協定才有native VLAN,ISL是沒有native VLAN的。也因為沒有貼上標籤的資料都會在native VLAN上遊走著,所以Switch設備也不會在native VLAN上傳遞的資料內貼上標籤。
接著來看看下面這個範例,就可以參透native VLAN的所有觀念。假設現在架設三個VLAN,其VLAN ID分別是VLAN 1、VLAN 2以及VLAN 3,其中VLAN 1是native VLAN,之間用兩台Cisco Switch設備連接著,在Cisco Switch中間有一台Hub,如下圖所示。
其中IP為10.1.*.*是處於VLAN 1內,IP為10.2.*.*則是處於VLAN 2中,IP為10.3.*.*則被分派於VLAN 3之中。因為10.1.1.1和10.1.1.3都屬於native VLAN,所以由10.1.1.1和10.1.1.3互相傳遞的資料都不會被貼上標籤,因此這樣的資料也可以被10.1.1.2收到。
至於資料封包的標籤位置,則是置放在封包中間。一個標準的IP封包依序包含以下各個欄位:
1. 目的端位址資訊,佔封包的6個位元組。
2. 來源端位址資訊,佔封包的6個位元組。
3. 用來指明資料長度或是乙太網路種類的資訊,佔封
包的2個位元組。
4. 資料本身,佔封包的46?1500個位元組。
5. FCS,佔封包的4個位元組。
貼上標籤以後,整個資料封包會變成以下這個樣子:
1. 目的端位址資訊,佔封包的6個位元組。
2. 來源端位址資訊,佔封包的6個位元組。
3. 802.1Q協定專用標籤,佔封包的4個位元組。
4. 用來指明資料長度或是乙太網路種類的資訊,佔封
包的2個位元組。
5. 資料本身,佔封包的46~1500個位元組。
6. FCS,佔封包的4個位元組。