目錄

簡介

必要條件

需求

採用元件

慣例

CEF概述

鄰接表

如何讀取RP上的FIB和鄰接表

故障排除方法

案例研究1:連線到直連網路中的主機

疑難排解步驟

備註和結論

案例研究2:連線到遠端網路

疑難排解步驟

備註和結論

案例研究3:到下一跳的負載均衡

疑難排解步驟

案例研究4:預設路由

預設路由存在於路由表中

路由表中不存在預設路由

其他疑難排解提示和已知問題

基於DFC的線卡

禁用IP路由

IP CEF和MLS CEF之間的差異

相關資訊

簡介

本文為使用Supervisor Engine 720、原則功能卡3(PFC3)和多層交換器功能卡3(MSFC3)的Cisco Catalyst 6500/6000系列交換器上的單點傳播IP路由疑難排解提供指南。 Cisco Express Forwarding(CEF)用於在Supervisor Engine 720上執行單點傳播路由。本檔案僅討論搭載Supervisor Engine 720、PFC3和MSFC3的Catalyst 6500/6000系列交換器上的IP路由。本檔案對搭載Supervisor Engine 1或1A的Catalyst 6500/6000或多層交換器模組(MSM)無效。 本檔案僅適用於在Supervisor Engine上執行Cisco IOS®軟體的交換器。本檔案對Cisco Catalyst OS(CatOS)系統軟體無效。

注意：您還可以使用本文檔，對搭載Supervisor Engine 2和MSFC2的Catalyst 6500/6000交換器上的單點傳播IP路由進行疑難排解。

注意：本文檔使用路由處理器(RP)和交換機處理器(SP)來分別代替MSFC和PFC。

必要條件

需求

本文件沒有特定需求。

採用元件

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

慣例

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

CEF概述

CEF最初是一種Cisco IOS軟體交換技術，旨在更快地路由資料包。CEF的可擴充性比快速交換強得多。無需傳送第一個資料包來處理交換。搭載Supervisor Engine 720的Catalyst 6500/6000使用在SP上實作的硬體CEF轉送機制。CEF主要使用兩個表來儲存路由所需的資訊：

- 轉送資訊庫(FIB)表

- 鄰接表

CEF使用FIB以作出IP目的地首碼型交換決策。CEF首先檢視最長匹配。FIB在概念上類似於路由表或資訊庫。FIB維護IP路由表包含的轉發資訊的映象。當網路中發生路由或拓撲更改時，IP路由表會發生更新。FIB反映了這些變化。FIB根據IP路由表中的資訊維護下一跳地址資訊。由於FIB條目和路由表條目之間是一對一的關聯，因此FIB包含所有已知的路由。這消除了與交換路徑相關聯的路由快取維護的需求，例如快速交換和最佳交換。FIB中總有一個相符專案，無論相符專案是預設專案還是萬用字元專案。

鄰接表

如果網路中的節點能夠通過鏈路層的一跳到達彼此，則稱為相鄰節點。除FIB外，CEF還使用鄰接表來預置第2層(L2)編址資訊。鄰接表為所有FIB條目維護第2層下一跳地址。完整的FIB條目包含指向鄰接表中位置的指標，該位置儲存了下一跳到達最終IP目標的L2重寫資訊。為了讓硬體CEF在搭載Supervisor Engine 720系統的Catalyst 6500/6000上運作，IP CEF需要在MSFC3上執行。

如何讀取RP上的FIB和鄰接表

SP的FIB表必須與RP上的FIB表完全相同。在RP上，三重內容可定址儲存器(TCAM)將所有IP字首儲存在FIB中。字首的排序按掩碼長度進行，並以最長的掩碼開始。因此，您首先會找到掩碼為32的所有條目，即主機條目。接下來，查詢掩碼長度為31的所有條目。繼續操作，直到找到掩碼長度為0的條目，這是預設條目。順序讀取FIB，並將第一次命中用作匹配。考慮RP上的以下FIB表格示例：

Cat6500-A#show ip cef

Prefix              Next Hop             Interface

0.0.0.0/0           14.1.24.1            FastEthernet2/48

0.0.0.0/32          receive

14.1.24.0/24        attached             FastEthernet2/48

14.1.24.0/32        receive

14.1.24.1/32        14.1.24.1            FastEthernet2/48

14.1.24.111/32      receive

14.1.24.179/32      14.1.24.179          FastEthernet2/48

14.1.24.255/32      receive

100.100.100.0/24    attached             TenGigabitEthernet6/1

100.100.100.0/32    receive

100.100.100.1/32    100.100.100.1        TenGigabitEthernet6/1

100.100.100.2/32    receive

100.100.100.255/32  receive

112.112.112.0/24    attached             FastEthernet2/2

112.112.112.0/32    receive

112.112.112.1/32    receive

112.112.112.2/32    112.112.112.2        FastEthernet2/2

112.112.112.255/32  receive

127.0.0.0/8         attached             EOBC0/0

127.0.0.0/32        receive

127.0.0.51/32       receive

127.255.255.255/32  receive

Prefix              Next Hop             Interface

222.222.222.0/24    100.100.100.1        TenGigabitEthernet6/1

223.223.223.1/32    100.100.100.1        TenGigabitEthernet6/1

224.0.0.0/4         drop

224.0.0.0/24        receive

255.255.255.255/32  receive

每個條目包含以下欄位：

- Prefix — 相關的目標IP地址或IP子網

- Next Hop — 與此字首關聯的下一跳點

可能的下一跳值為：

- receive — 與MSFC介面關聯的字首

此專案包含與第3層(L3)介面的IP位址對應且遮罩為32的字首。

- attached — 與已連線網路關聯的字首

- 下一跳的IP地址

- drop — 丟棄與條目匹配的所有資料包。

- Interface — 該目標IP地址或IP子網的傳出介面

要檢視完整的鄰接表，請發出以下命令：

Cat6500-A#show adjacency TenGigabitEthernet 6/1 detail

Protocol Interface                 Address

IP       TenGigabitEthernet6/1     100.100.100.1(9)

5570157 packets, 657278526 bytes

00D0022D3800

00D0048234000800

ARP        03:43:51

Epoch: 0

故障排除方法

本節提供故障排除示例和詳細資訊。但是首先，本節總結了排除特定IP地址連線或可達性故障的方法。請記住，SP上的CEF表映象RP上的CEF表。因此，如果RP已知的資訊也正確，則SP僅保留到達IP地址的正確資訊。因此，您需要始終驗證此資訊。

從RP

請完成以下步驟：

1. 驗證RP表上IP路由中儲存的資訊是否正確。

發出show ip route命令，並驗證輸出中是否包含所需的下一跳。

附註：  如果您改為發出show ip route x.x.x.x命令，則無需瀏覽完整的路由表。

如果輸出中不包含預期的下一跳，請檢查您的配置和路由協定鄰居。還要執行與您運行的路由協定相關的任何其他故障排除過程。

2. 驗證下一個躍點，或者對於連線的網路，最終目的地在RP上是否有正確的、已解析的地址解析協定(ARP)條目。

發出show ip arp next_hop_ip_address 命令。檢驗ARP條目的解析度以及該條目是否包含正確的MAC地址。

如果MAC地址不正確，您需要驗證另一台裝置是否擁有該IP地址。最後，您需要在連線擁有MAC地址的裝置的埠上跟蹤交換機級別。不完整的ARP條目表示RP沒有收到來自該主機的任何應答。確認主機已啟動且正在運行。您可以在主機上使用監聽器來檢視主機是否正確收到了ARP回覆和回應。

3. 驗證RP上的CEF表包含正確的資訊並且鄰接關係已解決。

請完成以下步驟：

1. 發出show ip cef destination_network 命令，確認CEF表中的下一躍點與IP路由表中的下一躍點匹配。

這是本部分步驟1中的下一跳。

2. 發出show adjacency detail | begin next_hop_ip_address 命令以驗證鄰接關係是否正確。

條目必須包含與本部分步驟2中相同的ARP的MAC地址。

如果本節的步驟1和2提供正確的結果，但是步驟3a或3b失敗，則您會遇到Cisco IOS軟體CEF問題。此問題可能不是與Catalyst 6500/6000相關的平台特定問題。您必須嘗試清除ARP表和IP路由表。

從SP

請完成以下步驟：

1. 驗證SP儲存的FIB資訊是否正確並與RP儲存的CEF表的資訊匹配。

註：CEF表中的資訊來自「從RP」部分的步驟3。

發出show mls cef lookup destination_ip_network detail命令，驗證是否存在鄰接條目。

如果該資訊不存在，則RP和SP之間會發生通訊問題。此問題與Catalyst 6500/6000平台特定的功能有關。確認您執行的特定Cisco IOS軟體版本沒有已知錯誤。若要還原正確的條目，請在RP上發出clear ip route命令。

2. 若要驗證SP上的鄰接表，請發出show mls cef adjacency entry adjacency_entry_number detail命令。

驗證條目包含的目標MAC地址是否與在「從RP」一節的步驟2和3b中看到的地址相同。

如果SP中的鄰接與步驟3b中下一跳的鄰接不匹配，則可能會面臨RP和SP之間的內部通訊問題。嘗試清除鄰接關係以還原正確的資訊。

案例研究1:連線到直連網路中的主機

這個簡單的案例將研究這些主機之間的連通性：

- 網路112.112.112.0/24中的主機A，IP地址為112.112.112.2

- 網路222.222.222.0/24中的主機B，IP地址為222.222.222.2

這是相關的RP配置：

interface TenGigabitEthernet4/1

ip address 100.100.100.1 255.255.255.0

! interface GigabitEthernet5/5

ip address 222.222.222.1 255.255.255.0

重要附註：搭載Supervisor Engine 720和MSFC3的Catalyst 6500/6000平台在硬體中使用CEF執行路由。CEF沒有配置要求，因此您不能在MSFC3上禁用CEF。

疑難排解步驟

按照本檔案疑難排解方法一節中的步驟操作，驗證到達IP位址22.222.222.2的路徑。

1. 若要確認IP路由表，請發出以下兩個命令之一：

- Cat6500-B#show ip route 222.222.222.2

Routing entry for 222.222.222.0/24

Known via "connected", distance 0, metric 0 (connected, via interface)

Redistributing via eigrp 100

Routing Descriptor Blocks:

* directly connected, via GigabitEthernet5/5

Route metric is 0, traffic share count is 1

或

- Cat6500-B#show ip route | include 222.222.222.0

C    222.222.222.0/24 is directly connected, GigabitEthernet5/5

從這兩個命令輸出中，可以看到目標位於直連子網中。因此沒有到達目的地的下一跳。

2. 檢驗RP上的ARP條目。

在這種情況下，請確認目的地IP位址是否存在ARP專案。發出以下命令：

Cat6500-B#show ip arp 222.222.222.2

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  222.222.222.2          41   0011.5c85.85ff  ARPA   GigabitEthernet5/5

3. 驗證RP上的CEF和鄰接表。

1. 若要驗證CEF表，請發出以下命令：

Cat6500-B#show ip cef 222.222.222.2

222.222.222.2/32, version 10037, epoch 0, connected, cached adjacency

222.222.222.2

0 packets, 0 bytes

via 222.222.222.2, GigabitEthernet5/5, 0 dependencies

next hop 222.222.222.2, GigabitEthernet5/5

valid cached adjacency

可以看到存在掩碼長度為32的有效CEF條目。另外，可以看到有效的快取鄰接關係。

2. 若要驗證鄰接表，請發出以下命令：

Cat6500-B#show adjacency detail | begin 222.222.222.2

IP       GigabitEthernet5/5        222.222.222.2(7)

481036 packets, 56762248 bytes

00115C8585FF

00D0022D38000800

ARP        03:10:29

Epoch: 0

此輸出顯示存在鄰接關係。鄰接的目標MAC地址顯示的資訊與本部分步驟2的ARP表中的MAC地址相同。

4. 從SP的角度驗證您是否具有正確的CEF/FIB條目。

FIB中有兩個有趣的條目：

- 目標IP地址的條目，如以下輸出所示：

Cat6500-B#show mls cef ip 222.222.222.2 detail

Codes: M - mask entry, V - value entry, A - adjacency index, P - priority

bit

D - full don't switch, m - load balancing modnumber, B - BGP Bucket

sel

V0 - Vlan 0,C0 - don't comp bit 0,V1 - Vlan 1,C1 - don't comp bit 1

RVTEN - RPF Vlan table enable, RVTSEL - RPF Vlan table select

Format: IPV4_DA - (8 | xtag vpn pi cr recirc tos prefix)

Format: IPV4_SA - (9 | xtag vpn pi cr recirc prefix)

M(90     ): E | 1 FFF  0 0 0 0   255.255.255.255

V(90     ): 8 | 1 0    0 0 0 0   222.222.222.2      (A:327680 ,P:1,D:0,m:0 ,

B:0 )

此條目是具有已知下一跳的主機條目。在這種情況下，下一跳就是目的地本身。

- 與目的地網路對應的專案，如以下輸出所示：

Cat6500-B#show mls cef ip 222.222.222.0 detail

Codes: M - mask entry, V - value entry, A - adjacency index, P - priority

bit

D - full don't switch, m - load balancing modnumber, B - BGP Bucket

sel

V0 - Vlan 0,C0 - don't comp bit 0,V1 - Vlan 1,C1 - don't comp bit 1

RVTEN - RPF Vlan table enable, RVTSEL - RPF Vlan table select

Format: IPV4_DA - (8 | xtag vpn pi cr recirc tos prefix)

Format: IPV4_SA - (9 | xtag vpn pi cr recirc prefix)

M(88     ): E | 1 FFF  0 0 0 0   255.255.255.255

V(88     ): 8 | 1 0    0 0 0 0   222.222.222.0      (A:13     ,P:1,D:0,m:0 ,

B:0 )

M(3207   ): E | 1 FFF  0 0 0 0   255.255.255.0

V(3207   ): 8 | 1 0    0 0 0 0   222.222.222.0      (A:14     ,P:1,D:0,m:0 ,

B:0 )

此條目是連線的FIB條目。到達此條目的任何資料包都會重定向到RP以進行其他處理。這個處理主要涉及傳送ARP並等待ARP解析。

請記住，FIB是順序瀏覽的，並以最長的掩碼長度開始。因此，如果同時具有目標IP地址條目和目標網路條目，則SP會使用掩碼為32的第一個條目。此條目是主機條目。不考慮不太特定的FIB表條目。如果沒有/32條目，SP將使用第二個條目，即目標網路的條目。就像該條目是連線的條目一樣，SP會將資料包重定向到RP以進行進一步處理。RP可以傳送ARP請求來獲取目標掩碼。收到ARP應答後，RP上該主機的ARP表和鄰接表即已完成。

5. 當具有掩碼長度為32的正確FIB條目時，請驗證該主機的鄰接關係是否正確填充。

發出以下命令：

Cat6500-B#show mls cef adjacency entry 327680 detail

Index: 327680  smac: 00d0.022d.3800, dmac: 0011.5c85.85ff

mtu: 1518, vlan: 1021, dindex: 0x0, l3rw_vld: 1

format: MAC_TCP, flags: 0x8408

delta_seq: 0, delta_ack: 0

packets: 0, bytes: 0

注意：鄰接關係已填充，並且目標MAC(dmac)欄位包含主機B的有效MAC地址。此地址是本節的步驟2和3b中看到的地址。

註： packets和bytes計數為0。如果輸入模組具有分散式轉發卡(DFC)，則必須登入到模組以獲取資料包/位元組計數。其他疑難排解提示和已知問題一節討論此過程。

備註和結論

如疑難排解步驟的步驟4所述，有兩個FIB條目可以很好地匹配。它們是：

- 網路專案(本例中為222.222.222.0/24) — 此專案一律存在，且直接來自MSFC上的路由和CEF表。此網路在路由表中始終具有直接連線。

- 目標主機條目(本例中為222.222.222.2/32) — 此條目不一定存在。如果該條目不存在，SP將使用該網路條目，並且會發生以下事件：

1. SP將資料包轉發到RP。

2. PFC的FIB表建立掩碼長度為32的主機條目。但是，您還沒有完整的CEF鄰接關係，因此使用type drop建立鄰接關係。

3. 該目的地的後續封包會命中/32捨棄專案，因此封包會捨棄。

4. 同時，傳送到RP的原始資料包觸發MSFC傳送ARP請求。

5. 解析ARP後，ARP條目即告完成。RP上的鄰接關係已完成。鄰接更新將傳送到SP以完成現有的drop鄰接關係。

6. SP更改主機鄰接關係以反映重寫MAC地址。鄰接型別將更改為連線的介面。

當您等待ARP解析時，用於安裝drop鄰接關係的這種機制的名稱為「ARP throttle」。ARP限制對於避免將所有資料包轉發到RP和生成多個ARP請求非常有用。只有前幾個資料包傳輸到RP，PFC丟棄其餘資料包，直到鄰接關係完成。

ARP限制還允許您丟棄定向到直連網路中不存在或不響應主機的流量。

當您對兩個不同VLAN中的兩個使用者之間的連線進行疑難排解時，請務必記住您需要瞭解：

- 從主機A到主機B的流量，使用疑難排解方法將目的地IP位址設定為主機B

- 從主機B到主機A的流量，使用與主機A相同的疑難排解方法，但目的地為主機A

此外，請記得在來源的預設閘道上取得輸出。從主機A到主機B的流量以及從主機B到主機A的流量不一定相同。

案例研究2:連線到遠端網路

在本節的圖表中，主機A的IP位址為112.112.112.2 ping主機B的IP位址為222.222.2。但這一次，主機B沒有與Cat6500-A交換器的直接連線；主機B離路由的兩跳遠。使用相同的方法來追蹤Cat6500-B交換器上的CEF路由路徑。

疑難排解步驟

請完成以下步驟：

1. 若要檢查Cat6500-A上的路由表，請發出以下命令：

Cat6500-A#show ip route 222.222.222.2

Routing entry for 222.222.222.0/24

Known via "ospf 100", distance 110, metric 2, type intra area

Last update from 100.100.100.1 on TenGigabitEthernet6/1, 00:00:37 ago

Routing Descriptor Blocks:

* 100.100.100.1, from 222.222.222.1, 00:00:37 ago, via TenGigabitEthernet6/1

Route metric is 2, traffic share count is 1

從該輸出中可看到，為了到達IP位址為222.222.222.2的主機B，您有一條開放最短路徑優先(OSPF)通訊協定路由。您需要使用IP地址100.100.100.1到達主機，下一跳是TenGigabitEthernet6/1。

2. 若要檢查RP上的ARP表，請發出以下命令：

注意：檢查ARP條目中是否有下一跳，而不是最終目的地。

Cat6500-A#show ip arp 100.100.100.1

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  100.100.100.1          27   00d0.022d.3800  ARPA   TenGigabitEthernet6/1

3. 若要檢查RP上的CEF表和鄰接表，請發出以下命令：

Cat6500-A#show ip cef 222.222.222.2

222.222.222.0/24, version 6876, epoch 0, cached adjacency 100.100.100.1

0 packets, 0 bytes

via 100.100.100.1, TenGigabitEthernet6/1, 0 dependencies

next hop 100.100.100.1, TenGigabitEthernet6/1

valid cached adjacency

可以看到目標網路有一個CEF條目。此外，下一跳結果與步驟1中路由表中的結果一致。

4. 若要檢查下一個躍點的鄰接表，請發出以下命令：

Cat6500-A#show adjacency detail | begin 100.100.100.1

IP       TenGigabitEthernet6/1     100.100.100.1(9)

2731045 packets, 322263310 bytes

00D0022D3800

00D0048234000800

ARP        03:28:41

Epoch: 0

下一跳有一個有效的鄰接關係，目的MAC地址與步驟2中的ARP條目匹配。

5. 若要檢查SP上的FIB表，請發出以下命令：

Cat6500-A#show mls cef ip lookup 222.222.222.2 detail

Codes: M - mask entry, V - value entry, A - adjacency index, P - priority bit

D - full don't switch, m - load balancing modnumber, B - BGP Bucket sel

V0 - Vlan 0,C0 - don't comp bit 0,V1 - Vlan 1,C1 - don't comp bit 1

RVTEN - RPF Vlan table enable, RVTSEL - RPF Vlan table select

Format: IPV4_DA - (8 | xtag vpn pi cr recirc tos prefix)

Format: IPV4_SA - (9 | xtag vpn pi cr recirc prefix)

M(3203   ): E | 1 FFF  0 0 0 0   255.255.255.0

V(3203   ): 8 | 1 0    0 0 0 0   222.222.222.0      (A:163840 ,P:1,D:0,m:0 ,B:0 )

FIB反映了您在步驟3中找到的相同資訊，並且您具有相同的下一跳。

6. 要檢查SP上的鄰接關係，請發出以下命令：

Cat6500-A#show mls cef adjacency entry 163840 detail

Index: 163840  smac: 00d0.0482.3400, dmac: 00d0.022d.3800

mtu: 1518, vlan: 1018, dindex: 0x0, l3rw_vld: 1

format: MAC_TCP, flags: 0x8408

delta_seq: 0, delta_ack: 0

packets: 726, bytes: 85668

注意：packets和bytes計數器是即時的。當流量停止時，計數器會返回到0。

備註和結論

以下疑難排解步驟用於驗證Cat6500-A交換器上的連線以便到達遠端網路。這些步驟與案例研究1中的故障排除步驟相似：連線到直連網路中的主機。但是，存在一些差異。在案例研究2的故障排除步驟中：連線到遠端網絡，您需要：

- 檢查IP路由表、CEF表和FIB中的最終目的地。

您可以在步驟1、3和5中執行此檢查。

- 檢查ARP表和鄰接表中的下一跳資訊。

在步驟2和4中執行此檢查。

- 檢查最終目標的鄰接關係。

您可以在步驟6中執行此檢查。

案例研究3:到下一跳的負載均衡

疑難排解步驟

本案例研究討論了如果有多個下一跳和多個路由可以到達同一個目的網路，會發生什麼情況。

1. 檢查路由表，確定到達同一目的IP地址有不同的路由和不同的下一跳。

在此路由表的示例部分中，有兩個路由和兩個下一跳可用於到達目標IP地址222.222.222.2:

Cat6500-A#show ip route | begin 222.222.222.0

O    222.222.222.0/24

[110/2] via 100.100.100.1, 00:01:40, TenGigabitEthernet6/1

[110/2] via 111.111.111.2, 00:01:40, FastEthernet2/1

2. 檢查ARP條目，瞭解接下來的三個躍點中的每一跳。

請完成以下步驟：

1. 檢查CEF表以查詢目標。

請注意，目的地也會在RP的CEF表中顯示兩個不同的條目。Cisco IOS軟體CEF能夠在不同的路由之間執行負載共用。

Cat6500-A#show ip cef 222.222.222.2

222.222.222.0/24, version 6893, epoch 0

0 packets, 0 bytes

via 100.100.100.1, TenGigabitEthernet6/1, 0 dependencies

traffic share 1

next hop 100.100.100.1, TenGigabitEthernet6/1

valid adjacency

via 111.111.111.2, FastEthernet2/1, 0 dependencies

traffic share 1

next hop 111.111.111.2, FastEthernet2/1

valid adjacency

0 packets, 0 bytes switched through the prefix

tmstats: external 0 packets, 0 bytes

internal 0 packets, 0 bytes

2. 檢查ARP條目中的兩個下一跳。

Cat6500-A#show ip arp 100.100.100.1

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  100.100.100.1          13   00d0.022d.3800  ARPA   TenGigabit

Ethernet6/1

Cat6500-A#show ip arp 111.111.111.2

Protocol  Address          Age (min)  Hardware Addr   Type   Interface

Internet  111.111.111.2           0   00d0.022d.3800  ARPA   FastEthernet2/1

3. 檢查RP鄰接表中的兩個鄰接關係。

Cat6500-A#show adjacency detail

Protocol Interface                 Address

IP       TenGigabitEthernet6/1     100.100.100.1(23)

62471910 packets, 7371685380 bytes

00D0022D3800

00D0048234000800

ARP        03:34:26

Epoch: 0

IP       FastEthernet2/1           111.111.111.2(23)

0 packets, 0 bytes

00D0022D3800

Address

00D0048234000800

ARP        03:47:32

Epoch: 0

步驟2b和2c中的資訊必須匹配。

3. 請注意，為同一目標安裝了兩個不同的FIB條目。

PFC上的硬體CEF最多可以為同一目標載入16個不同路徑。預設值為src_dst IP負載共用。

Cat6500-A#show mls cef ip 222.222.222.0

Codes: decap - Decapsulation, + - Push Label

Index  Prefix              Adjacency

3203   222.222.222.0/24    Te6/1           , 00d0.022d.3800 (Hash: 007F)

Fa2/1           , 00d0.022d.3800 (Hash: 7F80)

4. 檢查用於轉發流量的確切路由。

發出以下命令：

Cat6500-A#show ip cef exact-route 111.111.111.2 222.222.222.2

111.111.111.2   -> 222.222.222.2  : TenGigabitEthernet6/1 (next hop 100.100.100.1)

案例研究4:預設路由

無論路由表看起來如何，在Supervisor Engine 720中總有一個FIB條目用於轉發與之前的任何條目都不匹配的資料包。若要看到此專案，請發出以下命令：

Cat6500-A#show mls cef ip 0.0.0.0

Codes: decap - Decapsulation, + - Push Label

Index  Prefix              Adjacency

64     0.0.0.0/32          receive

134368 0.0.0.0/0           Fa2/48          , 000c.3099.373f

134400 0.0.0.0/0           drop

有三個條目。此預設值可分為兩種型別：

- 預設路由存在於路由表中

- 路由表中不存在預設路由

預設路由存在於路由表中

首先，檢驗RP路由表中是否存在預設路由。您可以查詢目的地為0.0.0.0的路由，或者在路由表中查詢。預設路由標有星號(*)。 此處，預設路由也會以粗體文本顯示。

Cat6500-A#show ip route 0.0.0.0

Routing entry for 0.0.0.0/0, supernet

Known via "static", distance 1, metric 0, candidate default path

Routing Descriptor Blocks:

* 14.1.24.1

Route metric is 0, traffic share count is 1

在這種情況下，預設路由存在於RP路由表中，通過配置的「靜態」路由可知。

注意：無論是通過靜態、OSPF、路由資訊協定(RIP)還是其它方法獲知此預設路由，CEF的行為都是相同的。

如果您有預設路由，則始終有一個掩碼長度為0的CEF條目。此條目轉發所有不匹配任何其他字首的流量。

Cat6500-A#show mls cef ip 0.0.0.0

Codes: decap - Decapsulation, + - Push Label

Index  Prefix              Adjacency

64     0.0.0.0/32          receive

134368 0.0.0.0/0           Fa2/48          , 000c.3099.373f

134400 0.0.0.0/0           drop

CEF按順序瀏覽每個資料包的FIB，並首先從最長匹配開始。因此，此預設FIB僅用於找不到其他匹配項的資料包。

路由表中不存在預設路由

Cat6500-B#show ip route 0.0.0.0

% Network not in table

如果路由表中沒有預設路由，則Supervisor Engine 720中仍存在掩碼長度為0的FIB條目。此FIB條目用於與FIB中任何其他條目不匹配的資料包，因此丟棄該條目。此丟棄非常有用，因為您沒有任何預設路由。無需將這些封包轉送到RP，RP仍會捨棄封包。如果使用此FIB條目，請確保在硬體中丟棄這些無用的資料包。此丟棄可避免不必要地利用RP。但是，如果資料包的目的地是IP地址0.0.0.0（具體來說），則該資料包將到達RP。

Cat6500-B#show mls cef ip 0.0.0.0

Codes: decap - Decapsulation, + - Push Label

Index  Prefix              Adjacency

67     0.0.0.0/32          receive

134400 0.0.0.0/0           drop

註：在極少數情況下，FIB表已滿，FIB刪除條目仍然存在。但是，與其丟棄與條目匹配的資料包，不如將資料包傳送到RP。僅當在FIB中存在超過256,000個字首且整個路由表空間不足時，才會出現這種情況。

其他疑難排解提示和已知問題

基於DFC的線卡

如果流量的輸入模組是基於DFC的線卡，則會在模組本地做出轉發決策。若要檢查硬體封包計數器，請執行到模組的遠端登入。然後，發出命令，如本節所示。

用作示例案例研究2:連線到遠端網路。對於Cat6500-B，流量進入具有DFC的模組4。發出以下命令可遠端登入到模組：

Cat6500-B#remote login module 4

Trying Switch ...

Entering CONSOLE for Switch

Type "^C^C^C" to end this session

Cat6500-B-dfc4#

然後，您可以檢查模組上的CEF FIB資訊。

Cat6500-B-dfc4#show mls cef ip 222.222.222.2 detail

Codes: M - mask entry, V - value entry, A - adjacency index, P - priority bit

D - full don't switch, m - load balancing modnumber, B - BGP Bucket sel

V0 - Vlan 0,C0 - don't comp bit 0,V1 - Vlan 1,C1 - don't comp bit 1

RVTEN - RPF Vlan table enable, RVTSEL - RPF Vlan table select

Format: IPV4_DA - (8 | xtag vpn pi cr recirc tos prefix)

Format: IPV4_SA - (9 | xtag vpn pi cr recirc prefix)

M(90     ): E | 1 FFF  0 0 0 0   255.255.255.255

V(90     ): 8 | 1 0    0 0 0 0   222.222.222.2      (A:294912 ,P:1,D:0,m:0 ,B:0 )

接下來，您可以檢查硬體計數器的鄰接資訊。

Cat6500-B-dfc4#show mls cef adjacency entry 294912 detail

Index: 294912  smac: 00d0.022d.3800, dmac: 0011.5c85.85ff

mtu: 1518, vlan: 1021, dindex: 0x0, l3rw_vld: 1

format: MAC_TCP, flags: 0x8408

delta_seq: 0, delta_ack: 0

packets: 4281043, bytes: 505163074

禁用IP路由

在Cisco IOS軟體版本12.1(20)E和更新版本中，已移除Catalyst 6500系列交換器對停用IP路由的支援。您不能在這些交換器上停用IP路由，如以下範例所示：

Cat6500(config)#no ip routing

Cannot disable ip routing on this platform

no ip routing命令是Cisco IOS軟體命令，用於在Cisco IOS路由器上禁用IP路由。通常，在低端路由器上使用此命令。

只有在交換器上已啟用service internal指令時，才會接受no ip routing指令。但是它不會儲存到組態中，而且會在交換器重新載入後遺失。思科建議不要在執行Cisco IOS系統軟體的Catalyst 6000/6500系列交換器上停用IP路由。

要解決此問題，請使用ip route 0.0.0.0 0.0.0.0 a.b.c.d 命令。在此命令中，a.b.c.d是預設閘道的IP位址。如果以下兩項均為真，則不使用工藝路線流程：

- 您可以使用switchport命令將交換器中的所有介面設定為L2連線埠。

- 交換器中未設定交換虛擬介面(SVI)（VLAN介面）。

IP CEF和MLS CEF之間的差異

show mls cef exact-route source-ip address dest-ip address 和show ip cef exact-route source-ip address dest-ip address 的輸出不同，因為使用IP CEF時封包進行軟體交換，而使用MLS CEF時封包進行硬體交換。由於大多數資料包都是硬體交換的，因此檢視到達目的地的下一跳的最佳命令是show mls cef exact-route source-ip address dest-ip address。

相關資訊

- 使用Supervisor Engine 2且執行CatOS系統軟體的Catalyst 6500/6000系列交換器上涉及CEF的單播IP路由疑難排解

- 在具有MSFC的Catalyst 6500/6000交換機上配置並排除IP MLS故障

- LAN 產品支援頁面

- LAN 交換支援頁面

- 工具與資源

- 技術支援與文件 - Cisco Systems