目錄

簡介

必要條件

需求

採用元件

慣例

防止通過介面進行路由更新

控制路由更新中的路由處理和通告

在中使用分發清單

使用distribute-list out

相關資訊

簡介

本文說明各種過濾路由的方法以及應用過濾器的效果。本文檔中介紹的過濾器包括阻止通過路由器介面進行更新的過濾器、控制路由更新中路由通告的過濾器，以及控制路由更新處理的過濾器。

由於路由過濾通過調整輸入路由表或通告路由表外的路由來工作，它們對鏈路狀態路由協定的影響與對距離向量協定的影響不同。運行距離向量協定的路由器根據其路由表中的內容通告路由。因此，路由過濾器會影響路由器通告給鄰居的路由。

另一方面，運行鏈路狀態協定的路由器會根據其鏈路狀態資料庫中的資訊（而不是其鄰居通告的路由條目）來確定其路由。路由過濾器對鏈路狀態通告或鏈路狀態資料庫不起作用。因此，本文中的資訊僅適用於距離向量IP路由通訊協定，例如路由資訊通訊協定(RIP)、RIP第2版、內部閘道路由通訊協定(IGRP)和增強型IGRP(EIGRP)。

必要條件

需求

本文件沒有特定先決條件。

採用元件

本文件所述內容不限於特定軟體和硬體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您在即時網路中工作，請確保在使用任何命令之前瞭解其潛在影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

防止通過介面進行路由更新

使用passive interface命令可以防止路由器通過路由器介面傳送路由更新。保持路由更新消息不通過路由器介面傳送，可防止該網路上的其他系統動態獲知路由。有關使用passive interface命令的示例，請參見配置IP路由協定獨立功能中的「被動介面示例」部分。

對於RIP和IGRP，passive interface命令可停止路由器向特定鄰居傳送更新，但路由器繼續偵聽和使用來自該鄰居的路由更新；但是，在EIGRP上，passive interface命令對協定的影響不同，如How Does the Passive Interface Feature Work in EIGRP中所述。

控制路由更新中的路由處理和通告

要在路由更新中控制路由的通告和處理，請使用distribute-list命令。有兩個distribute-list命令：distribute-list in和distribute-list out。它們的語法相似，但可用的選項及其行為卻截然不同。

distribute-list in命令用於控制傳入路由更新中處理的路由。有關此命令的示例，請參見Using distribute-list in部分。

distribute-list out命令用於控制傳出路由更新中包含的路由。有關示例，請參見Using distribute-list out部分。

在中使用分發清單

distribute-list in 命令的語法為：

distribute-list access-list-number in [interface-name]

其中access-list-number是傳入路由更新內容所匹配的標準IP存取清單。[interface-name] 引數是可選的，它指定需要更新的介面。必須注意的是，access-list-number中提到的存取清單會套用到更新的內容，而不是路由更新封包的來源或目的地。路由器根據訪問清單決定是否將內容包含在其路由表中。例如：

access-list 1 permit 1.0.0.0 0.255.255.255

router rip

distribute-list 1 in

!--- The distribute-list command is given !--- under the router configuration mode.

根據access-list 1檢查任何入站RIP更新，只有符合1.xxx.xxx.xxx格式的路由才被放入路由表。

對於給定的路由進程，可以為每個介面定義一個特定於入站介面的分發清單和一個全域性定義的分發清單。例如，以下組合是可能的：

access-list 1 permit 1.0.0.0 0.255.255.255

access-list 2 permit 1.2.3.0 0.0.0.255

router rip

distribute-list 2 in ethernet 0

distribute-list 1 in

在此案例中，路由器會檢查輸入更新的介面。如果是Ethernet 0，則會將access-list 2套用到路由表中。如果基於此檢查，網路被拒絕，則不再對此網路進行進一步檢查。但是，如果distribute-list 2允許網路，則distribute-list 1也會被選中。如果兩個分發清單都允許該網路，則將其放在表中。當使用多個分發清單時，遵循以下演算法。

1. 從入站更新提取下一個網路。

2. 檢查它進入的介面。

3. 是否有分發清單應用於該介面？

- 是:該清單是否拒絕網路？

- 是:網路無法到達路由表；返回步驟1

- 否:允許使用網路；繼續步驟4。

- 否:轉到步驟4。

4. 是否存在全域性分發清單？

- 是:該清單是否拒絕網路？

- 是:網路無法到達路由表；返回到步驟1。

- 否:網路進入路由表；返回到步驟1。

- 否:網路會進入路由表；返回到步驟1。

使用distribute-list out

distribute-list out命令的語法為：

distribute-list access-list-number out [interface-name|routing process|autonomous-system-number]

其中access-list-number是傳出路由更新的內容所匹配的標準IP存取清單。[interface-name]引數是可選的，它指定更新將傳出到哪個介面。指定從另一個路由進程或自治系統編號進行重分發時，使用[routing process|autonomous-system-number] 引數。該清單應用於從指定進程匯入到當前進程的任何路由。

例如：

access-list 1 permit 1.0.0.0 0.255.255.255

router rip

default-metric 1

redistribute igrp 20

distribute-list 1 out igrp 20

在這裡，來自igrp 20的路由被重新分發到RIP中。將根據access-list 1檢查最初來源為igrp 20的任何出站路由更新。僅傳送與1.xxx.xxx.xxx格式匹配的路由。

請注意，如果多個分發清單應用於不同的介面或全域性設定，則可以為給定的路由進程指定多個分發清單。對於任何給定的路由協定，都可以為每個介面定義一個特定於介面的distribute-list，並為每個進程/自治系統對定義一個特定於協定的分發清單。

注意：您可以為每個介面每個方向定義一個特定於介面的distribute-list。即，對於同一介面，可以在入站方向定義一個distribute-list(distribute-list in)，在出站方向定義一個distribute-list(distribute-list out)。

access-list 1 permit 1.0.0.0 0.255.255.255

access-list 2 permit 1.2.3.0 0.0.0.255

router rip

distribute-list 2 out ethernet 0

distribute-list 1 out

在此案例中，路由器僅將與1.2.3.0子網相關的路由從Ethernet 0發出，有關1.0.0.0中網路的任何更新都會泛洪到其餘介面，包括1.2.3.0子網。當使用多個分發清單時，使用以下演算法。

1. 選擇下一個接收出站更新的網路。

2. 檢查傳送該消息的介面。

3. 是否有分發清單應用於該介面？

- 是:該清單是否拒絕網路？

- 是:網路不出去；返回到步驟1。

- 否:網路斷開；繼續步驟4。

- 否:轉到步驟4。

4. 檢查從中匯出路由的路由進程或AS。

5. 是否有分發清單應用於該進程或AS?

- 是:該清單是否拒絕網路？

- 是:網路不出去；返回到步驟1。

- 否:網路斷開；繼續步驟6。

- 否:轉到步驟6。

6. 是否存在全域性分發清單？

- 是:該清單是否拒絕網路？

- 是:網路不出去；返回到步驟1。

- 否:網路斷開；返回到步驟1。

- 否:網路可以做到這一點；轉到步驟1。

請注意，檢查分發清單只是路由器在路由表或更新中將距離向量路由包含之前對距離向量路由執行的許多檢查之一。還檢查合意性、策略、水準分割和其他因素。

相關資訊

- IP 路由通訊協定支援頁面

- IP 路由支援頁面

- 技術支援 - Cisco Systems