Transcript CH 8

第8章
第 2 層交換與擴展
樹協定 (STP)
本著作僅授權老師於課堂使用, 切勿置放在網路上
播放或供人下載, 除此之外, 未經授權不得將全部
或局部內容以任何形式重製、轉載、變更、散佈或
以其他任何形式、基於任何目的加以利用。
著作權所有 © 旗標出版股份有限公司
本章重點






8 - 1 第 2 層交換技術時期之前
8 - 2 交換服務
8 - 3 擴展樹協定 (STP)
8 - 4 設定 Catalyst 交換器
8 - 5 Cisco 網路助理 (CNA)
8 - 6 摘要
2
第 2 層交換與擴展樹協定 (STP)



Cisco 提到交換時, 除非特別說明, 否則他們指
的就是第 2 層交換。
第 2 層交換是利用區域網路上之裝置的硬體位
址來分割網路的處理程序, 因為您已經有基本概
念了, 所以接下來就讓我們專注於第 2 層交換的
部份, 確定它是如何運作的。
假設您已經知道交換是要將較大的碰撞網域
(collision domain) 分割成較小的區域, 而碰撞網
域則是含有分享相同頻寬之 2 或 2 部以上裝置
的網段 (network segment)。
3
第 2 層交換與擴展樹協定 (STP)




集線器網路就是這類拓樸的典型例子。
但因為交換器的每個埠實際上都是在它自己的
碰撞網域中, 您只要將集線器換成交換器, 就可
得到一個優良許多的乙太區域網路!
交換器真的已經改變了網路的設計與實作方式,
如果正確地實作純粹的交換式設計, 絕對會產生
一個符合成本效益的、復原性佳的互連網路
(internetwork)。
本章中, 我們對於應用交換技術之前與之後的網
路設計, 進行評估與比較。
4
第 2 層交換與擴展樹協定 (STP)




遶送協定 (例如第 6 章所學的 RIP) 在網路層有
防止網路無窮迴圈的程序。
然而, 如果交換器之間有冗餘的實體鏈路, 遶送
協定根本無法做任何事來阻止資料鏈結層的迴
圈發生 - 這正是需要發展擴展樹協定的原因
- 阻止在第 2 層交換式互連網路中發生迴圈。
這個重要協定的特點, 以及它在交換式網路中的
運作方式, 也是本章會深入討論的重要主題。
我們會利用 3 部交換器來學習如何設定交換網
路, 然後第 9 章再延續這些設定。
5
8 - 1 第 2 層交換技術時期之前


在討論如何用交換來對公司的區域網路分段之
前, 先讓我們退回去看看之前的網路情況。
在出現區域網路交換技術之前, 典型的網路設計
看起來就類似圖 8.1 的網路。
6
第 2 層交換技術時期之前
7
第 2 層交換技術時期之前



圖 8.1 的設計稱為疊起來的骨幹 (collapsed
backbone), 因為所有主機都需要連到總部骨幹
上才能抵達其他的網路裝置 (區域網路與大型主
機)。
在更早之前, 也就是在如圖 8.1 所顯示的網路之
前 - 有路由器與集線器等實體的分段裝置之前,
有所謂的大型主機 (mainframe) 網路。
這種網路包括大型主機 (IBM、Honeywell、
DEC 等)、控制器、與連結控制器的純終端機,
所有的遠端網點都利用橋接器 (bridge) 連到大
型主機。
8
第 2 層交換技術時期之前




然後 PC 開始大出風頭, 大型主機連到乙太網路
或符記環的區域網路, 也就是伺服器安裝的地方。
這些伺服器通常是 O / S2 或區域網路管理員
(LAN manager), 因為這是在前 NT 的時代。
每一層樓都利用同軸電纜或雙絞線連到企業骨
幹, 然後再連到路由器。
PC 上跑模擬軟體程式, 讓他們能連接主機服務,
使得這些 PC 可以同時存取大型主機的服務與
區域網路。
9
第 2 層交換技術時期之前



最後 PC 則厲害到應用程式的開發者能比以前
更有效地將應用程式移植到 PC 上 - 這種進步
顯著地降低網路化的價格, 讓業務非常快速地成
長。
在 1980 年代晚期與 1990 年代早期, 當 Novell
變得更普及時, 大量的 OS / 2 與區域網路管理
員伺服器由 NetWare 伺服器取代, 這使得乙太
網路更加普及。
因為它就是 Novell 3.x 伺服器用來與主從式
(client / server) 軟體進行通訊的媒介。
10
第 2 層交換技術時期之前



這就是圖 8.1 的網路如何演變出來的故事, 不過
有個問題於是產生了- 企業骨幹不斷地成長。
而當它成長時, 網路服務也就越來越慢。
另外有個更大的原因是, 就在網路交通大幅成長
的同時, 區域網路服務甚至需要更快的服務, 於
是網路就變得完全飽和了。
每個人都急於拋棄麥金塔與大型主機服務所用
的終端機, 轉向小巧的 PC, 因而可以更容易地
連上企業骨幹與網路服務。
11
第 2 層交換技術時期之前



所有這些都發生在網際網路的快速發展之前, 所
以公司中的每個人都需要存取企業的網路服務。
為什麼?因為沒有網際網路, 所有網路服務都是
內部的。
於是這導致一個急切的需求, 也就是如何分割一
個龐大而繁忙、與老舊緩慢之路由器連結的企
業網路。
12
第 2 層交換技術時期之前



首先, Cisco 只是製造更快的路由器 (不必懷疑
這點), 但卻需要分更多的網路段, 特別是在乙太
區域網路上。
快速乙太網路的發明也非常好, 而且很有用, 但
它仍然無法解決網路分段的需求。
有一種稱為橋接器的裝置卻能分割網路, 我們首
先在網路中使用他們來分割碰撞網域。
13
第 2 層交換技術時期之前



只是橋接器乃受限於連接埠的數量, 以及他們所
能提供的其他網路服務, 而這正是第 2 層交換所
能彌補的地方。
這些交換器分割每個連接埠上的碰撞網域 - 就
像橋接器一樣, 而且交換器可提供數百個埠號!
這種早期的交換式區域網路看起來就像圖 8.2
所示。
14
第 2 層交換技術時期之前
15
第 2 層交換技術時期之前




每部集線器連到一個交換埠, 這種創新大大地改
善了網路。
現在, 不再讓每棟大樓擠入相同的網域, 而是每
部集線器變成它自己個別的碰撞網域。但仍有
一個難題 - 交換埠仍然很新, 因此超級貴。
因為這樣, 只要在每層樓配置一部交換器這件事
尚未發生 - 至少現在還沒有。
多虧一些熱愛這些技術的人, 交換器的價格已經
大幅下滑, 所以現在讓用戶插上交換埠是一件很
棒、而且也可行的事。
16
第 2 層交換技術時期之前




所以, 如果您要進行網路設計與實作, 納入交換
式服務是一定要的。
典型的當代網路設計看起來如圖 8.3 所示, 這是
一個完全的交換式網路設計與實作。
但您會說 "我仍然看到有一部路由器在那兒!"
是的, 這不是幻想 - 是仍然該有一部路由器在
那兒。
但它的任務已經改變, 現在它的目的不再是做實
體的網路分段, 而是產生與處理邏輯的網路分割。
17
第 2 層交換技術時期之前

這些邏輯的網路分段稱為虛擬區域網路 (VLAN),
我們會在本章與下一章深入地加以討論。
18
8 - 2 交換服務



橋接器使用軟體來產生與管理過濾表格 (filter
table), 而交換器則以應用專屬的積體電路
(Application-Specific Integrated Circuits, ASIC)
來建構與維護他們的過濾表格。
不過您仍然可以將第 2 層交換器想成是多埠號
的橋接器, 因為他們基本的存在理由是相同的:
分割碰撞網域。
第 2 層交換器與橋接器的速度比路由器快, 因為
他們不需要花時間檢查網路層的標頭資訊。
19
交換服務




他們只是檢查訊框的硬體位址, 以決定要轉送、
廣播、或丟棄。
不像集線器那樣, 交換器會在每個埠上產生各自
專屬的碰撞網域, 並提供獨立的頻寬。
圖 8.4 顯示有 5 部主機連上一部交換器 - 所有
主機都以 10 Mbps 的半雙工 (half-duplex) 連上
伺服器。
與集線器不同的是, 每部主機與伺服器都有 10
Mbps 的專屬通訊。
20
交換服務
21
交換服務

第 2 層交換提供以下的特性:





硬體式的橋接 (ASIC)
線路速度 (wire speed)
低延遲 (latency)
低成本
第 2 層交換會如此有效率的原因, 是因為它不會
對資料封包進行任何修改, 交換器裝置只會讀取
將封包封裝起來的訊框, 這使得交換程序比遶送
程序還快, 而且比較不易出錯。
22
交換服務



如果您使用第 2 層交換來連結工作群組, 並且分
割網路 (分割碰撞網域), 那麼與傳統的遶送網路
相比, 您會有一個階層較少、且含有許多網段的
網路設計。
此外, 第 2 層交換會增加每個使用者的頻寬, 因
為每條進入交換器的連線 (界面) 都有它自己的
碰撞網域, 這種特性使得您能夠連接多部裝置到
每個界面。
以下幾節將更深入地探討第 2 層交換技術。
23
第 2 層交換的限制



既然我們常常將第 2 層交換與橋接式網路視為
同一類, 那麼也會認為它與橋接式網路一樣有相
同的議題。
記住, 如果我們正確地設計網路, 橋接器是很好
且很有幫助的東西, 請記住他們的特性與限制。
要設計好有橋接器的網路, 有 2 個非常重要的考
量:

絕對必須正確地分割碰撞網域。
24
第 2 層交換的限制



要建置有效果的橋接式網路, 正確的方式是要確
定他們的用戶有 80% 的時間都是在自己的區域
網段上。
橋接式網路會分割碰撞網域, 但請記住, 該網路
仍然是一個大的廣播網域。
預設上第 2 層交換器或橋接器都不會分割廣播
網域 - 這不只會限制網路規模與網路的成長空
間, 也且也會降低整體的效能。
25
第 2 層交換的限制


廣播與多點傳播 (multicast), 以及緩慢的擴展樹
收斂速度都可能在網路成長時帶來重大的災難
。
這也是為什麼在互連網路中, 第 2 層交換器與橋
接器無法完全取代路由器 (第 3 層裝置) 的主要
原因。
26
橋接與區域網路交換

第 2 層交換器真的就只是擁有更大量連接埠的
橋接器, 但您應該要記住, 他們還是有一些重要
的差異:



橋接器是以軟體為基礎, 而交換器是以硬體為基
礎的, 因為他們使用 ASIC 晶片來幫忙進行過濾
的決定。
交換器可視為多個埠的橋接器。
每個橋接器只能有一份擴展樹, 而交換器則可以
有許多。
27
橋接與區域網路交換




比起大部分的橋接器, 交換器有更多數目的埠。
橋接器與交換器都會轉送第 2 層廣播。
橋接器與交換器藉由檢查所接收之每個訊框的來
源位址, 以學得 MAC 位址。
橋接器與交換器都是根據第 2 層位址來進行轉
送的決定。
28
第 2 層之 3 個交換功能

第 2 層交換有 3 個不同的功能 (您必須牢記!):
學習位址、決定轉送或過濾、以及避免迴圈。


學習位址第 2 層交換器與橋接器會記住它從界
面接收之每個訊框的來源硬體位址, 然後輸入這
種資訊到一個稱為轉送 / 過濾表的 MAC 資料庫。
決定轉送或過濾當交換器從界面收到訊框時, 會
檢視其目的硬體位址, 找尋它在 MAC 資料庫中
所學到的離開界面, 該訊框只會從特定的目的埠
轉送出去。
29
第 2 層之 3 個交換功能



避免迴圈如果為了達到冗餘的目而在交換器之間
建置多重連線, 則有可能發生網路迴圈。
擴展樹協定 (Spanning Tree Protocol, STP) 就
是讓我們在提供網路冗餘性的同時、又能防止網
路迴圈。
以下仔細地說明這些功能。
30
學習位址

交換器一開
機時, 其
MAC 轉送 /
過濾表是空
的, 如圖 8.5
所示。
31
學習位址



當裝置傳送訊框, 而界面收到訊框時, 交換器會
將訊框的來源位址放入 AMC 轉送 / 過濾表中,
以記住傳送端裝置是位於那個界面。
然後交換器別無選擇, 只能將這個訊框往其來源
埠之外的每個埠廣播到網路上, 因為這時還不知
道目的裝置實際上位於何處。
如果有個裝置回答這個廣播的訊框, 並傳送一個
訊框回來, 之後交換器就會取得該訊框的來源位
址, 將該 MAC 位址放入資料庫中, 並且將該位
址與收到該訊框的界面對應在一起。
32
學習位址



之後交換器就會在它的過濾表中有這 2 個相關
的 MAC 位址, 於是這兩部裝置就可進行點對點
的連線。
交換器不再需要如第一次那樣地廣播訊框, 因為
現在這種訊框可以、而且只會在這 2 部裝置之
間轉送;這也是為什麼第 2 層交換器比集線器
好的原因。
在集線器的網路中, 每次所有的訊框都會轉送到
所有的連接埠。圖 8.6 展示交換器如何建構
MAC 資料庫的程序。
33
學習位址
34
學習位址



您可從圖中看到有 4 部主機連結一部交換器, 當
交換器開機時, 它的 MAC 位址轉送 / 過濾表是
空的, 就跟圖 8.5 一樣。
但是當主機開始通訊之後, 交換器會將每個訊框
的來源硬體位址, 以及它所對應的埠號一起放入
表格中。
讓我們以一個範例來展示轉送 / 過濾表是如何
產生的。
35
學習位址




1. A 主機送一個訊框給 B 主機, A 主機的 MAC
位址是 0000.8C01.000A, 而 B 主機的 MAC 位
址是 0000.8C01.000B。
2. 交換器從 E0 / 0 界面收到訊框, 並且將來源位
址放入 MAC 位址表中。
3. 因為目的位址不在 MAC 資料庫中, 於是將訊
框轉送到所有的界面 - 除了來源埠之外。
4. B 主機收到該訊框並回應給 A 主機, 交換器從
E0 / 1 收到這個訊框, 並且將其來源硬體位址放
入 MAC 資料庫中。
36
學習位址



5. A 主機與 B 主機現在可以進行點對點的連線,
而且只有這兩部裝置可收到訊框。
C 與 D 主機將無法看到這些訊框, 資料庫中也找
不到他們的 MAC 位址, 因為他們還不曾傳送任
何訊框給交換器。
如果 A 與 B 主機在一定的時間內都沒有與交換
器進行任何通訊, 則交換器會清掉他們在資料庫
的記錄, 以儘可能地保持最新的資料。
37
轉送 / 過濾決策




當訊框抵達交換器界面時, 會以它的目的硬體位
址與轉送 / 過濾 MAC 資料庫進行比較。
如果目的硬體位址是已知的, 而且列在資料庫中,
交換器就會將訊框傳送到對應的離開界面。
除了該目的界面之外, 訊框並不會轉送給任何其
他的界面, 於是保留了其他網段的頻寬;這種機
制我們稱之為訊框過濾 (frame filtering)。
但如果目的硬體位址沒有列在 MAC 資料庫中,
則該訊框會廣播至所有運作中的界面, 除了接收
該訊框的界面之外。
38
轉送 / 過濾決策




如果有個裝置回答該廣播的訊框, 則會以該裝置
的位置 (界面) 來更新 AMC 資料庫。
如果有主機或伺服器在區域網路上傳送廣播封
包, 則根據預設, 交換器會將訊框廣播到除了來
源埠以外的所有埠。
請記住, 交換器只會產生較小的碰撞網域, 但預
設上它仍然是一個大的廣播網域。
在圖 8.7 中, A 主機傳送資料訊框給 D 主機。當
交換器收到來自 A 主機的訊框時, 它會做什麼呢?
39
轉送 / 過濾決策
40
轉送 / 過濾決策



因為 A 主機的 MAC 位址並不在轉送 / 過濾表
中, 交換器會將其來源位址和埠號加入 MAC 位
址表中, 然後將訊框轉送給 D 主機。
如果 D 主機的 MAC 位址也不在轉送 / 過濾表
中, 則交換器會將訊框從 Fa0 / 3 之外的所有埠
廣播出去。
現在讓我們看看 show mac address-table 的
輸出。
41
轉送 / 過濾決策

假設前面的交換器接收到具有下列 MAC 位址
的訊框:
42
轉送 / 過濾決策



交換器如何處理這個訊框呢?答案是:它會在
MAC 位址表中找到目的 MAC 位址, 然後就只
會從 Fa0 / 3 將訊框轉送出去。
請記住如果目的 MAC 位址無法在轉送 / 過濾表
中找到, 它就會將訊框從交換器所有的埠轉送出
去, 以尋找目的裝置。
既然我們已經瞭解 MAC 位址表, 以及交換器如
何將主機位址新增到轉送過濾表中, 那我們要如
何保護它不受到未經授權的存取呢?
43
埠的安全性功能



您要如何阻止別人將一台主機插入您交換器的
一個埠中 - 或者更糟的是將一台集線器、交換
器、或存取點插入辦公室的乙太網路插孔呢?
根據預設, MAC 位址會動態地出現在 MAC 轉
送 / 過濾表中。您可以使用埠的安全性功能來
阻止它們。
下面是可能的做法:
44
埠的安全性功能


您可以從前面的輸出中清楚看到 switchport
port-security 命令具有 4 個選項。
筆者個人喜歡 port-security 命令, 因為它讓我
們可以輕易地控制網路上的使用者。
45
埠的安全性功能


您可以使用 switchport port-security MAC 位址 MAC - 位址命令來將個別的 MAC 位址指
定給個別的交換器埠, 但是如果您選擇這樣做,
您最好要有很多時間!
如果您希望將交換器埠設定為每個埠只能有一
台主機, 而且在違反此項規則時關閉這個埠, 則
可以使用下列命令:
46
埠的安全性功能




這些可能是最常用的命令, 因為它們能夠防止使
用者連到辦公室中的交換器或存取點。
Maximum 設定為 1 表示該埠只能使用 1 個
MAC 位址;如果使用者嘗試在這個網段中加入
另一台主機, 這個埠就會被關閉。
如果發生這種情況, 您必須要手動進入交換器,
並且使用 no shutdown 命令來開啟這個埠。
筆者最喜歡的命令之一是 sticky 命令。它不只
會執行很酷的功能, 而且還有個很酷的名字!
47
埠的安全性功能

您可以在 mac-address 命令之下找到這個命
令:

基本上, 它可以提供靜態 MAC 位址安全性, 而
不必輸入網路上每個人的 MAC 位址。酷斃了!
48
埠的安全性功能



在前面的例子中, 前 2 個進入埠中的 MAC 位址
會被黏住, 成為靜態位址, 並且在 aging 命令所
指定的期間之內一直維持不變。
為什麼這裡筆者要設 2 呢?因為筆者需要 1 個
給 PC / 資料使用, 另 1 個給電信 / 電話使用。
下一章關於 VLAN 的討論中, 會更詳細談到這
種組態設定。
49
避免迴圈



在交換器之間建置冗餘的鏈路是不錯的設計, 因
為他們有助於避免因單一條鏈路停止運作而全
然斷線的情況。
這聽起來不錯, 但雖然冗餘的鏈路可能非常有幫
助, 他們所引起的問題卻經常比他們所解決的問
題還多。
這是因為訊框可以同時從所有的冗餘鏈路廣播
出去, 於是產生了網路迴圈與其他的壞事。
50
避免迴圈

以下列出一些最嚴重的問題:


如果沒有採取任何機制來避免迴圈, 交換器會永
無止境地將廣播封包廣播至整個互連網路, 有時
我們稱之為廣播風暴 (broadcast storm)。
圖 8.8 展示了如何將廣播封包傳播至整個互連網
路, 請您觀察訊框是如何持續地透過互連網路之
實體網路媒介來廣播的。
51
避免迴圈
52
避免迴圈




一個裝置可能收到好幾份相同的訊框, 因為該訊
框可能同時從不同的網段抵達。
圖 8.9 展示了如何同時從多個網段抵達一整串的
訊框。
圖中的伺服器傳送一個單點傳播 (unicast) 的訊
框到 C 路由器, 因為它是一個單點傳播的訊框,
所以 A 交換器轉送該訊框, 而 B 交換器也提供相
同的服務 - 它會轉送廣播封包。
這是不好的, 因為它代表 C 路由器會收到單點傳
播的訊框 2 次, 導致網路上有多餘的額外負擔。
53
避免迴圈
54
避免迴圈



您可能已經想到這一點:MAC 位址過濾表格完
全混淆了裝置的位置, 因為交換器可能從一個以
上的鏈路收到該訊框。
甚至於, 迷惑的交換器可能會不斷地以某個來源
硬體位址的位置來更新 MAC 過濾表, 但卻無法
從那個位置轉送該硬體位址的訊框。
最令人討厭的一件事是, 網路的任何地方都可能
會產生多重迴圈, 亦即迴圈可能發生在其他的迴
圈之中, 而且如果也發生廣播風暴, 則網路將無
法執行訊框交換 - 就是這樣!
55
避免迴圈


所有這些問題會帶來災難 (或至少接近了), 而且
絕對是一定要避免、或至少要修正的, 這也是我
們需要擴展樹協定 (Spanning Tree Protocol,
STP) 的地方。
STP 的發展就是要解決以上所說的每個問題。
56
8 - 3 擴展樹協定 (STP)



有家被 Compaq 公司 (後來 Compaq 又被 HP
併購了) 併購的公司 Digital Equipment
Corporation (DEC) 建立了原始版本的擴展樹協
定 (Spanning Tree Protocol, STP)。
後來 IEEE 建立了它自己的 STP 版本, 稱為
802.1D。
不過壞消息是, 所有的 Cisco 交換器預設上都執
行 IEEE 802.1D 版的 STP, 這與 DEC 版並不相
容。
57
擴展樹協定 (STP)



好消息是, Cisco 的新型交換器正往另一個產業
標準推進 - 802.1W。
本節也會介紹這個版本的 STP, 不過首先讓我們
先來定義一些重要的 STP 基礎。
STP 的主要任務是要預防在第 2 層的網路 (橋
接器或交換器) 上發生網路迴圈, 它警覺地監視
網路以找尋所有的鏈路, 藉由關閉冗餘的鏈路來
確定迴圈不會發生。
58
擴展樹協定 (STP)




STP 使用擴展樹演算法 (Spanning-Tree
Algorithm, STA), 首先產生一個拓樸資料庫, 然
後搜索出冗餘鏈路, 並拿掉它。
執行 STP 之後, 訊框只能在良好的、由 STP 挑
選的鏈路上轉送。
以下幾節將介紹擴展樹協定的核心。
對於圖 8.10 所示的網路, STP 是必要的。
59
擴展樹協定 (STP)


圖 8.10 中有一個含有冗餘拓樸 (交換迴圈) 的
交換式網路。
如果沒有任何第二層的機制來停止網路迴圈, 就
會有我們之前所討論的問題:廣播風暴與多份
重複的訊框。
60
擴展樹專用術語

在討論 STP 如何在網路中運作的細節之前, 您
需要瞭解一些基本的概念與術語, 以及他們彼此
在第 2 層交換式網路中的關係。


根橋接器 (root bridge) 根橋接器是一部有最佳
橋接器 ID 的橋接器, STP 的重點是網路中的所
有交換器要選出一部根橋接器, 以成為網路的焦
點。
網路中的所有其他決定 - 例如那個埠要凍結,
那個埠要設在轉送模式 - 都是從根橋接器的觀
點來進行的。
61
擴展樹專用術語



BPDU 交換器用來交換資訊, 以進行根交換器的
挑選及網路的後續設定。
每部交換器會對他們傳送給鄰居的, 以及他們從
其他鄰居收到之橋接協定資料單元 (Bridge
Protocol Data Unit, BPDU) 中的參數進行比較。
橋接器 ID 橋接器 ID 是 STP 記錄網路之所有交
換器的方式, 它是由橋接器的優先權 (預設上所
有的 Cisco 交換器是 32, 768) 與 MAC 位址共
同決定的。
62
擴展樹專用術語





橋接器 ID 最低的橋接器會成為網路中的根橋接
器。
非根橋接器根橋接器以外的所有橋接器。
非根橋接器與所有橋接器交換 BPDU, 更新所有
交換器上的 STP 拓樸資料庫, 預防迴圈, 並提供
防禦鏈路故障的措施。
埠成本當兩部交換器之間有多條鏈路, 而且沒有
任何鏈路是根埠時, 埠成本可用來決定最佳路徑。
鏈路的成本乃由鏈路的頻寬所決定。
63
擴展樹專用術語




根埠 (root port) 根埠是直接與根橋接器相連的
鏈路, 或抵達根橋接器的最短路徑。
如果有一條以上的鏈路連結到根橋接器, 則藉由
檢查每條鏈路的頻寬來決定埠成本, 並以最低成
本的埠設為根埠。
如果有多條鏈路的成本相同, 則使用宣傳橋接器
ID 較低的橋接器, 但因為多條鏈路可能都是來自
於同一部裝置, 這時就使用最低的埠號。
委任埠 (designed port) 因為有最佳 (低) 成本
而被選定的埠 - 委任埠會被標示成轉送埠。
64
擴展樹專用術語



非委任埠成本比委任埠高的埠, 這種埠會放入凍
結模式 (blocking mode) - 非委任埠不是轉送埠。
轉送埠 (forwarding port) 轉送埠可轉送訊框。
凍結埠 (blocking port) 凍結埠不會轉送訊框,
以預防迴圈;但凍結埠仍會聆聽訊框。
65
擴展樹的運作



如同前面所說的, STP 的工作是要搜索網路中
的所有鏈路, 關閉任何冗餘的鏈路, 以避免發生
網路迴圈。
STP 為了達成這樣的任務, 首先要挑選根橋接
器, 透過所有的埠轉送, 並且扮演 STP 網域中所
有其他裝置的參考點。
一旦所有交換器協議出誰是根橋接器之後, 每部
橋接器必須找出自己的一個根埠, 而且僅只一個
專用的根埠。
66
擴展樹的運作



對於兩部交換器之間的所有鏈路, 必須有一個,
而且僅只一個委任埠 - 提供最高頻寬來抵達根
橋接器之鏈路上的埠。
請記住, 橋接器可以經由很多其它的橋接器來抵
達根橋接器, 這表示它所用的不一定是最短路徑,
但一定是最快 (最高頻寬) 的路徑。
很明顯地, 根交換器上的每個埠都會是委任埠。
67
擴展樹的運作



然後任何埠若不是根埠或委任埠 - 亦即它是非
根埠、非委任埠 - 就會被放入凍結模式, 因此
能切斷交換迴圈。
如果只有一個人在進行決策, 事情似乎會進行地
比較順利。
同理, 網路中只能有一部根橋接器。下節將更詳
細地討論如何挑選根橋接器。
68
挑選根橋接器




在 STP 的領域中, 橋接器 ID 的作用是要挑選根
橋接器, 以及決定根埠。這個 ID 有 8 個位元組
的長度, 包括裝置的優先權與 MAC 位址。
執行 IEEE STP 版的所有裝置, 其預設優先權是
32, 768。
要決定根橋接器, 必須結合每部橋接器的優先權
與 MAC 位址。
如果兩部交換器或橋接器的優先權一樣, 則他們
的 MAC 位址將成為勝負的關鍵, 決定誰有最低
(佳) 的 ID。
69
挑選根橋接器




例如, 如果兩部交換器 A 與 B 都使用預設的優
先權 32, 768, 則以他們的 MAC 位址來決定。
如果 A 交換器的 MAC 位址是 0000.0C00.1111,
而 B 交換器的 MAC 位址是 0000.0C00.2222,
則 A 交換器將成為根橋接器。
您一定要記住, 在挑選根橋接器時, 值越低越好。
根據預設, 橋接器或交換器每隔 2 秒就會從所有
作用中的埠傳送出 BPDU, 而含有最低 (佳) 橋
接器 ID 的橋接器就會被挑選為根橋接器。
70
挑選根橋接器




您可以降低橋接器的 ID, 使得它成為根橋接器。
這種功能在大型的交換式網路中是很重要的 -
它確保我們能選出最佳路徑。
圖 8.11 是具有冗餘交換路徑的典型交換網路。
首先, 讓我們找出哪台交換器是根橋接器;接著
我們可以透過改變交換器的優先權來將非根橋
接器變成根橋接器。
71
挑選根橋接器


檢視圖 8.11, 可以看出 A 交換器是根橋接器, 因
為它具有最低的橋接器 ID。
B 交換器必須關閉它連到 A 交換器的一個埠, 以
預防發生交換迴圈。
72
挑選根橋接器




請記住即使 B 交換器不從凍結的埠進行傳送,
它仍會透過它接收 - 包含 BPDU。
STP 要決定關閉 B 交換器的哪個埠時, 首先要
檢查每條鏈路上的頻寬, 然後關閉具有最低頻寬
值的鏈路。
因為 A 交換器和 B 交換器間的鏈路都是 100
Mbps, 所以 STP 通常會關閉較高的埠號, 但未
必一定如此。
在本例中, 12 高於 11, 所以埠號 12 會被置於凍
結模式。
73
挑選根橋接器




要選擇根橋接器, 最佳的方式就是更改預設的優
先權。
這是很重要的, 因為您一定會希望網路中的核心
交換器 (最靠近網路核心的那一部) 能成為根橋
接器, 因為這樣 STP 才會快速地收斂。
讓我們來娛樂一下, 並且讓 B 交換器成為網路
的根橋接器。
下面是 B 交換器的輸出, 顯示預設的優先權。
我們使用的是 show spanning-tree 命令。
74
挑選根橋接器

這邊有兩件事值得注意:B 交換器正在執行
IEEE 801.d 協定, 而且第一個輸出 (RootID) 是
交換網路的根橋接器資訊。
75
挑選根橋接器




這邊有兩件事值得注意:B 交換器正在執行
IEEE 801.d 協定, 而且第一個輸出 (RootID) 是
交換網路的根橋接器資訊。
但它並不是 B 交換器。B 交換器連到根橋接器
的埠 (稱為根埠) 為 1 號埠。
橋接器 ID 是真正關於 B 交換器和 VLAN 1 (表
示為 VLAN0001) 的擴展樹資訊 - 每個 VLAN
都可以有不同的根橋接器, 雖然這相當少見。
上面也列出 B 交換器的 MAC 位址, 您可以看到
它跟根橋接器的 MAC 位址並不相同。
76
挑選根橋接器





B 交換器的優先權是 32, 768 - 所有交換器的
預設值。
您可以看到上面列出 32769;這是因為加上了
VLAN ID, 所以 VLAN 1 會顯示為 32769。
VLAN 2 是 32770, 依此類推。
如前所述, 您可以改變優先權以強迫某台交換器
成為 STP 網路中的根, 所以現在讓們來設定 B
交換器吧。
使用下列命令來改變 Catalyst 交換器上的橋接
器優先權。
77
挑選根橋接器



您可以將優先權設定為 0 到 61440。
設定為 0 表示這台交換器將永遠扮演根橋接器,
而橋接器優先權的設定是以 4096 為單位遞增。
如果您想要設定某台交換器做為網路中所有
VLAN 的根橋接器, 就必須針對每個 VLAN 改變
該交換器的優先權, 而 0 則是您可以使用的最小
優先權。
78
挑選根橋接器


將所有交換器優先權都設為 0 是十分不好的做
法。
檢視下面的輸出 - 因為我們已經將 B 交換器
對 VLAN 1 的優先權設為 4096, 於是成功地讓
這台交換器成為根橋接器:
79
挑選根橋接器


現在 Root ID 與 Bridge ID 的 MAC 位址一樣了,
表示 B 交換器現在已經是根橋接器了。
show spanning-tree 命令非常重要;我們在
本章後面還會再用到它。
80
擴展樹的埠狀態

執行 STP 的橋接器或交換器上的埠可變換 5 種
不同的狀態:



凍結 (blocking) 凍結埠不會轉送訊框, 它只是聆
聽 BPDU。凍結狀態的目的是為了要避免使用
會產生迴圈的線路。
交換器一開機時, 所有埠的預設都是處於凍結狀
態。
聆聽 (listening) 這種埠在傳送資料訊框之前先
聆聽 BPDU, 以確定網路上沒有迴圈發生。處於
聆聽狀態的埠準備好要轉送資料訊框, 但不會產
生 MAC 位址表。
81
擴展樹的埠狀態




學習 (learning) 這種交換埠會聆聽 BPDU, 並學
習交換式網路中的所有線路。處於學習狀態的埠
會產生 MAC 位址表, 但不會轉送資料訊框。
轉送延遲代表的是一個埠從聆聽模式轉換到學習
模式所需的時間。預設是 15 秒, 您可以在
show spanning-tree 的輸出中看到。
轉送 (forwarding) 這種埠會收送交換埠上的所
有資料訊框。
如果某個埠在學習狀態結束時仍然是委任埠或根
埠, 就會進入這個狀態。
82
擴展樹的埠狀態




關閉 (disabled) (管理上) 處於關閉狀態的埠不
會參與訊框轉送或 STP。
處於關閉狀態的埠實質上是沒有在運作的。
交換埠通常若不是處在凍結、就是在轉送狀態。
轉送埠是因為通往根橋接器的成本最低而決定
出來的, 但如果網路經歷了拓樸的異動 (因為有
故障鏈路或有人新增交換器), 就會發現交換器
上的埠處於聆聽與學習狀態。
83
擴展樹的埠狀態



如之前所說的, 凍結埠是一種預防網路迴圈的策
略, 一旦交換器決定了通往根橋接器的最佳路線,
所有其他的埠就會進入凍結模式。
凍結埠仍然可以收到 BPDU - 他們只是不會送
出任何訊框。
如果交換器因為拓樸的異動而決定一個凍結埠
現在應該成為委任埠或根埠, 它就會進入聆聽模
式, 檢視所有收到的 BPDU, 以確認一旦該埠進
入轉送模式後並不會產生迴圈。
84
收斂



當橋接器與交換器上的所有埠都已經轉換到轉
送埠或凍結埠時, 就是達成收斂。除非達成收斂,
否則沒有資料能被轉送。
在資料可再被轉送之前, 所有裝置都必須更新過。
是的 - 您沒有看錯:當 STP 正在轉換時, 所有
主機資料都會停止傳送!
所以如果您不想丟掉工作, 可千萬要確定您的交
換網路設計相當良好, 能夠讓 STP 迅速地收斂。
85
收斂

圖 8.12 是您在設計和實作交換網路時, 一些讓
STP 能有效率收斂的重要考量。
86
收斂



為了確認所有的裝置有相同的資料庫, 收斂是非
常重要的, 但這可能要花不少時間。
從凍結模式轉換到轉送模式通常要花 50 秒, 我
們並不建議您更改預設的 STP 計時器 (但如果
需要的話, 您可以調整那些計時器)。
藉由以階層方式建立實體的交換器設計, 如圖
8.12, 您可以將核心交換器當作 STP 的根橋接
器;這會讓 STP 很快地收斂。
87
收斂


因為在典型的擴展樹拓樸中, 交換器的埠從凍結
到轉送所需的收斂時間是 50 秒, 所以可能會造
成伺服器或主機的逾時問題 - 例如當您重新開
機的時候。
要解決這個問題, 您可以使用 PostFast 關閉個
別埠上的擴展樹。
88
擴展樹的 PortFast



如果您有伺服器或其他裝置連到交換器, 而且您
確定它在 STP 關閉時也不會造成交換迴圈, 則
可以在這些埠上使用稱為 portfast 的東西。
使用 portfast 表示當 STP 在收斂過程中, 這個
埠並不需要花費平常的 50 秒來進入轉送模式。
下面是這個命令 - 它們相當簡單:
89
擴展樹的 PortFast



我們還沒討論過主幹埠, 但基本上, 它們是用來
將交換器連在一起, 並且在它們之間傳遞 VLAN
資訊。
您必須特別告訴 portfast 是否要在主幹埠上開
啟它。這並不是典型的組態設定, 因為交換器間
的埠通常都應該執行 STP。
所以讓我們來看看當我們在界面上開啟 portfast
時所得到的訊息:
90
擴展樹的 PortFast


f0 / 1 埠開啟了 portfast, 但是請注意您也得到一
個相當長的訊息, 告訴您要小心。
最後要告訴您的一個有用的界面命令是 range
命令, 它可以在交換器上協助您同時設定多個埠。
下面是個例子:
91
擴展樹的 PortFast



前面的 range 命令讓我們只要輸入一個命令,
就可以將所有 12 個交換器埠都設定為 portfast
模式。
當然囉, 希望我們沒有建立任何迴圈。同樣地,
對於 portfast 命令要特別小心。
另外, 還希望您知道 interface range 命令可以
與任何命令一起搭配使用。例如剛剛就是使用
它和 portfast 命令來做為範例。
92
擴展樹的 UplinkFast



UplinkFast 是 Cisco 特有的功能, 可以在有鏈路
故障的情況下改善 STP 的收斂時間。跟使用
portfast 一樣, 使用這個命令要特別小心。
UplinkFast 功能的設計是要在交換器具有至少
一個替代 / 備援根埠 (處於凍結狀態的埠) 的交
換環境下執行。
這是為什麼 Cisco 要建議只有在具有凍結埠、
而且通常是在存取層的交換器才開啟
UplinkFast。
93
擴展樹的 UplinkFast



UplinkFast 讓交換器能夠在主要鏈路故障之前,
就先找出通往根橋接器的替代路徑。
這表示如果主要鏈路故障時, 次要鏈路可以更快
地啟用 - 該埠不用等待正常的 50 秒 STP 收
斂時間。
因此, 如果您是執行 802.1d STP, 而且在存取層
交換器上有冗餘的鏈路, 您絕對會希望開啟
UplinkFast。
94
擴展樹的 UplinkFast


但是不要在不清楚替代 / 備援根鏈路之拓樸的
情況下貿然在交換器上使用。
替代 / 備援根鏈路在 Cisco 多層式設計中通常
是使用在分送和核心層的交換器中。
95
擴展樹的 BackboneFast



UplinkFast 是用來判定並快速修復本地交換器
的鏈路故障, 而另一個 Cisco 專屬的 STP 延伸
命令 BackboneFast 則是在某條沒有直接連到
該交換器的鏈路故障時, 用來加快收斂的速度。
如果執行 BackboneFast 的交換器從委任橋接
器那邊收到較差的 BPDU 時, 它會知道在通往
根的路徑上有一條鏈路故障。
複習一下, 所謂較差的 BPDU 是指根橋接器和
委任橋接器都是相同交換器的 BPDU。
96
擴展樹的 BackboneFast



同樣地, 它不像 UplinkFast 只設定在存取層交
換器, 或是具有冗餘鏈路、而且至少有一條鏈路
處於凍結模式的交換器上。
所有的 Catalyst 交換器都應該開啟
BackboneFast, 以偵測間接鏈路故障問題。
開啟 BackboneFast 還有另一個好處是, 它能更
快速地啟動擴展樹的重新設定 - 它可以對預設
的 50 秒 STP 收斂時間縮短 20 秒。
97
快速擴展樹協定 (RSTP) 802.1w



您想要在您的交換網路 (不論交換器的品牌) 上
執行良好的 STP 組態設定, 並且在每台交換器
上建立並開啟前面討論的所有功能嗎?當然囉!
那麼歡迎進入快速擴展樹協定 (RSTP, Rapid
Spanning Tree Protocol) 的世界。
Cisco 建立了 PortFast、UplinkFast 和
backboneFast 來「修正」 IEEE 802.1d 標準
的漏洞和缺點。
98
快速擴展樹協定 (RSTP) 802.1w




這些改良的唯一缺點只在於它們是 Cisco 專屬
功能, 而且需要額外的設定。
但是新的 802.1w 標準 (RSTP) 則一次處理了所
有這些問題 - 只要開啟 RSTP, 一切就搞定了。
要讓 802.1w 能適當地運作, 您必須確定網路上
所有的交換器都有執行 802.1w 協定。
後面將會說明如何設定 RSTP;它真的相當簡
單。
99
EtherChannel



除了具備冗餘鏈路, 並且讓 STP 將其中一條鏈
路置於凍結模式的做法之外, 我們也可以將鏈路
綁在一起, 並且建立邏輯的聚合 (aggregation),
讓多條鏈路看似單一鏈路。
因為這樣還是能夠提供與 STP 相同的冗餘性,
那我們何不將冗餘的鏈路綁在一起呢?
依照慣例, 我們還是有 Cisco 版本與 IEEE 版本
的 EtherChannel - 您可以自由選擇。
100
EtherChannel



Cisco 的版本稱為埠聚合協定 (PAgP, Port
Affregation Protocol), 而 IEEE 802.3ad 標準則
稱為鏈路聚合控制協定 (LACP, Link
Aggregation Control Protocol)。
這兩個版本都運作得很好, 但設定方式則各不相
同。
本章後面會展示如何將一些鏈路綁在一起 - 純
屬娛樂。別擔心, 下一節會涵蓋 STP 延伸功能
的所有組態設定。
101
8 - 4 設定 Catalyst 交換器



Cisco Catalyst 交換器有許多類型 - 有些的執
行速度為 10 Mbps, 有些則搭配雙絞線和光纖的
組合, 包含高達 10 Gbps 的交換埠。
這些較新的交換器 (特別是 2960 和 3560 系列)
也是比較智慧型的裝置, 可以提供更快速的視訊
和語音資料服務。
現在是詳細檢視的時間了 - 接下來要說明如何
使用 CLI 來開啟和設定 Cisco Catalyst 交換器。
102
設定 Catalyst 交換器


下一章再說明如何設定 VLAN, 以及跨交換器鏈
路 (Inter-Switch Link, ISL)、802.1q 遶送、和
Cisco 的虛擬主幹協定 (Virtual Trunk Protocol,
VTP)。
以下是我們本節要討論的基本工作清單:





管理性功能
設定 IP 位址與子網路遮罩
設定 IP 預設閘道
設定埠的安全性
設定 PortFast
103
設定 Catalyst 交換器







啟動 BPDUGuard 與 BPDUFilter
啟動 UplinkFast
啟動 BackboneFast
啟動 RSTP (802.1w)
啟動 EtherChannel
設定 STP 根交換器
利用 CNA 來設定交換器
104
Catalyst 交換器組態

就像在第 6、7 章設定路由器一樣, 我們將使用
圖 8.13 的交換網路和交換器設置, 來進行本章
和第 9 章的組態設定。
105
Catalyst 交換器組態




我要使用新的 3560、2960、和 3550 交換器。
圖中網路內的主機、電話、和路由器在第 9 章
會更為重要。
但是在真正開始設定 Catalyst 交換器之前, 我
們要先說明這些交換器的開機流程, 就像在第 4
章對路由器的說明一樣。
圖 8.14 是典型 Cisco Catalyst 交換器的細節,
而我們必須跟您說明這個產品的各種界面和特
性。
106
Catalyst 交換器組態


首先希望您知道的是:Catalyst 交換器的控制
台埠通常都位於交換器的背面。
但是在像圖中 3560 之類較小型的交換器中, 控
制台則是位於前面右方以便於使用。
107
Catalyst 交換器組態




(8 埠的 2960 看起來完全一樣。)
如果 POST 成功地完成, 則系統 LED 會變成綠
色;如果 POST 失敗, 則它會轉成黃色。看到
黃光是很慘的事情 - 通常代表致命的故障。
因此, 您可能會希望有個備用的交換器在手邊
- 特別是當呻吟的那台是在營運網路上的交換
器!
底部的按鈕用來顯示哪些燈正在提供乙太網路
電源 (Power over Ethernet, PoE) - 按下
Mode 按鈕就可以看到。
108
Catalyst 交換器組態




PoE 是這些交換器的一項好功能;它讓我們只
要使用乙太網路纜線將存取點或電話插入交換
器就可以使用了。
在交換器開機後, 您可以使用快速安裝的 HTTP
畫面。
圖 8.15 是當您連接一台新的交換器, 並且在瀏
覽器的 HTTP 欄位中輸入 10.0.0.1 之後會看到
的畫面。
當然, 您的主機必須位於相同的子網路中。
109
Catalyst 交換器組態
110
Catalyst 交換器組態




畫面顯示我們可以設定一些基本功能。對筆者
而言, 從 CLI 來設定資訊會比較容易, 但這是您
可能的選擇之一。
您可以設定交換器的 IP 位址、遮罩、和預設閘
道, 外加密碼。
您還可以設定管理性 VLAN, 但是這部分會在下
一章再做說明。
接著, 您還可以選擇性地設定主機名稱、系統聯
絡人、系統位置、並設置 Telent 存取。
111
Catalyst 交換器組態




最後, 快速安裝的 HTTP 畫面還提供您一些簡
單的協助, 讓您能設定交換器的 SNMP, 以便讓
網管系統 (Network Management System,
NMS) 能夠找到它。
現在將交換器如圖 8.13 般地相互連結;首先請
記住交換器間需要交叉式纜線。
筆者的 1960 和 3560 交換器會自動偵測連線類
型, 所以可以使用直穿式纜線。
但是 2950 或 3550 交換器則不會自動偵測纜線
的類型。
112
Catalyst 交換器組態





不同交換器有不同的需要和能力, 所以在您將各
種交換器連在一起的時候一定要記住這點。
當您一開始將交換器的埠彼此相連時, 鏈路的燈
是橘色, 然後再轉為綠色表示運作正常。
這代表擴展樹的收斂, 如您所知, 如果沒有開啟
延伸功能的話, 這個過程大約要 50 秒。
但是如果您連上交換器的埠之後, 這個埠的燈輪
流閃爍綠色和黃色, 就表示它遇到錯誤了。
此時, 請檢查主機的 NIC 卡或纜線。
113
S1



好了, 讓我們連接每台交換器, 並且設定管理功
能吧。我們還要指定每台交換器的 IP 位址, 不
過這並不能讓網路運作。
我們這樣做的唯一理由是因為這樣我們才能夠
管理它。
讓我們使用諸如 192.168.10.16 / 28 之類簡單
的 IP 架構。您應該很熟悉這個遮罩。請檢視下
面的輸出:
114
S1
115
S1
116
S1




首先請注意在交換器的界面上並沒有設定 IP 位
址。因為根據預設, 交換器所有的埠都會開啟,
所以沒有太多需要設定的。
IP 位址是在稱為管理網域或 VLAN 的邏輯界面
下設定。
您通常應該是使用預設的 VLAN 1 來管理交換
網路;就像此處的做法一樣。
剩下的設定基本上跟您在路由器組態設定時的
流程相同。
117
S1


請記住交換器界面上沒有 IP 位址, 沒有遶送協
定等。
在這裡要做的是第二層的交換, 而不是遶送!此
外, 請注意 Cisco 交換器上沒有輔助埠 (aux
port)。
118
S2

下面是 S2 的組態:
119
S2
120
S2


我們現在應該可以從 S2 交換器 ping 到 S1 交
換器。
讓我們試試看:
121
S2



這裡有 2 個問題要考您:如果我們還沒有設定
Core 交換器, 如何能透過它來進行 ping 的工作?
以及為什麼以上的輸出中只有 4 個 ping、而不
是 5 個 ping 能夠成功?
(第一個句點「.」是逾時;而驚嘆號「!」則是
成功) 這 2 個都是好問題。
122
S2



下面是答案:首先, 您不用設定交換器它就能運
作。
所有的埠預設都會開啟, 所以只要打開電源, 主
機間應該就能溝通了。
其次, 第一個 ping 失敗是因為 ARP 需要時間將
IP 位址解析為硬體 MAC 位址。
123
Core

下面是 Core 交換器的組態設定:
124
Core
125
Core

現在讓我們從 Core 交換器來 ping S1 和 S2,
並且看看發生什麼事:
126
Core



在我們繼續往下驗證交換器組態之前, 還有一個
命令您必須知道 - 即使目前的網路上還用不到,
因為我們沒有加入路由器。
它就是 ip default-gateway 命令。
如果您想要從 LAN 的外面管理您的交換器, 就
必須在交換器上設定預設閘道, 跟在主機上一樣。
您要從整體設定模式下做這樣的設定。
127
Core

下面這個範例中, 我們使用子網路範圍的最後一
個 IP 位址來當做路由器的 IP 位址 (下一章的
VLAN 中就會使用到路由器):

現在我們已經完成了 3 台交換器的基本設定, 讓
我們利用它們來娛樂一下吧。
128
埠的安全性



如同本章稍早所述, 讓任何人都能隨意將東西接
上您的交換器可不是件好事。如果您會在意無
線的安全性, 那為什麼不同樣注意交換器的安全
性呢?
藉由使用埠的安全性功能, 您就可以對一個埠設
定靜態的 MAC 位址, 或限制能動態指定給它的
MAC 位址數目。
而且 - 下面是筆者最喜愛的部份 - 還可以針
對違反政策的使用者設定懲罰。
129
埠的安全性



筆者個人喜歡的做法是在違反安全性政策時, 將
埠關閉, 然後要求違反者交給筆者一份有其主管
簽名、解釋為什麼他會違反安全性政策的備忘
錄。
這通常能幫助他們記住規定。
有安全性的交換器埠可以關聯 1 到 8192 個
MAC 位址, 但是 50 系列只能支援 192 個 - 這
對筆者而言也夠了啦!
130
埠的安全性




您可以選擇讓交換器動態學習這些值, 或是使用
switchport port-security MAC-位址 MAC-位
址命令來設定每個埠的靜態位址。
所以讓我們來設定 S1 交換器的埠安全性。
在我們實驗室中, 埠 fa0 / 3 和 fa0 / 4 都只連接
一個裝置。
藉由使用埠的安全性功能, 我們可以確定一旦埠
fa0 / 3 的主機和 fa0 / 4 的電話都連上之後, 就
沒有其他裝置可以連上。
131
埠的安全性

下面是我們的做法:
132
埠的安全性



前面的命令設定 fa0 / 3 和 fa0 / 4 的埠安全性,
以讓它最多只能連結一個 MAC 位址, 而且只有
第一個連到該埠的 MAC 位址能夠透過交換器
傳送訊框。
如果具有不同 MAC 位址的第二台裝置嘗試傳
送訊框到交換器時, 因為我們使用了 violation
命令, 所以該埠會被關閉。
使用 sticky 命令可省得我們手動輸入每個裝置
的 MAC 位址。
133
埠的安全性




違反政策的處理方式除了關閉埠之外, 另外還有
2 種模式可以選擇。
保護模式 (proect) 表示可以連結另一台主機, 但
是它的訊框會被丟棄。
限制模式 (restrict mode) 也很酷 - 它會透過
SNMP 警告您在埠上發生了違反行為。
您就可以打電話給違反規則的人, 並且告訴他們
被逮到了 - 您可以看到他們, 而且知道他們在
幹什麼, 他們現在麻煩大了!
134
埠的安全性



我們的交換器之間的連線中有冗餘的鏈路, 所以
最好是在這些鏈路上執行 STP。
但是在 S1 和 S2 交換器上, 我們還有主機連到
埠 fa0 / 3 和 fa0 / 4 (不是 Core)。
所以要在這些埠上關閉 STP。
135
PortFast


如果我們在交換器上使用 portfast 命令, 就可
以避免因為 STP 花太長時間收斂, 導致主機
DHCP 請求逾時的情況下, 主機可能無法接收到
DHCP 位址的問題。
我以我要在 S1 和 S2 交換器的埠 fa0 / 3 和 fa0
/ 4 上使用 PortFast:
136
PortFast


設好 S1 之後, 就繼續在 S2 的 fa0 / 3 - 4 埠上
啟用 PortFast 吧, 但是就不再展示這個輸出了。
再提醒一次, 使用 PortFast 請務必小心 - 您絕
對不想造成網路迴圈吧!為什麼呢?
137
PortFast




因為如果您讓迴圈發生, 即使網路仍然能運作
(某種程度啦), 但資料的傳送會像烏龜在爬。
而且更糟的是, 您要花上好長的時間才能找出問
題的來源 - 這會讓您很沒有人緣。所以請務必
小心。
幸運的是, 在使用 PortFast 的時候, 有些命令可
以在某人意外地在開啟 PortFast 的埠上造成迴
圈的時候提供保護。
下面就是這些命令。
138
BPDUGuard



現在討論這個還有點早:如果您在交換器埠上
開啟 PortFast, 則開啟 PBDUGuard 是個很不
錯的主意。
如果開啟 PortFast 的交換埠收到 BPDU 的時候,
它會將這個埠置於錯誤關閉狀態。
這能讓管理者不會偶然地將另一個交換器或集
線器的埠連到設定了 PortFast 的交換埠。
139
BPDUGuard


基本上, 您可以防止它發生, 防止它讓網路當掉,
或者至少是嚴重地癱瘓。
您只能在存取層交換器中設定這個命令 - 也就
是使用者直接相連的交換器 - 所以我們不能在
Core 交換器上設定這個命令。
140
BPDUFilter



另一個可以跟 PortFast 一同使用的有用命令是
BPDUFilter。
因為根據預設, 開啟 PortFast 的交換埠還是會
接收 BPDU, 所以您可以用 BPDUFilter 來完全
阻止 BPDU 進入或離開那個埠。
BPDUFilter 的過濾功能會在接收到 BPDU 的時
候立即將埠脫離 PortFast, 並且強迫它再次成為
STP 協定的一部分。
141
BPDUFilter


它跟 BPDUGuard 不同, BPDUGuard 會將埠置
於錯誤關閉狀態, 但是 BPDUFilter 會保持埠的
開啟, 只是沒有執行 PortFast - 沒有理由在設
定 PortFast 的界面上會收到 BPDU。
老實說, 筆者實在不知道為什麼在開啟 PortFast
的時候, 沒有預設要開啟 BPDUGuard 或
BPDUFilter。
142
BPDUFilter

所以, 讓我們來為已經設定 PortFast 的 S1 和
S2 界面設定 BPDUGuard 和 BPDUFilter - 這
很容易:
143
BPDUFilter


因為 bpduguard 和 bpdufilter 完成的是相同
的工作, 所以通常我們只會使用其中之一, 而一
次設定這 2 個命令是有點誇張。
接著, 我們還會設定一些 STP 802.1d 的延伸功
能 - 您在設定 STP 的時候可以使用。
144
UplinkFast

下面是如何在存取層交換器 (S1 和 S2) 上設定
UplinkFast 的方法:
145
UplinkFast

uplinkfast 命令是個整體命令, 而且會在每個埠
上開啟。
146
BackboneFast

下面是如何在交換器上設定 BackboneFast 的
方法:
147
BackboneFast


請注意 BackboneFast 是設定在網路上所有的
交換器上, 而不是像 UplinkFast 只設定在存取
層交換器上。
請記住 BackboneFast 是用來判定遠端交換器
的鏈路故障, 而不像 UplinkFast 是用來判定並
快速修復本地交換器上的鏈路故障。
148
RSTP (802.1w)



設定 RSTP 其實跟設定其他的 802.1d 延伸功
能一樣簡單。
想到它比 802.1d 好這麼多, 您一定會認為它的
設定鐵定會更複雜, 但是我們非常幸運 - 它並
不難。
所以讓我們在 Core 交換器上開啟 RSTP, 並且
看看會發生什麼事情:
149
RSTP (802.1w)

很棒吧!Core 交換器現在已經在執行 802.1w
版本的 STP 了。讓我們來驗證看看:
150
RSTP (802.1w)

很有趣...它看起來好像什麼都沒有發生。我們
可以看到在另外 2 部交換器上, 所有的埠都已經
收斂了。
151
RSTP (802.1w)



一旦所有東西啟動之後, 一切就看起來完全相同
了。802.1d 和 802.1w 似乎能共存而沒有問題。
但是如果我們更仔細看看, 就可以看到 802.1w
交換器已經將連到其他執行 802.1d 交換器的埠
上的 802.1w BPDU 改變為 802.1d BPDU。
S1 和 S2 交換器相信 Core 交換器是執行
802.1d, 因為 Core 會為了它們而回復成 802.1d
版本的 BPDU。
152
RSTP (802.1w)



即使 S1 和 S2 交換器接收到 802.1w BPDU, 它
們也不認識它, 所以它們只會將其丟棄而已。
不過, Core 的確會接收 802.1d BPDU, 並且會
從 S1 和 S2 交換器接受它們, 進而知道哪些埠
是執行 802.1d。
換句話說, 只在一台交換器上開啟 802.1w 對網
路其實一點幫助也沒有。
153
RSTP (802.1w)


一個討厭的小麻煩是, 一旦 Core 交換器知道要
在連到 S1 和 S2 的埠上傳送 802.1d BPDU, 即
使 S1 和 S2 稍後設定了 802.1w, 它也不會自動
改變。
我們還是必須將 Core 交換器重新開機才能停
止 802.1d BPDU。
154
EtherChannel



設定 EtherChannel 最簡單的方法是透過 Cisco
網路助理 (Cisco Network Assistant) - 本章最
後會說明這個部分。
現在, 我們要使用 CLI, 因為您也必須知道它們
的 CLI 命令。要記住 EtherChannel 有 2 個版
本:Cisco 版本與 IEEE 版本。
現在我們要使用 Cisco 版本, 將 S1 交換器和
Core 交換器之間的鏈路綁在一起。
155
EtherChannel


我們要在 S1 和 Core 交換器上使用 interface
port-channel 整體命令, 以及 channel-group
和 channel-protocol 界面命令。
下面是它們的用法:
156
EtherChannel
157
EtherChannel
158
EtherChannel



這裡加上 switchport nonegotiate 界面命令讓
交換器停止自動偵測鏈路類型和自動設定主幹
的嘗試;改為靜態地設定主幹鏈路的狀態。
S1 和 Core 之間的兩條鏈路現在已經使用
PAgP 的 Cisco EtherChannel 版本綁在一起了。
好了 - 但是等一下, 在可以學習下一章的
VLAN 之前, 我們還要先驗證交換器組態, 並且
和根橋接器攪和一下。
159
確認 Cisco Catalyst 交換器組態




我們要對任何路由器或交換器做的第一件事, 就
是使用 show runningconfig 命令檢視整個設
定。
為什麼呢?因為這樣做可以完全瞭解每個裝置。
不過它很花時間, 而且列出所有組態會佔用本書
太多的篇幅。
此外, 我們還可以執行同樣提供相當不錯資訊的
其他命令。
例如要檢查交換器上設定的 IP 位址, 可以使用
show interface 命令。
160
確認 Cisco Catalyst 交換器組態

下面是它的輸出:
161
show mac address-table


本章稍早有用過這個命令;它可用來顯示轉送
過濾表, 又稱為內容可定址記憶體 (content
addressable memory, CAM) 表格。
下面是 S1 交換器的輸出:
162
show mac address-table

交換器使用指定給 CPU 的基底 MAC 位址;
2960 系列使用的是 20。
163
show mac address-table




根據前面的輸出, 您可以看到我們有 5 個 MAC
位址被動態地指定到 EtherChannel 埠 1。
埠 Fa0 / 3、Fa0 / 8、和 Fa0 / 4 只有指定 1 個
MAC 位址, 而且所有埠都被指定到 VLAN 1。
讓我們來看看 S2 交換器的 CAM。
請記住 S2 交換器並沒有設定像 S1 交換器的
EtherChannel, 所以 STP 會關閉其中一條連到
Core 交換器的冗餘鏈路。
164
show mac address-table
165
show mac address-table



我們可以看到前面的輸出中有 4 個 MAC 位址
指定到 Fa0 / 1。
當然, 我們也可以看到埠 3 和 4 分別連到個別
的主機。
但是埠 2 呢?因為埠 2 是冗餘的鏈路, 所以
STP 將 Fa0 / 2 置於凍結模式。稍後將會再討
論這個部份。
166
指定靜態 MAC 位址


您可以在 MAC 位址表中設定靜態 MAC 位址,
但是就像設定靜態 MAC 埠的安全性一樣, 它需
要大量的工作。
如果您真的想這麼做, 下面是它的做法:
167
指定靜態 MAC 位址

您可以看到現在有一個靜態 MAC 位址被永久
地指定到界面 Fa0 / 5, 並且它也只有指定到
VLAN 1。
168
show spanning-tree




您應該已經知道 show spanning-tree 是很重
要的命令。
您可以用它來看誰是根橋接器, 以及每個 VLAN
的優先權設定。
Cisco 交換器會執行所謂的各個 VLAN 擴展樹
(Per-VLAN Spanning Tree, PVST), 基本上它是
指每個 VLAN 執行自己的一份 STP 協定。
如果輸入 show spanning-tree, 我們會收到每
個 VLAN 的資訊 - 從 VLAN 1 開始。
169
show spanning-tree


因此, 假設我們有多個 VLAN, 而且想要看到
VLAN 2 的內容, 就要使用 show spanningtree
vlan 2 命令。
下面是在 S1 交換器上執行 show spanningtree 命令的輸出。因為我們只使用 VLAN 1, 所
以不需要在命令後面加上 VLAN 編號:
170
show spanning-tree

因為我們只有設定 VLAN 1, 所以這個命令的輸
出就到此為止。
171
show spanning-tree




但是如果我們有更多的 VLAN, 交換器上所設定
的每個 VLAN 都會各有對應的一頁輸出。
預設的優先權是 32768, 但是還有稱為系統 ID
延伸 (sys-id-ext) 的 VLAN 識別子。
橋接器的 ID 優先權就是根據 VLAN 編號來增
加。因為我們只有 VLAN 1, 所以加 1 變成
32769。
但是要知道, 根據預設, BackboneFast 會將預
設的優先權提高到 49152, 以防止該橋接器成為
根。
172
show spanning-tree

輸出的最上面顯示出誰是根橋接器:

1 號 EtherChannel 埠是我們的根埠, 這表示它
是我們選擇通往根橋接器的路徑, 而且它的識別
子為 000d.29bd.4b80。
這只可能是 Core 或 S2 交換器;我們稍後就會
知道。

173
show spanning-tree



命令的最後面顯示出執行 STP 並且連到另一裝
置的埠。因為我們有執行 EtherChannel, 所以
就不會有凍結的埠。
要判斷您的橋接器是否為根橋接器, 可以看它是
否有任何 Altn BLK 埠 (代表替代路徑的凍結埠)。
根橋接器的任何界面都不會有凍結埠, 但是因為
我們設定了 EtherChannel, 所以 S1 的所有埠
也都顯示為轉送 (FWD)。
174
決定根橋接器


要判斷根橋接器, 我們顯然得使用 show
spanning-tree 命令。讓我們來看看另外 2 台
交換器, 並且觀察何者是預設的根橋接器。
請先稍微記住 S1 交換器的橋接器 ID MAC 位
址和優先權。下面是 S2 的輸出:
175
決定根橋接器

我們可以看到 Fa0 / 2 埠被凍結了, 所以它不可
能是我們的根橋接器。
176
決定根橋接器

根橋接器不會有任何凍結的埠。請再次注意橋
接器 ID MAC 位址和優先權。下面是 Core 交
換器的輸出:
177
決定根橋接器



找到它了 - 這個橋接器就是根。
但想想看 - 為什麼 Core 交換器的優先權只是
預設的 32, 768, 而不像其他交換器是 49, 152?
因為它執行的是 802.1w 版本的 STP, 而其
BackBoneFast 的預設是關閉的。
178
決定根橋接器

讓我們來看看每台交換器的橋接 MAC 位址:




S1 位址:001b.2b55.7500
S2 位址:001a.e2ce.ff00
Core 位址:000d.29bd.4b80
藉由檢視 MAC 位址, 假設所有交換器都設為預
設優先權, 您認為何者會是根交換器?從左向右
檢視 MAC 位址。
179
決定根橋接器


Core 顯然是最低的 MAC 位址, 而且透過檢查
show spanning-tree 命令的輸出, 可以看到它
確實是我們的根橋接器 (即使所有交換器的優先
權相同)。
偶爾透過比較交換器的 MAC 位址來判斷根橋
接器是個不錯的練習。
180
設定我們的根橋接器


根據預設讓 Core 交換器成為我們的根橋接器
的確是相當方便, 因為我們通常也會選擇它成為
根橋接器。
但是為了娛樂, 讓我們來做個改變。下面是我們
的做法:
181
設定我們的根橋接器

當您將 S1 的優先權降為 16384 時, S1 交換器
立刻就成為根橋接器。
182
設定我們的根橋接器



您可以將優先權設為 0 到 61440 之間的任意值。
0 表示這台交換器將永遠是根橋接器, 而 61440
則表示交換器永遠不可能成為根。
接下來還要介紹的一個命令是您可以在交換器
上執行, 並且將它設為根橋接器的命令:
183
設定我們的根橋接器



請注意這並不能覆蓋掉低優先權的交換器 - 這
個命令只有在您所有交換器都有相同 (或更高)
的優先權時才有效。
順便一提, 您必須在每個 VLAN 上分別設定這
個命令, 而且您也可以設定根的主要和次要交換
器。
這的確比本章之前的做法簡單許多!但是為了
要通過 CCNA 認證, 您務必要學會之前的做法
- 雖然它確實很難!
184
8 - 5 Cisco 網路助理 (CNA)




Cisco 網路助理 (Cisco Network Assistant,
CNA) 可以讓您輕鬆地設定交換器, 而它也和
SDM 一樣, 同時有好與壞兩面。
好處是它讓我們能更簡單地建立比較困難的組
態, 缺點則是它讓所有其他人都可以比較容易做
到這件事。
不過, 它一開始要上手還是有點難度, 所以請下
載 CNA, 並且盡可能去熟悉它。
一旦使用 CNA 連到交換器, 就會得到如下的畫
面。
185
Cisco 網路助理 (CNA)
186
Cisco 網路助理 (CNA)




我們可以從相當清楚的拓樸角度來看到所有的
裝置。
我們可以看到 IP 電話、Core 交換器、和跨
VLAN 的路由器 (IVR) - 這是 2811 路由器的
主機名稱。
但是您必須知道, 在這個輸出中, 我們只能看到
直接相連的裝置, 這表示我們無法看到位於
Core 另外一端的裝置。
CNA 畫面左方的功能選單中最有用的一項, 可
能就是 Smartports。
187
Cisco 網路助理 (CNA)

一旦您點選 Smartports, 就可以得到交換器的
特寫。
188
Cisco 網路助理 (CNA)



您必須要做的是選擇一個埠, 或所有的埠, 然後
按下右鍵, 並且選擇這些埠會連接的裝置類型。
很棒的功能!不過, Smartports 的有趣之處在
於它實際設定的東西。
例如當我們使用 Smartports 來設定 S1 交換器
的 6 號埠要連結到桌上型 PC 時, 下面是它下載
到交換器的命令:
189
Cisco 網路助理 (CNA)


偉大吧!想想看, 我們甚至完全不必瞭解本章所
討論的任何功能, 就可以設定交換器。
反之, 只要選擇連到界面的裝置類型, 然後交換
器就自動使用它「認為」非常適合這種埠的命
令來完成設定 - 這個小東西真是太神奇了!
190
Cisco 網路助理 (CNA)




在我們繼續討論 CNA 之前, 讓我們先聊一下這
個界面的組態。
我們已經討論過 port-security、spanningtree portfast、和 bpduguard, 但什麼是
macro 和 port-security aging 命令呢?
macro 是儲存在新 Cisco 交換器中的預設程式,
會在設定 Smartport 的時候執行。
port-security aging 命令的運作方式則沒有什
麼不同 - 它會設定該埠的老化速率。
191
Cisco 網路助理 (CNA)



aging 命令可以搭配兩個選項 - absolute 和
inactivity。
absolute 選項會在所指定的時間截止之後, 刪
除埠上的安全位址 - 它的時間長度可以從 0 到
1440 分。
inactivity 選項則會在埠不作用 (inactive) 的時
間超過指定時間之後, 刪除它的位址 - 時間的
長度也是 0 到 1440 分。
192
Cisco 網路助理 (CNA)



因此, 當您使用 switchport port-security
aging time 2 加上 switchport port-security
aging type inactivity 命令的時候, 所有對應到
該埠的 MAC 位址都會在 2 分鐘後被刪除。
不僅如此, switchport port-security violation
restrict 表示會有個 trap 被傳送到 SNMP 伺服
器或網管機台 (Network Management Station,
NMS)。
雖然這好像有點過頭了, 不過筆者還是覺得它相
當的酷。
193
Cisco 網路助理 (CNA)

您可以使用下面命令來檢視界面上的埠安全性:
194
Cisco 網路助理 (CNA)




等一下 - 剛才的 macro 命令發生了什麼事?
別擔心, 它只是個讓您建立和執行巨集的交換器
命令, 而且 Cisco 的新交換器中預先設定了 6
個這種命令。
很奇怪的是, 您在運行組態中看不到它們;您只
能使用 show parser 命令來檢視它們。
下面是在我們的 f0 / 6 埠上執行的巨集:
195
Cisco 網路助理 (CNA)
196
Cisco 網路助理 (CNA)


好啦, 一切都很好。
至少現在我們知道在我們交換器上所設定的所
有命令 - 在 Smartports 之下的每種裝置都有
一個巨集, 如下面 show parser macro brief
命令所示:
197
Cisco 網路助理 (CNA)

現在回到 CNA, 在 Ports 下您會找到 Port
Settings。
198
Cisco 網路助理 (CNA)

您可以在這裡檢視和變更所有埠的基本組態資
訊。同樣在 Ports 之下, 您可以找到
EtherChannels。
199
Cisco 網路助理 (CNA)


跟使用 CLI 相比, 這可能是將幾個埠綁在一起比
較容易的方法。透過它, 您可以把交換器之間的
最多 8 個埠綁在一起。
在點選 EtherChannel 之後, 只要選擇群組, 並
且指出想要綁在一起的埠, 以及要使用的協定即
可。
200
Cisco 網路助理 (CNA)

這非常的酷 - 只要點選 Device Properties,
就可以設定交換器的很多功能:IP 位址、主機
名稱、使用者和密碼等等。
201
Cisco 網路助理 (CNA)

在 Topology View 畫面中, 您可以在某個裝置
上按下右鍵, 並且點選多種選項 - Device
Manager 是其中很有趣的一項。
202
Cisco 網路助理 (CNA)


一旦您選擇 Device Manager, 預設的 HTTP 瀏
覽器就會開啟, 現在是從 HTTP 瀏覽器開始設
定和確認交換器組態的時機了。
不過, 它的反應時間比 CNA 慢, 所以筆者個人
並不會去用它。
203
Cisco 網路助理 (CNA)



CNA 還有很多能力, 建議您花時間將它下載, 並
盡可能多玩一玩。
現在老實承認吧 - 雖然這是很長的一章, 但您
真的學到很多, 而且過程中您可能還有些地方會
覺得有趣!
您現在已經設定和確認完所有的交換器, 設定埠
的安全性, 並且經歷了 STP 延伸功能, 以及設定
了根橋接器。
204
Cisco 網路助理 (CNA)


這表示您現在已經準備好要學習 VLAN 了。
我們會將所有交換器的設定儲存起來, 以便在第
9 章時可以從這裡接下去進行。
205
8 - 6 摘要




本章討論了交換器與橋接器的差異, 他們如何在
第 2 層運作, 以及如何產生 MAC 位址轉送或過
濾表, 以決定是否轉送或廣播訊框。
我們也討論了當橋接器 (交換器) 之間存在多條
鏈路時可能發生的問題, 以及如何利用擴展樹協
定來解決這些問題。
我們還詳細討論了 Cisco Catalyst 交換器的設
定, 包括確認組態、設定 Cisco STP 延伸功能,
以及設定橋接器優先權來變更根橋接器。
最後, 我們討論了 Cisco 網路助理;它能在交換
器設定時提供很大的協助。
206