730 likes | 948 Views
第 8 章. 第 2 層交換與擴展樹協定 (STP). 應用交換技術之前的典型網路. 早期從以大型主機為主 ﹐ 到 PC 蓬勃發展後所產生的網路:. 早期的交換式區域網路. 企業骨幹不斷成長 ﹐ 企業網路服務需求遽增 ﹐ 導致網路分段的需求 ﹐ 這不能單純靠更快的乙太網路或路由器來解決。於是誕生了交換式網路:. 完全的交換式網路設計. 仍然需要路由器 ﹐ 但任務不再是實體的網路分段 ﹐ 而是產生與處理邏輯的網路分割. 交換服務概述.
E N D
第 8 章 第 2 層交換與擴展樹協定 (STP)
應用交換技術之前的典型網路 早期從以大型主機為主﹐到PC蓬勃發展後所產生的網路:
早期的交換式區域網路 企業骨幹不斷成長﹐企業網路服務需求遽增﹐導致網路分段的需求﹐這不能單純靠更快的乙太網路或路由器來解決。於是誕生了交換式網路:
完全的交換式網路設計 仍然需要路由器﹐但任務不再是實體的網路分段﹐而是產生與處理邏輯的網路分割
交換服務概述 • 橋接器使用軟體來產生與管理過濾表格, 而交換器則以應用專屬的積體電路ASIC來建構與維護過濾表格﹐不過都是為了要分割碰撞網域 • 比路由器快的原因是他們不需要花時間檢查網路層的標頭資訊﹐而只須檢查訊框的硬體位址, 以決定要轉送、廣播、或丟棄 • 交換器會在每個埠上產生各自專屬的碰撞網域, 並提供獨立的頻寬
第2 層交換的特性 • 硬體式的橋接 (ASIC) • 線路速度 (wire speed) • 低延遲 (latency) • 低成本
第 2 層交換的限制 • 設計交換式網路的 2 個非常重要考量: • 絕對必須正確地分割碰撞網域 • 要建置有效果的交換式網路, 正確的方式是要確定他們的用戶有 80% 的時間都是在自己的區域網段上 • 交換式網路會分割碰撞網域, 但仍然是一個大的廣播網域。它不會分割廣播網域 - 這不只會限制網路規模與網路的成長空間, 也且也會降低整體的效能。廣播與多點傳播, 以及緩慢的擴展樹收斂速度都可能在網路成長時帶來重大的災難-這也是為什麼交換式網路仍然需要路由器的原因
橋接器與交換器的異同 • 橋接器是以軟體為基礎, 而交換器是以硬體為基礎,靠ASIC 晶片來幫忙進行過濾的決定 • 交換器可視為多個埠的橋接器 • 每個橋接器只能有一份擴展樹, 而交換器則可以有許多 • 比起大部分的橋接器, 交換器有更多數目的埠 • 都會轉送第 2 層廣播 • 都是藉由檢查所接收之每個訊框的來源位址, 以學得 MAC 位址 • 都是根據第 2 層位址來進行轉送的決定
第 2 層之 3 個交換功能 • 學習位址 記住它從界面接收之每個訊框的來源硬體位址, 輸入這種資訊到一個稱為轉送 / 過濾表的 MAC 資料庫 • 決定轉送或過濾 從界面收到訊框時, 會檢視其目的硬體位址, 找尋它在 MAC 資料庫中所學到的離開界面, 該訊框只會從特定的目的埠轉送出去 • 避免迴圈如果為了達到冗餘的目而在交換器之間建置多重連線, 則有可能發生網路迴圈。擴展樹協定STP就是讓我們在提供網路冗餘性的同時、又能防止網路迴圈
學習位址範例 A主機 ping B主機
學習位址範例(續) • A 主機送一個訊框給 B 主機, A 主機的 MAC 位址是 0000.8C01.000A, 而 B 主機的 MAC 位址是 0000.8C01.000B • 交換器從 E0 / 0 界面收到訊框, 並且將來源位址放入 MAC 位址表中 • 因為目的位址不在 MAC 資料庫中, 於是將訊框轉送到所有的界面 - 除了來源埠之外 • B 主機收到該訊框並回應給 A 主機, 交換器從 E0 / 1 收到這個訊框, 並且將其來源硬體位址放入 MAC 資料庫中 • A 主機與 B 主機現在可以進行點對點的連線, 而且只有這兩部裝置可收到訊框。C 與 D 主機將無法看到這些訊框, 資料庫中也找不到他們的 MAC 位址, 因為他們還不曾傳送任何訊框給交換器
轉送 / 過濾決策 • 假設A主機要傳送訊框給D主機。當交換器收到來自 A 主機的訊框時﹐交換器如何處理? • 因為 A 主機的 MAC 位址並不在轉送 / 過濾表中, 交換器會將其來源位址和埠號加入 MAC 位址表中, 然後將訊框轉送給 D 主機。如果 D 主機的 MAC 位址也不在轉送 / 過濾表中, 則交換器會將訊框從 Fa0 / 3 之外的所有埠廣播出去
埠的安全性功能-switchport port-security • 阻止別人將一台主機/Hub/switch/AP插入交換器的一個埠中 例一: 例二:
擴展樹協定 (STP) • DEC公司建立了原始版本的STP﹐後來 IEEE 建立了它自己的 STP 版本, 稱為 802.1D • 所有的 Cisco 交換器預設上都執行 IEEE 802.1D 版的 STP, 這與 DEC 版並不相容。但 Cisco 的新型交換器正往另一個產業標準推進 - 802.1W • STP 的主要任務是要預防在第 2 層的網路(橋接器或交換器) 上發生網路迴圈, 它警覺地監視網路以找尋所有的鏈路, 藉由關閉冗餘的鏈路來確定迴圈不會發生 • STP 使用擴展樹演算法, 首先產生一個拓樸資料庫, 然後搜索出冗餘鏈路, 並拿掉它
擴展樹專用術語 • 根橋接器 (root bridge)一部有最佳橋接器 ID 的橋接器, STP 的重點是網路中的所有交換器要選出一部根橋接器, 以成為網路的焦點。網路中的所有其他決定 - 例如那個埠要凍結, 那個埠要設在轉送模式 - 都是從根橋接器的觀點來進行的 • BPDU 交換器用來交換資訊, 以進行根交換器的挑選及網路的後續設定 • 橋接器 ID STP 記錄網路之所有交換器的方式, 由橋接器的優先權 (預設上所有的 Cisco 交換器是 32, 768) 與 MAC 位址共同決定的。橋接器 ID 最低的橋接器會成為網路中的根橋接器 • 非根橋接器 根橋接器以外的所有橋接器 • 埠成本 交換器之間有多條鏈路, 而且沒有任何鏈路是根埠時, 埠成本可用來決定最佳路徑。鏈路的成本乃由鏈路的頻寬所決定
擴展樹專用術語(續) • 根埠 (root port)直接與根橋接器相連的鏈路, 或抵達根橋接器的最短路徑。 • 如果有一條以上的鏈路連結到根橋接器, 則藉由檢查每條鏈路的頻寬來決定埠成本, 並以最低成本的埠設為根埠。 • 如果有多條鏈路的成本相同, 則使用宣傳橋接器 ID 較低的橋接器, • 但因為多條鏈路可能都是來自於同一部裝置, 這時就使用最低的埠號 • 委任埠 (designated port)因為有最佳 (低) 成本而被選定的埠 - 委任埠會被標示成轉送埠 • 非委任埠 成本比委任埠高的埠, 這種埠會放入凍結模式-非委任埠不是轉送埠 • 轉送埠 (forwarding port)可轉送訊框 • 凍結埠 (blocking port)不會轉送訊框, 以預防迴圈;但凍結埠仍會聆聽訊框
STP的運作 • 挑選一部根橋接器 • 每部橋接器必須找出自己的唯一個根埠 • 兩部交換器之間的所有鏈路, 必須有一個, 而且僅只一個委任埠 • 根交換器上的每個埠都會是委任埠 • 任何埠若不是根埠或委任埠﹐就會被放入凍結模式, 以切斷交換迴圈
挑選根橋接器 橋接器ID = 優先權 + MAC﹐值越低越好﹐根據預設, 橋接器或交換器每隔 2 秒就會從所有作用中的埠傳送出 BPDU, 而含有最低 (佳) 橋接器 ID 的橋接器就會被挑選為根橋接器。所以A交換器將成為根橋接器 執行IEEE STP裝置的預設值 都直接相連﹐且頻寬一樣﹐選埠號較低者Fa0/11為根埠﹐所以B交換器將Fa0/12設為凍結埠﹐不轉送訊框﹐只接收訊框
show spanning-tree命令 根橋接器的資訊 每個VLAN可以有不同的根橋接器 802.1D 連到根橋接器的埠 這部橋接器關於這個VLAN的STP資訊 優先權 + VLAN ID
改變橋接器優先權 這表示B交換器已經成為根橋接器了 = 4096 +1
擴展樹的埠狀態 • 凍結 (blocking)不轉送訊框, 只是聆聽 BPDU﹐目的是為了要避免使用會產生迴圈的線路。交換器開機時的預設狀態 • 聆聽 (listening)在傳送資料訊框之前先聆聽 BPDU, 以確定網路上沒有迴圈發生。處於聆聽狀態的埠準備好要轉送資料訊框, 但不會產生 MAC 位址表。如果交換器因為拓樸的異動而決定一個凍結埠現在應該成為委任埠或根埠, 它就會進入聆聽模式 • 學習 (learning)這種交換埠會聆聽 BPDU, 並學習交換式網路中的所有線路。處於學習狀態的埠會產生 MAC 位址表, 但不會轉送資料訊框。Forward Delay代表的是一個埠從聆聽模式轉換到學習模式所需的時間。預設是 15 秒, 您可以在 show spanning-tree的輸出中看到 • 轉送 (forwarding)這種埠會收送交換埠上的所有資料訊框。如果在學習狀態結束時仍然是委任埠或根埠, 就會進入這個狀態 • 關閉 (disabled) (管理上) 處於關閉狀態的埠不會參與訊框轉送或 STP。處於關閉狀態的埠實質上是沒有在運作的
收斂 • 收斂-所有埠都已經轉換到轉送埠或凍結埠時 • 除非達成收斂, 否則沒有資料能被轉送 • 從凍結模式轉換到轉送模式通常要花 50 秒
擴展樹的 PortFast • 在典型的擴展樹拓樸中, 交換器的埠從凍結到轉送所需的收斂時間是 50 秒, 可能會造成伺服器或主機的逾時問題 • 使用 PostFast 關閉個別埠上的擴展樹﹐則該埠不需要花費平常的 50 秒就可進入轉送模式 • 如果您確定關閉STP也不會造成交換迴圈, 則可以在那些埠上使用
擴展樹的 PortFast(續) 關閉特定埠的STP 同時設定多個埠
擴展樹的 UplinkFast • 在有鏈路故障的情況下改善 STP 的收斂時間。其設計是要在交換器具有至少一個替代 / 備援根埠 (處於凍結狀態的埠) 的交換環境下執行 • Cisco 建議只有在具有凍結埠、而且通常是在存取層的交換器才開啟 UplinkFast • UplinkFast 讓交換器能夠在主要鏈路故障之前, 就先找出通往根橋接器的替代路徑。這表示如果主要鏈路故障時, 次要鏈路可以更快地啟用 - 該埠不用等待正常的 50 秒 STP 收斂時間 • 因此如果您是執行 802.1d STP, 而且在存取層交換器上有冗餘的鏈路, 您絕對會希望開啟 UplinkFast
擴展樹的 BackboneFast • UplinkFast 是用來判定並快速修復本地交換器的鏈路故障, 而BackboneFast 則是在某條沒有直接連到該交換器的鏈路故障時, 用來加快收斂的速度 • UplinkFast 只設定在存取層交換器, 或是具有冗餘鏈路、而且至少有一條鏈路處於凍結模式的交換器上。但所有的 Catalyst 交換器都應該開啟 BackboneFast, 以偵測間接鏈路故障問題 • 開啟 BackboneFast 還有另一個好處是, 它能更快速地啟動擴展樹的重新設定 - 它可以對預設的 50 秒 STP 收斂時間縮短 20 秒
快速擴展樹協定 (RSTP) 802.1w • Cisco 建立了 PortFast、UplinkFast 和 backboneFast 來「修正」 IEEE 802.1d 標準的漏洞和缺點。這些改良的唯一缺點只在於它們是 Cisco 專屬功能, 而且需要額外的設定 • 802.1w 標準 (RSTP) 則一次處理了所有這些問題 - 只要開啟 RSTP,就一切OK! • 要讓 802.1w 能適當地運作, 您必須確定網路上所有的交換器都有執行 802.1w 協定
EtherChannel • 除了具備冗餘鏈路, 並且讓 STP 將其中一條鏈路置於凍結模式的做法之外, 我們也可以將鏈路綁在一起, 並且建立邏輯的聚合 (aggregation), 讓多條鏈路看似單一鏈路 • EtherChannel有兩個版本都運作得很好, 但設定方式則各不相同 • Cisco 的版本稱為埠聚合協定 (PAgP, Port Aggregation Protocol) • IEEE 802.3ad 標準稱為鏈路聚合控制協定 (LACP, Link Aggregation Control Protocol)
Catalyst 交換器概觀 • Catalyst 交換器的控制台埠通常都位於交換器的背面。但在像圖中 3560 之類較小型的交換器中, 控制台則是位於前面右方以便於使用 • 如果 POST 成功地完成, 則系統 LED 會變成綠色;如果 POST 失敗, 則它會轉成黃色。黃色通常代表致命的故障 • 底部的按鈕用來顯示哪些燈正在提供乙太網路電源 (Power over Ethernet, PoE) - 按下 Mode 按鈕就可以看到﹐PoE讓我們只要使用乙太網路纜線將存取點或電話插入交換器就可以使用了
Catalyst 交換器的HTTP快速安裝 • 連接交換器, 並且在瀏覽器的 HTTP 欄位中輸入 10.0.0.1 :
連結交換器 • 如圖 8.13 般地相互連結交換器。2960 和 3560 交換器會自動偵測連線類型, 所以可以使用直穿式纜線﹐但 2950 或 3550 交換器不會自動偵測纜線的類型﹐必須使用交叉式纜線 • 一開始將交換器的埠彼此相連時, 鏈路的燈是橘色, 然後再轉為綠色表示運作正常。這代表擴展樹的收斂, 如您所知, 如果沒有開啟延伸功能的話, 這個過程大約要 50 秒 • 但如果連上交換器的埠之後, 這個埠的燈輪流閃爍綠色和黃色, 就表示它遇到錯誤了。此時, 請檢查主機的 NIC 卡或纜線
設定S1交換器 交換器所有埠的預設都是啟動的
設定S1交換器(續) 交換器沒有輔助埠 交換器的IP位址必須在管理VLAN下設定
從S2 ping S1 • Core 交換器還沒有設定, 如何能透過它來進行 ping 的工作? • 交換器不用設定就能運作。所有的埠預設都會開啟, 所以只要打開電源, 主機間應該就能溝通了 • 為什麼以上的輸出中只有 4 個 ping、而不是 5 個 ping 能夠成功? • 第一個 ping 失敗是因為 ARP 需要時間將 IP 位址解析為硬體 MAC 位址
從其他LAN來管理交換器 • 如果您想要從其他 LAN 來管理您的交換器, 就必須在交換器上設定預設閘道﹐例如: 這得在整體設定模式下設定﹐而非界面模式
設定埠的安全性 最多只允許一個MAC 自動學習MAC位址 違反規則的主機所傳送的訊框會被丟棄 透過SNMP警告您在埠上發生了違規行為
設定PortFast • 在 S1 和 S2 連接主機的埠 fa0 / 3 和 fa0 / 4 上使用 PortFast:
對設定PortFast的埠進行保護 • 開啟 PBDUGuard • 如果開啟 PortFast 的交換埠收到 BPDU 的時候, 它會將這個埠置於錯誤關閉狀態。這能讓管理者不會偶然地將另一個交換器或集線器的埠連到設定了 PortFast 的交換埠 • 開啟BPDUFilter • 預設上開啟 PortFast 的交換埠還是會接收 BPDU,開啟BPDUFilter的埠會在接收到 BPDU 的時候立即將埠脫離 PortFast, 並且強迫它再次成為 STP 協定的一部分﹐但不會關閉該埠
設定 BPDUGuard 和 BPDUFilter • 為那些已經在 S1 和 S2上設定PortFast的埠 fa0 / 3 和 fa0 / 4 上設定BPDUGuard 和 BPDUFilter:
設定UplinkFast • 在存取層交換器 (S1 和 S2) 上設定 UplinkFast 在整體模式下設定
設定BackboneFast BackboneFast 是設定在網路上所有的交換器上, 而不是像 UplinkFast 只設定在存取層交換器上﹐而且BackboneFast 是用來判定遠端交換器的鏈路故障, 而不像 UplinkFast 是用來判定並快速修復本地交換器上的鏈路故障
設定RSTP (802.1w) • 在 Core 交換器上開啟 RSTP
檢驗RSTP (802.1w)的設定 • 驗證看看執行 802.1w 版本的 Core 交換器 因為S1、S2都只執行802.1d﹐所以core交換器會為他們降級為802.1d。不過如果稍後S1、S2執行802.1w時﹐core得重開機才能停止802.1d