第 6 章 IP 遶送
IP 遶送流程(1) 以圖 6.2 為例, Host_A 上的使用者對 Host_B 的 IP 位址進行 ping 的通訊過程:
遶送流程(2) 1. ICMP產生 echo 請求的有效負載 2. ICMP 將有效負載傳給 IP 以建立封包;這個封包中至少包含 IP 來源位址、IP 目標位址、和內容為 01h 的協定欄位。當封包抵達目標時, 這個資訊就能告訴接收端主機應該將此有效負載交給誰 3. 一旦建立封包後, IP 會判斷目標 IP 位址是位於本地網路或遠端網路 4. 由於 IP 判定這是遠端請求, 所以封包必須送往預設閘道以便遶送至遠端網路。於是藉由解析 Windows 中的 Registry, 以找出設定的預設閘道 5. 主機 172.16.10.2 (Host_A) 的預設閘道是 172.16.10.1。為了要將該封包送到預設閘道, 必須先知道路由器界面 Ethernet 0 的硬體位址。因為如此該封包才能往下送給資料鏈結層來建立訊框, 並且送往路由器上連到 172.16.10.0 網路的界面。因為本地 LAN 上的主機間只會透過硬體位址進行通訊, 所以當 Host_A 要與 Host_B 進行通訊時, 必須先將封包送往本地網路上預設閘道的 MAC 位址
遶送流程(3) 6. 接著檢查 ARP 快取記憶體, 看預設閘道的 IP 位址是否已被解析為硬體位址: 如果該主機的 ARP 快取記憶體中還沒有該硬體位址, 則會對區域網路送出 ARP 廣播, 以搜尋 172.16.10.1 的硬體位址。路由器會回應這個請求, 並且提供其 Ethernet0 的硬體位址, 而該主機則會將此位址放入快取中 7. 當封包與目標硬體位址傳給資料鏈結層後, 就會利用 LAN 驅動程式透過所使用的區域網路類型來提供媒介存取﹐並使用控制資訊封裝這個封包而產生訊框
遶送流程(4) 8. 完成訊框的裝填後就會交由實體層逐一將每個位元放入實體媒介中 9. 碰撞網域中的每個裝置都會收到這些位元, 建立訊框, 執行 CRC, 並且檢查 FCS 欄位中的結果。如果結果不符, 訊框就會被丟棄 如果 CRC 相符, 則檢查硬體目的位址, 判斷是否也符合 如果符合, 則檢查 Ether-Type 欄位以找出網路層所使用的協定 10. 將封包由訊框中取出, 傳給 Ether-Type 欄位中所指定的協定 (亦即 IP), 並且丟棄訊框的剩餘部份 11. IP 收到封包, 並且檢查 IP 目的位址。因為該封包的目的位址並不符合接收路由器本身所設定的任何位址, 該路由器會在它的路徑表中尋找目的 IP 的網路位址 12. 路徑表必須包含網路 172.16.20.0 的資料, 否則封包會立刻被丟棄, 並且將包含「destination network unreachable」訊息的 ICMP 訊息回送給最初的裝置
遶送流程(5) 13. 如果路由器在表中找到目的網路, 則封包會被交換到離開的界面 - 在本例為 Ethernet1
遶送流程(6) 15. Ethernet1 緩衝區必須知道目的主機的硬體位址, 所以會先檢查它的 ARP 快取 如果過去已經解析過 Host_B 的硬體位址, 並且放在路由器的 ARP 快取中, 這時就會將封包與硬體位址向下傳給資料鏈結層建立訊框。讓我們利用 show ip arp 命令來檢視 Lab_A 路由器上的 ARP 快取: 如果尚未解析過該硬體位址, 路由器會從 Ethernet1 送出 ARP 請求, 以尋找 172.16.20.2 的硬體位址。Host_B 會回應自己的硬體位址 接著封包與目的位址會送往資料鏈結層建立訊框 表示這是路由器上的實體界面 Cisco 路由器對於 ARP 表格中的記錄會保存 4 小時
遶送流程(7) 16. 資料鏈結層建立訊框, 包含目的與來源硬體位址、Ether-Type 欄位、與訊框尾端的 FCS 欄位。將該訊框送往實體層以便逐一將位元送到實體媒介中 17. Host_B 收到訊框, 並且立即執行 CRC。如果結果與 FCS 欄位相符, 就檢查目的硬體位址。如果仍然相符, 就檢查 Ether-Type 欄位以判斷封包應該送往網路層的哪個協定 - 在本例為 IP 18. 在網路層中, IP 會接收這個封包, 並且檢查 IP 目的位址。當確定符合後會檢查協定欄位, 以找出其有效負載要交給誰 19. 將有效負載被交給 ICMP;它能瞭解這是個 echo 請求, 並且加以回應 - 立即丟棄這個封包, 並且產生新的有效負載作為 echo 的回應 20. 接著建立封包, 包含來源與目的位址、協定欄位、以及負載;現在的目的裝置為 Host_A 21. IP 接著檢查目的 IP 位址是位於本地 LAN 或遠端網路上的裝置。因為目的裝置是位於遠端網路, 所以該封包必須送往預設的閘道
遶送流程(8) 22. 在 Windows 裝置的 Registry 中找到預設的閘道 IP, 並且檢查 ARP 快取以檢查該 IP 位址是否已經解析為硬體位址 23. 一旦找到預設閘道的硬體位址, 將封包與目的硬體位址向下傳給資料鏈結層以建立訊框 24. 資料鏈結層的訊框標頭中包含下列資訊: 目的與來源硬體位址 值為 0 x 800 (IP) 的 Ether-Type 欄位 包含 CRC 結果的 FCS 欄位 25. 下傳訊框給實體層以逐一將每個位元送給網路媒介 26. 路由器的 Ethernet 1 界面會接收這些位元並且建立訊框, 執行 CRC, 檢查 FCS 欄位以確保結果相符 27. 如果 CRC 正確, 接著檢查目的硬體位址﹐因為符合路由器的界面, 所以將封包由訊框中取出, 並且檢查 Ether-Type 欄位, 以找出應該將封包遞送給網路層的哪個協定
遶送流程(9) 28. 判定協定為 IP, 所以由它取得封包。IP 會先對 IP 標頭執行 CRC 檢查, 然後檢查目的 IP 位址。因為 IP 目的位址並不符合路由器的任何界面, 所以會檢查路徑表以找出是否有通往 172.16.10.0 的路徑 如果沒有通往目的網路的路徑, 封包就會立刻被丟棄 (這是許多管理者發生混淆的地方 - 當 ping 失敗時, 大多數人會認為是因為封包並沒有抵達目的主機﹐但是在此可以看出, 事實上未必如此。它可能只是因為某個遠端路由器中少了一條回到原始主機網路的路徑罷了!此時, 封包是在回程、而不是前往主機的途中被丟棄的) 29. 在這個例子中, 路由器確實知道如何抵達網路 172.16.10.0 - 離開的界面是 Ethernet 0 - 所以封包被交換到界面 Ethernet 0 30. 路由器檢查 ARP 快取, 以判斷是否已經解析過 172.16.10.2 的硬體位址了 31. 因為 172.16.10.2 的硬體位址剛才在去程中就已經放入快取了, 所以將硬體位址與封包傳給資料鏈結層
遶送流程(10) 32. 資料鏈結層使用目的硬體位址與來源硬體位址建立訊框, 並且將 IP 放入 Ether-Type 欄位。對訊框執行 CRC, 將結果放入 FCS 欄位中 33. 接著將訊框傳給實體層, 以便逐一將每個位元送入區域網路中 34. 目的主機收到訊框, 執行 CRC, 檢查目的硬體位址, 並且檢視 Ether-Type 欄位以找出要將封包傳給誰 35. IP 是被指定的接收者;當封包傳給網路層的 IP 時, 它會檢查協定欄位尋求更進一步的指示。IP 根據指示將有效負載交給 ICMP, 而 ICMP 接著判斷出這個封包是 ICMP 的 echo 回應 36. ICMP 送出 (!) 到使用者界面以確認它已經收到回應, 接著再嘗試傳送另外 4 個 echo 請求給目的主機
測試您對 IP 遶送的瞭解一 從 HostA 發出之訊框的目的位址是 RouterA 路由器之 Fa0 / 0 界面的 MAC 位址 封包的目的位址是 HTTP 伺服器之網路界面卡的 IP 位址。 資料段標頭中目的埠號的值是 80
測試您對 IP 遶送的瞭解二 從 HostA 發出之訊框的目的位址是 RouterA 路由器之 Fa0 / 0 界面的 MAC 位址 資料段標頭中目的埠號的值是 443 請注意交換器並沒有被用來當作預設閘道或其他目的地, 因為交換器與遶送無關
測試您對 IP 遶送的瞭解三 如果 Lab_C 路由器的 LAN 界面當掉, 而且 HostA 嘗試要與 HostB 通訊, 這時會發生什麼事? 答案:Lab_C 會利用 ICMP 通知 HostA, 告訴它封包無法抵達 HostB。方法是傳送一筆「目的地無法抵達」的 ICMP 訊息
測試您對 IP 遶送的瞭解四 假設 Corp 路由器收到一個來源 IP 位址為 192.168.214.20、目的位址為 192.168.22.3 的 IP 封包, 會如何處理這個封包? 答案:該封包來自 FastEthernet 0 / 0 界面, 但由於路徑表並沒有顯示任何可抵達 192.168.22.0 的路徑 (也沒有預設路徑)。所以路由器會丟掉這樣的封包, 並且從 FastEthernet 0 / 0 界面送出「目的地無法抵達」的 ICMP 訊息。」
測試您對 IP 遶送的瞭解五 1. 為了與 Sales 伺服器開始通訊, Host 4 送出一個 ARP 請求。這個拓樸中的裝置會如何回應這個請求? 2. Host 4 收到 ARP 回應。它現在會建立封包, 然後將這個封包放入訊框中。如果 Host 4 要與 Sales 伺服器溝通, 則這個離開 Host 4 的封包標頭中會放入甚麼資訊? 3. Lab_A 路由器收到封包, 並且從 Fa0/0 送出到伺服器的 LAN 中。訊框標頭中的來源和目的位址是什麼呢? 4. Host 4 同時在兩個瀏覽器視窗中顯示來自 Sales 伺服器的兩份網站文件。資料如何找到正確的瀏覽器視窗?
測試您對 IP 遶送的瞭解六 Host 4想要與Host1通訊 訊框離開Host 4 時, 目的位址? Lab_B 路由器 Fa0 / 0 界面的 MAC 位址 當封包抵達 Host 1 時, 標頭中的 OSI 第 3 層來源位址 封包的來源 IP 位址會是 Host 4, 而目標位址則是 Host 1 的 IP 位址 Host 4想要與郵件伺服器通訊 離開 Host 4 的第 2 層目的位址是什麼?當電子郵件伺服器收到這個訊框時, 它的來源 MAC 位址又是什麼? 離開 Host 4 的第 2 層目的位址是 Lab_B 路由器 Fa0 / 0 的 MAC 位址, 而電子郵件伺服器收到的第 2 層來源位址則是 Lab_A 路由器的 Fa0 / 0 界面
本書遶送範例的網路圖 10.1.2.0 10.1.3.0
本書遶送範例的IP位址架構
Corp 的組態設定
Corp 的組態設定(續)
Corp 的組態設定(續)
檢視Corp 的組態設定 要等到序列鏈路的另外一端也在運作時, 才會看到序列界面 ISR 路由器會自動偵測到 DCE 類型的纜線, 並且自動設定它的時脈速率
R1 的組態設定 新型12.4 ISR路由器不再接受此簡寫命令 尋找TFTP主機看是否能下載組態檔
R1 的組態設定(續)
R1 的組態設定(續)
R1 的組態設定(續)
檢視R1 的組態設定
檢視R1 的組態設定(續) 這時若回去檢視Corp路由器的路徑表﹐就可發現序列鏈路的路徑已經出現了:
R2 的組態設定 為無線客戶端設定DHCP pool: 設定無線界面 建立主機可以連結的一個無線網路 讓這個界面廣播 SSID 表示不需要驗證 表示這個界面可以用來跟其他存取點、或是基礎建設中的其他裝置溝通 為無線客戶端設定DHCP pool: 建立pool名稱 加入子網路 設定預設閘道 排除不想提供的位址
R3 的組態設定 首先, 設定 F0 / 0 界面的 IP 位址, 並使用交叉式纜線將 PC 直接連到 f0 / 0 通訊埠 透過 HTTP 來存取 R3 路由器, 進入 Configure 頁面, 並且選擇 Additonal Tasks﹐然後點選 Configuration Management 和 Reset to Factory Default 點選右下角的 Reset Router 按鈕, 然後使用螢幕上的指示來設定 PC
R3 的組態設定(續) 接下來我們要透過 HTTPS, 使用指示中提供的 10.10.10.1 位址連回 SDM SDM 要求我們使用 cisco 帳號和 cisco 密碼登入兩次, 且必須接受路由器的憑證, 之後就可透過安全的連線來進行後續的工作 在 SDM 載入後, 路由器首先會要求我們變更使用者帳號和密碼
R3 的組態設定(續) 然後我們必須使用新的名稱和密碼再登入一次。
R3 的組態設定 (續) 之後, 先選擇 Configure, 然後是左上方, 位於 Home 之下的 Interfaces and Connections 點選 Serial (PPP, HDLC, or Frame Relay) 按鈕, 然後就可以選擇 Create New Connection
R3 的組態設定 (續) Create New Connection 按鈕會啟動 WAN 精靈
R3 的組態設定 (續) 選擇我們要的界面, 然後點選 Next
R3 的組態設定 (續) 接著選擇 High-Level Data Link Control, 並按下 Next
R3 的組態設定(續) 接著就可以加入 IP 位址和遮罩 讓您可以設定網路連線而不需要使用 IP 位址。它是從另一個作用中的界面「借用」IP 位址。如果您的子網路不足時, 這會相當方便
R3 的組態設定(續) 這個部份目前暫不設定
R3 的組態設定(續) 接著點選 Next, 並且得到序列 0 / 0 / 1 界面組態的摘要資訊。
R3 的組態設定(續) 點選 Finish, 這些命令就會上傳到 R3 路由器
R3 的組態設定(續) 在從設定 s 0 / 0 / 1 界面的相同位置選擇 FastEthernet 0 / 1 界面後, 選擇 Create New Connection, 然後就會進入 LAN 精靈。
R3 的組態設定(續) LAN 精靈可讓我們選擇直接遶送 (我們在這裡的設定方式), 或是設定 802.1Q 主幹通訊 (trunking)。我們設定 IP 位址和遮罩, 然後點選 Next
R3 的組態設定(續) 如果我們要的話, 也可以為這個 LAN 建立 DHCP 伺服器
R3 的組態設定(續) 因為剛才不小心在設定 F0 / 1 時輸入了錯誤的 IP 位址, 所以唯一修改的方式是在 SDM 選擇 Configure and Edit Interface / Connection, 或是使用 CLI 在這裡雙擊 FastEthernet 0 / 1 界面, 並且改變 IP 位址
R3 的組態設定(續) 在使用 LAN 精靈設定 F0 / 0 之後, 必須儲存組態, 然後將 PC 重新設定到正確的網路, 並且重新連結到 SDM 來驗證組態 雖然我們的主控台和 VTY 密碼在一開始設定 todd 使用者的時候也自動設定好了, 但還是必須選擇 Configure, 然後選擇 Additional Tasks, 接著點選 Router Properties, 以設定主機名稱和 enable secret 密碼
871W 的組態設定 871W 有個 4 埠的交換器, 這表示您必須將 IP 位址放在管理性 VLAN 界面之下。您無法只是將 IP 位址放在第 2 層的交換界面
871W 的組態設定(續)
1242AP 的組態設定 1242AP只是單純的AP﹐不是無線路由器。這裡並沒有設定IP位址﹐因為dot11Radio界面並不是被遶送埠﹐所以要將IP位址設在橋接群組虛擬界面BVI之下
1242AP 的組態設定(續) 在BVI下設定IP位址 其實就像交換器一樣﹐您不必為AP設定IP位址﹐只要為該WLAN設定DHCP Pool就可以運作了
靜態遶送 在每台路由器的路徑表中手動地加入路徑 優點: 缺點: 不會造成路由器 CPU 資源的額外負擔 路由器之間沒有消耗額外的頻寬 增加安全性;因為管理者可以選擇讓遶送只能存取某些特定的網路 缺點: 管理者必須確實熟悉整個互連網路, 以及每台路由器的連結方式, 才能正確地設定路由器 如果要新增網路到互連網路中, 管理者必須手動在所有路由器中加入通往新網路的路徑 在大型網路中並不可行, 因為單維護這些靜態路徑本身就是很繁重的全天候工作
靜態遶送命令 目的網路要放在路徑表中的網路 遮罩該網路使用的子網路遮罩 下一中繼站位址負責接收封包並轉送至遠端網路之下一中繼路由器位址 - 位於直接相連網路的路由器界面 離開界面您也可以用它來取代下一中繼站位址, 這會顯示成直接相連的路徑 管理性距離根據預設, 靜態路徑的管理性距離為 1 (如果您使用離開界面取代下一中繼站位址, 則管理性距離甚至為 0)。您可以在命令後面改變這個預設值 permanent 如果界面被關閉, 或者路由器無法與下一中繼站路由器通訊, 該路徑將會自動從路徑表中移除。反之若選擇這個選項, 就能夠在任何情況下都將這個項目保留在路徑表中
靜態遶送命令範例 目的網路 下一中繼站位址 結尾的 150 將預設的管理性距離由 1 改成 150 用離開界面來取代下一中繼站位址, 然後路徑會顯示成直接相連的網路。 在功能上, 下個中繼站和離開界面的運作是一模一樣的
本書遶送範例的網路圖 10.1.2.0 10.1.3.0
設定Corp路由器的static route 10.1.6.0 10.1.7.0 10.1.8.0 10.1.9.0 10.1.10.0 10.1.11.0 10.1.12.0
設定Corp路由器的static route(續) 對於抵達相同目的網路的多條路徑﹐路徑表會納入AD值較低的﹐但萬一該鏈路故障時﹐就會選上這條原本AD較高的路徑﹐所以這條路徑可說是一條備援路徑。 這裡我們可以任意地交替使用其中一條鏈路﹐因為靜態路徑是無法做負載平衡的 S:表示靜態路徑 C:表示直接相連
利用SDM設定static route
利用SDM檢視路徑表
預設遶送 預設遶送將目的網路不在路徑表中的封包送往某個下一中繼站路由器 您應該只在stub network上使用預設遶送;stub network是只有一條離開路徑的網路。在我們的互連網路範例中, 能被視為是在殘根型網路中的只有 R1、R2 與 871W 路由器 候補的預設路徑 所有 Cisco 路由器都是有級別的路由器, 這表示它們預期在路由器上的每個界面都有預設的子網路遮罩。當路由器收到目的子網路不在路徑表中的封包時, 預設會將它丟棄。如果使用預設遶送, 就必須使用 ip classless 命令讓遠端子網路不必出現在路徑表中。 12.4 版的 IOS預設上已經開啟了 ip classless 命令。如果您使用預設遶送, 且組態中並沒有這個命令, 則如果您的路由器上有子網路切割過的網路時, 就必須加入此命令
三種預設遶送命令 增加預設閘道在 gateway 閘道路由器以通往 ISP 的命令有 3 種 (全部都提供相同的結果): 但這三個命令有些微的差異: 離開界面的設法可蓋過其他 2 種, 因為它的 AD 是 0 在路由器上設定 IGP (類似 R1P) 時, ip default-network 命令會宣傳這個預設網路, 因此互連網路中的其他路由器也會收到這條路徑, 並自動地成為它們的預設路徑
動態遶送 動態遶送是使用遶送協定來尋找網路, 並更新路由器上的路徑表 互連網路中使用的遶送協定有 2 種 比使用靜態或預設遶送簡單, 但會消耗路由器的 CPU 處理資源與網路鏈結的頻寬 遶送協定會定義路由器與其鄰接路由器間溝通路徑資訊時所使用的一組規則 互連網路中使用的遶送協定有 2 種 內部閘道協定IGP 位於相同自治系統 AS中的路由器用來交換遶送資訊的協定 AS 是在相同行政管理網域之下的一組網路, 基本上相同 AS 中的所有路由器應該共享相同的路徑表資訊 外部閘道協定EGP 用在 AS 之間的溝通。例如BGP
管理性距離 用來評比路由器從鄰接路由器所收之路徑資訊的可信度 值為 0 到 255 間的整數, 0 代表最值得信任, 255 則表示沒有交通會透過這條路徑傳送 如果路由器收到兩筆關於相同遠端網路的路徑更新 先檢查 AD﹐如果其中一筆宣傳路徑有較低的 AD, 則最低 AD 的路徑會被放入路徑表中 如果所收到之通往相同網路的 2 條路徑具有相同的 AD, 則會使用遶送協定的衡量指標 (例如中繼站數目或是線路頻寬) ﹐具有最低衡量指標者會被放入路徑表中 如果兩者同時具有相同的 AD 與衡量指標, 則遶送協定會去平衡通往遠端網路的負載 (亦即它會同時使用這 2 條線路來傳送封包)
預設的管理性距離 在我們前面的靜態路徑設定中, 每條路徑的 AD 不是 150 就是 151。這可讓我們在設定遶送協定時, 不必先移除靜態路徑。萬一遶送協定因某種原因失敗時, 先前設定的靜態路徑還可以用來當作備援路徑
遶送協定的分類 距離向量協定 (distance-vector protocol) 鏈路狀態協定(link-state protocol) 根據距離找出通往遠端網路的最佳路徑 封包每經過一台路由器, 稱為一個中繼站 (hop) 向量會指示通往遠端網路的方向 RIP 與 IGRP 均屬距離向量遶送協定, 它們會將整個路徑表傳送給直接相連的鄰居 鏈路狀態協定(link-state protocol) 又稱為最短路徑優先協定 每台路由器會建立 3 個獨立的表格, 其中之一會追蹤直接相連的鄰居, 一個會決定整個互連網路的拓樸, 而最後一個則是路徑表 鏈路狀態路由器對互連網路的瞭解會比距離向量遶送協定清楚。OSPF 是完全屬於鏈路狀態的 IP 遶送協定 鏈路狀態協定會傳送包含它們自己鏈路狀態的路徑更新資訊給網路上所有其他的路由器 混合式協定 同時使用距離向量與鏈路狀態, 例如 EIGRP
距離向量遶送協定 將完整的路徑表內容傳送給鄰接的路由器, 其鄰接路由器則會將收到的路徑表項目與自己的路徑表合併成為該路由器的路徑表-謠傳式遶送 若有多條鏈路都通往相同的遠端網路時如何判斷通往該遠端網路的最佳路徑 先檢查管理性距離 若管理性距離相同, 再使用其他的衡量指標 RIP 只使用中繼站數目 RIP若找到不只一條路徑可通往相同的遠端網路, 並且具有相同中繼站數目, 則會自動執行輪流式負載平衡。RIP 最多能進行 6 條相同成本鏈路的負載平衡 (預設為 4)
針孔式壅塞 因為 RIP 遶送只使用中繼站數目作為唯一的衡量指標, 所以這 2 條鏈路(T1與56K)會被視為具有相同的成本 - 這種小麻煩稱為針孔式壅塞
RIP的收斂 相對而言﹐RIP的收斂時間很長
RIP的問題 距離向量遶送協定會藉由定期從所有作用中的界面廣播路徑更新資訊, 以追蹤互連網路中的任何變動。 這種廣播會包含完整的路徑表, 雖然可運作得不錯, 但是很消耗 CPU 資源與線路頻寬。如果網路發生重大變動, 就會產生問題。 收斂時間緩慢, 也會導致路徑表的不一致和遶送迴圈。當每台路由器沒有同時或接近同時地更新, 就可能產生遶送迴圈
遶送迴圈 當網路 5 故障時 E 路由器會告訴 C 路由器, 造成 C 路由器停止從 E 路由器遶送到網路 5。但是 A、B、與 D 路由器還不知道網路 5 的狀況, 仍舊繼續傳送更新資訊 C 路由器最後終於送出更新, 並且讓 B 路由器停止遶送到網路 5, 但是 A 與 D 路由器仍舊尚未更新。對它們而言, 網路 5 似乎仍舊可以在衡量指標為 3 的情況下, 透過 B 路由器抵達 當 A 路由器每隔 30 秒送出的更新:"嗨!我的鏈路還是老樣子喔!" 時, 表示它仍舊具有抵達網路 5 的能力。 B 與 D 路由器收到這個好消息後, 發現可以從 A 路由器處抵達網路 5, 於是送出可以抵達網路 5 的資訊。任何要送往網路 5 的封包都會先到 A 路由器, 再到 B 路由器, 然後再送回 A 路由器 - 這就是遶送迴圈
最大中繼站數目 前述的遶送迴圈問題稱為 “ counting to infinity” 這是因為在互連網路上宣傳的閒話與錯誤資訊所造成﹐如果沒有某種形式的干預, 中繼站計數會無限地在封包每次經過一台路由器後就遞增 解決問題的一個方式是定義最大中繼站數目 RIP 的中繼站計數最高可以到 15, 所以需要 16 個中繼站的路徑會被視為無法抵達 最大中繼站數目會決定路徑表中的項目要多久需才會被視為無效或有問題
分割視野 另一種解決遶送迴圈的方法稱為 "分割視野" , 強制實施遶送資訊不得往接收方向回傳的規則, 以縮減距離向量網路中不正確的路徑資訊與遶送成本 易言之, 遶送協定會區別網路路徑是從哪個界面取得, 一旦決定之後, 它就不會再從該界面將該路徑宣傳回去 以本例而言﹐這可以防止 A 路由器將 B 路由器送來的更新資訊再回傳給 B 路由器
路徑毒害 另一種避免不一致路徑更新與停止網路迴圈的方法稱為 "路徑毒害" 例如當網路 5 故障時, E 路由器會宣傳網路 5 的中繼站數目為 16 或無法抵達 (有時也稱為無限大), 以施行所謂的路徑毒害。這項路徑的毒害資訊可以讓 C 路由器避免受到關於網路 5 之路徑的不正確更新資訊所影響。當 C 路由器從 E 路由器處收到路徑毒害資訊時, 會將 “逆向毒害” (poison reverse) 的更新資訊傳回給 E 路由器﹐以確保該網段上的所有路由器都收到此路徑毒害資訊。
抑制(holddown) 阻止路由器定期更新一條時好時壞 (稱為反覆, flapping) 的路徑- 這通常發生在斷線後再接上的序列鏈路上﹐因為如果沒有辦法將它穩定下來, 網路就會一直無法收斂, 而這種反覆無常的界面會讓整個網路當掉! 「抑制」機制 在改變到次佳路徑前, 先給一段緩衝的時間, 讓當掉的路徑復原, 或是讓網路穩定下來, 以防止路徑變動得太快。這也告訴路由器在特定期間內, 要限制可能會影響到最近才移除之路徑的變動﹐這讓無作用的路徑不要貿然地回復到其他路由器的表格中
RIP 純正的距離向量協定 每隔 30 秒從所有作用中界面送出完整的路徑表 只使用中繼站數目來判斷通往遠端網路的最佳路徑, 但是預設的最大中繼站數目為 15 在小型網路可運作得不錯﹐但是在設有緩慢之 WAN 鏈路的大型網路, 或是安裝大量路由器的網路上, 則缺乏效率 RIPv1 只使用有級別遶送, 亦即網路上的所有裝置必須使用相同的子網路遮罩﹐因為 RIPv1 在傳送路徑更新時並沒有附帶子網路遮罩的資訊 RIPv2 提供所謂前置位址遶送 (prefix routing), 並且在路徑更新中包含了子網路遮罩的資訊 - 這稱為無級別遶送
RIP 計時器 路徑更新計時器 定期更新路徑的更新間隔 (通常為 30 秒) 路徑無效計時器 在路由器決定將路徑視為無效之前所需等待的時間長度 (180 秒)。如果在這段期間內都沒有聽到關於某條路徑的任何更新資訊, 就會將它判定為無效;此時路由器會傳送更新資訊給其所有鄰居, 讓它們知道這條路徑是無效的 抑制計時器 抑制路徑資訊的時間長度。路由器在收到指示路徑無法抵達的更新封包時, 就會進入抑制狀態。這種狀態會持續至收到具有較佳衡量指標的更新封包, 或是抑制計時器截止時。預設值為 180 秒 路徑沖刷計時器 路徑從變成無效到自路徑表中移除的時間間隔 (240 秒)。在它從表中被移除之前, 路由器會通知其鄰居這條路徑即將作廢。路徑無效計時器的值必須小於路徑沖刷計時器的值, 讓路由器在更新自己的路徑表之前, 有足夠時間能將這條無效路徑告知其鄰居。
本書遶送範例的網路圖 10.1.2.0 10.1.3.0
RIP-設定Corp 告訴遶送協定要宣傳哪個有級別的網路 RIP 的管理性距離為 120, 而靜態路徑預設的管理性距離為 1。由於目前已經設定了靜態路徑, 所以並不會靠 RIP 資訊來宣傳路徑表。不過因為我們剛才在每條靜態路徑的尾端都加上了 150 / 151, 所以應該沒問題 我們並沒有輸入子網路, 而只是有級別的網路位址 (所有子網路位元與主機位元都是關閉的)。找尋子網路並產生路徑表是遶送協定的工作
RIP-設定R1 來自Corp的RIP網路 在兩條鏈路之間進行 負載平衡
RIP-利用SDM設定R3 從遶送畫面中點選 Dynamic Routig 右方的 Edit 按鈕 接著設定 RIP 和網路號碼 然後點選我們不希望廣播 RIP 的界面。沒有道理從沒有連接其他路由器的界面廣播 RIP 出去
RIP-設定範例 2
限制 RIP 宣傳 您可能並不希望您的 RIP 網路被宣傳到 LAN 與 WAN 上的每個地方 - 至少, 把您的 RIP 網路傳到網際網路上可就不是什麼好事! passive-interface 命令會阻止 RIP 的更新廣播從某個界面中送出, 但是該界面仍舊可以接收 RIP 更新。例如:
我們真的應該在互連網路中使用 RIP 嗎? 假設您有幾台舊的 Unix 路由器在網路中﹐這些路由器只支援 RIP 遶送協定。那麼您只能在整個網路上執行 RIP嗎? 這種說法只對了一半。您可以在連到舊網路的路由器上執行 RIP, 但不必在整個互連網路上執行 RIP 您可以利用所謂的 “重分送” (redistribution), 基本上就是將一種遶送協定轉換成另一種。這表示您可以使用 RIP 支援這些舊的路由器, 但是在網路的其他部份使用諸如 EIGRP 等 這會阻止 RIP 路徑在整個互連網路上傳送, 並且吃掉珍貴的頻寬
RIPv1與RIPv2比較表
設定RIPv2
IGRP IGRP是 Cisco 專屬的距離向量遶送協定﹐但是 Cisco不再支援它了﹐Cisco要你使用EIGRP
show ip protocols 命令 Neighbor router
debug ip rip 命令 將路由器所傳送與接收到的路徑更新資訊, 傳送到控制台會談中 如果是使用 telnet 連到路由器, 就必須使用 terminal monitor 命令才能接收偵錯命令的輸出 範例: RIPv1是利用broadcast﹐而RIPv2則是利用224.0.0.9的multicast
debug ip rip 命令(續) 因為split horizon的關係﹐所以只宣傳這幾個網路
debug ip rip 命令(續) 因為Fa0/0所連接的LAN沒有任何路由器﹐所以設了passive interface命令﹐因而不會宣傳RIP資訊
利用 debug ip rip 命令來進行檢修一 利用 debug ip rip 命令來發現問題, 並推算出當初路由器上的 RIP 是如何設定的: 直接相連的網路 直接相連的網路 無法抵達的網路 當初的設定應該是:
利用 debug ip rip 命令來進行檢修二 檢視路由器上使用 debug ip rip 命令和 show ip route 命令的輸出﹐說出為什麼使用者不能存取 172.16.20.0 ? 這裡卻說要從S0/0出去 這條靜態路徑說要送給Fa0/0
在我們的互連網路上啟動 RIPv2 R3 路由器:
檢視我們的 RIPv2設定 改成multicast
檢視我們的 RIPv2設定(續)