1、组播路由协议配置cisco常用组播路由协议配置方法1 IGMP协议配置1.1 IGMP基本设置1.1.1 配置路由器加入到一个组播组:Router(config-if)# ip igmp join-group 225.2.2.2 1.1.2 控制某个接口下主机能够加入的组播组 ip igmp access-group access-list 【例如】Router(config)# access-list 1 225.2.2.2 0.0.0.0Router(config)# interface ethernet 0Router(config-if)ip igmp access-group 1AC
2、L可以同时对组播报文的源和目的地址控制,达到过滤组播源,同时也能过滤特定接收主机的作用,例如: Deny all state for a group Gdeny igmp any host G permit igmp any any Deny all state for a source Sdeny igmp host S any permit igmp any any Permit all state for a group G permit igmp any host GPermit all state for a source Spermit igmp host S any Filter
3、 a particular source for a group G deny igmp host S host G permit igmp any host G1.1.3 IGMP版本切换 Router(config-if)# ip igmp version 2|31.1.4 IGMP查询间隔时间:默认60s Router(config-if)# ip igmp query-interval 1201.1.5 IGMP查询超时时间:默认为2倍的查询间隔时间Router(config-if)# ip igmp query-timeout 301.1.6 IGMP查询最大响应时间:默认为10sR
4、outer(config-if)# ip igmp query-max-response-time 8 1.2 IGMP Proxy 如图2,当C收到组播请求后,发送一条PIM-SM join的消息给B,发送一个IGMP的请求到A,A通过一条单播链路将数据传送到B,这个过程就需要一个IGMP的代理,配置如下:图2【例如】Router A Configurationinterface ethernet 0ip address 10.1.1.1 255.255.255.0ip pim dense-mode!interface ethernet 1ip address 10.2.1.1 255.25
5、5.255.0ip pim dense-modeip igmp unidirectional link!interface ethernet 2ip address 10.3.1.1 255.255.255.0Router B Configurationip pim rp-address 10.5.1.1 5 access-list 5 permit 239.0.0.0 0.255.255.255.255!interface loopback 0ip address 10.7.1.1 255.255.255.0ip pim dense-modeip igmp helper-address ud
6、l ethernet 0ip igmp proxy-service!interface ethernet 0ip address 10.2.1.2 255.255.255.0ip pim dense-mode ip igmp unidirectional link!interface ethernet 1ip address 10.5.1.1 255.255.255.0ip pim sparse-modeip igmp mroute-proxy loopback 0!interface ethernet 2ip address 10.6.1.1 255.255.255.0Router C Co
7、nfigurationip pim rp-address 10.5.1.1 5access-list 5 permit 239.0.0.0 0.255.255.255!interface ethernet 0ip address 10.8.1.1 255.255.255.0ip pim sparse-mode!interface ethernet 1ip address 10.9.1.1 255.255.255.0ip pim sparse-mode1.3 IGMP Snooping1.3.1 开启IGMP轮询Router(config)#ip igmp snooping 1.3.2 IGMP
8、 Snooping调整在单个vlan中启用Snooping: ip igmp snooping vlan 1.3.3 IGMP Snooping快速离开 ip igmp snooping vlan immediate-leave The following example shows how to enable IGMP Immediate-Leave processing on VLAN 1: Router(config)# ip igmp snooping vlan 1 immediate-leave 1.3.4 IGMP Snooping参考多播路由 ip igmp snooping v
9、lan mrouter To add a multicast router port and to configure the multicast router learning method, use the ip igmp snooping vlan mrouter command in global configuration mode. ip igmp snooping vlan vlan-id mrouter interface interface-id | learn pim-dvmrp 【例如】Switch# configure terminalSwitch(config)# i
10、p igmp snooping vlan 200 mrouter interface gigabitethernet1/0/2Switch(config)# end1.3.5 基于静态地址的IGMP Snooping ip igmp snooping vlan vlan-id static mac-address interface interface-id【例如】Switch# configure terminalSwitch(config)# ip igmp snooping vlan 105 static 01005e233312 interface gigabitethernet1/0
11、/1Switch(config)# end1.4 监控调试IGMP1.4.1 show ip igmp groups1.4.2 show ip igmp interface显示内容:(1)IGMP和CGMP在接口下是否启用。(2)IGMP版本。(3)关于IGMP的各种计时器,我们可以基于性能的原因来调整它。(4)某一子网中的DR和IGMP查询者。1.4.3 debug ip igmp 这条命令可以帮助我们了解当前路由器是否发出查询信息,发查询信息的间隔以及是否收到来自接收者的对查询的响应。2 PIM协议配置2.1 PIM-DM基本配置2.1.1 激活多播路由 Router(config)#ip
12、 multicast-routing 2.1.2 PIM-DM配置在接口模式下输入 Ip pim dense-mode【例如】ip multicast-routinginterface FastEthernet0/1 ip address 172.16.8.1 255.255.255.0 ip pim state-refresh origination-interval 60 ip pim dense-mode2.2 PIM-SM基本配置2.2.1 激活多播路由Router(config)#ip multicast-routing 需在所有路由器上配置,否则可能会形成组播路由黑洞。2.2.2
13、PIM-SM配置接口命令:ip pim dense-mode | sparse-mode | sparse-dense-mode (1)单纯采用稀疏模式:ip pim sparse-mode 【例如】R1(config)# ip multicast-routingR1(config)# ip pim rp-address 172.16.34.1R1(config)# interface f0/0R1(config-if)# ip pim sparse-mode(2)Auto-RP方案网络或稀疏和密集模式混合网络:ip pim sparse-dense-mode 【例如】R1(config)#
14、ip multicast-routingR1(config)# ip pim rp-address 172.16.35.1R1(config)# interface fa0/1R1(config-if)# ip pim sparse-dense-mode2.2.3 PIM-SM静态RP 如果要配置Static RP,则应该在所有路由器上配置,并且所有路由器必须使用相同的RP地址。当静态配置的RP失效时,路由器不可能切换到其它的备用RP(除非使用 Anycast-RP,在RP之间运行 MSDP)。 以下命令实现静态RP的指定: ip pim rp-address group-list overr
15、ide group-list:指定组范围,缺省为224.0.0.0/4,这是很危险,因为它把Auto-RP多播组(224.0.1.39和 224.0.1.40)也包括进来了,注意这两个多播组是使用密模式进行维护的。所以我们至少应该使用访问列表将这两个组排除。override: 参数指示静态配置优先于Auto-RP学得的内容。【例如】host1(config)#access-list boston permit 228.0.0.0 15.255.255.255host1(config)#ip pim rp-address 122.0.0.1 1 boston静态 RP 的配置比较容易理解,但是管
16、理工作量很大,由于没有冗余能力,可靠性也不强,不适于在大的网络中使用。 为了保证RP的有效性,防止网络因为失效导致网络切换至密集模式,我们可以指定静态RP,但是为了防止静态RP阻碍Auto-RP协议的运行,必须与访问列表相结合使用。如下例: ip pim rp-address 10 access-list 10 deny 224.0.1.39 access-list 10 deny 224.0.1.40 access-list 10 permit any【例如】host1(config)#access-list 11 permit 224.0.1.39 0.0.0.0host1(config)
17、#access-list 11 permit 224.0.1.40 0.0.0.0host1(config)#ip pim rp-address 192.48.1.22 11 override2.2.4 PIM-SM自动RP除了Candidate RPs(RP候选者)和 MappingAgents(映射代理)路由器外,其它所有路由器能自动学习与特定组相关的RP地址,不需要为RP做任何设置。CandidateRPs和MappingAgents路由器通过专用的两个多播地址 224.0.1.39(Cisco-Announce)和224.0.1.40(Cisco-Discovery)以PIM DM(否
18、则在Chicken and Egg问题)方式传递RP相关信息。网络中可以存在多个RP以作备份,可以通过管理范围对消息的传递加以限制,BSR不个备这一功能,这一功能对减少多播信息对广域网带宽的占用非常有效。 Candidate RPs RP候选者以固定周期向224.0.1.39组播地址送RP-Announcement消息,这个消息用来说明该路由器是一个RP候选者,rp-announce-interval的缺省值为60s。RP声明中包括:组范围(缺省为224.0.0.0/4)、候选RP的地址,保持时间缺省为三分钟,即三倍的 rp-announce-interval。在全局模式下以下述命令设置: i
19、p pim send-rp-announce scope group-list acl。 Interface: 用于指定RP声明中的源地址取自哪个接口。 Group-list: 其中的Deny在不同的IOS 版本中意义不同,12.0(1.1)以前的版本中表示当前路 由器不是相应组范围的候选RP,12.0(1.1)以后版本中表示该组范围永远采用密模式。【例如】host1(config)#access-list 1 deny 224.0.1.39 host1(config)#access-list 1 deny 224.0.1.40ip pim send-rp-announce loopback
20、2 scope 16 group-list 1 Mapping Agents 用于接收发自CandidateRPs的声明,自动加入224.0.1.39这个多播组。所有声明存储在缓存中,为每个特定组范围选举具有最高IP地址的候选者作为RP。我们可以通过show ip pim rp mapping命令来查看MA的缓存。注意:所有MA的缓存内容必须一致。向224.0.1.40地址发送Cisco-Discovery消息,每60秒或检测到变化时发送。消息中包含从多个候选者中选出的RP。可以通过如下命令设置: ip pim send-rp-discovery scope 。 Interface:用于指定消
21、息包源地址取自哪个接口,如果不设置,源地址为送出接口,这样将会导致一个MA以多个地址出现。所有其它路由器自动加入224.0.1.40以接收Cisco-Discovery 消息。通过接收Cisco-Discovery消息以确定负责特定组的RP。【例如】ip pim send-rp-discovery scope 23 loopback 1通常一个网络中应该至少设置两个C-RP和MA,一台路由器可以同时担当这两种角色。Intfc最好使用回环接口来定义。需要支持多播的每台路由器的每个接口下都应该配置成疏密模式,因为Auto-RP采用密模式PIM工作,其它多播数据采用稀疏模式工作。Auto-RP可以采
22、用冗余模式,在冗余模式中,是通过比较相应端口的IP地址大小来实现的,通常是做法是对于主RP配置较高IP地址的Loopback接口,而对于冗余RP则采用较小的IP地址作为Loopback接口。 自动RP控制Auto-RP声明和发现消息中的TTL的值设成多大合适?这个跟网络结构有关,只要保证所有的 MA/C-RPs 都可以收到来自 C-RPs/MA 的消息就可以了。不妨把TTL值设得大一些,我们可以在网络边界使用ip multicast boundary的命令来限定Auto-RP多播信息的传递,如下图。为了防止不正确的配置导致RP信息的不一致,可以通过ip pim accept-rp命令对可接受R
23、P进行限制,命令用法如下:Ip pim accept-rp acl Ip pim accept-rp auto-rp acl Ip pim accept-rp 0.0.0.0 acl Auto-rp 和 0.0.0.0 只能设置一条,acl 如果省略掉则表示 224.0.0.0/4。 【例如】ip pim accept-rp 172.17.1.1 3access-list 3 permit 224.2.2.2对 RP 的限定可以用来控制组模式,只有通过 RP 验证的组才可以使用稀疏模式。也可以用来限定哪些(*,G)的加入消息是可接受的,还可以用来限定哪些(S,G)注册消息是可接受的。此外,我们
24、可以在 MA 中使用 RP 过滤来验证 RP 候选者的有效性,进而控制 RP。命令如下: ip pim rp-announce-filter rp-list group-list rp-list 和 group-list 分别用来指定哪些C-RP和多播信息是可以接受的。 注意group-list 如果不指定表示不接受一切组。【例如】ip pim rp-announce-filter rp-list 1 group-list 2access-list 1 permit 10.0.0.1access-list 1 permit 10.0.0.2access-list 2 permit 224.0.
25、0.0 192.168.255.2552.2.5 PIMv2 BSR模式多个C-BSR(引导路由器候选者)通过选举优先级和IP地址最高者为活动BSR,这个选举过程是抢先式的。活动BSR根据C-BSR的优先级随时变化,作为接收者的All Other Routers在Accept Any和Accept Preferred 两种状态中改变。BSR通过以下命令设置:ip pim bsr-candidate priority :指定hash mask的长度,这一长度决定了RP服务于多播组的范围有多大。Priority:定义了当前BSR的优先级,优先级缺省等于0。【例如】ip pim bsr-candid
26、ate ethernet 0/0 1922.3 监控调试PIM2.3.1 show ip pim neighbor Uptime显示毗邻关系存在的时间 Expires显示条目过期前的剩余时间,周期性的PIM Hello消息用来刷新这条记录。 Mode 显示接口下PIM的模式:Dense,Sparse or Sparse/Dense。 2.3.2 show ip pim interface Nbr Count 显示该接口连接网络中邻居的数量。 DR=0.0.0.0说明该接口所连接的是P2P网络,不存在DR。 2.3.3 show ip rpf 上图中显示了两条RPF信息,这些信息都是基于单播路由
27、表形成的。 关于每一个多播源和RP路由器都有相关条目,记录RPF接口,上游路由器,相关路由等信息。 2.3.4 show ip route 不要忘了,多播的转发决断依赖于单播路由表(如RPF检验),所以在我们调试多播路由时经常检验单播路由的正确性同样重要。 2.3.5 show ip mroute 这是一个多播路由表的一部分,同其它的多播路由表一样,其中包含(*,G)和(S,G)条目,每个条目下会有流入接口,OIL流出接口列表,RP(如果存在的话),标志位和Uptime/Expires计时器。此外还有show ip mroute summary和show ip mroute count两条命令
28、没有列出示例。分别用于查看多播路由表每个条目的汇总信息和统计信息。2.3.6 show ip mroute active 显示当前活动的源(流量大于某个门限值,缺省为4K) 其中包含组地址,会话名称, 组播源地址,域名称以及带宽占用情况。2.3.7 show ip pim rp mapping 这条命令是关于PIM Sparse Mode的。RP 可以被自动发现,也可以被手工设置。RP 在一个多播网络中可以存在多个,并且可以基于组播地址范围进行转发分工。2.3.8 debug ip mpacket 用来解码多播包,这是一条轻易不要用的命令,特别是当有较大多播流量通过路由器时,会加大路由器负载,
29、并且大量信息输出无法过滤2.3.9 debug ip mroute 2.3.10 debug ip pim 用来查看PIM邻居之间的消息交换,图中显示该路由器通过E0和E1口向外发出PIM路由器查询,但只在E0口上收到了来自 172.16.6.1 的回应。 现在看到的还是debug ip pim的输出,记录的是此路由器向RP(172.16.8.1)发送注册消息并收到RP发回的RP-Reachable 消息。 2.3.11 mtrace/mstat命令 mtrace命令的工作方式很特殊,让我们通过下面的图来进行解释: 上图中,绿色箭头表示从源到接收者的多播流传递路径,红色箭头表示mtrace包传递的路径。mtrace采用专用的IGMP包类型,0x1F表示查询/请求,0x1E表示响应。查询/请求包发往与接收者相邻的末跳路由器,末跳路由器将它转为单播的traceroute请求,按单播路由上溯到与源相邻的首跳路由器,在此过程中,每个经由的路由器都将查询到达时间、流入接口、流出接口、上一跳路由器地址、输入输出包计数、源/组包计数、路由协议、TTL门限值以及转发/错误码等信息记入包中。首跳路由器加入自己的响应数据后将单播traceroute信息包转换为mtrace类型送回查询主机。类似于单播的traceroute命令,mtrace也显示多播信息的转发路径及各段延时。可以用它来查找多播信息传
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1