• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

MSR系列路由器RPF检测失败导致组播不可达的经验案例

2007-08-08 发表
  • 0关注
  • 0收藏 910浏览
粉丝: 关注:

MSR系列路由器

RPF检测失败导致组播不可达的经验案例

 

一、组网

实际组网如下图,三台MSR路由器启用OSPF,保证全网连通。Router ARouterB分别连接组播源和组播接收PC,希望PC能够正常接收组播数据。

二、问题描述:

如上图组网后,保证路由状态正常,发现并没有出现想要的结果:接收组播的PC并不能收到组播源的组播报文。

三、过程分析:

三台路由器上的简略配置和单播路由表如下:

Router A 配置

sysname H3C

#

interface Serial3/0

 link-protocol ppp

 ip address 10.0.0.1 255.0.0.0

 ospf cost 1

#

interface GigabitEthernet0/0

 port link-mode route

 ip address 20.0.0.1 255.0.0.0

 pim dm

#

interface GigabitEthernet0/1

 port link-mode route

 ip address 1.0.0.1 255.0.0.0

 pim dm

#

ospf 1

 area 0.0.0.0

  network 1.0.0.0 0.0.0.255

  network 20.0.0.0 0.0.0.255

  network 10.0.0.0 0.0.0.255

#

 

<H3C>dis ip rou

Routing Tables: Public

        Destinations : 11       Routes : 12

 

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

 

1.0.0.0/8           Direct 0    0            1.0.0.1         GE0/1

1.0.0.1/32          Direct 0    0            127.0.0.1       InLoop0

2.0.0.0/8           OSPF   10   2            10.0.0.2        S3/0

10.0.0.0/8          Direct 0    0            10.0.0.1        S3/0

10.0.0.1/32         Direct 0    0            127.0.0.1       InLoop0

10.0.0.2/32         Direct 0    0            10.0.0.2        S3/0

20.0.0.0/8          Direct 0    0            20.0.0.1        GE0/0

20.0.0.1/32         Direct 0    0            127.0.0.1       InLoop0

30.0.0.0/8          OSPF   10   2            20.0.0.3        GE0/0

                      OSPF   10   2            10.0.0.2        S3/0

127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0

127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0

Router B 配置

sysname H3C

#

interface Ethernet0/0

 port link-mode route

 ip address 30.0.0.2 255.0.0.0

 pim dm

#

interface Ethernet0/1

 port link-mode route

 ip address 2.0.0.2 255.0.0.0

 igmp enable

#

interface Serial3/0

 fe1 clock master

 link-protocol ppp

 ip address 10.0.0.2 255.0.0.0

 ospf cost 1

#

ospf 1         

 import-route direct

 area 0.0.0.0

  network 2.0.0.0 0.0.0.255

  network 10.0.0.0 0.0.0.255

  network 30.0.0.0 0.0.0.255

#

 

<H3C>dis ip rou

Routing Tables: Public

        Destinations : 11       Routes : 12

 

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

 

1.0.0.0/8           OSPF   10   2            10.0.0.1        S3/0

2.0.0.0/8           Direct 0    0            2.0.0.2         Eth0/1

2.0.0.2/32          Direct 0    0            127.0.0.1       InLoop0

10.0.0.0/8          Direct 0    0            10.0.0.2        S3/0

10.0.0.1/32         Direct 0    0            10.0.0.1        S3/0

10.0.0.2/32         Direct 0    0            127.0.0.1       InLoop0

20.0.0.0/8          OSPF   10   2            30.0.0.3        Eth0/0

                      OSPF   10   2            10.0.0.1        S3/0

30.0.0.0/8          Direct 0    0            30.0.0.2        Eth0/0

30.0.0.2/32         Direct 0    0            127.0.0.1       InLoop0

127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0

127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0

Router C 配置

sysname H3C

#

interface Ethernet0/0

 port link-mode route

 ip address 30.0.0.3 255.0.0.0

 pim dm

#

interface Ethernet0/1

 port link-mode route

 ip address 20.0.0.3 255.0.0.0

 pim dm

#

interface NULL0

#

ospf 1

 area 0.0.0.0

  network 30.0.0.0 0.0.0.255

  network 20.0.0.0 0.0.0.255

#

 

<H3C>dis ip rou

Routing Tables: Public

        Destinations : 8        Routes : 8

 

Destination/Mask    Proto  Pre  Cost         NextHop         Interface

 

1.0.0.0/8           OSPF   10   2            20.0.0.1        Eth0/1

2.0.0.0/8           OSPF   10   2            30.0.0.2        Eth0/0

20.0.0.0/8          Direct 0    0            20.0.0.3        Eth0/1

20.0.0.3/32         Direct 0    0            127.0.0.1       InLoop0

30.0.0.0/8          Direct 0    0            30.0.0.3        Eth0/0

30.0.0.3/32         Direct 0    0            127.0.0.1       InLoop0

127.0.0.0/8         Direct 0    0            127.0.0.1       InLoop0

127.0.0.1/32        Direct 0    0            127.0.0.1       InLoop0

为了解决上述的问题,首先要确定单播路由器是正确的。首先从组播接收PCPing组播源的单播地址,测试结果如下:

证明设备间的连通性没有问题,观察设备上的路由表也会发现路由学习正常。检查组播源和组播接收PC的配置,发现配置没有错误,组播数据已经从组播源正常发出。最后检查各个设备上的组播路由表:

Router A上的组播路由表如下:

<H3C>dis multicast routing-table

Multicast routing table

   Total 1 entry

 

 00001. (1.0.0.10, 230.0.0.1)

       Uptime: 03:37:14

       Upstream Interface: GigabitEthernet0/1

       List of 1 downstream interface

           1:  GigabitEthernet0/0

Router C上的组播路由表如下:

<H3C>dis multicast routing-table

Multicast routing table

 Total 1 entry

 

 00001. (1.0.0.10, 230.0.0.1)

       Uptime: 00:10:57

       Upstream Interface: Ethernet0/1

       List of 1 downstream interface

           1:  Ethernet0/0

Router B上组播路由表为空,如果Router B上没有组播路由表,则组播接收PC是不可能接收到组播报文的。为了看个究竟,我们打开设备的debug ip packet开关,得到如下信息:

*Aug  7 14:54:34:917 2007 H3C IPFWD/7/debug_case:

Receiving, interface = Ethernet0/0, version = 4, headlen = 20, tos = 0,

pktlen = 284, pktid = 35482, offset = 0, ttl = 6, protocol = 17,

checksum = 16940, s = 1.0.0.10, d = 230.0.0.1

prompt: Receiving IP packet from Ethernet0/0

 

*Aug  7 14:54:35:167 2007 H3C IPFWD/7/debug_case:

Receiving, interface = Ethernet0/0, version = 4, headlen = 20, tos = 0,

pktlen = 284, pktid = 35483, offset = 0, ttl = 6, protocol = 17,

checksum = 16939, s = 1.0.0.10, d = 230.0.0.1

prompt: Receiving IP packet from Ethernet0/0

 

*Aug  7 14:54:35:417 2007 H3C IPFWD/7/debug_case:

Receiving, interface = Ethernet0/0, version = 4, headlen = 20, tos = 0,

pktlen = 284, pktid = 35484, offset = 0, ttl = 6, protocol = 17,

checksum = 16938, s = 1.0.0.10, d = 230.0.0.1

prompt: Receiving IP packet from Ethernet0/0

证明在Router B上确实接收到了组播数据,但是路由器并没有转发,而是将数据包丢弃了。什么情况会导致这种现象呢?不难联想到如果组播(PIM DM)的RPF检查失败会导致组播报文丢弃。一个组播路由器就有可能从两个或多个不同的接口上收到相同的多播报文,如何丢掉多余的组播报文呢?组播路由器通过进行RPF检查来解决这个问题。假设组播路由器从接口i收到了一个源地址为S,目的地址为G的组播报文。组播路由器首先利用源地址S来查询单播路由转发表,看看如果自己收到了一个目的地址为S的单播报文,那么该报文应该从哪个端口送出。如果查询得到的结果为端口i,那么就认为组播报文(SG)通过了RPF检查;否则就认为没有通过RPF检查,一般情况下没有通过RPF检查的报文应该加以丢弃。

为了证实这样的猜测,仔细观察上述的单播和组播路由表我们不难发现,单播和组播的数据实际转发路径如下图所示:

因为要求单播和组播转发使用相同的转发路径,但由于在Router AS3/0口和Router BS3/0口并没有使能PIM DM,这时候组播报文并不能通过RPF检测,被Router B丢弃。

四、解决方法

为了解决问题,必须使组播报文通过RPF检查。可以在Router ARouter BS3/0接口上启用PIM DM;当然也可以修改单播路由,使得单播路径和组播路径一致,具体作法为删除Router ARouter BS3/0接口上OSPF cost 1配置,这样重新计算得到的路由器表会使得单播报文按照Source-àRouter A-àRouter C-àRouter B-àReceiver的路径转发。

解决PIM DM的组播问题可以从检查组播工具,检查单播路由和检查RPF三个方面考虑,最后一点通常是隐藏比较深且较难发现的,但往往也是问题的根本原因。

若您有关于案例的建议,请反馈:

作者在2012-02-20对此案例进行了修订
0 个评论

该案例暂时没有网友评论

编辑评论

举报

×

侵犯我的权益 >
对根叔知了社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔知了社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作