关于组播的DR的工作原理与故障排查思路.docx
- 文档编号:8541879
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:9
- 大小:229.64KB
关于组播的DR的工作原理与故障排查思路.docx
《关于组播的DR的工作原理与故障排查思路.docx》由会员分享,可在线阅读,更多相关《关于组播的DR的工作原理与故障排查思路.docx(9页珍藏版)》请在冰豆网上搜索。
关于组播的DR的工作原理与故障排查思路
关于组播的DR的工作原理与故障排查思路
1,问题描述:
我们一台CPEMP1803路由器作为客户的CE路由器,PC发了IGMPreport以后,我们路由器会在IGMP表项里写上该组播组,但是客户那里说上游的HuaweiPE设备没有收到我们设备的PIMJOIN报文而最终不能将组播流量引下来。
经过排查,发现客户在同一个局域网中有多个CPE,而且我们的MP1803不是DR.
所以这就是为什么客户开了debug以后不能在我们路由器的上游接口抓到PIMJOIN报文误认为是我们路由器的问题。
当时建议客户把局域网断开,然后直接用PC接到MP1803的LAN口上面,这个时候PC组播正常工作。
问题找到。
下面就是关于局域网DR的工作原理展开论述和实验。
2,组播DR的工作原理.
PS:
在看该文档前,需要回忆IGMP的工作原理,还有组播客户端如果加入到RP的公共原理部分。
详细细节可以参考文档:
一份极强的CCIE笔记 . CISCOCCIEroutingandswitching–Kaka’sNote
Author:
房智勇
个人理解:
现在我对DR的理解是,如果一个局域网有多个路由器同时做上联,那么在showippimneighbor的时候,对于局域网也会选举一个DR出来。
当客户端在发送IGMPreport报文的时候,和PC的默认网关没有关系,IGMPreport会发送到所有的上游路由器,这个时候只有DR接收到了下游的PC的IGMPreport以后才会重新封装PIM的join报文送到RP去加入.而对于另外一台非DR的设备,当他收到了IGMPreport以后,他只会在自己的IGMP表里面记录该主播组,但是他不会向RP去发送PIMjoin报文,所以如果有人说,这个路由showippimmroutegroupx.x.x.x状态怎么是NOTJOINED,那么需要看该路由器对于局域网到底是否是DR.如果不是DR那么这个现象是正常的,也应该这样.
还有就是如果本台路由器发送了PIMJOIN以后,那么在本台设备上面showippimmroute应该可以发现期望组播组的(*,G)表项,然后再看上游路由器,也应该有(*,G)才对,因为我们是往上面送了的.如果我们发了上面也有(*,G),那么就应该核查上面的路由器组播是否正常工作
这里又引出一个问题,在同一个局域网,只有DR才转发主播流量,才发送PIMJOIN报文,那么如果主播组多的情况下,对局域网的DR是否也是一个性能考验呢?
那肯定是是的。
所以在设计网络的时候,如果局域网的主播组需求量很大的话,那么CPE路由器一定要用性能高一点的设备来做,否则的话很有可能因为性能引起瓶颈问题。
我对协议的建议:
MP1800-D(config-if-fastethernet0)#ippimdr-priority200?
MP1800-D(config-if-fastethernet0)#ippimdr-priority200
Q:
你看这里都是基于接口来做的,但是我想对224.1.1.1R1作为DR,224.1.1.2R2作为DR,来达到一个负载均衡的功能,这样可以做吗?
A:
我觉得真的还算是一个需求,如果一次我有20个主播组需要运行,每个都是高清视频流,那不是对CPE的要求很高才能行吗?
每个高清按照4M来算,都是100M的高清。
。
。
。
本来4个1800就可以,现在非要3个MP1800加上一个2824才能做这个事情,而且还不能做到备份。
换言之是需要4个2824才能完全做热备,否则主2824瘫了,那么任何一个1800都会瘫痪,因为一个1800不能达到100M高清视频流量的线速转发.
3,CCIE学习笔记上面关于这个软件模块的描述.(关于重点我用红色进行标注)---下面都是CISCO的原理,命令输出可能略有不同,原理相同,可以参考.
上面就是PIMJOIN报文的报文格式.
NeighborDiscovery邻居发现
路由器通过周期性的查询(缺省30秒)来发现PIM邻居路由器的存在,对于多路访问网络,这种查询消息发现224.0.0.2(All-Routers)。
对于多路访问网络,还要选举DR,IP地址最高的路由器成为DR。
在疏模式中,DR负责为多路访问网段上的主机向RP发送Join消息,在密模式中,DR的选举没有意义。
上图中显示的是showippimneighbor命令的输出,我们可以清楚的看到上面五条记录中的路由器和这台路由器同属于一个多路访问网络,171.68.0.91因为有最高的IP地址而成为DR。
4,实验拓扑:
关于实验拓扑图解释:
在这个拓扑中,Multicastclient3.1.1.2,他的默认网关是MP1800-D,这里向说明的问题是,主播发的请求和单播的默认IP网关是没有关系的,所以最后我们可以发现,假设3.1.1.2发出的IGMPREPORT请求224.1.1.10出去,实际上是MP1800-U路由器帮忙发送的PIMJOIN报文上去,也是MP1800-U路由器showippimmroute可以看到(*,G)表项的状态是JOINED的状态。
最后也是MP1800-U路由器转发的主播流量.
5,各个设备的配置:
MP2800:
ipmulticast-routing
interfaceloopback0
ipaddress10.10.10.10255.255.255.255
ippimsparse-mode
exit
interfacefastethernet1.10
ipaddress1.1.1.2255.255.255.0
encapsulationdot1q10
ippimsparse-mode
exit
interfacefastethernet1.20
ipaddress2.1.1.2255.255.255.0
encapsulationdot1q20
ippimsparse-mode
exit
routerospf1
network0.0.0.0255.255.255.255area0
exit
ippimrp-address10.10.10.10
MP1800-D:
ipmulticast-routing
interfacefastethernet0
ipaddress3.1.1.1255.255.255.0
ippimsparse-mode
exit
interfacefastethernet1.10
ipaddress1.1.1.1255.255.255.0
encapsulationdot1q10
ippimsparse-mode
exit
routerospf1
network0.0.0.0255.255.255.255area0
exit
ippimrp-address10.10.10.10
MP1800-U:
ipmulticast-routing
interfacefastethernet0
ipaddress3.1.1.3255.255.255.0
ippimsparse-mode
exit
interfacefastethernet1.20
ipaddress2.1.1.1255.255.255.0
encapsulationdot1q20
ippimsparse-mode
exit
routerospf1
network0.0.0.0255.255.255.255area0
exit
ippimrp-address10.10.10.10
6,实验过程:
这里再看着拓扑图来说明情况.
下游PC的单播IP网关是MP1800-D,3.1.1.1.
这个时候在3.1.1.2PC客户端上运行VLC等组播软件,期望组播组为224.1.1.10.
按照刚才我们了解的原理部分应该得到下面的结论:
●首先确定MP1800-D和MP1800-U哪个设备是组播局域网的DR.
这里可以看到我登录在MP1800-D上面的,本机的LAN是3.1.1.1,局域网中3.1.1.2是DR.所以注定了我们设备是不会发送PIMJOIN到RP,也不会引组播流量下来的。
●当客户端发送了IGMPreprot报文以后,MP1800—D上面.showipigmpgroups.应该可以看到224.1.1.10的表项.
●但是MP1800-D不会向上游的RP发送PIMJOIN.
下面是相关的debug报文,我们找不到任何关于FE1.10发送PIM报文的表项.(224.1.1.10,送到RP10.10.10.10)
MP1800-D#
03:
06:
26:
PIM-SM:
PIMHellofrom3.1.1.3onfastethernet0
03:
06:
26:
PIM-SM:
RecvHellomessage
03:
06:
26:
PIM-SM:
Holdtime:
105
03:
06:
26:
PIM-SM:
T-bit:
off
03:
06:
26:
PIM-SM:
Landelay:
1
03:
06:
26:
PIM-SM:
Overrideinterval:
3
03:
06:
26:
PIM-SM:
DRpriority:
1
03:
06:
26:
PIM-SM:
GenID:
30973
03:
06:
26:
PIM-SM:
RestartingNLTforneighbor3.1.1.3onfastethernet0with105secstimeoutfromHellomessage
03:
06:
26:
PIM-SM:
DRis3.1.1.3
03:
06:
28:
PIM-SM:
Recv(*,224.1.1.10)Includeonfastethernet0
03:
06:
28:
PIM-SM:
Apply(*,224.1.1.10)Includeonfastethernet0
03:
06:
28:
PIM-SM:
Nexthop10.10.10.10:
Incrementrefcnt2
03:
06:
36:
PIM-SM:
ScanningPIM-SMIPv4NextHopCache...
03:
06:
39:
PIM-SM:
HelloTimerexpiredonfastethernet0
03:
06:
39:
PIM-SM:
RestartingHelloTimeronfastethernet0with30secstimeout
03:
06:
39:
PIM-SM:
StoppingTriggeredHelloTimeronfastethernet0
03:
06:
39:
PIM-SM:
Hellosendtofastethernet0
03:
06:
39:
PIM-SM:
SendHellomessage
03:
06:
39:
PIM-SM:
Holdtime:
105
03:
06:
39:
PIM-SM:
T-bit:
off
03:
06:
39:
PIM-SM:
Landelay:
1
03:
06:
39:
PIM-SM:
Overrideinterval:
3
03:
06:
39:
PIM-SM:
DRpriority:
1
03:
06:
39:
PIM-SM:
GenID:
414
03:
06:
42:
PIM-SM:
HelloTimerexpiredonfastethernet1.10
03:
06:
42:
PIM-SM:
RestartingHelloTimeronfastethernet1.10with30secstimeout
03:
06:
42:
PIM-SM:
StoppingTriggeredHelloTimeronfastethernet1.10
03:
06:
42:
PIM-SM:
Hellosendtofastethernet1.10
03:
06:
42:
PIM-SM:
SendHellomessage
03:
06:
42:
PIM-SM:
Holdtime:
105
03:
06:
42:
PIM-SM:
T-bit:
off
03:
06:
42:
PIM-SM:
Landelay:
1
03:
06:
42:
PIM-SM:
Overrideinterval:
3
03:
06:
42:
PIM-SM:
DRpriority:
1
03:
06:
42:
PIM-SM:
GenID:
15118
MP1800-D#nodebuall
●在MP1800-U上面,showipigmpgroups应该可以看到224.1.1.10的表项。
●在MP1800-U上面,如果debugippimall的话,应该可以看到1800-U的FE1.20接口向上面送PIMJOIN报文到RP.
下面是MP1800-U上面,debugippimall的内容,可以发现FE1.20是发送了PIMJOIN报文到RP10.10.10.10的。
MP1800-U#
03:
14:
50:
PIM-SM:
Recv(*,224.1.1.10)Includeonfastethernet0
03:
14:
50:
PIM-SM:
Apply(*,224.1.1.10)Includeonfastethernet0
03:
14:
50:
PIM-SM:
Nexthop10.10.10.10:
Incrementrefcnt2
03:
14:
50:
PIM-SM:
JoinDesired(*,G)=>TRUEeventfor(*,224.1.1.10)
03:
14:
50:
PIM-SM:
MRIB.next_hop_rp(10.10.10.10):
nexthop2.1.1.2
03:
14:
50:
PIM-SM:
SendJoin/Prunemessage
03:
14:
50:
PIM-SM:
Upstream:
2.1.1.2(Family1,Type0)
03:
14:
50:
PIM-SM:
Rserved:
0
03:
14:
50:
PIM-SM:
Numgroups:
1
03:
14:
50:
PIM-SM:
Holdtime:
210
03:
14:
50:
PIM-SM:
Multicastgroup:
224.1.1.10/32(Family1,Type0)
03:
14:
50:
PIM-SM:
NumberofJoin:
1
03:
14:
50:
PIM-SM:
NumberofPrune:
0
03:
14:
50:
PIM-SM:
Join:
(*,G)10.10.10.10/32(Family1,Type0)
03:
14:
50:
PIM-SM:
US(*,224.1.1.10):
StartingJTtimerwith60secstimeout
03:
14:
50:
PIM-SM:
US(*,224.1.1.10):
NOTJOINEDtoJOINED,JoinDesired(*,G)=>TRUE
MP1800-U#
●在MP1800-D上面,showippimmroutegroups224.1.1.10,(*,G)的状态应该是NOTJOINED.
●在MP1800-U上面,showippimmroutegroups224.1.1.10,(*,G)的状态应该是JOINED.
7,关于DR的调整。
这里关于哪个路由器是DR,是可以进行调整的。
找我们的设备上面每个接口的DR优先级都是1,范围是0-4294967294,越大越优先.
如果大家的DR优先级都一样的话,那么就比较IP地址在同网段内哪个IP地址大,大的那个会被选为DR.在我这个实验中,3.1.1.1 和3.1.1.3,明显MP1800-U该选举为DR.
如果想刻意的修改优先级可以用下面的命令在接口下面改变DR的优先级,这对于网络设计还是有用的:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关于 DR 工作 原理 故障 排查 思路