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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

MSR系列路由器RPF检测失败导致组播不可达的经验案例一、组网:实际组网如下图,三台MSR路由器启用OSPF,保证全网连通。RouterA与Router分别连接组播源和组播接收PC,希望PC能够正常接收组播数据。二、问题描述:如上图组网后,保证路由状态正常,发现并没有出现想要的结果:接收组播的PC并不能收到组播源的组播报文。三、过程分析:三台路由器上的简略配置和单播路由表如下:RouterA配置sysnameH3C#interfaceSerial3/0link-protocolpppipaddress10.0.0.1255.0.0.0ospfcost1#interfaceGigabitEthernet0/0portlink-moderouteipaddress20.0.0.1255.0.0.0pimdm#interfaceGigabitEthernet0/1portlink-moderouteipaddress1.0.0.1255.0.0.0pimdm#ospf1area0.0.0.0network1.0.0.00.0.0.255network20.0.0.00.0.0.255network10.0.0.00.0.0.255#H3CdisiprouRoutingTables:PublicDestinations:11Routes:12Destination/MaskProtoPreCostNextHopInterface1.0.0.0/8Direct001.0.0.1GE0/11.0.0.1/32Direct00127.0.0.1InLoop02.0.0.0/8OSPF10210.0.0.2S3/010.0.0.0/8Direct0010.0.0.1S3/010.0.0.1/32Direct00127.0.0.1InLoop010.0.0.2/32Direct0010.0.0.2S3/020.0.0.0/8Direct0020.0.0.1GE0/020.0.0.1/32Direct00127.0.0.1InLoop030.0.0.0/8OSPF10220.0.0.3GE0/0OSPF10210.0.0.2S3/0127.0.0.0/8Direct00127.0.0.1InLoop0127.0.0.1/32Direct00127.0.0.1InLoop0RouterB配置sysnameH3C#interfaceEthernet0/0portlink-moderouteipaddress30.0.0.2255.0.0.0pimdm#interfaceEthernet0/1portlink-moderouteipaddress2.0.0.2255.0.0.0igmpenable#interfaceSerial3/0fe1clockmasterlink-protocolpppipaddress10.0.0.2255.0.0.0ospfcost1#ospf1import-routedirectarea0.0.0.0network2.0.0.00.0.0.255network10.0.0.00.0.0.255network30.0.0.00.0.0.255#H3CdisiprouRoutingTables:PublicDestinations:11Routes:12Destination/MaskProtoPreCostNextHopInterface1.0.0.0/8OSPF10210.0.0.1S3/02.0.0.0/8Direct002.0.0.2Eth0/12.0.0.2/32Direct00127.0.0.1InLoop010.0.0.0/8Direct0010.0.0.2S3/010.0.0.1/32Direct0010.0.0.1S3/010.0.0.2/32Direct00127.0.0.1InLoop020.0.0.0/8OSPF10230.0.0.3Eth0/0OSPF10210.0.0.1S3/030.0.0.0/8Direct0030.0.0.2Eth0/030.0.0.2/32Direct00127.0.0.1InLoop0127.0.0.0/8Direct00127.0.0.1InLoop0127.0.0.1/32Direct00127.0.0.1InLoop0RouterC配置sysnameH3C#interfaceEthernet0/0portlink-moderouteipaddress30.0.0.3255.0.0.0pimdm#interfaceEthernet0/1portlink-moderouteipaddress20.0.0.3255.0.0.0pimdm#interfaceNULL0#ospf1area0.0.0.0network30.0.0.00.0.0.255network20.0.0.00.0.0.255#H3CdisiprouRoutingTables:PublicDestinations:8Routes:8Destination/MaskProtoPreCostNextHopInterface1.0.0.0/8OSPF10220.0.0.1Eth0/12.0.0.0/8OSPF10230.0.0.2Eth0/020.0.0.0/8Direct0020.0.0.3Eth0/120.0.0.3/32Direct00127.0.0.1InLoop030.0.0.0/8Direct0030.0.0.3Eth0/030.0.0.3/32Direct00127.0.0.1InLoop0127.0.0.0/8Direct00127.0.0.1InLoop0127.0.0.1/32Direct00127.0.0.1InLoop0为了解决上述的问题,首先要确定单播路由器是正确的。首先从组播接收PC上Ping组播源的单播地址,测试结果如下:证明设备间的连通性没有问题,观察设备上的路由表也会发现路由学习正常。检查组播源和组播接收PC的配置,发现配置没有错误,组播数据已经从组播源正常发出。最后检查各个设备上的组播路由表:RouterA上的组播路由表如下:H3Cdismulticastrouting-tableMulticastroutingtableTotal1entry00001.(1.0.0.10,230.0.0.1)Uptime:03:37:14UpstreamInterface:GigabitEthernet0/1Listof1downstreaminterface1:GigabitEthernet0/0RouterC上的组播路由表如下:H3Cdismulticastrouting-tableMulticastroutingtableTotal1entry00001.(1.0.0.10,230.0.0.1)Uptime:00:10:57UpstreamInterface:Ethernet0/1Listof1downstreaminterface1:Ethernet0/0而RouterB上组播路由表为空,如果RouterB上没有组播路由表,则组播接收PC是不可能接收到组播报文的。为了看个究竟,我们打开设备的debugippacket开关,得到如下信息:*Aug714:54:34:9172007H3CIPFWD/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.1prompt:ReceivingIPpacketfromEthernet0/0*Aug714:54:35:1672007H3CIPFWD/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.1prompt:ReceivingIPpacketfromEthernet0/0*Aug714:54:35:4172007H3CIPFWD/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.1prompt:ReceivingIPpacketfromEthernet0/0证明在RouterB上确实接收到了组播数据,但是路由器并没有转发,而是将数据包丢弃了。什么情况会导致这种现象呢?不难联想到如果组播(PIMDM)的RPF检查失败会导致组播报文丢弃。一个组播路由器就有可能从两个或多个不同的接口上收到相同的多播报文,如何丢掉多余的组播报文呢?组播路由器通过进行RPF检查来解决这个问题。假设组播路由器从接口i收到了一个源地址为S,目的地址为G的组播报文。组播路由器首先利用源地址S来查询单播路由转发表,看看如果自己收到了一个目的地址为S的单播报文,那么该报文应该从哪个端口送出。如果查询得到的结果为端口i,那么就认为组播报文(S,G)通过了RPF检查;否则就认为没有通过RPF检查,一般情况下没有通过RPF检查的报文应该加以丢弃。为了证实这样的猜测,仔细观察上述的单播和组播路由表我们不难发现,单播和组播的数据实际转发路径如下图所示:因为要求单播和组播转发使用相同的转发路径,但由于在RouterA的S3/0口和RouterB的S3/0口并没有使能PIMDM,这时候组播报文并不能通过RPF检测,被RouterB丢弃。四、解决方法:为了解决问题,必须使组播报文通过RPF检查。可以在RouterA和RouterB的S3/0接口上启用PIMDM;当然也可以修改单播路由,使得单播路径和组播路径一致,具体作法为删除RouterA和RouterB的S3/0接口上OSPFcost1配置,这样重新计算得到的路由器表会使得单播报文按照Source-RouterA-RouterC-RouterB-Receiver的路径转发。解决PIMDM的组播问题可以从检查组播工具,检查单播路由和检查RPF三个方面考虑,最后一点通常是隐藏比较深且较难发现的,但往往也是问题的根本原因。

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功