2.38k likes | 2.65k Views
第 7 章. EIGRP 與 OSPF. 本章重點. 7 - 1 EIGRP 的功能與運作 7 - 2 利用 EIGRP 來支援大型網路 7 - 3 設定 EIGRP 7 - 4 EIGRP 的負載平衡 7 - 5 確認 EIGRP 的設定 7 - 6 OSPF 基礎 7 - 7 設定 OSPF 7 - 8 確認 OSPF 的設定 7 - 9 OSPF DR 與 BDR 的選舉. 本章重點. 7 - 10 OSPF 與回繞界面 7 - 11 檢修 OSPF
E N D
第 7 章 EIGRP 與 OSPF
本章重點 • 7 - 1 EIGRP 的功能與運作 • 7 - 2 利用 EIGRP 來支援大型網路 • 7 - 3 設定 EIGRP • 7 - 4 EIGRP 的負載平衡 • 7 - 5 確認 EIGRP 的設定 • 7 - 6 OSPF 基礎 • 7 - 7 設定 OSPF • 7 - 8 確認 OSPF 的設定 • 7 - 9 OSPF DR 與 BDR 的選舉
本章重點 • 7 - 10 OSPF 與回繞界面 • 7 - 11 檢修 OSPF • 7 - 12 設定 EIGRP 與 OSPF 的總結路徑 • 7 - 13 摘要
EIGRP 與 OSPF • 加強版內部閘道遶送協定 (Enhanced Interior Gateway Routing Protocol, EIGRP) 是一種專屬的 Cisco 協定, 在 Cisco 路由器、Cisco 產品中的路徑處理器、以及核心層交換器上運作。 • 本章會展示 EIGRP 的許多功能, 並描述它們的運作方式, 特別是它如何發現、選擇、以及宣傳路徑的特有方式。
EIGRP 與 OSPF • 我們也會介紹開放式最短路徑優先 (Open Shortest Path First, OSPF) 遶送協定, 先熟悉它的術語與內部運作, 然後學習 OSPF 凌駕於 RIP 之上的優勢。 • 接著探索各種廣播與非廣播之網路環境中的 OSPF 實作議題, 解釋如何在特定的網路環境中實作單一區域的 OSPF, 並展示如何確認每件事都很順利地在運作。
7 - 1 EIGRP 的功能與運作 • EIGRP 是一種無級別 (classless)、加強版的距離向量 (distance-vector) 協定, 提供另一種比 IGRP 更好的 Cisco 專屬遶送協定, 這也是為什麼稱它為加強版 IGRP 的原因。 • 就像 IGRP 一樣, EIGRP 使用自治系統 (autonomous system) 的觀念來描述一組鄰近的路由器, 並執行相同的遶送協定, 與分享路徑資訊。 • 但與 IGRP 不同的是, EIGRP 在路徑更新中包含了子網路遮罩的資訊。
EIGRP 的功能與運作 • 子網路資訊的宣傳讓我們得以在設計網路時使用 VLSM 與路徑總結! • EIGRP 有時又稱為混合式遶送協定 (hybrid routing protocol), 因為它同時有距離向量與鏈路狀態協定的特性。 • 例如, EIGRP 並不像 OSPF 會傳送鏈路狀態的封包, 而是傳送傳統的距離向量更新, 包含網路、從宣傳路由器的觀點所計算之抵達這些網路的成本等資訊。
EIGRP 的功能與運作 • 然而 EIGRP 也有鏈路狀態的特性, 啟動時先同步鄰居之間的路徑表, 然後只在拓樸發生改變時才傳送特定的更新。 • 這使得 EIGRP 更能適合非常大型的網路, EIGRP 的最大中繼節點計數 (hop count) 為 255。 • EIGPR 有許多強大的功能, 這使得它比 IGRP 及其他的遶送協定還傑出, 這些主要的功能包括。
EIGRP 的功能與運作 • 透過協定相依模組 (protocol-dependent module, PDM) 來支援 IP 與 IPv6 (以及一些其它無用的被遶送協定)。 • 無級別的遶送協定 (與 RIPv2 及 OSPF 一樣) • 支援 VLSM / CIDR • 支援路徑總結與非連續的網路 • 有效率地發現鄰居。 • 透過可靠的傳輸協定 (Reliable Transport Protocol, RTP) 來通訊。 • 透過擴散更新演算法 (Diffusing Update Algorithm, DUAL) 來選擇最佳路徑。
協定相依模組 • EIGRP 最有趣的功能之一就是它支援多個網路層協定的遶送:IP、IPX、AppleTalk、與 IPv6 (顯然地, 我們不會使用 IPX 與 AppleTalk, 但 EIGRP 確實支援它們)。 • 另一個也支援多個網路層協定的類似協定是中介系統對中介系統 (Intermediate System-to-Intermediate System, IS-IS)。
協定相依模組 • EIGRP 透過協定相依模組 (PDM) 來支援不同的網路層協定, 每個 EIGRP PDM 會維護個別的一組表格, 包含應用於特定協定的路徑資訊。 • 例如這表示它會有 IP / EIGRP 表格與 IPv6 / EIGRP 表格。
發現鄰居 • EIGRP 路由器必須先成為鄰居, 才願意互相交換路徑。建立鄰居關係必須符合 3 個條件: • 收到 Hello 或 ACK。 • AS 號碼相符。 • 相同的衡量指標 (K 值)。 • 鏈路狀態協定傾向於使用 Hello 訊息來建立鄰居關係, 因為它們一般都不會定期傳送路徑更新, 必須有某種機制來幫助鄰居知道有新的同伴加入, 或有老同伴離開或故障。
發現鄰居 • 為了維護鄰居關係, EIGRP 路由器也必須持續地從其鄰居們接收 Hello。 • 屬於不同自治系統的 EIGRP 路由器不會自動地分享路徑資訊, 而且不會成為鄰居。 • 當用於大型網路時, 這種行為模式非常好, 可減少路徑資訊經由特定自治系統來散播路徑資訊的量。 • 唯一的缺點就是我們可能得在不同自治系統之間手動地費心路徑重分送 (redistribution) 的設定。
發現鄰居 • EIGRP 唯一會宣傳整個路徑表的時機就是當它發現新鄰居, 並且透過 Hello 封包的交換與它形成緊鄰關係 (adjacency)。 • 發生這種事時, 2 部鄰居都會宣傳它們的整個路徑表給另外一部。 • 當每部路由器學到它鄰居的路徑之後, 從那時起, 就只會宣傳路徑表的異動部份。 • 當 EIGRP 路由器收到它們鄰居的更新之後, 會儲存到本機的拓樸表中。
發現鄰居 • 這張表包含從所有已知鄰居來的所有已知路徑, 作為挑選最佳路徑放入路徑表的原始素材。 • 接下來在繼續討論之前, 讓我們先定義一些術語: • 可行距離 (feasible distance)這是抵達遠端網路之所有路線中的最佳衡量指標, 包括抵達當初宣傳該遠端網路之鄰居的衡量指標。 • 這是您能在路徑表中找到的路徑, 因為它被認為是最佳的路徑。
發現鄰居 • 要計算可行距離的衡量指標, 須使用鄰居報告的衡量指標 (稱為報告的距離或宣傳的距離) 加上抵達報告該路徑之鄰居的衡量指標。 • 報告的距離 / 宣傳的距離 (reported distance / advertised distance)由某個鄰居報告的一個抵達遠端網路的衡量指標。 • 也是該鄰居的路徑表衡量指標, 與拓樸表中括號裡的第二個數字一樣;第一個數字是可行距離。 • 鄰居表 (neighbor table)每部路由器都會保存緊鄰鄰居的狀態資訊。
發現鄰居 • 當它學習到新發現的鄰居時, 會記錄鄰居的位址與界面, 並且將這種資訊保存在鄰居表中;鄰居表乃儲存在 RAM 中。 • 每個協定相依模組都會各有一個鄰居表。 • 路由器會利用序號來比對更新封包的確認號碼, 而且會記錄從鄰居所接收的最後一個序號, 這樣就可以偵測到失序的封包。 • 拓樸表 (topology table)拓樸表是由協定相依模組產生的, DUAL 演算法乃利用它來運算。
發現鄰居 • 拓樸表包含鄰居路由器所宣傳之所有目的地, 保存每個目的地的位址、以及宣傳該目的地之鄰居清單。 • 對於每個鄰居, 會記錄所宣傳的衡量指標, 而這只會來自於該鄰居的路徑表。 • 如果某個鄰居宣傳某個目的地, 表示它一定是利用該路徑來轉送封包。 • 可行後繼者 (feasible successor)可行後繼者是一條路徑, 它的報告距離比可行距離小, 被認為是一條備援路徑。
發現鄰居 • EIGRP 最多可保留 6 條可行後繼者於拓樸表中, 而只有具備最佳衡量指標 (後繼者) 的一條會拷貝至路徑表中。 • show ip eigrp topology命令會顯示路由器知道的所有 EIGRP 可行後繼者路徑。 • 後繼者 (successor)後繼者路徑是通往某個遠端網路的最佳路徑。 • EIGRP 利用後繼者路徑來轉送交通到某個目的地, 而且會將後繼者路徑存放在路徑表中。
發現鄰居 • 後繼者的備援就是存在拓樸表中的可行後繼者路徑 (如果有的話)。 • 利用可行距離, 並且在拓樸表中保有可行後繼者當作備援鏈路, 網路就能立即收斂, 而且 EIGRP 只會傳送更新給它的鄰居。
可靠的傳輸協定 (RTP) • EIGRP 利用一種稱為可靠之傳輸協定 (Reliable Transport Protocol, RTP) 的專屬協定, 管理 EIGRP 路由器之間的訊息通訊。 • 一如名稱所暗示的, 可靠性是這種協定的重要考量。Cisco 設計了一種機制, 徵用多點傳播與單點傳播來快速傳送更新, 並記錄資料的接收。 • 當 EIGRP 傳送多點傳播交通時, 會使用 D 級位址 224.0.0.10。 • 如剛才所說的, 每部 EIGRP 路由器都知道它的鄰居是誰, 以及它所送出的每份多點傳播。
可靠的傳輸協定 (RTP) • 它會維護一份已經回應的鄰居清單, 如果沒有收到某個鄰居的回應, 就會轉而利用單點傳播來重送相同的資料。 • 如果嘗試 16 次單點傳播之後仍然沒有取得回應, 就判定該鄰居死刑;人們通常稱這種程序為可靠的多點傳播 (reliable multicast)。 • 路由器會藉由指定序號給每個封包, 以記錄它所傳送的資訊。 • 利用這種技巧, 就能偵測到過時的、多餘的、或失序的資訊。
可靠的傳輸協定 (RTP) • 進行這些事情的能力是非常重要的, 因為 EIGRP 屬於安靜的協定。 • 它所依賴的能力就是在啟動時同步路徑資料庫, 然後只對異動進行通訊, 以維護資料庫的一致性。 • 因此如果有封包永久的遺失, 或沒有依照順序執行封包, 就可能導致路徑資料庫的損毀。
擴散更新演算法 (DUAL) • EIGRP 利用擴散更新演算法 (Diffusing Update Algorithm, DUAL) 來選擇與維護每個遠端網路的最佳路徑。 • 這個演算法的能力包括: • 找出可用的備援路徑。 • 支援 VLSM。 • 復原動態路徑。 • 如果找不到路徑, 就查詢替代路徑。 • DUAL 使得 EIGRP 成為所有的協定中, 路徑收斂時間最短的一種。
擴散更新演算法 (DUAL) • EIGRP 收斂速度最快的關鍵有 2 個方面:首先, EIGRP 路由器維護一份所有鄰居路徑的拷貝, 用來計算它們自己通往每個遠端網路的成本。 • 如果最佳路徑故障, 只要檢查拓樸表的內容, 很簡單地就可找出最佳的替代路徑。 • 其次, EIGRP 路由器如果無法從本地的拓樸表中找到好的替代路徑, 就很快地要求它們的鄰居幫忙找尋。 • 倚賴其他的路由器, 並利用它們所提供的資訊, 正說明了 DUAL 中擴散一詞的意義。
擴散更新演算法 (DUAL) • 如之前所說的, Hello 協定的整個構想是要快速地偵測出新進入或死亡的鄰居。 • RTP 回應這個需求的方式是提供可靠的機制來依序地傳送訊息, DUAL 植基於這個堅固的基礎, 負責選擇與維護最佳路徑的資訊。
7 - 2 利用 EIGRP 來支援大型網路 • EIGRP 包括一群非常酷的功能, 使它非常適合用於大型網路中: • 在一部路由器上支援多個 AS • 支援 VLSM 與總結 • 發現與維護路徑
多個 AS • EIGRP 使用自治系統號碼來識別一群分享路徑資訊的路由器, 只有相同自治系統號碼的路由器可分享路徑。 • 在大型網路中, 很容易就會造就出非常複雜的拓樸與路徑表, 而且在擴散計算的運算中會顯著地降低收斂速度。 • 因此, 管理員要做什麼才能緩和大型網路的衝擊呢?
多個 AS • 沒錯, 我們可能得將網路分割成多個不同的 EIGRP 自治系統 (AS), 每個 AS 是由鄰近的一組路由器組成的, 而不同的 AS 之間可以藉由重分送 (redistribution) 來分享路徑資訊。 • 在 EIGRP 中使用重分送會引起其他有趣的特性。 • 一般而言, EIGRP 路徑的管理性距離 (administrative distance) 是 90, 但這種路徑只適用於所謂的內部 EIGRP 路徑 (internal EIGRP route)。
多個 AS • 這些是由同屬相同自治系統之 EIGRP 路由器在該自治系統內產生的路徑。 • 另一種路徑則稱為外部 EGIRP 路徑 (external EIGRP route), 其管理性距離是 170, 比內部 EIGRP 路徑差。 • 外部路徑可能是由於手動或自動的重分送, 而出現在 EIGRP 路徑表中。
多個 AS • 它們代表的是起源於 EIGRP 自治系統外部的網路, 而且不在乎這些路徑是起源於其他的 EIGRP 自治系統, 或其他的遶送協定, 如 OSPF 等。 • 當它們重新分送給 EIGRP 時, 就會被視為外部的路徑。 • 關於 EIGRP 與重分送, 有幾個不錯的功能。假設有個公司的所有路由器都運行 IGRP, 他們剛剛任用您當網路管理員。
多個 AS • 因為您剛剛研究完這本書, 知道 EIGRP 有許多比 IGRP 好的地方, 所以您決定在網路上運行 EIGRP。 • 因為您需要慢慢地移植到 EIGRP, 而且無法同時更改所有的路由器, 所以需要設定重分送 - 對吧? • 其實 EIGRP 不需要這樣!只要您替 EIGRP 使用相同的自治系統號碼, EIGRP 就會自動地從 IGRP 重新分送路徑到 EIGRP。
多個 AS • 當然, EIGRP 會將這些視為外部的路徑 (AD 為 170), 因此這並非永久之計, 您一定會希望儘可能快點移植過去。 • 但因為有這種自動重分送的功能, 所以您不需要趕在一個週末移植完成。
支援 VLSM 與路徑總結 • EIGRP 是一種較複雜的無級別遶送協定, 支援 VLSM 的運用。 • 這真的非常重要, 因為透過更符合主機需求的子網路遮罩, 可節省位址空間, 例如針對點對點的網路利用 30 位元的子網路遮罩。 • 而且因為每個路徑更新都會散播子網路遮罩, 所以 EIGRP 也支援非連續子網路的運用, 使得我們在規劃網路的 IP 位址時, 能有更大的彈性。
支援 VLSM 與路徑總結 • 何謂非連續的子網路?這是指從一個有級別網路分割出來的 2 個子網路, 但是靠另一個有級別的網路連在一起。 • 圖 7.1 顯示典型的非連續網路。 • 172.16.10.0 與 172.16.20.0 等子網路靠 10.3.1.0 網路連在一起, 每個路由器都認為它只有 172.16.0.0 的有級別網路。
支援 VLSM 與路徑總結 • 非連續網路完全無法與 RIPv1 或 IGRP 一起運作, 預設上它們也無法在 RIPv2、或 EIGRP 網路上運作。 • 但非連續網路在預設上卻可以在 OSPF 網路上運作, 因為 OSPF 並不像 EIGRP 那樣會進行自動的路徑總結。 • 不過不必擔心, 倒是有方法可以讓 EIGRP 能運作, 稍後就會跟您說明。
支援 VLSM 與路徑總結 • EIGPR 也支援手動地於任何 EIGRP 路由器上產生總結, 以縮減路徑表的大小。 • 然而, EIGRP 會自動地於有級別的邊界總結網路, 圖 7.2 顯示 EIGRP 路由器如何看待它會自動進行總結的網路與邊界 (見下頁圖)。 • 很明顯地, 根據預設這是無法運作的!請注意, RIP、RIPv2、與 IGRP 的預設也會自動總結這些邊界, 但 OSPF 則不然。
發現與維護路徑 • EIGRP 的混合特性完全表露於它在發現與維護路徑的做法上。 • 就像許多鏈路狀態協定一樣, EIGRP 支援透過 Hello 程序來發現鄰居的觀念, 並且監視它的狀態。 • 同時像許多距離向量協定一樣, EIGRP 使用之前所說之謠傳式遶送 (routing-by-rumor) 的機制, 也就是許多路由器事先並沒有收到路徑更新。 • 它們從其他的路由器收到這些資訊, 而那些路由器可能也是之前從其他路由器聽來的。
發現與維護路徑 • 假定 EIGRP 路由器必須收集大量的資訊, 那麼它們也必須有地方加以儲存, 對吧? • 沒錯, EIGRP 利用一系列的表格來儲存有關環境的重要資訊, 包括: • 鄰居關係表 (neighborship table)鄰居關係表 (通常又稱為鄰居表) 記錄了那些已經與它形成鄰居關係的路由器的相關資訊。 • 拓樸表 (topology table)拓樸表儲存它從每個鄰居收到的, 有關互連網路中每條路徑的路徑宣傳。
發現與維護路徑 • 路徑表 (route table)路徑表儲存目前用來進行遶送決策的路徑, 針對每一種 EIGRP 支援的協定會有個別的路徑表, 例如 IP 或 IPv6 專用的路徑表。 • 現在我們要討論 EIGRP 衡量指標, 然後轉移到 EIGRP 的設定。
EIGRP 衡量指標 • EIGRP 另一個不錯的特色是, 不像其他協定只使用單一種因素來比較與挑選最佳路徑, EIGRP 使用 4 種組合: • 頻寬 (Bandwidth) • 延遲 (Delay) • 負載 (Load) • 可靠性 (Reliability) • 就像 IGRP 一樣, 預設上 EIGRP 只使用線路的頻寬與延遲來決定抵達遠端網路之最佳路徑。
EIGRP 衡量指標 • Cisco 有時喜歡稱這些為路徑頻寬值與累計的鏈路延遲。 • 值得注意的是, 有第 5 個因素:最大傳輸單元 (maximum transmission unit, MTU) 長度。 • 這個因素從來沒有用在 EIGRP 的計算中, 但在有些 EIGRP 相關的命令中, 它是個必要的參數, 特別是在涉及重分送的地方。 • MTU 的值代表路徑抵達目的網路的途中所遇到的最小 MTU 值。
最大路徑與中繼站數目 • 根據預設, EIGRP 最多可以提供 4 條相等成本的負載平衡 (其實所有遶送協定都是這樣)。 • 然而, 藉由以下的命令, 您可以讓 EIGRP 最多以 6 條鏈路 (相等或不相等) 來進行負載平衡: • 此外, EIGRP 的最大中繼站數目為 100, 而且最高還可以設到 255。
最大路徑與中繼站數目 • 我們很少會有機會去更改它, 不過如果您想要改, 命令如下: • 從命令的輸出畫面也可以發現, EIGRP 最多可以設定 255 個中繼站。 • 即使 EIGRP 不使用線路中的中繼站數目來計算衡量指標, 仍然會使用最大中繼站數目來限制 AS 的範圍。
7 - 3 設定 EIGRP • 雖然 EIGRP 可針對 IP、IPv6、IPX、AppleTalk 等協定來設定, 但想要成為 CCNA, 現在只要專注於 IP 的設定即可。 • 能用來輸入 EIGRP 命令的模式有 2 個:路由器設定模式與界面設定模式。 • 路由器設定模式啟動該協定, 決定哪個網路要執行 EIGRP, 並設定整體的特性。 • 界面設定模式可用來客製化總結、衡量指標、逾時計時器、以及頻寬等。
設定 EIGRP • 要在路由器上啟動 EIGRP 會談, 須使用 router eigrp命令, 後面跟著網路的自治系統編號。 • 然後利用network 命令與網路號碼, 輸入連結該路由器的網路號碼。 • 例如, 在一個連結 10.3.1.0 / 24 與 172.16.10.0 / 24 網路之路由器上針對 AS 20 啟動 EIGRP:
設定 EIGRP • 記住, 就如同 RIP 的設定一樣, 我們使用有級別的網路位址, 也就是所有子網路與主機位元都關閉。 • 假設您想要讓某片界面停止運行 EIGRP, 例如 BRI 界面或連接網際網路的序列連線, 則要利用 passive-interface 界面命令來標示該界面為被動的界面 (passive interface), 就像我們在第 6 章針對 RIP 所討論的那樣。 • 以下的命令展示如何將序列 0 / 1 界面標示為被動的界面。
設定 EIGRP • 這樣做就可禁止該界面收送 Hello 封包, 結果阻止它形成緊鄰關係, 這表示該界面將不會收送任何路徑資訊。 • 好的, 讓我們以上一章設定 RIP 與 RIPv2 所用的相同網路, 進行 EIGRP 的設定。