Cloud Native应用交付

  • 首页
  • 关于本站
  • 个人介绍
  • Downloads
  • Repo
    • Github
    • Container
  • F5
    • F5 Python SDK
    • F5-container
    • F5-LBaaS
  • 社交
    • 联系我
    • 微信/微博
    • 公众号
    • 打赏赞助
行至水穷处 坐看云起时
Cloud Native Application Services: cnadn.net
  1. 首页
  2. 交换机技术
  3. 正文

Router Does Not Forward Multicast Packets to Host Due to RPF Failure

2006年09月7日 13265点热度 0人点赞 0条评论

Background Information

When troubleshooting multicast routing, the primary concern is the source address. Multicast has a concept of Reverse Path Forwarding check (RPF check). When a multicast packet arrives on an interface, the RPF process checks to ensure that this incoming interface is the outgoing interface used by unicast routing to reach the source of the multicast packet. This RPF check process prevents loops. Multicast routing does not forward a packet unless the source of the packet passes a reverse path forwarding (RPF) check. Once a packet passes this RPF check, multicast routing forwards the packet based only upon the destination address.

Like unicast routing, multicast routing has several available protocols, such as Protocol Independent Multicast dense mode (PIM-DM), PIM sparse mode (PIM-SM), Distance Vector Multicast Routing Protocol (DVMRP), Multicast Border Gateway Protocol (MBGP), and Multicast Source Discovery Protocol (MSDP). The case studies in this document walk you through the process of troubleshooting various problems. You will see which commands are used to quickly pinpoint the problem and learn how to resolve it. The case studies listed here are generic across the protocols, except where noted.

Router Does Not Forward Multicast Packets to Host Due to RPF Failure

This section provides a solution to the common problem of an IP multicast Reverse Path Forwarding (RPF) failure. This network diagram is used as an example.

mcastguide1a.gif

In the figure above, multicast packets come into E0/0 of Router 75a from a server whose IP address is 1.1.1.1 and sends to group 224.1.1.1. This is known as an (S,G) or (1.1.1.1, 224.1.1.1).

Diagnose the Problem

Hosts directly connected to Router 75a receive the multicast feed, but hosts directly connected to Router 72a do not. First, issue the show ip mroute 224.1.1.1 command to see what is going on with Router 75a. This command examines the multicast route (mroute) for the group address 224.1.1.1:

1
75a#<strong>show ip mroute 224.1.1.1</strong>

1
IP Multicast Routing Table Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned        

1
R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT        

1
M - MSDP created entry, X - Proxy Join Timer Running      

1
A - Advertised via MSDP

1
Timers: Uptime/Expires

1
Interface state: Interface, Next-Hop or VCD, State/Mode

1
(*, 224.1.1.1), 00:01:23/00:02:59, RP 0.0.0.0, flags: D  

1
Incoming interface: Null, RPF nbr 0.0.0.0  

1
Outgoing interface list:    

1
Ethernet0/1, Forward/Sparse-Dense, 00:01:23/00:00:00

1
(1.1.1.1, 224.1.1.1), 00:01:23/00:03:00, flags: TA  

1
Incoming interface: Ethernet0/0, RPF nbr 0.0.0.0  

1
Outgoing interface list:    

1
Ethernet0/1, Forward/Sparse-Dense, 00:01:23/00:00:00

Since the router is running PIM dense mode (we know it is dense mode because of the D flag), ignore the *,G entry and focus on the S,G entry. This entry tells you that the multicast packets are sourced from a server whose address is 1.1.1.1, which sends to a multicast group of 224.1.1.1. The packets are coming in the Ethernet0/0 interface and are forwarded out the Ethernet0/1 interface. This is a perfect scenario.

Issue the show ip pim neighbor command to see whether Router 72a is showing the upstream router (75a) as a PIM neighbor:

1
ip22-72a#<strong>show ip pim neighbor</strong>

1
PIM Neighbor Table Neighbor Address  Interface          

1
Uptime    Expires   Ver  Mode 2.1.1.1          

1
Ethernet3/1        2d00h     00:01:15  v2

From the show ip pim neighbor command output, the PIM neighborship look good.

Use this show ip mroute command to see whether Router 72a has good mroute:

1
ip22-72a#<strong>show ip mroute 224.1.1.1</strong>

1
IP Multicast Routing TableFlags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,      

1
L - Local, P - Pruned, R - RP-bit set, F - Register flag,      

1
T - SPT-bit set, J - Join SPT, M - MSDP created entry,      

1
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,      

1
U - URD, I - Received Source Specific Host Report, Z - Multicast Tunnel      

1
Y - Joined MDT-data group, y - Sending to MDT-data group

1
Outgoing interface flags: H - Hardware switched, A - Assert winner

1
Timers: Uptime/Expires

1
Interface state: Interface, Next-Hop or VCD, State/Mode

1
(*, 224.1.1.1), 00:10:42/stopped, RP 0.0.0.0, flags: DC  

1
Incoming interface: Null, RPF nbr 0.0.0.0  

1
Outgoing interface list:    

1
Ethernet3/1, Forward/Dense, 00:10:42/00:00:00    

1
Ethernet3/2, Forward/Dense, 00:10:42/00:00:00 (1.1.1.1, 224.1.1.1), 00:01:10/00:02:48, flags:  

1
<strong>Incoming interface: Ethernet2/0, RPF nbr 0.0.0.0</strong>  

1
Outgoing interface list:  

1
Ethernet3/1, Forward/Dense, 00:01:10/00:00:00    

1
Ethernet3/2, Forward/Dense, 00:00:16/00:00:00 ip22-72a#

You can see from the show ip mroute 224.1.1.1 command that the incoming interface is Ethernet2/0, while Etheret3/1 is expected.

Issue the show ip mroute 224.1.1.1 count command to see if any multicast traffic for this group arrives to the Router 72a and what happens next:

1
ip22-72a#<strong>show ip mroute 224.1.1.1 count</strong>

1
IP Multicast Statistics3 routes using 2032 bytes of memory

1
2 groups, 0.50 average sources per group

1
Forwarding Counts: Pkt Count/Pkts per second/Avg      

1
Pkt Size/Kilobits per second

1
<strong>Other counts: Total/RPF failed/Other drops(OIF-null,rate-limit etc)</strong>                

1
Group: 224.1.1.1, Source count: 1, Packets forwarded:      0, Packets received: 471  

1
Source:      1.1.1.1/32, Forwarding: 0/0/0/0, <strong>Other: 471/471/0</strong>ip22-72a#

You can see from the Other counts that traffic gets dropped due to RPF failure: total 471 drops, due to RPF failure – 471…

Issue the show ip rpf <source> command to see if there is an RPF error:

1
ip22-72a#<strong>show ip rpf 1.1.1.1</strong>

1
RPF information for ? (1.1.1.1)  

1
RPF interface: Ethernet2/0  

1
RPF neighbor: ? (0.0.0.0)  

1
RPF route/mask: 1.1.1.1/32  

1
RPF type: unicast (static)  

1
RPF recursion count: 0  

1
Doing distance-preferred lookups across tables

1
ip22-72a#

Cisco IOS® calculates the RPF interface in this way. Possible sources of RPF information are Unicast Routing Table, MBGP routing table, DVMRP routing table and Static Mroute table. When you calculate the RPF interface, primarily administrative distance is used to determine exactly which source of information the RPF calculation is based on. The specific rules are:

  • All preceding sources of RPF data are searched for a match on the source IP address. When using Shared Trees, the RP address is used instead of the source address.

  • If more than one matching route is found, the route with the lowest administrative distance is used.

  • If the admin distances are equal, then this order of preference is used:

    1. Static mroutes

    2. DVMRP routes

    3. MBGP routes

    4. Unicast routes

  • If multiple entries for a route occur within the same route table, the longest match route is used.

The show ip rpf 1.1.1.1 command output shows the RPF interface being E2/0, but the incoming interface should be E3/1.

Issue the show ip route 1.1.1.1 command to see why the RPF interface is different from what was expected.

1
ip22-72a#<strong>show ip route 1.1.1.1</strong>  

1
Routing entry for 1.1.1.1/32  

1
Known via &quot;static&quot;, distance 1, metric 0 (connected)  

1
Routing Descriptor Blocks:  * directly connected, via Ethernet2/0  

1
Route metric is 0, traffic share count is 1

You can see from this show ip route 1.1.1.1 command output that there is a static /32 route, which makes the wrong interface to be chosen as RPF interface.

Issue some further debug commands:

1
ip22-72a#<strong>debug ip mpacket 224.1.1.1</strong>

1
*Jan 14 09:45:32.972: IP: s=1.1.1.1 (Ethernet3/1) d=224.1.1.1 len 60, not RPF interface

1
*Jan 14 09:45:33.020: IP: s=1.1.1.1 (Ethernet3/1) d=224.1.1.1 len 60, not RPF interface

1
*Jan 14 09:45:33.072: IP: s=1.1.1.1 (Ethernet3/1) d=224.1.1.1 len 60, not RPF interface

1
*Jan 14 09:45:33.120: IP: s=1.1.1.1 (Ethernet3/1) d=224.1.1.1 len 60, not RPF interface

The packets are coming in on E3/1, which is correct. However, they are being dropped because that is not the interface the unicast routing table uses for the RPF check.

Note: Debugging packets is dangerous. Pakcet debugging triggers process switching of the multicast pakcets, which is CPU intensive. Also, packet debugging can produce huge output which can hang the router completely due to slow output to the console port. Befor debugging packet, special care must be taken to disable logging output to the console, and enable logging to the memory buffer. In order to achieve this, configure no logging console and logging buffered debugging. The results of the debug can be seen with the show logging command.

Possible Fixes

You can either change the unicast routing table to satisfy this requirement or you can add a static mroute to force multicast to RPF out a particular interface, regardless of what the unicast routing table states. Add a static mroute:

1
ip22-72a(config)#<strong>ip mroute 1.1.1.1 255.255.255.255 2.1.1.1</strong>

This static mroute states that to get to the address 1.1.1.1, for RPF, use 2.1.1.1 as the next hop, which is out interface E3/1.

1
ip22-72a#<strong>show ip rpf 1.1.1.1</strong>

1
RPF information for ? (1.1.1.1)  

1
RPF interface: Ethernet3/1  

1
RPF neighbor: ? (2.1.1.1)  

1
RPF route/mask: 1.1.1.1/32  

1
RPF type: static mroute  

1
RPF recursion count: 0  

1
Doing distance-preferred lookups across tables

1
The output of show ip mroute and debug ip mpacket looks good,

1
the number of sent packets in the show ip mroute count increases and HostA receives packets.

1
ip22-72a#show ip mroute 224.1.1.1 <br />IP Multicast Routing Table <br />Flags: D - Dense, S - Sparse, C - Connected, L - Local, P - Pruned <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; R - RP-bit set, F - Register flag, T - SPT-bit set, J - Join SPT <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; M - MSDP created entry, X - Proxy Join Timer Running <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; A - Advertised via MSDP <br />Timers: Uptime/Expires <br />Interface state: Interface, Next-Hop or VCD, State/Mode

1
(*, 224.1.1.1), 00:01:15/00:02:59, RP 0.0.0.0, flags: DJC <br />&nbsp; Incoming interface: Null, RPF nbr 0.0.0.0 <br />&nbsp; Outgoing interface list: <br />&nbsp;&nbsp;&nbsp; Ethernet3/1, Forward/Sparse-Dense, 00:01:15/00:00:00 <br />&nbsp;&nbsp;&nbsp; Ethernet3/2, Forward/Sparse-Dense, 00:00:58/00:00:00

1
(1.1.1.1, 224.1.1.1), 00:00:48/00:02:59, flags: CTA <br />&nbsp; Incoming interface: Ethernet3/1, RPF nbr 2.1.1.1, Mroute <br />&nbsp; Outgoing interface list: <br />&nbsp;&nbsp;&nbsp; Ethernet3/2, Forward/Sparse-Dense, 00:00:48/00:00:00

1
ip22-72a#show ip mroute 224.1.1.1 count<br />IP Multicast Statistics<br />3 routes using 2378 bytes of memory<br />2 groups, 0.50 average sources per group<br />Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second<br />Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)<br />&nbsp;<br />Group: 224.1.1.1, Source count: 1, Packets forwarded: 1019, Packets received: 1019<br />&nbsp; Source: 1.1.1.1/32, Forwarding: 1019/1/100/0, Other: 1019/0/0<br />&nbsp;<br />ip22-72a#show ip mroute 224.1.1.1 count<br />IP Multicast Statistics<br />3 routes using 2378 bytes of memory<br />2 groups, 0.50 average sources per group<br />Forwarding Counts: Pkt Count/Pkts per second/Avg Pkt Size/Kilobits per second<br />Other counts: Total/RPF failed/Other drops(OIF-null, rate-limit etc)<br />&nbsp;<br />Group: 224.1.1.1, Source count: 1, Packets forwarded: 1026, Packets received: 1026<br />&nbsp; Source: 1.1.1.1/32, Forwarding: 1026/1/100/0, Other: 1026/0/0<br />ip22-72a#<br />&nbsp;

1
ip22-72a#debug ip mpacket 224.1.1.1 <br />*Jan 14 10:18:29.951: IP: s=1.1.1.1 (Ethernet3/1) <br />d=224.1.1.1 (Ethernet3/2) len 60, mforward <br />*Jan 14 10:18:29.999: IP: s=1.1.1.1 (Ethernet3/1) <br />d=224.1.1.1 (Ethernet3/2) len 60, mforward <br />*Jan 14 10:18:30.051: IP: s=1.1.1.1 (Ethernet3/1) <br />d=224.1.1.1 (Ethernet3/2) len 60, mforward

相关文章

  • 简单记录
  • 2960 Configuring DHCP Features(IOS12.2)
  • [原创]VLAN间访问控制的几种方法总结.
  • show vlan里的一些状态提示[831]
  • 双工问题
本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: multicast rpf
最后更新:2006年09月7日

纳米

linjing.io

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

页面AI聊天助手
文章目录
  • Background Information
  • Router Does Not Forward Multicast Packets to Host Due to RPF Failure
    • Diagnose the Problem
    • Possible Fixes

纳米

linjing.io

☁️迈向Cloud Native ADC ☁️

认证获得:
TOGAF: ID 152743
Kubernetes: CKA #664
Microsoft: MCSE MCDBA
Cisco: CCNP
Juniper: JNCIS
F5:
F5 Certified Solution Expert, Security
F5 Certified Technology Specialist, LTM/GTM/APM/ASM
F5 Certified BIG-IP Administrator
  • 点击查看本博技术要素列表
  • 归档
    分类
    • AI
    • Automation
    • Avi Networks
    • Cisco ACI
    • CISCO资源
    • F5 with ELK
    • F5-Tech tips
    • F5技术
    • Juniper
    • Linux
    • NGINX
    • SDN
    • ServiceMesh
    • WEB编程
    • WINDOWS相关
    • 业界文章
    • 交换机技术
    • 化云为雨/Openstack
    • 协议原理
    • 容器/k8s
    • 我的工作
    • 我的生活
    • 网站技术
    • 路由器技术
    • 项目案例
    标签聚合
    irule k8s F5 neutron api docker openstack DNS network envoy istio flannel bigip nginx gtm
    最近评论
    汤姆 发布于 8 个月前(09月10日) 嗨,楼主,里面的json怎么下载啊,怎么收费啊?
    汤姆 发布于 8 个月前(09月09日) 大佬,kib的页面可以分享下吗?谢谢
    zhangsha 发布于 1 年前(05月12日) 资料发给我下,谢谢纳米同志!!!!lyx895@qq.com
    李成才 发布于 1 年前(01月02日) 麻烦了,谢谢大佬
    纳米 发布于 1 年前(01月02日) 你好。是的,因为以前下载系统插件在一次升级后将所有的下载生成信息全弄丢了。所以不少文件无法下载。DN...
    浏览次数
    • Downloads - 183,772 views
    • 联系我 - 118,966 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 116,511 views
    • Github - 103,661 views
    • F5常见log日志解释 - 79,774 views
    • 从传统ADC迈向CLOUD NATIVE ADC - 下载 - 74,625 views
    • Sniffer Pro 4 70 530抓包软件 中文版+视频教程 - 74,320 views
    • 迄今为止最全最深入的BIGIP-DNS/GTM原理及培训资料 - 67,770 views
    • 关于本站 - 60,911 views
    • 这篇文档您是否感兴趣 - 55,495 views
    链接表
    • F5SE创新
    • Jimmy Song‘s Blog
    • SDNlab
    • Service Mesh社区
    • 三斗室
    • 个人profile
    • 云原生社区

    COPYRIGHT © 2023 Cloud Native 应用交付. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    京ICP备14048088号-1

    京公网安备 11010502041506号