本系列文章主要針對CCNA 640-801的學習者,學習課程為SYBEX的《Cisco Certified Network Associate Study Guide Fourth Edition》


本章思科的考試內容包括:

執行與操作:
·配置交換機的VLANS和交換機間的通信
·根據指定的網絡需求配置交換機

故障檢測:
·執行LAN和VLAS的故障檢測





雖然我知道我已經告訴過你了,不過在這裏我還是要再確定一次:默認情況下,交換機分割衝突域而路由器分割廣播域。

在以前的網絡設計中,往往都是以某樣設備作為核心,其它的設備連接上核心設備。今天的網絡更趨向於一個平面的結構,即平等結構-----因為有了交換機。那麼我們怎樣在一個純交換機環境中分割廣播域呢?答案是創建一個虛擬的本地網絡(VLAN)!VLAN把網絡用户和連接到定義了的交換機端口上的資源進行邏輯分組。通過分配不同的交換機端口給不同的子網來創建VLAN,我們就可以在二層交換網絡上創建小的廣播域。一個VLAN就象一個子網或者説廣播域那樣各自處理各自的事情,意思是默認情況下在網絡上廣播幀只會在同一VLAN中進行,不會傳到別的VLAN裏。
那麼這樣意味着我們不再需要路由器了嗎?可能是也可能不是,這要看你到底想做什麼了。默認情況下在某個VLAN上的主機是不能和其它VLAN上的主機通信的,所以如果你希望在VLAN間通信那麼你就還是需要一個路由器。
本章我們將學習什麼是VLAN和怎麼在交換網絡上分配VLAN。同樣,我們還要學習VLAN中繼協議(VLAN Trunk Protocol ,VTP)是怎樣更新交換機的VLAN數據庫信息的,以及怎樣通過一箇中繼連接在VLAN內部傳輸信息。最後還介紹了在你的交換網絡上使用路由器構建VLAN間的通信。






VLAN Basics



如圖8.1所示,二層交換網絡通常都設計成一個平面網絡。任何廣播數據都被傳輸到網絡的所有設備上,跟設備是否需要接收這個數據無關。
默認情況下路由器只允許廣播在本地網絡上傳播,但交換機會把廣播發送到所有的網段上。把交換網絡稱為平面網絡(flat network)的原因就是因為它們在同一個廣播域裏而不是物理上的平面結構。




在圖8.1裏我們可以看到Host A發送一個廣播,所有交換機的所有端口都會轉發這個廣播(除了發送廣播的源端口外)。
現在我們來看看圖8.2,圖裏顯示了Host A發送一個數據幀到Host D,當知道Host D所在的位置後,數據就會只在Host A,Host D之間傳輸。相對以前的集線器網絡來説這是一個巨大的進步,除非你真的希望只要一個衝突域。



現在你已經知道了使用二層交換網絡能夠獲得的最大好處就是它為每個端口上接的設備創建了單獨的衝突域。這種方案解決了以太網的距離問題,現在我們可以創建更大的網絡了。但是,隨着每個新的發展往往都會遇到新的問題:用户和設備越多,那麼交換機也必須要處理更多的廣播和數據包。
還有一點,那就是安全性!這是一個很大的問題:因為在典型的二層交換網絡上,默認所有的用户能夠發現所有的設備。並且你不能阻止設備發送廣播也不能阻止用户接收廣播。這樣當你設置服務器或者其他設備的密碼時,網絡的安全性就受到很大的挑戰了。

不過如果你使用了VLAN(virtual LAN)的話,就能夠解決許多二層交換網絡的問題了。下面是VLAN能夠簡化網絡管理的一些途徑:
·可以把交換機的端口放到合適的VLAN裏以達到增加,移動或改變網絡的目的。

·如果一些用户需要高安全性的話可以把他們放到一個VLAN裏,這樣其它VLAN的用户就不能訪問到他們了。

·VLAN可以把用户邏輯地分組,而跟用户的物理或者説地理位置無關。

·VLAN能夠增加網絡安全性

·VLAN通過縮小原來的大廣播域而增加廣播域的數量。

在下面的章節我們將討論交換的特點和交換機為什麼可以比集線器提供更好的服務。


Broadcast Control

廣播在任何協議上都會發生,不過什麼時候發生跟下面的三個東西有關:
·協議類型
·網絡上運行的應用程序
·怎樣使用服務

雖然一些舊的軟件已經被重寫而減少它們需要的帶寬了,但一些新的軟件對於帶寬的需求簡直不可想象,能把能找到的帶寬都吞吃掉。這些濫用帶寬的傢伙就是多媒體軟件,它們廣泛使用廣播和組播。不合適的設備,不完全的分段以及拙劣的防火牆只能把這些軟件產生的問題搞得更復雜。所有這些問題使得網絡設計要增加新的課題,同樣也對管理人員提出了新的挑戰。弄清楚網絡是否適當地分段對於隔離一個網段的故障使故障不能波及到全部網絡來説是很必要的。最有效的辦法就是通過使用交換和路由。
因為交換機比集線器更有效,所以最近很多公司都把他們原來的集線器網絡更新成純交換的網絡(當然要使用VLAN)了。在一個VLAN上的所有設備都屬於一個廣播域。默認情況下交換機會過濾不同VLAN的廣播,這樣就可以讓你不用為交換網絡的廣播而煩惱了。


Security

現在我們來談談安全性,通常一個平面互連網絡的安全性由連接集線器和交換機的路由器負責。不過這樣會十分沒有效率:首先,連接到物理網絡的任何人都可以訪問物理局域網上的所有資源。其次,任何人都可以通過簡單地在集線器上插一個網絡分析器來觀察網絡上的所有流量。最後,用户可以加入任何工作組,只要簡單地把電腦連接上工作組所在的集線器即可。所有這些都得出一個結論:不安全!
而正是這些使VLAN顯得那麼的棒,通過建立多個廣播域(或者工作組)管理員就能夠控制每個接口甚至每個用户。這樣,用户把電腦連接上設備(交換機或者集線器)端口就可以訪問資源的日子已經成為歷史。因為現在管理員可以控制每個端口和端口能夠訪問的資源了。
同樣,因為VLAN可以建立一個合適的用户需要的網絡資源,這樣交換機就可以配置為當出現任何非法訪問資源情況時就通知管理工作站。如果你需要VLAN間的通信,那麼你可以通過在路由器上面執行限制來到達目的。你也能夠在硬件地址,協議或者應用程序上設置限制----現在,這裏,我們談的是安全!



Flexibility and Scalability

如果你前面注意學習了,那麼你現在會知道二層交換機只根據數據幀來做過濾,交換機並不關心網絡層協議。並且,交換機默認會轉發所有的廣播,但如果你創建了VLANS,那麼你實際在二層建立一個小廣播域!
這樣某個VLAN的廣播就只能在VLAN裏的節點上傳播而不會轉發到屬於另外VLAN的端口上。這樣,就可以在交換機通過分配交換機的端口或者用户到VLAN上來獲得更好的彈性:你可以把你指定的用户分配到指定廣播域裏而不用去管用户的物理位置。這個設置同樣可以阻止由一個出現問題的網卡所引起的廣播風暴。還可以阻止中間設備把廣播風暴傳播到整個互連網絡上去。雖然這些情況還是會在VLAN裏出現,但也只能在單一的VLAN裏而不會傳染到別人。
另外一個優點是當某個VLAN變得太大了的時候,你能夠創建更多的VLAN來保存由於廣播所浪費的大量帶寬。VLAN裏用户越少,那麼就越少人會受到廣播的影響。
不過你絕對需要牢記並瞭解的是當你創建你的VLAN時用户是怎樣使用網絡服務的。一個好的辦法就是把除了e-mail和訪問因特網外的所有服務都停掉,因為這兩個服務基本上是所有人都需要用到的。
為了理解VLAN,首先我們來看看傳統的網絡是很必要的。圖8.3顯示了一個互連網絡是怎樣通過用集線器把物理局域網連接到路由器上的。



這裏你能夠看到每個網絡通過集線器的端口連接到路由器上(雖然在圖裏沒有明顯地畫出來,不過你應該知道每個集線器上連接有網絡),每個連接到特定網絡的節點設備都需要匹配網絡的號碼才能夠和互連網絡上的其它設備通信。注意每個部門都有獨自的LAN,所當你希望增加一個新的用户到Sales部門上你可以把他接入到Sales LAN上這樣用户就可以自動成為Sales部門的一員了。這樣的設計的確已經好好地工作了許多年了。
但這樣有一個重要的缺陷:當你需要加一個用户到Sales部門,而Sales的集線器已經插滿了,該怎麼辦呢?或者這樣,在Sales辦公室裏已經沒有多餘的空間多擠一個人下來了,那你怎樣才能增加一個Sales的新僱員工呢?好,現在我們假設大樓裏只有Finance部門才有許多空的房間或者位置,這樣那個新的Sales部門員工只能和Finance部門的員工呆在一起,然後再把那可憐的員工的電腦連接上Finance部門的集線器。
很明顯這樣會在Finance LAN上增加了一個新用户,而這樣做有許多壞處:首先(也是最重要的),這樣會出現安全隱患,因為這個新用户處在Finance的廣播域裏,這樣他就能夠和Finance的部門員工一樣訪問同樣的網絡資源。其次,如果這個新員工需要訪問Sales部門的網絡來進行工作那麼需要穿越路由器並登陸到Sales的服務器上,這樣很沒有效率。
現在我們來看看如果使用交換機會怎麼樣。圖8.4示範了交換機是怎樣解決由地理區域所帶給你的問題的。



圖8.4裏有六個VLAN(從2到7),每個部門有單獨的廣播域。根據主機要屬於什麼部門,交換機的每個端口被分配到各自的VLAN。
那麼現在,如果我需要增加一個用户到Sales VLAN(VLAN 7),我就可以只分配一個端口給VLAN 7,跟那個新的Sales部門員工所在的物理位置無關了,這不是很好嗎?這是一個交換網絡劃分VLAN比舊的核心網絡設計要好的例子。現在多簡單明瞭-----想加什麼主機到Sales部門只要把主機分配到VLAN 7就可以了。
注意,我是從VLAN 2開始劃分VLAN的。雖然VLAN跟號碼沒有什麼關係,但是你可能注意到了:VLAN 1有什麼用的呢?這個VLAN是一個管理VLAN,雖然它也可以被用來劃分工作部門,但思科建議你還是隻把它用到管理目的就好。你不能命名或者刪除VLAN 1。並且默認情況下交換機的所有端口都是屬於VLAN 1的,直到你改變端口所屬為止。
每個VLAN被認為是一個廣播域,所以它也必須有自己的子網號碼,就象圖8.4顯示的一樣。並且如果你也使用IPX,那麼每個VLAN也得分配各自的IPX網絡號碼。
現在讓我們回到“因為有了交換機我們就可以不再需要路由器”這個誤區上,在圖8.4注意有六個VLAN或者説六個廣播域,加上VLAN 1那麼就是七個。在每個VLAN上的節點可以和同一VLAN的進行通信,但不能和別的VLAN節點通信!
那麼在圖8.4裏我們需要什麼才能使不同VLAN的主機間能彼此通信呢?可能你已經猜到了-------當然是一個路由器啦!這些主機都必須要通過一個路由器或者其它別的三層設備來把它們連接起來。就象我們需要連接不同的物理網絡一樣,VLAN也必須通過三層設備連接。所以在任何時候,想都別想可以不要路由器。







VLAN Memberships

VLAN通常都是由一個管理員創建的,然後把交換機的端口分配給每個VLAN。這樣的VLAN叫做靜態VLAN(static VLAN)。如果管理員想少做一點準備工作並分配所有的主機設備的硬件地址到一個數據庫裏的話,那麼可以把交換機配置為當一個主機接上交換機的時候動態地分配VLAN。這叫做動態VLAN(dynamic VLAN)。



Static VLANs

靜態VLAN是常見的構建VLAN的方法,並且也更安全。當你把交換機端口跟VLAN關聯起來後只能通過手動設置來改變關聯。這種類型的VLAN設置比較容易並且也容易監控,還可以控制用户在網絡上移動的位置。雖然這樣對使用網絡管理軟件配置端口時很有幫助,但這不是強制性的,你可以用也可以不用。
在圖8.4裏,管理員基於主機所要歸屬的部門把每個交換機端口劃分到相應的VLAN裏----跟設備的實際物理位置無關。主機將屬於什麼廣播域是一個管理性的選擇。要記住的是每個主機也要設置正確的ip地址!例如,在VLAN2上的所有主機的ip地址必須要在172.16.20.0網絡範圍內,這點是很重要的。如果你想把一個主機接到交換機端口上,你要先確定這個端口是屬於什麼VLAN的,如果你把一個VLAN的主機接到了屬於另外VLAN的端口上,那麼這個主機將不能訪問其需要的網絡服務,如一台工作組服務器等。



Dynamic VLANs

動態VLAN自動檢測一個節點的VLAN分配。使用智能的管理軟件,你可以基於硬件地址,協議甚至應用程序來進行動態VLAN分配。
舉個例子,假設MAC地址被輸入到一個集中的VLAN管理軟件裏,如果一個節點現在連接到一個未分配的交換機端口,VLAN管理軟件從數據庫裏尋找節點硬件地址並分配或配置交換機的端口到正確的VLAN。因為如果一個用户移動了位置,交換機會自動地分配正確的VLAN給用户,這樣管理和配置都變得很容易了。但是,你需要做許多的工作來初始化設置數據庫。
思科管理員可以使用VMPS(VLAN Management Policy Server)服務來設置一個MAC地址數據庫來進行動態分配VLAN。一個VMPS數據庫映射MAC地址到VLAN。





Identifying VLANs

一個幀被交換地通過網絡時,交換機必須留意幀的不同類型,根據硬件地址來操作幀。還有,當幀通過不同類型的線路時,處理方法也不一樣。



在交換環境裏有兩種不同類型的線路連接:

Access links:訪問連接,這種類型的連接只能是VLAN的一部分,被認為是端口的本地VLAN。連接到一條訪問連接線路的任何設備都沒有意識到它已經作為了一個VLAN的成員------設備只是認為加入了一個廣播域,但是它並不清楚物理網絡的結構。
交換機在把幀發送到一條訪問連接前會剝離掉幀的任何VLAN信息。訪問連接設備不能和本VLAN外的其它設備進行通信,除非數據包被路由。


Trunk links:中繼連接,中繼能夠在多個VLAN內部傳輸信息。中繼連接線路是在兩個交換機,一個交換機和一個路由器或者是一個交換機和一個服務器間的一條100或者1000Mbps的點到點的連接,它能夠同時輸送1到1005個VLAN的信息。
中繼允許你使一個端口同時屬於多個VLAN。這是一個很大的優點。例如,你能夠在兩個廣播域間同時設立一個服務器,這樣你的用户就可以不用通過三層設備(路由器)來訪問服務器了。另外一個優點是當你連接交換機的時候,能夠在幾個或者所有的VLAN內部通過中繼連接來輸送信息。但如果你交換機間沒有使用中繼線路,那麼默認只有VLAN 1的信息能夠在交換機間的普通線路傳遞。(記住,VLAN 1是一個管理VLAN)
所有的VLAN默認都使用了一條中繼的線路,除非管理員手動清理該線路上的VLAN。
圖8.5顯示了在一個交換網絡上的兩種不同類型的連接。交換機上的所有主機能夠訪問所有VLAN的端口,那是因為交換機中間有一條中繼連接了。還有要記住的是,一個VLAN只能允許使用一條訪問連接。



Frame Tagging

前面已經説過,你可以跨越多個交換機來創建你的VLAN,在圖8.4中,分佈在多個交換機上的主機可以屬於不同的VLAN,這個彈性的,組合的能力是VLAN的主要優點。但這樣對於一個交換機來説會有點複雜,所以需要有一個辦法來使得在通過交換結構和VLAN時能夠區分所有的用户和數據幀。(一個基本的交換結構是一組交換機共享同一個VLAN信息)這樣,就產生了幀標記鑑別(frame tagging)。這個鑑別幀標記的辦法是給每個幀分配了一個獨特的用户定義的ID。通常人們把這個用户定義的ID稱做“VLAN ID”或者“COLOR”。
幀標記鑑別是這樣工作的:首先,數據幀到達交換機的時候,交換機在幀的標記字段那裏檢查幀的VLAN ID,然後交換機檢查MAC表來確定幀要去哪裏。如果交換機有一條中繼連接,那麼幀將會從中繼連接的端口轉發出去。
當幀找到一條符合VLAN ID的訪問連接時,交換機把幀的VLAN標記去掉,這樣接收幀的目標設備就可以不用管幀的VLAN標記了。



VLAN Identification Methods

交換機通過附加VLAN標記來區分通過交換結構的中繼連接的數據幀,這個標記標明瞭幀是屬於哪個VLAN的,下面是幾種附加標記的方法:

Inter-Switch Link (ISL):這是思科交換機所獨有(私有)的,並且它只在快速以太網和千兆以太網的線路上使用。ISL能夠用在交換機端口,路由器接口和服務器中繼接口卡上。如果你創建了功能性VLAN並且你不想打破80/20規則時,這是一種非常好的方法。
等一下,什麼是80/20規則?好的,這是一個公式,它指當20%(或者更少)的數據流量在一個分段設備上交叉時,80%(或者更多)的數據流量會在本地網段上流動。
例如,如果一箇中繼的服務器同時屬於所有的VLAN(或者説廣播域),那麼用户就可以不必通過一個三層設備才能訪問服務器了。

IEEE 802.1Q:這是由IEEE創造的一個幀標記鑑別的標準。它在幀裏插入一個字段來標記幀所屬的VLAN。如果你在一個思科交換機和一個另外廠商的交換機間使用中繼連接,那麼你必須使用802.1Q。(ISL是思科私有的)
802.1Q是這樣工作的:你必須指定每個802.1Q的端口的相關VLAN ID,然後在同一中繼上的端口建立一個組叫做本地VLAN的。默認是VLAN 1。

注意:ISL和802.1Q幀標記鑑別方法的基本目的都是提供交換機間的通信。


Inter-Switch Link (ISL) Protocol

內部交換連接(Inter-Switch Link ,ISL)是一種在以太網數據幀上做標記的方法,通過這種封裝方法(ISL)允許VLAN通過一條中繼連接通信,標記信息標明瞭通過中繼線路的數據幀是屬於哪個VLAN的。
通過使用ISL,你可以互相連接多個交換機並且還能維持交換機中繼連接上的VLAN通信信息。ISL工作在二層(數據鏈路層),封裝一個新的幀頭和CRC到數據幀上。
再説一次:ISL協議是思科創造的,所以它只能在思科的設備上使用,如果你需要一個公有的VLAN協議,那麼可以使用IEEE的802.1Q。

因為ISL是一個外部的標記進程,所以不會更改原始的數據幀,它只附加了一個新的26字節的ISL幀頭到原始數據幀前,以及一個4字節的幀校驗序列(FCS)到原始數據幀的結尾處。因為封裝了ISL的信息,所以只有支持ISL的設備才能夠讀取。這些封裝過的數據幀可以有1522字節之大。
在multi-VLAN (trunk)端口,進入交換機的數據幀被標記。ISL的網絡接口卡(NIC)允許一個服務器發送和接收標記了多個VLAN信息的幀,這樣幀就可以在多個VLAN間流動而不用通過一個路由器。這樣可以減少延時(因為路由器要處理數據包的IP信息)。ISL使得用户在任何時候訪問服務器資源變得更容易,更快和更有效率而不必使用路由器。這個技術也能夠用來檢測和分析一個具體的網絡,管理員則可以用ISL來在多個VLAN間同時包含一個文件服務器。
只有當數據幀被髮送到一箇中繼線路上時才會把ISL VLAN信息添加到數據幀上,當數據幀到達一條訪問連接,那麼ISL的封裝信息將被交換機從數據幀上移掉。這是ISL的一個非常重要的操作,所以你要花點精神來記住它,不要忘記了哦。








VLAN Trunking Protocol (VTP)

VTP也是思科創造的,但!這個協議不是私有協議。VLAN中繼協議(VLAN Trunking Protocol ,VTP)的基本目的就是管理交換網絡上的所有VLAN並維護網絡上的VLAN的一致性。VTP允許管理員增加,刪除和重命名VLAN等在同一VTP域裏的所有交換機上的VLAN信息。
VTP有以下一些優點:
·保持網絡上所有交換機的VLAN配置一致。
·可以在混合的網絡間進行中繼,如Ethernet到ATM LANE甚至是FDDI。
·精確跟蹤和監視VLAN。
·動態報告增加的VLAN信息給VTP域裏的所有交換機。
·增加的VLAN是即插即用的(Plug-and-Play)。

在你用VTP來管理的你網絡上的VLAN前,你需要建立一個VTP服務器,所有設備只能在同名的VTP域裏共享VLAN信息,並且一個交換機每次只能有唯一一個VTP域。這樣意味着一個交換機只能夠和其它配置在同一個VTP域裏的交換機分享VTP域信息。當你有多於一個交換機連接在一起構成交換網絡時,你可以使用VTP,但是如果你所有的交換機都處在一個VLAN裏,那麼你可以不需要用VTP。VTP的信息通過兩個交換機間的中繼端口傳送。
交換機通告VTP域管理信息以及配置修正號碼和配置所有已知的VLAN的一些特定參數。還有一個叫VTP transparent mode的,在這種模式下,你能夠配置交換機通過中繼端口轉發VTP信息,但是!不能接收更新信息來更新它自己的VTP數據庫。
如果你擔心用户把交換機加入到你的VTP域裏,你可以設置VTP的密碼,但是不要忘記了,所有交換機必須要設置同樣的密碼----這是一個難點。
交換機在VTP通告中獲知有新的VLAN加入,然後通過它們的中繼端口來接收關於新的VLAN的信息。新發送的更新信息在之前的更新信息版本號上加1。交換機在任何時候看到更高的版本號時它就知道這個更新信息比當前的要新,然後它將用新的信息來覆蓋當前的數據庫。




VTP Modes of Operation

在圖8.6中有三種不同的VTP域模式:



Server:這是思科所有Catalyst系列交換機的默認模式。在你的VTP域中至少需要一個sever來傳播VLAN信息。在一個VTP域裏交換機必須在server模式下才能夠創建,增加或者刪除VLAN,同樣,改變VTP配置信息也必須在server模式下,並且一個在server模式下的交換機的所有變動都會通告到整個VTP域裏。

Client:在客户模式下,交換機能夠接收來自VTPserver的信息,它們同樣能夠發送和接收更新。但是它們不能做任何改變。另外,在VTPserver交換機注意到客户模式交換機上增加了新的VLAN之前,客户交換機的任何端口都不能增加新的VLAN。還要知道的是從VTPserver那裏接收到的VLAN信息不會保存到客户模式交換機的NVRAM裏,這意味着如果客户交換機重啓了,那麼所有的VLAN信息都會被刪掉。這裏有個小技巧:如果你希望一個交換機變成server模式,首先讓它進入客户模式,等到接收完所有正確的VLAN信息後才把它改成server模式,呵呵,就這麼容易。

Transparent:交換機在透明模式下不用加入VTP域,但是它們還是能夠從任何配置為中繼的連接上轉發VTP的通告的。這些交換機不能夠增加,刪除VLAN,那是因為它們保存有自己的私人數據庫,這個數據庫是不用分享給其它交換機的。儘管數據庫也保存在NVRAM裏,不過在VTP透明模式下的數據庫僅僅在本地起作用而已,透明模式的目的是允許遠程的交換機能夠通過透明模式交換機從VTP server交換機那裏接收到信息而已。透明模式下的交換機不參與任何VLAN的分配。


QUOTE:


Real World Scenario
When do I need to worry about VTP?

BOB,一個在Acme公司的高級網絡管理員,公司裏有25台交換機連接在一起。現在BOB想配置VLAN來分割廣播域,當他開始使用VTP的時候什麼是需要考慮的呢?

你可以隨時在有多於一台交換機及有多個VLAN的時候使用VTP。但如果你只有一個交換機,那麼不用考慮VTP的問題。同樣,如果你沒有使用VLAN,那麼也不用考慮VTP。然而,如果你有多個交換機和使用了多個VLAN,那麼你就需要正確配置你的VTP server和client了。

當你第一次配置交換網絡,你需要配置你的主交換機為VTP server其他的為VTP client。當你在VTP server上創建VLAN的時候,所有的交換機將接收VLAN數據庫。
如果你有一個已經存在的交換網絡並且你想增加一個新的交換機,那麼在你安裝新交換機之前要把它配置成VTP client模式。因為如果不是這樣的話,那麼可能這個新的交換機會發送一個新的VTP數據庫到你其他所有的交換機上,會把你以前的VLAN配置給洗白,這是你絕對不希望發生的。







VTP Pruning



VTP提供了一個辦法讓你可以保存帶寬,通過配置使得減少廣播,組播以及單播的數據包數量。這種辦法叫做修剪(pruning)。VTP修剪只發送廣播到中繼連接上。這裏有一個例子:如果交換機A沒有任何端口配置到VLAN 5,並且一個廣播在VLAN 5中傳播,那麼交換機A將不會接收到這個廣播。默認情況下,所有交換機的VTP修剪都是禁用的。


當你在一個VTP server上啓動修剪時,整個VTP域都會啓動這個功能。默認情況下


VLAN 2到VLAN 1005之間的VLAN都可以修剪,但是VLAN 1從來不會進行修剪,因為VLAN 1是一個管理性的VLAN,怎麼能夠修剪它的數據包呢?







Routing between VLANs



在同一VLAN中(或者説在同一廣播域)的主機可以自由地互相通信。VLAN在OSI模型的二層建立了網絡劃分和流量分離。但如我前面所講為什麼依然需要路由器,如果你希望VLAN間的主機或者任何其它可IP尋址的設備能夠互相通信,那麼必須要一個三層的設備。


這樣,你能夠在路由器每個接口分配一個VLAN或者使用一個支持ISL路由的路由器。最便宜的,能支持ISL路由的路由器是2600系列,1600,1700,2500系列都不支持。


如圖8.7所示,如果你只有少量的VLAN(2個或3個)那麼你可以使用一個有兩個或者三個10BaseT接口或者示Fast Ethernet接口的路由器,我建議你使用Fast Ethernet接口,這樣會工作得更好。



我們在圖8.7中可以看到,路由器的每個接口都接了一條訪問連接(access link),這意味着路由器的接口ip地址將會變成每個VLAN的主機的默認網關。


如果我們的VLAN數超過了路由器所能提供的接口數量,那麼你可以在一個快速以太網接口上使用ISL路由中繼或者買一個三層交換機如思科3550。


不同於每個VLAN使用路由器一個接口,你可以只用一個快速以太網接口來運行ISL和802.1Q進行中繼。圖8.8顯示了用一個快速以太網接口連接多個VLAN的方法。所有的VLAN通過一個接口來通信,思科把這種方法叫做單臂路由(router on a stick)








Configuring VLANs



配置VLAN是很容易的,首先勾畫出什麼主機該在什麼VLAN不該在什麼VLAN,雖然這會很花時間,不過一旦確定了主機和VLAN的歸屬關係,那麼現在是你建立你第一個VLAN的時候了。



在2950交換機下配置VLAN需要在VLAN數據庫中進行:



Switch#vlan database


Switch(vlan)#?


VLAN database editing buffer manipulation commands:


abort Exit mode without applying the changes


apply Apply current changes and bump revision number


exit Apply changes, bump revision number, and exit mode


no   Negate a command or set its defaults


reset Abandon current changes and reread current database


show Show database information


vlan Add, delete, or modify values associated with a single VLAN


vtp   Perform VTP administrative functions.


Switch(vlan)#






注意,下面的配置VLAN的內容有所變化,看情況選擇配置方法


QUOTE:



要注意的是在2950中創建VLAN你要在特權模式下進入VLAN數據庫,而不是在全局模式下進入。下面是創建三個VLAN的例子,注意當我試圖改變VLAN 1的名字時會發生錯誤:
Switch(vlan)#vlan 1 name Sales
A default VLAN may not have its name changed.
Switch(vlan)#vlan 2 name Marketing
VLAN 2 modified:
Name: Marketing
Switch(vlan)#vlan 3 name Accounting
VLAN 3 added:
Name: Accouting
Switch(vlan)#Vlan 4 name Shipping
VLAN 4 added:
Name: Shipping
Switch(vlan)#apply
APPLY completed.
Switch(vlan)#control+c
Switch#
還有要注意的是在最後我們需要使用apply命令來使配置生效。你可以命名VLAN,但不是一定需要命名VLAN的。





另外一種是後面使用的方法


在全局模式下建立VLAN,不過你需要在另外一行來命名VLAN,注意和上面的配置方法有什麼不同(例如提示符):


Switch>


Switch>en


Switch#config t


Enter configuration commands, one per line. End with CNTL/Z.


Switch(config)#vlan 2


Switch(config-vlan)#


在這個提示符下你可以建立VLAN,命名VLAN,但不是一定需要命名的,交換機會默認分配一個給VLAN。


Switch(config-vlan)#vlan 3


Switch(config-vlan)#name Sales


Switch(config-vlan)#vlan 4


Switch(config-vlan)#name Finance


Switch(config-vlan)#^Z


Switch#






QUOTE:


注意:除非分配端口給VLAN,不然你創建的VLAN不會起作用。還有,所有的端口默認都是屬於VLAN 1的!除非你設置端口到其他的VLAN。
你不能改變,刪除,或者重命名VLAN 1。因為這是一個默認的VLAN。你也不能用別的VLAN來做代替VLAN 1。在所有交換機上默認VLAN 1作為本地VLAN,並且思科建議你用這個VLAN 1來作為你的管理VLAN。本地VLAN的意思是任何不是不同VLAN的數據包都只會發送到本地VLAN。




我們可以使用show vlan命令或者show vlan brief命令來看VLAN數據庫:



Switch#sh vlan brief


VLAN Name     Status Ports


---- --------------------- --------- -------------------------------


1 default     active Fa0/1, Fa0/2, Fa0/3, Fa0/4 Fa0/7, Fa0/8, Fa0/9, Fa0/10,Fa0/11, Fa0/12


2 VLAN0002         active


3 Sales           active


4 Finance         active


1002         fddi-default         act/unsup


1003         token-ring-default     act/unsup


1004         fddinet-default       act/unsup


1005         trnet-default       act/unsup


Switch#



現在我們看到已經創建了的VLAN,我們可以分配交換機的端口到某個VLAN上。每個端口只能屬於一個VLAN。





Assigning Switch Ports to VLANs



雖然我們可以配置靜態和動態VLAN,但是本書我們只討論靜態VLAN的配置。



Switch(config-if)#int f0/2


Switch(config-if)#switchport access vlan 2


Switch(config-if)#int f0/3


Switch(config-if)#switchport access vlan 3


Switch(config-if)#int f0/4


Switch(config-if)#switchport access vlan 4


Switch(config-if)#



如果你需要確認一下配置,那麼還是使用show vlan或者show vlan brief命令:



Switch#sh vlan brief


VLAN Name     Status Ports


---- ------------------- --------- --------------------------


1 default     active Fa0/1, Fa0/5, Fa0/6, Fa0/7, Fa0/8,Fa0/9, Fa0/10, Fa0/11, Fa0/12


2 VLAN0002     active Fa0/2


3 Sales       active Fa0/3


4 Finance     active Fa0/4




為了在VLAN內部通信,我們需要配置中繼端口。



中繼端口有五種不同的狀態:


Auto:當一個設備連接上端口時自動進行中繼。


Desirable:在Auto或者Desirable狀態下,當有設備連接上該端口,就協商地進行中繼。


Nonegotiate:這種狀態下端口變成一個永久性的ISL中繼端口,該端口不用和設備進行協商以提供中繼。


Off:端口不會進行中繼。


On:端口成為一個永久性的ISL中繼端口,並可以和設備協商,使該設備的連接變成中繼模式。




在2950下,我們可以使用switchport命令:



Switch#config t


Enter configuration commands, one per line. End with CNTL/Z.


Switch(config)#int f0/12


Switch(config-if)#switchport mode trunk


Switch(config-if)#^Z


Switch#



如果想禁用接口中繼,那就使用switchport mode access命令,如果你想顯示你的配置,那麼使用show running-config:



[output cut]


!


interface FastEthernet0/2


switchport access vlan 2


no ip address


!


interface FastEthernet0/3


switchport access vlan 3


no ip address


!


interface FastEthernet0/4


switchport access vlan 4


no ip address


!


interface FastEthernet0/12


switchport mode trunk     //注意,f0/12端口作為中繼端口。


no ip address


!


[output cut]





Trunking with the Cisco Catalyst 3550 switch



讓我們來看看另外一種交換機----思科Catalyst3550,配置3550跟配置2950十分相似。不過3550能夠提供三層的服務,而2950不能,也就是説3550是一個三層交換機。另外3550能夠同時支持ISL和IEEE802.1Q中繼封裝方法,而2950只能支持IEEE 802.1Q,1900則是隻支持ISL。下面讓我們快速瀏覽一下3550的VLAN配置,在上面我們已經學習了2950交換機中繼端口的配置,非常直接:


Switch#config t


Enter configuration commands, one per line. End with CNTL/Z.


Switch(config)#int f0/12


Switch(config-if)#switchport mode trunk



在3550,你可以配置中繼端口的封裝,而2950不能:


Switch(config-if)#switchport trunk encapsulation ?


dot1q     Interface uses only 802.1q trunking encapsulation when trunking


isl     Interface uses only ISL trunking encapsulation when trunking


negotiate Device will negotiate trunking encapsulation with peer on


interface



正如你看到的,我們可以在3550上使用IEEE802.1Q或者ISL。





Configuring Inter-VLAN Routing



默認情況下,只有屬於同一個VLAN的主機才能互相通信,為了改變這種情況而使得VLAN間可以互相通信,你需要一個路由器或者是別的三層設備。


在路由器的快速以太網接口使用ISL或者802.1Q時,接口要被劃分許多邏輯的接口,每個邏輯接口對應一個VLAN,這些邏輯的接口被叫做字接口(subinterfaces)


你需要知道的非常重要的一點是,默認情況下你不能夠在1900和2950間進行中繼,因為1900只支持ISL路由,而2950則只支持802.1Q路由,這兩種中繼的方法是不兼容的。這實在是不可思議的一件事:思科的2950交換機居然不支持思科自己的私有協議ISL,哈哈。


總之,在路由器的一個快速以太網或者千兆以太網接口上,你能夠使用encapsulation命令來設置端口提供中繼:



2600(config)#int f0/0.1


2600(config-subif)#encapsulation dot1q vlan#



注意:要使一個路由器端口能夠進行中繼,那麼這個端口最少也得是100Mbps的。



上面是先進入一個子接口,然後為特定的VLAN設置封裝類型。子接口的號碼只是一個本地的標識,所以在路由器可以隨便設置的。但是我建議你把子接口的號碼配置成和需要路由的VLAN的號碼一樣,這樣可以很容易記憶。


要理解每個VLAN象一個單獨的子網,這非常重要。雖然它們不一定是,但象配置單獨的子網一樣配置你的VLAN是一個很好的想法。接下來我們要學習怎樣配置VTP,以及在Lab_C路由器上配置inter-VLAN路由。下面我們來看看一些例子:


首先我們看圖8.9和圖裏交換機路由器的相關配置信息。你要在圖裏所給出的信息中找出各VLAN主機的ip地址,掩碼和默認網關等。



我們需要做的第一件事情就是計算出要使用哪個子網。我們看上圖的路由器的配置,我們發現VLAN 1使用了192.168.1.64/26,和VLAN 10使用192.168.1.128/27。然後看看交換機的配置,我們發現端口2和3屬於VLAN 1,端口4則是屬於VLAN 10。這意味着主機A,B在VLAN 1,主機C是在VLAN 10。


那麼主機的ip地址將可以是:


HostA: 192.168.1.66, 255.255.255.192, default gateway 192.168.1.65


HostB: 192.168.1.67, 255.255.255.192, default gateway 192.168.1.65


HostC: 192.168.1.130, 255.255.255.224, default gateway 192.168.1.129


主機的ip地址可以是子網範圍裏的任何一個,這裏我只用了默認網關後的可用地址。下面我們要通過命令來配置交換機的端口1,來和路由器建立一條連接以提供VLAN間的通信,我們使用IEEE802.1Q封裝。


2950#config t


2950(config)#interface fa0/1


2950(config-if)#switchport mode trunk


因為2950只有802.1Q一種封裝,所以我們不需要特別指定封裝類型,如果是3550的話,那我們就得指定中繼封裝了:


3550#config t


3550(config)#interface fa0/1


3550(config-if)#switchport mode trunk


3550(config-if)#switchport trunk encapsulation dot1q



讓我們來看看圖8.10,圖裏有三個VLAN,每個VLAN有兩台主機。路由器連接交換機的Fa0/1端口,端口F0/6則連接了VLAN 2。仔細看圖,這些是思科希望你能夠知道的:


1.連接交換機的路由器使用子接口。


2.連接路由器的交換機端口是一箇中繼端口(trunk port)。


3.連接客户和集線器的交換機端口是訪問端口(access ports)而不是中繼端口





交換機的配置如下:


2950#config t


2950(config)#int f0/1


2950(config-if)#switchport mode trunk


2950(config-if)#int f0/2


2950(config-if)#switchport access vlan 1


2950(config-if)#int f0/3


2950(config-if)#switchport access vlan 1


2950(config-if)#int f0/4


2950(config-if)#switchport access vlan 3


2950(config-if)#int f0/5


2950(config-if)#switchport access vlan 3


2950(config-if)#int f0/6


2950(config-if)#switchport access vlan 2



在我們配置路由器之前,我們需要設計一下網絡地址方案:


VLAN 1: 192.168.10.16/28


VLAN 2: 192.168.10.32/28


VLAN 3: 192.168.10.48/28



路由器的配置如下:


Router#config t


Router(config)#int f0/0


Router(config-if)#no ip address


Router(config-if)#no shutdown


Router(config-if)#int f0/0.1


Router(config-subif)#encapsulation dot1q 1


Router(config-subif)#ip address 192.168.10.17 255.255.255.240


Router(config-subif)#int f0/0.2


Router(config-subif)#encapsulation dot1q 2


Router(config-subif)#ip address 192.168.10.33 255.255.255.240


Router(config-subif)#int f0/0.3


Router(config-subif)#encapsulation dot1q 3


Router(config-subif)#ip address 192.168.10.49 255.255.255.240



每個VLAN上的主機的ip地址從它們的子網範圍裏選擇,而主機的默認網關則是對應VLAN的路由器子接口的ip地址。


現在讓我們看另外一個例子,看看沒有答案你能不能確定交換機和路由器的配置。圖8.11裏一個路由器連接了一個有兩個VLAN的交換機。每個VLAN裏的主機都分配了ip地址,你要根據主機的ip地址來確定交換機和路由器的配置:





因為主機沒有顯示子網掩碼,首先你需要從每個VLAN需要的主機數目來確定子網掩碼。VLAN 1需要85個主機,VLAN 2則需要115個。這樣我們只能選擇一個/25的掩碼255.255.255.128。


你應該知道現在子網是172.16.10.0和172.16.10.128,VLAN 1(子網0)的主機範圍是1-126而VLAN 2(子網128)的主機範圍是129-254。記住,不要因為主機A的地址是172.16.10.126而主機B的地址是172.16.10.129而認為它們是在同一個子網內!!


現在可以配置交換機了:


2950#config t


2950(config)#int f0/1


2950(config-if)#switchport mode trunk


2950(config-if)#int f0/2


2950(config-if)#switchport access vlan 1


2950(config-if)#int f0/3


2950(config-if)#switchport access vlan 2



路由器的是:


Router#config t


Router(config)#int f0/0


Router(config-if)#no ip address


Router(config-if)#no shutdown


Router(config-if)#int f0/0.1


Router(config-subif)#encapsulation dot1q 1


Router(config-subif)#ip address 172.16.10.1 255.255.255.128


Router(config-subif)#int f0/0.2


Router(config-subif)#encapsulation dot1q 2


Router(config-subif)#ip address 172.16.10.254 255.255.255.128



這裏我分配子網0的第一個地址給VLAN 1,而分配了子網128的最後一個地址給VLAN 2,這些都沒有關係,它們一樣能夠正常工作。你只需要把主機的默認網關地址設置成跟對應VLAN的路由器子接口的地址一樣就可以了。


因為VLAN 1通常都是一個交換機的管理VLAN,所以我們從地址範圍裏分配一個地址給它:


2950#config t


2950(config)#int vlan 1


2950(config-if)#ip address 172.16.10.2 255.255.255.128


2950(config-if)#no shutdown




在圖8.12裏有兩個VLAN,我們看看路由器的配置,什麼是主機A的ip地址,掩碼和默認網關呢?用子網範圍裏的最後的ip地址作為主機A的地址。





如果你仔細看了路由器的配置,那麼答案就很簡單了。兩個VLAN都用了/28或者255.255.255.240掩碼,這個掩碼的塊範圍是16,路由器給VLAN 1的地址在子網128裏,那麼下一個子網就是144(128+16),所以VLAN 1的廣播地址是142而有效的主機範圍是129-142,那麼主機A的地址就出來了:


IP Address: 192.168.10.142


Mask: 255.255.255.240


Default Gateway: 192.168.10.129



好了,下面我們該配置VTP了-----另一個非常重要的目標。








Configuring VTP



默認所有的交換機都是配置成VTP server模式的。要配置VTP,首先你得設置一個domain name,然後當然,因為你配置了VTP,所以需要確認。


當你創建了一個VTP domain,你需要設置交換機的domain名稱,密碼,運行模式和修剪能力。使用全局配置模式命令vtp來設置這些內容。下面的例子中我們設置交換機為vtp server,vtp域為est:



Switch(config)#vtp mode ?


client     Set the device to client mode.


server     Set the device to server mode.


transparent Set the device to transparent mode.



Switch(config)#vtp mode server


Device mode already VTP SERVER. //交換機默認已經是server



Switch(config)#vtp domain ?


WORD The ascii name for the VTP administrative domain.



Switch(config)#vtp domain est


Changing VTP domain name from NULL to est


Switch(config)#



需要再次強調的是所有交換機默認都在VTP server模式下,並且如果你想改變任何VLAN的信息你都要在VTP server模式下進行。



配置完VTP的內容後我們用show vtp命令來檢查確認:



SwitchA#sh vtp ?


counters   VTP statistics


status   VTP domain status



SwitchA#sh vtp status


VTP Version : 2


Configuration Revision : 1


Maximum VLANs supported locally : 64


Number of existing VLANs : 7


VTP Operating Mode : Server


VTP Domain Name : routersim


VTP Pruning Mode : Disabled


VTP V2 Mode : Disabled


VTP Traps Generation : Disabled


MD5 digest : 0x4C 0x60 0xA6 0x5D 0xD7 0x41 0x8C 0x37


Configuration last modified by 172.16.10.1 at 3-1-94 06:40:09


Local updater ID is 172.16.10.1 on interface Vl1 (lowest numbered VLAN


interface found)





Troubleshooting VTP



用雙絞線把你的交換機連接起來,如果所有的燈都變綠這樣你就已經啓動並運行了!世界是多麼的美好啊,難道你真的認為有這麼容易嗎?是的,就是這樣------如果你沒有使用VLAN的話。如果你使用了VLAN(這是很確定的,要用!)如果你有多個VLAN,那麼你需要使用VTP。


不過如果VTP沒有正確地配置的話,那麼它將不工作,所以你絕對需要檢測VTP故障的能力。下面我們看一些例子並解決它們的故障:


SwitchA#sh vtp status


VTP Version : 2


Configuration Revision : 0


Maximum VLANs supported locally : 64


Number of existing VLANs : 7


VTP Operating Mode : Server


VTP Domain Name : RouterSim


VTP Pruning Mode : Disabled


VTP V2 Mode : Disabled


VTP Traps Generation : Disabled




SwitchB#sh vtp status


VTP Version : 2


Configuration Revision : 1


Maximum VLANs supported locally : 64


Number of existing VLANs : 7


VTP Operating Mode : Server


VTP Domain Name : GlobalNet


VTP Pruning Mode : Disabled


VTP V2 Mode : Disabled


VTP Traps Generation : Disabled




為什麼上面的兩個交換機不能分享VLAN信息呢?首先我們看到兩個交換機都在server模式下,但這不是問題。問題在於兩個交換機處在不同的VTP域裏,交換機A在RouterSim VTP域,而交換機B在GlobalNet VTP域。如果VTP域的名字不同,那麼這兩個交換機是絕對不會共享VTP信息的。


現在你知道怎樣在交換機中發現VTP域的錯誤配置了,下面我們來看看另外一個例子:


SwitchC#sh vtp status


VTP Version : 2


Configuration Revision : 1


Maximum VLANs supported locally : 64


Number of existing VLANs : 7


VTP Operating Mode : Client


VTP Domain Name : Todd


VTP Pruning Mode : Disabled


VTP V2 Mode : Disabled


VTP Traps Generation : Disabled



當你試圖在交換機C上創建一個新的VLAN時,你會發現你不能夠創建,為什麼呢?在這個例子裏VTP域的名字並不重要,關鍵在於VTP的模式,上面交換機C的VTP模式是client(客户模式),而VTP客户模式不能創建,刪除,增加或者修改VLAN。VTP客户模式的數據庫只保留在RAM裏而不是保存在NARAM中。所以,為了創建一個新的VLAN,首先交換機必須設成VTP server模式。如:



SwitchC(config)#vlan 50


VTP VLAN configuration not allowed when device is in CLIENT mode.



為了解決這個問題我們需要:



SwitchC(config)#vtp mode server


Setting device to VTP SERVER mode


SwitchC(config)#vlan 50


SwitchC(config-vlan)#









Configuring Switching in Our Sample Internetwork



剛才我們已經配置了路由器,現在是配置交換機的時候了。





圖裏的互連網絡有兩台2950連接在一起,我把連接路由器Lab_B的2950交換機命名為2950B,另外一台叫2950C。


我們在VLAN 1上使用172.16.10.0/24網絡,Lab_B路由器的fa0/0接口做inter-VLAN 路由。每個交換機必須要有一個172.16.10.0子網的ip地址來互相通信。


我們也創建了其他的VLAN:VLAN 2使用172.16.20.0/24網絡,VLAN 3使用172.16.30.0/24網絡。


下面我們開始設置交換機的名稱,密碼,標識,接口描述以及ip地址吧:



Switch>en


Switch#config t


Enter configuration commands, one per line. End with CNTL/Z.


Switch(config)#hostname 2950C


2950C(config)#enable secret todd


2950C(config)#line con 0


2950C(config-line)#login


2950C(config-line)#password console


2950C(config-line)#line vty 0 15


2950C(config-line)#login


2950C(config-line)#password telnet


2950C(config-line)#banner motd #


Enter TEXT message. End with the character '#'.


This is my 2950C switch


#


2950C(config)#int f0/1


2950C(config-if)#description Connection to router


2950C(config-if)#interface f0/4


2950C(config-if)#description Connection to 2950B


2950C(config-if)#int f0/5


2950C(config-if)#description 2nd connection to 2950B


2950C(config-if)#int vlan1


2950C(config-if)#ip address 172.16.10.2 255.255.255.0


2950C(config-if)#no shut


2950C(config-if)#exit


2950C(config)#ip default-gateway 172.16.10.1


2950C(config)#^Z


2950C#copy run start


Destination filename [startup-config]? [Enter]


Building configuration...


[OK]


2950C#




上面是2950C交換機的配置,下面我們配置2950B交換機:



Switch>en


Switch#config t


Enter configuration commands, one per line. End with CNTL/Z.


Switch(config)#hostname 2950B


2950B(config)#enable secret todd


2950B(config)#line con 0


2950B(config-line)#login


2950B(config-line)#password console


2950B(config-line)#line vty 0 15


2950B(config-line)#login


2950B(config-line)#password telnet


2950B(config-line)#banner motd #


Enter TEXT message. End with the character '#'.


This is my 2950B switch


#


2950B(config)#


2950B(config)#int f0/4


2950B(config-if)#desc connection to 2950C


2950B(config-if)#int f0/5


2950B(config-if)#desc 2nd connection to 2950C


2950B(config-if)#int vlan 1


2950B(config-if)#ip address 172.16.10.3 255.255.255.0


2950B(config-if)#no shut


2950B(config-if)#exit


2950B(config)#ip default-gateway 172.16.10.1


2950B(config)#exit


2950B#copy run start


Destination filename [startup-config]? [Enter]


Building configuration...


[OK]


2950B#


2950B#ping 172.16.10.2


Type escape sequence to abort.


Sending 5, 100-byte ICMP Echos to 172.16.10.2, timeout is 2 seconds:


.!!!!


Success rate is 80 percent (4/5), round-trip min/avg/max = 1/3/4 ms


2950B#




現在兩台交換機都配置完畢基本的管理性的內容並能互相通信了。下面我們配置連接交換機的端口中繼,然後在路由器上配置VLAN中繼:



2950B#config t


2950B(config)#int f0/1


2950B(config-if)#switchport mode trunk


2950B(config-if)#int f0/4


2950B(config-if)#switchport mode trunk


2950B(config-if)#int fa0/5


2950B(config-if)#switchport mode trunk


2950B(config-if)#




2950C#config t


Enter configuration commands, one per line. End with CNTL/Z.


2950C(config)#int fa0/4


2950C(config-if)#switchport mode trunk


2950C(config-if)#int fa0/5


2950C(config-if)#switchport mode trunk


2950C(config-if)#



現在我們來檢查一下:



2950B#sh int trunk


Port Mode Encapsulation Status Native vlan


Fa0/1 on 802.1q trunking 1


Fa0/4 on 802.1q trunking 1


Fa0/5 on 802.1q trunking 1


[output cut]





現在呢?我們接着要做什麼啊?答案是配置VTP,設置VLAN,和分配端口給VLAN。



2950C#config t


Enter configuration commands, one per line. End with CNTL/Z.


2950C(config)#vtp mode server


Device mode already VTP SERVER.


2950C(config)#vtp domain RouterSim


2950C(config)#vlan 2


2950C(config-vlan)#name Sales


2950C(config-vlan)#vlan 3


2950C(config-vlan)#name Marketing




我們要先配置了VTP信息,然後才劃分VLAN,這樣不容易發生VTP數據庫的問題。


先檢查一下:


2950C#sh vlan brief


VLAN Name Status Ports


---- ----------------- --------- ------------------------------


1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4


Fa0/7, Fa0/8, Fa0/11, Fa0/12


2 Sales active


3 Marketing active


[output cut]




下面我們設置2950C交換機的fa0/2到VLAN 2,fa0/3到VLAN 3。



2950C#config t


2950C(config)#int fa0/2


2950C(config-if)#switchport access vlan 2


2950C(config-if)#int fa0/3


2950C(config-if)#switchport access vlan 3



現在再看看:


2950C#sh vlan brief


VLAN Name Status Ports


---- --------------------- --------- ----------------------------


1 default active Fa0/1, Fa0/4, Fa0/5, Fa0/6


Fa0/7, Fa0/8, Fa0/9, Fa0/10


2 Sales active Fa0/2


3 Marketing active Fa0/3



我們還要配置2950B交換機,需要記住的是要保證VTP信息正確,這樣交換機才能夠共享VLAN信息。我們需要2950B作為VTP客户:


2950B#config t


Enter configuration commands, one per line. End with CNTL/Z.


2950B(config)#vtp domain RouterSim


2950B(config)#vtp mode client


Device mode set to VTP CLIENT.


2950B(config)#^z


2950B#


這裏要注意我們先設置了VTP域的名稱然後才把交換機從VTP server模式改成VTP客户模式。現在我們再檢查一下2950B交換機是否已經從2950C(VTP server)那裏接收了VLAN信息:



2950B#sh vlan brief


VLAN Name Status Ports


---- -------------------- --------- ------------------------------


1 default active Fa0/1, Fa0/2, Fa0/3, Fa0/4


Fa0/7, Fa0/8, Fa0/11, Fa0/12


2 Sales active


3 Marketing active


[output cut]




好的,現在2950B已經收到VLAN的信息了。我們還需要配置一下端口到VLAN:



2950B#config


2950B(config)#int fa0/2


2950B(config-if)#switchport access vlan 2


2950B(config-if)#int fa0/3


2950B(config-if)#switchport access vlan 3




然後檢查:



2950B#sh vlan brief


VLAN Name Status Ports


---- -------------------- --------- ----------------------------


1 default active Fa0/1, Fa0/4, Fa0/5, Fa0/6


Fa0/7, Fa0/8, Fa0/9, Fa0/10


2 Sales active Fa0/2


3 Marketing active Fa0/3





現在兩個交換機都已經配置好了,檢查也沒有問題。現在主機只能夠在同一VLAN裏的其它主機通信,而不能夠和別的VLAN的主機通信,現在我們用路由器或者三層交換機來做VLAN路由:


(在Lab_B路由器上)



Router>enable


Router#config t


Enter configuration commands, one per line. End with CNTL/Z.


Router(config)#hostname Trunkrouter


Trunkrouter(config)#int f0/0


Trunkrouter(config-if)#no ip address


Trunkrouter(config-if)#no shutdown


Trunkrouter(config-if)#int f0/0.1


Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0


Configuring IP routing on a LAN subinterface is only allowed if that


subinterface is already configured as part of an IEEE 802.10, IEEE 802.1Q, or ISL VLAN.


Trunkrouter(config-subif)#encapsulation dot1q 1


Trunkrouter(config-subif)#ip address 172.16.10.1 255.255.255.0


Trunkrouter(config-subif)#int f0/0.2


Trunkrouter(config-subif)#encap dot1q 2


Trunkrouter(config-subif)#ip address 172.16.20.1 255.255.255.0


Trunkrouter(config-subif)#int f0/0.3


Trunkrouter(config-subif)#encap dot1q 3


Trunkrouter(config-subif)#ip address 172.16.30.1 255.255.255.0


Trunkrouter(config-subif)#exit




我在路由器上建立了三個子接口,每個VLAN一個。雖然子接口的號碼用什麼都沒有關係,但是為了便於記憶,還是建議設成和VLAN號碼一樣。還有要注意的是,當我在第一個子接口上設置ip地址時,路由器給出下面的錯誤信息:


Configuring IP routing on a LAN subinterface is only allowed if that subinterface is already configured as part of an IEEE 802.10, IEEE 802.1Q, or ISL VLAN.


這説明了要先設置第一個子接口的封裝類型才能夠為其設置ip地址。




檢查路由器的配置:



Trunkrouter#show run


!


interface FastEthernet0/0


no ip address


no ip directed-broadcast


!


interface FastEthernet0/0.1


encapsulation dot1Q 1


ip address 172.16.10.1 255.255.255.0


no ip directed-broadcast


!


interface FastEthernet0/0.2


encapsulation dot1Q 2


ip address 172.16.20.1 255.255.255.0


no ip directed-broadcast


!


interface FastEthernet0/0.3


encapsulation dot1Q 3


ip address 172.16.30.1 255.255.255.0


no ip directed-broadcast


!





好,看起來一切正常,而所有的主機也能夠相互通信了,哈哈,收工!







Summary



本章介紹了VLAN和思科交換機怎樣實現VLAN,我們知道VLAN可以在一個交換環境中分割廣播域----一個非常重要的功能,這是因為二層交換機只能分割衝突域,默認情況下所有交換機都處在一個大的廣播域裏。我們還學習了通過一個快速以太網端口在交換機間中繼VLAN。


在我們設計網絡並且多個交換機提供不同VLAN時,中繼是一個很重要的技術。


我們同樣學習了VLAN中繼協議(VLAN Trunk Protocol,VTP),一個在中繼中沒有發揮什麼作用的協議,它只是把VLAN的信息發送到一條中繼連接,但是中繼的設置跟VTP無關。


最後我們學習了VTP,中繼和VLAN的配置和檢測故障的例子。



                                   


                                                  16:11 2005-4-9