IP : 思科快速转发 (CEF)

Cisco 快速转发路由循环故障排除

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文帮助排除故障指出不正确的接口的一有效被缓存的Cisco快速转发邻接和次优路由造成的思科快速转发(CEF)路由环路。与不正确的接口的一邻接创建由于这些原因:

先决条件

要求

请使用这些资源为了改善了解某些概念本文用途:

使用的组件

本文档不限于特定的软件和硬件版本。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

网络图

路由器R1连接对R3通过序列8/0,并且路由器R2连接对R4通过序列8/0。因为此图显示, R1和R2通过Ethernet0/0连接。

/image/gif/paws/26083/trouble_cef_01.gif

  • R2接收外部边界网关协议(eBGP)为10.10.34.0/24的前缀更新从R4。R2传播此前缀对R1通过内部BGP (iBGP)。

  • R2有静态默认路由(0.0.0.0/0)对IP地址10.10.24.4 R4's的序列8/0的该点。

  • R2也有备份浮动默认路由(Ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10)对路由数据包的以太网接口0/0的该点,如果R2和R4之间的串行连接发生故障。

  • R1有一个默认路由对R3's序列8/0的该点与IP地址10.10.13.3。

问题

为10.10.34.0/24注定的IP数据流得到循环在R1和R2之间。观察在R1的traceroute命令输出。

R1#traceroute 10.10.34.4 
 
Type escape sequence to abort. 
Tracing the route to 10.10.34.4 
 
  1 192.168.12.2 20 msec 20 msec 20 msec 
  2 192.168.12.1 8 msec 12 msec 8 msec 
  3 192.168.12.2 8 msec 8 msec 12 msec 
  4 192.168.12.1 12 msec ...

注意为在R1的Ethernet0/0 (IP地址192.168.12.1)和R2's Ethernet0/0 (IP地址192.168.12.2)之间的10.10.34.4跳注定的,个流量。理论上来讲,从为了10.10.34.0/24需要注定的R1的流量能去R2由于iBGP了解的前缀10.10.34.0/24。然后,从R2,流量应该路由到R4。然而, traceroute命令输出确认在R1和R2之间的一路由环路。

R1
hostname R1 
! 
ip subnet-zero 
! 
ip cef 
! 
interface Ethernet0/0 
 ip address 192.168.12.1 255.255.255.0 
! 
interface Serial8/0 
 ip address 10.10.13.1 255.255.255.0 
! 
router bgp 11 
 no synchronization 
 bgp log-neighbor-changes 
 neighbor 10.10.13.3 remote-as 12
 neighbor 192.168.12.2 remote-as 11 
 no auto-summary 
!  
ip route 0.0.0.0 0.0.0.0 10.10.13.3

R2
hostname  R2 
! 
ip cef 
! 
interface Ethernet0/0 
  ip address 192.168.12.2 255.255.255.0 
! 
interface Serial8/0 
 ip address 10.10.24.2 255.255.255.0 
! 
router bgp 11 
 no synchronization 
bgp log-neighbor-changes 
 network 192.168.12.0 
 neighbor 10.10.24.4 remote-as 10 
 neighbor 192.168.12.1 remote-as 11 
 neighbor 192.168.12.1 next-hop-self 
 no auto-summary 
! 
ip route 0.0.0.0 0.0.0.0 10.10.24.4 
ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10 
!

故障排除

因为为10.10.34.4注定的数据包得到循环在R1和R2之间,请开始排除故障。首先请检查在R1的IP路由。show ip route 10.10.34.0命令输出确认192.168.12.2下一跳数据包的被注定到10.10.34.0/24。这配比与traceroute命令第一跳,数据包被发送对下一跳192.168.12.2,确认数据包在R1正确地交换。

R1#show ip route 10.10.34.0 
Routing entry for 10.10.34.0/24
  Known via "bgp 11", distance 200, metric 0
  Tag 10, type internal
  Last update from 192.168.12.2 00:22:59 ago
  Routing Descriptor Blocks:
  * 192.168.12.2, from 192.168.12.2, 00:22:59 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1

下一步是检查R2 IP路由表。当此show ip route 10.10.34.0命令输出显示,应该路由数据包被注定对10.10.34.0到在序列8/0的下一跳10.10.24.4。然而, traceroute命令显示数据包交换回到R1对IP地址192.168.12.1。进一步调查是需要的到数据包被注定对10.10.34.0为什么在对10.10.24.4的R2to下一跳192.168.12.1交换(正如在输出traceroute命令)而不是。

R2#show ip route 10.10.34.0
Routing entry for 10.10.34.0/24
  Known via "bgp 11", distance 20, metric 0
  Tag 10, type external
  Last update from 10.10.24.4 00:42:32 ago
  Routing Descriptor Blocks:
  * 10.10.24.4, from 10.10.24.4, 00:42:32 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1

这时请注意在Cisco快速转发交换的网络,信息包转发决定包括:

  • 最长前缀匹配的一个路由表查找。

  • 转发信息库(FIB)查找。

因为路由表验证,请查看Cisco快速转发FIB。在show ip cef detail命令的10.10.34.4的结果,请注意Cisco快速转发交换10.10.34.4 Ethernet0/0而不是下一跳10.10.24.4序列8/0 (如show ip route 10.10.34.0命令输出所显示)。此差异创建在网络的环路。

R2#show ip cef 10.10.34.4 detail
10.10.34.4/32, version 19, cached adjacency 10.10.34.4
0 packets, 0 bytes
  via 10.10.34.4, Ethernet0/0, 0 dependencies
    next hop 10.10.34.4, Ethernet0/0
    valid cached adjacency

下一步是查看Cisco快速转发邻接表和看到Cisco快速转发如何学习交换数据包Ethernet0/0。注意邻接被构建由于ARP。

R2#show adjacency ethernet 0/0 detail | begin  10.10.34.4 
IP       Ethernet0/0               10.10.34.4(5)
                                   50 packets, 2100 bytes
                                   AABBCC006500AABBCC0066000800
                                   ARP        03:02:00

show ip arp命令输出是确认。

R2#show ip arp 10.10.34.4
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  10.10.34.4             60   aabb.cc00.6500  ARPA   Ethernet0/0

其次,请发现此ARP条目为什么创建,当有一Ip route在路由表里时。再查看路由表。

R2#show run | include ip route 0.0.0.0
ip route 0.0.0.0 0.0.0.0 10.10.24.4
ip route 0.0.0.0 0.0.0.0 Ethernet0/0 10

如果串行连接失效在R2和R4之间,所有流量路由与使用浮动静态路由Ethernet0/0,因为R2有指向多路访问接口Ethernet0/0的一浮动静态路由,和不对以太网IP地址R1 192.168.12.1。所以,对于所有未知的目的地,路由器R2通过Ethernet0/0接口派出ARP请求。在这种情况下, R2丢失具体的路由对10.10.34.0网络。所以,当数据包为在此网络时的主机到达,它通过以太网接口生成ARP请求。默认情况下因为代理ARP在R1的以太网接口启用,并且有指向R3的一个默认路由,响应有代理ARP回复的上一步与其自己的MAC地址。因此, R2发送所有流量对R1,并且R1转发与使用的所有流量其默认路由(0.0.0.0/0)对AS 12和因而对10.10.34.4通过互联网。

当R2收到从R1时的代理ARP回复,创建指出以太网接口0/0的/32有效Cisco快速转发邻接。此Cisco快速转发条目不老化,直到代理ARP路由器R1是存在以太网段。因此, /32 Cisco快速转发条目继续使用到思科Express转发-交换数据包,在R2和R4之间的串行连接以后是备份,并且路由表默认路由指出往AS 10.的序列8/0。结果是路由环路。

最后,看看日志和看到串行链路(s8/0)是否拍动了。这在然后导致代理ARP并且Cisco快速转发条目安装导致10.10.34.4/32在Cisco快速转发FIB的路由表里造成一浮动静态路由安装。

R2#show log | beg Ethernet0/0
[..]
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to down
%BGP-5-ADJCHANGE: neighbor 10.10.24.4 Down Interface flap
%LINEPROTO-5-UPDOWN: Line protocol on Interface Serial8/0, changed state to up
%BGP-5-ADJCHANGE: neighbor 10.10.24.4 Up

日志确认原因。总之,这些步骤显示事件顺序:

  1. 在R2的序列8/0断开。

  2. R2有一数据包被注定对10.10.34.4。

  3. R2跟随备用默认路由指向直接地Ethernet0/0。

  4. R2发送10.10.34.4的一个ARP请求。

  5. R1 (代理)对ARP请求的回复与其对R2的自己的MAC地址。

  6. R2当前有10.10.34.4的ARP条目与R1 MAC地址。

  7. R2创建10.10.34.4的Cisco快速转发邻接,并且10.10.34.4/32条目在Cisco快速转发表(FIB)安装此目的地的通过Ethernet0/0。此Cisco快速转发条目维护为,只要ARP条目有效或,直到R1是存在以太网段。

  8. 在R2的序列8/0出来。

  9. R2学习从R4的eBGP路由10.10.34.0/24与下一跳10.10.24.4并且安装在IP路由表的路由。

  10. R1通过从R2的iBGP在IP路由表了解前缀10.10.34.0/24并且安装它。

  11. R1有为10.10.34.4注定的一数据包。

  12. R1调查其路由表,匹配iBGP前缀路由对R2和路由对R2。

  13. R2收到为10.10.34.4注定的数据包。因为它已经有在其FIB表里指向Ethernet0/0与R1 MAC地址10.10.34.4/32的Cisco快速转发条目,送回数据包到R1,无需查看路由表。这会产生一个环路。

解决方案

用一个替换浮动静态路由该点直接地对Ethernet0/0对下一跳地址的该点。

R2(config)#no ip route 0.0.0.0 0.0.0.0 ethernet 0/0 10
R2(config)# ip route 0.0.0.0 0.0.0.0 192.168.12.1 10

当您有指向下一跳IP地址而不是多路访问接口Ethernet0/0的静态路由时,从发送所有目的地的ARP请求终止R2。数据包根据下一跳192.168.12.1路由并且交换。所以,所有ARP Cisco快速转发条目和环路避免。

观察在R2的Cisco快速转发条目对正确接口序列8/0的该点。

R2#show ip cef 10.10.34.4
10.10.34.0/24, version 32, cached adjacency to Serial8/0
0 packets, 0 bytes
  via 10.10.24.4, 0 dependencies, recursive
    next hop 10.10.24.4, Serial8/0 via 10.10.24.0/24
    valid cached adjacency

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 26083