了解交換器如何傳遞封包
胡凱捷
交換器是網路中一個相當重要的設備,肩負著將網路封包送到正確目的地的任務。本文將講述交換器的主要功能、各種傳送Frame的運作模式以及如何學習來源端MAC位址等等,並且說明交換器在虛擬區域網路內的運作原理。
802.1Q與ISL協定的比較
ISL協定是用硬體來實作,因此所能支援的VLAN個數依照硬體的好壞而定,速度也是依照硬體的等級而定,與802.1Q協定不同。802.1Q協定是在軟體上處理的,所以速度想必一定比較慢。
另外,當決定要使用哪一種的協定時,也要考慮到整個網路的設備廠牌,若使用ISL協定,則代表所有的設備都一定要採用Cisco的設備,因為這是Cisco專屬的協定。兩者各有好壞,端由網路管理人員來決定。
802.1Q和ISL協定最大的不同,在於它們的標籤置放方式不同,這點請讀者注意,尤其是要準備CCNA認證的讀者,Trunk一向都是考試的重點之一。
交換器可能造成的問題
大多數複雜的網路架構都會使用相同重複的設備來避免某一設備運作失常的情況,交換器也是如此。要了解交換器的技術,免不了一定要知道這些問題,如此一來,當發生類似的問題時,才能了解背後真正的造成原因為何。
同一個網路中使用多個交換器
許多大型的網路拓樸中,網路管理人員通常會使用一個以上的交換器,這樣一來,當某些交換器運作失常,其他交換器也能繼續維持整個網路的運作,例如下圖所顯示的網路拓樸:
在這個網路中使用兩個交換器,若Switch A或Switch B其中一個運作失常,則另外一台可以馬上取而代之,維持網路運作。這樣的作法當然是不錯,不過也因此造成其他的問題。可能造成的網路問題有三個:
1. 廣播風暴(Broadcast Storm)
2. 發送多個重複資料(Multiple Frame Copies)
3. MAC位址資料庫不一致(MAC Address Table Instability)
以下就分別針對這三個問題予以介紹。
廣播風暴
如同上一張圖例所示,假設伺服器(Server)發送一個廣播封包出來,例如當伺服器想發送ARP(Address Resolution Protocol) Request來根據IP查找MAC位址時,這種ARP request就是屬於廣播封包。另外,DHCP也是屬於廣播封包的一種。
接著,當Switch A收到這個廣播之後,如同剛才所說的,會把這個廣播封包Flooding出去,假設Switch A是從Segment 1收到廣播封包,則Switch A會把這個封包從兩個方向再送給Switch B,而Switch B收到這個廣播後,也會做相同的動作,並把這個廣播封包再送給Switch A。
此時,Switch B也會從另一個方向收到另一次的廣播,因此又會再一次地發送更多的廣播封包,如此一來,即使目的地已經收到廣播封包,但是這樣的無窮迴圈所造成的廣播風暴會繼續,並占據著網路頻寬,而且網路上的廣播封包會越來越多,直到整個網路被這樣的廣播封包占滿為止。
這樣的廣播風暴不只會造成網路癱瘓,也會耗盡網路上各個設備的資源,因為這種廣播封包的處理過程需要CPU來處理。解決這個問題的方法就是避免迴圈的產生(Loop Avoidance)。
發送多個重複資料
和上面的問題一樣,可透過上一張圖例來解釋這個可能造成的問題。假設左上角的伺服器要發送一個封包給路由器,而此時路由器的MAC位址還沒有被下面這兩台交換器學習到,這個封包中的目的地MAC位址當然指定著路由器的MAC位址,而當伺服器送出這個封包後,路由器因為和伺服器處於同一個網路區段,所以路由器會從Segment 1直接收到這個封包。
另外,這個伺服器也會把這個封包傳送給Switch A,而Switch A收到之後,因為在MAC位址資料庫內找不到相對應的資料,所以會採用Flooding的作法,把這個封包傳送出去。
接著,當Switch B經由Segment 2網段收到由Switch A送過來的封包之後,也因為在MAC位址資料庫中找不到相對應的資料,又會再次把這個封包Flooding出去。
最後,路由器又會收到一次由Switch B送出的相同封包。這個問題的解決之道和上面的一樣,只要避免迴圈產生即可。
MAC位址資料庫內容不一致
這個問題主要是因為上一個問題而產生的。如同上一個問題所談到的範例,假設左上角的伺服器要發送一個封包給路由器,而此時路由器的MAC位址還沒有被下面這兩台交換器學習到。這裡假設圖片中,兩台交換器上面的埠為E0,下面的埠為E1,以方便解釋。這裡取部分圖例來講解: