本文档用作Cisco Catalyst 6500/6000系列交换机上单播IP路由故障排除指南,该交换机带有Supervisor引擎720、策略功能卡3(PFC3)、多层交换机功能卡3(MSFC3)。 思科快速转发(CEF)用于在Supervisor引擎720上执行单播路由。本文档仅涉及Catalyst 6500/6000系列交换机上具有Supervisor引擎720、PFC3、MSFC3的IP路由。本文档对Catalyst 6500/无效6000,带Supervisor引擎1或1A,或用于多层交换模块(MSM)。 本文档仅对在Supervisor引擎上运行Cisco IOS®软件的交换机有效。本文档对Cisco Catalyst OS(CatOS)系统软件无效。
注意:您也可以使用本文档对带有Supervisor引擎2和MSFC2的Catalyst 6500/6000交换机上的单播IP路由进行故障排除。
注意:本文档分别使用术语路由处理器(RP)和交换机处理器(SP)代替MSFC和PFC。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
CEF最初是Cisco IOS软件交换技术,旨在更快地路由数据包。CEF比快速交换更具扩展性。无需发送第一个数据包以处理交换。配备管理引擎720的Catalyst 6500/6000使用基于硬件的CEF转发机制,该机制在SP上实施。CEF主要使用两个表来存储路由所需的信息:
转发信息库(FIB)表
邻接表
CEF使用FIB来做出基于IP目标前缀的交换决策。CEF首先查看最长匹配。FIB是概念上和路由表或信息库类似。FIB维护IP路由表包含的转发信息的镜像。当网络中发生路由或拓扑更改时,IP路由表中会发生更新。FIB反映了这些变化。FIB根据IP路由表中的信息维护下一跳地址信息。由于FIB条目和路由表条目之间的一对一关联,FIB包含所有已知路由。这消除了与交换路径(例如快速交换和最佳交换)相关的路由缓存维护需求。FIB中始终存在匹配项,无论是默认匹配还是通配符匹配。
如果网络中的节点能通过链路层的单跳到达对方,则这些节点称为相邻节点。除FIB外,CEF还使用邻接表来预置第2层(L2)编址信息。邻接表维护所有FIB条目的L2下一跳地址。完整的FIB条目包含指向邻接表中某个位置的指针,该位置保存下一跳到达最终IP目标的L2重写信息。要使硬件CEF在带Supervisor引擎720系统的Catalyst 6500/6000上工作,IP CEF需要在MSFC3上运行。
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子网
下一跳 — 与此前缀关联的下一跳。
可能的下一跳值为:
receive — 与MSFC接口关联的前缀
此条目包含掩码为32的前缀,与第3层(L3)接口的IP地址对应。
attached — 与已连接网络关联的前缀
下一跳 IP 地址
drop — 丢弃与条目匹配的所有数据包。
接口 — 该目标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表。因此,SP仅在RP知道的信息也正确时才保存到达IP地址的正确信息。因此,您始终需要验证此信息。
请完成以下步骤:
验证RP表上IP路由中保存的信息是否正确。
发出show ip route命令并检验输出是否包含预期的下一跳。
注意: 如果改为发出show ip route x.x.x.x命令,则无需浏览完整的路由表。
如果输出不包含预期的下一跳,请检查配置和路由协议邻居。此外,执行与您运行的路由协议相关的任何其他故障排除步骤。
检验下一跳或最终目的地在RP上是否具有正确的已解析地址解析协议(ARP)条目(对于已连接的网络)。
发出show ip arp next_hop_ip_address命令。检验ARP条目的解析,以及该条目包含正确的MAC地址。
如果MAC地址不正确,您需要验证另一台设备是否拥有该IP地址。最终,您需要跟踪连接拥有MAC地址的设备的端口上的交换机级别。不完整的ARP条目表示RP未收到该主机的任何应答。检验主机是否已启动并正在运行。您可以在主机上使用嗅探器来查看主机是否收到正确的ARP应答和应答。
验证RP上的CEF表包含正确的信息,并且邻接关系已解析。
请完成以下步骤:
发出show ip cef destination_network命令,以验证CEF表中的下一跳是否与IP路由表中的下一跳匹配。
这是本部分步骤1的下一跳。
发出show adjacency detail命令 | begin next_hop_ip_address命令以验证邻接关系是否正确。
该条目必须包含与本部分步骤2中相同的ARP MAC地址。
如果本部分的步骤1和步骤2提供了正确的结果,但步骤3a或步骤3b失败,则您会面临Cisco IOS软件CEF问题。此问题不可能是与Catalyst 6500/6000相关的平台特定问题。您必须尝试清除ARP表和IP路由表。
请完成以下步骤:
验证SP存储的FIB信息是否正确,并与RP上CEF表存储的信息相匹配。
注意:CEF表中的信息来自“From the RP”部分的步骤3。
发出show mls cef lookup destination_ip_network detail 命令并验证是否存在邻接条目。
如果信息不存在,则RP和SP之间存在通信问题。此问题与Catalyst 6500/6000平台特定功能有关。验证您运行的特定Cisco IOS软件版本没有已知的Bug。要恢复正确的条目,请在RP上发出clear ip route命令。
要验证SP上的邻接表,请发出show mls cef adjacency entry adjacency_entry_number detail命令。
验证该条目是否包含与您在“从RP”部分的步骤2和3b中看到的地址相同的目的MAC地址。
如果SP中的邻接与步骤3b中下一跳的邻接不匹配,则RP和SP之间可能会面临内部通信问题。尝试清除邻接关系以恢复正确的信息。
此简单案例提供了以下主机之间连接的研究:
网络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
重要说明:配备管理引擎720和MSFC3的Catalyst 6500/6000平台在硬件中使用CEF执行路由。CEF没有配置要求,您不能在MSFC3上禁用CEF。
按照本文档故障排除方法部分中的步骤验证到达IP地址222.222.222.2的路径。
要检验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
在这两个命令输出中,您可以看到目的地位于直连子网中。因此没有到达目的地的下一跳。
检验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
检验RP上的CEF和邻接表。
要验证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条目。此外,您还可以看到有效的缓存邻接关系。
要验证邻接表,请发出以下命令:
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地址相同。
从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表和邻接表已完成。
当您有掩码长度为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中看到的地址。
注:数据包和字节计数为0。如果入口模块具有分布式转发卡(DFC),则必须登录模块才能获取数据包/字节计数。其他故障排除提示和已知问题部分讨论此过程。
如故障排除步骤的第4步所述,有两个FIB条目可以很好匹配。它们是:
网络条目,在本例中为222.222.222.0/24 — 该条目始终存在,并直接来自MSFC上的路由和CEF表。此网络始终在路由表中具有直接连接。
目标主机条目(在本例中为222.222.222.2/32) — 此条目不一定存在。如果条目不存在,SP将使用网络条目,并且会发生以下事件:
SP将数据包转发到RP。
PFC的FIB表创建掩码长度为32的主机条目。但是,您尚未建立完整的CEF邻接关系,因此使用类型丢弃创建邻接关系。
该目的地的后续数据包命中/32丢弃条目,并丢弃数据包。
同时,发送到RP的原始数据包会触发MSFC发送ARP请求。
在ARP解析后,ARP条目完成。RP上的邻接关系已完成。邻接更新将转到SP以完成现有的丢弃邻接。
SP更改主机邻接关系以反映重写MAC地址。邻接类型会更改为连接的接口。
在等待ARP解析时安装丢弃邻接关系的这种机制的名称为“ARP限制”。ARP限制对于避免将所有数据包转发到RP和生成多个ARP请求非常有用。只有前几个数据包会传输到RP,PFC会丢弃其余数据包,直到邻接关系完成。
ARP限制还允许您丢弃定向到直连网络中不存在或无响应主机的流量。
当您对两个不同VLAN中两个用户之间的连接进行故障排除时,请始终牢记您需要查看:
另请记住,在源的默认网关上输出。从主机A到主机B的流量和从主机B到主机A的流量不一定相同。
在本节的图中,IP地址为112.112.112.2的主机A ping IP地址为222.222.222.2的主机B。但是,此次主机B没有直接连接到Cat6500-A交换机;主机B距离两个路由跳。您使用相同的方法跟踪Cat6500-B交换机上的CEF路由路径。
请完成以下步骤:
要检查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作为下一跳。
要检查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
要检查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中的路由表中的结果相符。
要检查下一跳的邻接表,请发出以下命令:
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条目匹配。
要检查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中找到的信息相同,并且您有相同的下一跳。
要检查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
注意:数据包和字节计数器是实时的。当流量停止时,计数器返回到0。
以下故障排除步骤验证Cat6500-A交换机上连接以到达远程网络。这些步骤类似于案例研究1部分的故障排除步骤:与直连网络中主机的连接。但是,有一些差异。在案例研究2的故障排除步骤中:连接到远程网络,您需要:
检查IP路由表、CEF表和FIB中的最终目的地。
在步骤1、3和5中执行此检查。
检查ARP表和邻接表中的下一跳信息。
在步骤2和4中执行此检查。
检查最终目的地的邻接关系。
在步骤6中执行此检查。
本案例研究讨论如果有多个下一跳和多条路由可用于到达同一目的网络时会发生什么情况。
检查路由表,以确定是否有不同的路由和不同的下一跳可用于到达同一目的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
检查ARP条目,查找下三跳中的每一跳。
请完成以下步骤:
检查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
检查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
检查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中的信息必须匹配。
请注意,同一目标安装了两个不同的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)
检查用于转发流量的确切路由。
发出以下命令:
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)
无论路由表如何显示,Supervisor引擎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引擎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的线卡,则转发决策在模块本地做出。要检查硬件数据包计数器,请远程登录模块。然后,发出命令,如本节所示。
以案例研究2为例:到远程网络的连接。对于Cat6500-B,流量进入模块4,该模块具有DFC。发出以下命令以远程登录模块:
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
在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接口)。
show mls cef exact-route source-ip address dest-ip 地址和show ip cef exact-route source-ip address dest-ip地址的输出不同,因为使用IP CEF时数据包是软件交换的,使用MLS CEF时数据包是硬件交换的。由于大多数数据包是硬件交换的,因此查看到达目的地的下一跳的最佳命令是show mls cef exact-route source-ip address dest-ip address。