为什么要使用组播:
1、当需要发送相同的数据去往多个接收者
2、有效的节省带宽
3、减少主机和路由器的处理进程,减轻工作量
4、当接收者的地址是未知的
5、实时性,当接收者要求能够同时收到数据
单播、广播、组播的区别
1、单播发向一个特定的目标节点
2、广播发向网络上的所有节点
3、组播发向网络上的一组特定的用户
由于组播是基于UDP的,所以继承了UDP的缺点
1、只能是尽力而为的传输,传输无保证
2、没有拥塞避免机制,不像TCP有windows窗口
3、会产生重复的报文
4、无序的、UDP包没有序列号
组播应用的类型:
1、一对多
2、多对多,例如网络会议、共享白板
3、多对一
<RTP>
实时传输协议,用来解决UDP的无序性
端口号:16384-32767
RTP- 实时传输协议 real-time
RCTP- 实时控制协议
先封装 RTP ,再封装 UDP
20byte | 8byte | 12byte | |
IP | UDP | RTP | Vlice payload |
组播模型:
1、第一跳路由器
2、最后一跳路由器
1、域内组播协议
例如:PIM、DVMRP、MOSPF、CBT
2、域间组播协议
例如:MBGP、MSDP
<Multicast Address>
保留给本地网段上的网络协议使用。路由器不转发目标地址为这段地址的数据包。
TTL=1 (FR Hub & Spoke 中。Spoke端不能建邻居)
224.0.0.1 子网中的所有主机和路由器
224.0.0.2 子网中的所有路由器(HSRP)
224.0.0.5 所有ospf路由器
224.0.0.6 ospf中的DR和BDR
224.0.0.9 RIP
224.0.0.10 EIGRP
224.0.0.13 PIM路由器
全局范围地址: 224.0.1.0 - 238.255.255.255
公司可以使用这段地址在组织之间和通过Internet以组播方式传输数据。
指定源多播地址: 232.0.0.0 - 232.255.255.255
此段地址被保留给SSM(指定源的多播)使用。SSM是PIM的一种扩展。
GLOP地址: 233.0.0.0 - 233.255.255.255
这段地址和AS号对应。
例:AS62010的16进制表示为F23A,F2的十进制242,3A的十进制58,
所以子网233.242.58.0/24被全局保留,供AS62010使用。
除以上两段地址以外的公网组播地址需要单独申请。
有限范围地址: 239.0.0.0 - 239.255.255.255这段地址不能在公网上路由
使用这些地址的组播被限定在本地或组织内。公司、大学和其他组织使用有限范围地址来进行本地组播。
与Internet相连的边缘路由器不会将这段多播地址帧转发到外网。
R1(config)#access-list 100 deny ip any 224.0.1.1 NTP
224.0.1.39 RP-Announce
224.0.1.40 RP-Discovery
<组播IP和MAC的对应>
组播MAC地址的前25位固定
IP地址的最后23位被映射到MAC地址的最后23位
0 24位 0 23位
01 00 5E 00 00 0A
<多播IP地址相对应的MAC地址>
-----------------------------------------------------------------------------------------
=========================================================================================
<IGMP(Internet Group Management Protocol)>
·IGMP报文封装在IP包中,Protocol NO.=2 / TTL=1
IGMPv1(hold time :180second):
只有两种报文--
1.Query包 每60秒发一次 由路由器发向224.0.0.1(所有节点) DIP:224.0.0.1 GROUP:0.0.0.0
2.Report包 主机回应Queries或主动发 DIP:224.1.1.1 GROUP: 224.1.1.1
·IGMP-V1没有查询者机制,要靠上层的PIM选出查询者
·查询的间隔响应时间--默认最大为10S,以S为单位,当主机收到路由器的查询后,它必须在这个时间以内回应,为了防止大家同时发送回应报文导致冲突,每一个主机会随机选择一个不同的回应时间。
·在MA网络上只要有一个主机回应report包就可以了,它在回应的同时也抑制了其它组员的report包,因为没必要大家都发,只要有一个组员。路由器就会将多播发下来。
·IGMP没有离组消息,称之为静悄悄的离开,路由器连续发三次query包,都没人回应就停止发该组的消息,也即180S之后holdtime到时,才停止发送该组的数据流。
多了一个查询者的概念和以下两种消息
1.指定组查询消息Group-specific query DIP: 224.1.1.1 GROUP:224.1.1.1
2.离组消息Leaving a Group DIP: 224.0.0.2 GROUP:224.1.1.1
·查询者:当有多个路由器在同一个以太网段时,要先选出查询者(比最小IP地址),查询者超时时间默认是120S
·查询的间隔响应时间--默认10S,以0.1S为单位
IGMP有离组消息Leaving a group 发向所有路由器
路由器由到离组消息后,会马上发出指定组查询消息group-specific query看本组还有没有组员
R1(config)#ip multicast-routing 开启多播路由协议
R1(config-if)#ip pim dense-mode
R1/R2#debug ip igmp
R2(config-if)#ip igmp join-group 224.1.1.1 使R2加入"224.1.1.1"的组
ip igmp query-interval 30 修改查询间隔时间,改了后查询者超时时间也会自动变化
ip igmp querier-timeout 120 修改查询者超时间隔,默认是120S
ip igmp query-max-response-time 10 最大查询响应间隔时间
ip igmp last-member-query-count 3 路由器修改发送指定组查询消息的次数,默认2次
ip igmp last-member-query-interval 2000 修改发送指定组查询消息的间隔,默认是1000ms,这个值乘上次数就得到路由器等待的最大时间
比如本例3*2000=6000ms 也就是说在6S内没人回应,路由器就去掉这个组,不再把这个组的流量播下去。
R1# show ip igmp groups [detail] 查看谁加入了哪个组
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
224.0.1.40 Ethernet0 00:03:10 00:02:58 10.1.1.1
224.1.1.1 Ethernet0 00:03:10 10.1.1.2
R1# show ip igmp interface ethernet 0
Ethernet0 is up, line protocol is up
Internet address is 10.1.1.1/24
IGMP is enabled on interface
Current IGMP host version is 2
Current IGMP router version is 2
IGMP query interval is 60 seconds
(#ip igmp query-interval 60)每60S发送Query。"query-interval"乘以2等于"querier-timeout"
IGMP querier timeout is 120 seconds
(#ip igmp querier-timeout 120) 非查询者在120S内没有收到查询者的包,自己充当这个角色。
IGMP max query response time is 10 seconds
(#ip igmp query-max-response-time 20) 查询包中的字段,告诉主机回应Report的最大响应时间.
Last member query count is 2
Last member query response interval is 1000 ms
Inbound IGMP access group is not set
IGMP activity: 5 joins, 4 leaves
Multicast routing is enabled on interface
Multicast TTL threshold is 0
Multicast designated router (DR) is 10.1.1.1 (this system)
IGMP querying router is 10.1.1.1 (this system)
网络中如果有多个路由器发Query,选举IP地址小的作为发送查询者。
Multicast groups joined by this system (number of users):
224.0.1.40(1)
Show ip mroute 查看多播路由表
R1#debug ip igmp 开启debug,查看加、离组消息
------------------------------------------------------------------------------------------
<CGMP(Cisco Group Management Protocol)>
在路由器和交换机上都要配,用于控制二层交换机如何转发多播流量,CISCO私有的
配置:
Router:
int e0/0
ip cgmp 在R3的某个接口起CGMP
SW:
int f0/1
cgmp 在交换机上起cgmp
SW3#show cgmp //2900交换机默认已起用CGMP,3550和2950不支持
路由器会向交换机发送一个CGMP的消息,包含以下内容:
1、 Join or leave // 加组还是离组
2、 Group Destination Address (GDA) // 组MAC地址
3、 MAC address of the IGMP client // 客户端主机的mac地址
Debug ip cgmp
<IGMP Snooping>
只要配置交换机,业界标准
正常情况下,交换机只看二层头部,不看三层头部,但是在IGMP的snooping中,交换机看到了三层头部。
交换机通过截获主机发出的report包和离组包,就可以知道哪个接口加入了组或离开了组
Show mac-address-table multicast 查看交换机多播 MAC 表
Sw1(config)#ip igmp snooping
Sw1(config)#ip igmp snooping vlan 1 基于 VLAN 1 起用 IGMP 的 SNOOPING
SW1#show ip igmp snooping
SW1#show ip igmp snooping groups
2950 中默认就开启这一命令
----------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------
< Tree >
在通过网络下发组播流量时,有两种下发的方式,也称为组播的两种分发树。
1、源树,也叫最短路径树
2、共享树
原理:在源树的分发形式中,网络会找一条从源到目标最近的路径来下发组播流量
SPT(Shortest Path Tree)
源树会在路由器上形成以下的组播条目:
(S,G) (192.168.1.1,224.1.1.1)
源树的优点:在信源和接收方之间创建一条最优的路径,可以最大限度的降低转发多播流的网络延迟。
源树的缺点:同时也增加了开销,路由器要针对每个信源存储路径信息,在包含数千个信源的网络中,这种开销是庞大的。
一个源一棵树.适用于比较多接收者时使用.每3分钟修剪一次.推模型.一般运行在DENSE模式下.
原理:在共享树分发形式中,需要在网络中先找出一个集合点(RP)。然后每一个源都会先将流量发给RP,再由RP转发给接收者。
RP(Rendezvous Point)
共享树会在路由器上形成以下的组播条目:
(*,G) (*,224.1.1.1)
共享树的优点:每台路由器存储的信息较少,降低内存消耗。
共享树的缺点:选择信源到接收方的路径不是最优的。所以要慎重考虑RP的位置。
拉模型.RP可以手工指定.receiver端向RP端发出register包.一般运行在SPARSE模式下.
< RPF (Reverse Path Forwarding)>
RPF校验的目地是为了防环和防止重复报文
RPF的规则:收到组播包的方向(接口)也必须是本路由器用来向组播包的源地址进行数据转发的方向(接口),否则扔掉数据包
upstream ( 前 往信源的方向)
downstream ( 前往接收方的方向 )
RPF选接口的比较原则:
1、lower AD 同样的路由,选最小AD值的路由所用的接口为RPF接口
2、longest match 同样的路由,比最长掩码
3、lower metric 如果IGP是负载均衡,同样的路由,掩码一样长,比metric
4、higher ip 以上都一样,比接口IP地址
通过写多播静态路由来指定自已的信源接口
ip mroute 1.1.1.0 255.255.255.0 12.1.1.2 写去到源从哪个接口发出,1.1.1.0是源,12.1.1.2是下一跳
show ip mroute static 查看静态多播路由, 注意多播静态路由的AD是0
RPF接口默认每5秒检测一次
<TTL>
接口的TTL阀值必须<=数据包的ttl值,接口才会转发
注意TTL值在入向不减,出方向才减,减过之后才做这一比较
TTL值的作用:通常用来控制组播的传输范围。
例如:在边界路由器上设定TTL阀值为128,内部的源发出的组播包初始TTL值控制为127,就能起到作用。
使用ACL过滤多播组
R1(config)#access-list 1 permit 239.129.0.0 0.0.255.255
R1(config-if)#ip multicast boundary 1 只有列表1中被允许才能通过,不分in,out方向
Show ip pim int s0 detail
Show ip igmp int s0
R1(config-if)#Ip multicast ttl-threshold 2 设置TTL值,必须在接口下,默认为0
组播路由协议分为两类:
1、域内的组播路由协议,比如DVMRP、MOSPF、CBT、PIM
2、域间的组播路由协议,比如:MBGP、MSDP
重点是研究PIM协议
<PIM(Protocol independent Multicast)>
·PIM是基于IP的,它的报文直接封装在IP包中,在IP中的协议号是103
·协议无关的组播,指的是和单播协议无关,不管是何种单播路由协议,PIM都可以使用他们实现组播转发。
·使用现有单播路由表实现RPF校验。
·路由器之间不必发送组播路由更新,所以PIM比其他组播协议开销降低了很多。
·PIM有两种工作模式,dense-mode和sparse-mode
· 组播路由器之间也要建邻居:
Hello:30S 发向224.0.0.13
Hold :30*3.5= 1 分 45 秒
多播路由表的几个要素:
1、源
2、目的
3、入接口
4、RPF邻居
5、出接口
R1#debug ip packet detail
*Mar 1 00:15:44.207: IP: s=12.1.1.2 (Serial0), d= 224.0.0.13, len 54, rcvd 0, proto=103
密集模式原理:当第一跳路由器收到组播流量后,会向整个网络泛洪,网络中的每一个分枝都能收到流量,然后其中一些没有用户的分枝会自动进行修剪。
·Dense模式用的是源树的模型
·在Dense模式中 Flood&prune 每三分钟就要做一次
· 被剪掉的路由器如果有用户加组了,也会主动发出嫁接信息重新接收组播流量。
R2#show ip igmp int e0
Multicast designated router (DR) is 10.1.1.2 (this system)
IGMP querying router is 10.1.1.2 (this system)
Graft
Graft-Ack
D:表示组播组是一个密集模式,仅在(*,G)出现.
C:有直接的组成员,会在(*,G)和(S,G)都出现.
L:表示自己就是组成员,会在(*,G)和(S,G)都出现.
P:输出接口为空/输出接口都处于Prune状态,结果Prune会从此(S,G)送至上游RPF邻居.会在(*,G)和(S,G)都出现.
T:信息经(S,G)转发,只要收到第一个(S,G)包,就设置该标志.因此,T始终都会出现,仅在(S,G)出现.
J:........................
R2#show ip mroute
(*, 224.1.1.1), 00:14:14/ , RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1, Forward/Dense, 00:13:54/00:00:00
(14.1.1.4, 224.1.1.1), 00:14:14/ , flags: T
Incoming interface: Ethernet0, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1, Forward/Dense, 00:13:54/00:00:00
(*, 224.1.1.1), 00:14:16/ , RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1, Forward/Dense, 00:13:56/00:00:00
如果没有组播流,(*,G)等到(S,G)消失后,从3分钟倒计时.
*Mar 1 01: :36.191: PIM(0): Received v2 Join/Prune on Serial0 from 12.1.1.2, to us
*Mar 1 01:05:36.195: PIM(0): Prune-list: (14.1.1.4/32, 224.1.1.1)
*Mar 1 01:05:36.199: PIM(0): Prune Serial0/224.1.1.1 from (14.1.1.4/32, 224.1.1.1)
*Mar 1 01: :38.467: PIM(0): Received v2 Join/Prune on Serial0 from 12.1.1.2, to us
*Mar 1 01:08:38.471: PIM(0): Prune-list: (14.1.1.4/32, 224.1.1.1)
*Mar 1 01:08:38.475: PIM(0): Prune Serial0/224.1.1.1 from (14.1.1.4/32, 224.1.1.1)
·在MA网络中,如果运行的是dense模式,会选出一个前转路由器,通过assert消息选出。
前转路由器的选举规则:
1、比较去往源的路由的AD值
2、比较去往源的Metric值
3、IP地址大的成为前转路由器
·MA网络中PIM还会通过Hello包来选择DR,在IGMPv1中,DR将成为Querier。
DR选举方式:1.Priority大的(默认= 1 )
2.IP地址大的
如果运行的是IGMPv2,IGMPV2自已会选查询者,DR只担负数据转发任务
DR的作用:1、充当IGMPV1的Querier
2、在Dense无用
3、sparse中 send&receive join®ister message
R1(config-if)#ip pim dr-priority 2 在接口下改优先级
R1#show ip pim neighbor
PIM Neighbor Table
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
10.1.1.2 Ethernet0 00:31:45/00:01:30 v2 / S
PIM通用规则一:无论在什么时候,只要出现了(S,G),就会出现它的父项(*,G),但(*,G)不作转发选择。
当组播流量停止后,(S,G)条目只会在多播路由表中保存三分钟。
-------------------------------------------------------------------------------------
稀疏模式原理:在稀疏模式中,组播网络必须要先选举出一个RP,并且要让网络中所有的路由器都知道RP的位置。然后当第一跳路由器得到组播流量时,只需要将流量转发给RP就可以了。用户如果想要接收流量,需要最后一跳路由器去向RP发出申请,去要流量。
· 在稀疏模式中,第一跳路由器到RP之间形成源树,RP到最后一跳路由器之间形成共享树。
指定RP的方式
1、 Static 指定RP(一般用环回口),并通告进IGP
2、 auto RP
3、 BSR
Register包由信源发向RP,查询本组中有无组员,它是一个单播包。如果本组中有组员,则RP向信源发出一个(S,G)JOIN包和register stop包(停止单播),则后续数据以多播包下发,并形成spt树,
IP | PIM | UDP | RTP | VOIDE |
R3(config)#ip pim rp-address 2.2.2.2 在RP上也要打入这一命令,指明谁是RP
*Mar 1 01: 51 :22.647: PIM(0): Building Periodic Join/Prune message for 224.1.1.1
*Mar 1 01:51:22.651: PIM(0): Insert (*,224.1.1.1) join in nbr 13.1.1.1's queue
*Mar 1 01:51:22.655: PIM(0): Building Join/Prune packet for nbr 13.1.1.1
*Mar 1 01:51:22.659: PIM(0): Adding v2 (2.2.2.2/32, 224.1.1.1), WC-bit, RPT-bit, S-bit Join
*Mar 1 01:51:22.663: PIM(0): Send v2 join/prune to 13.1.1.1 (Serial1)
*Mar 1 01: 52 :21.823: PIM(0): Building Periodic Join/Prune message for 224.1.1.1
*Mar 1 01:52:21.827: PIM(0): Insert (*,224.1.1.1) join in nbr 13.1.1.1's queue
*Mar 1 01:52:21.831: PIM(0): Building Join/Prune packet for nbr 13.1.1.1
*Mar 1 01:52:21.835: PIM(0): Adding v2 (2.2.2.2/32, 224.1.1.1), WC-bit, RPT-bit, S-bit Join
*Mar 1 01:52:21.839: PIM(0): Send v2 join/prune to 13.1.1.1 (Serial1)
WC-bit :表示这个加入地址是一个RP地址,不是源
RPT-bit :表示这个消息顺着共享树传送RP
S-bit :标识是Sparse-mode
R2#show ip mroute
(*, 224.1.1.1), 00:00:17/00:03:13, RP 2.2.2.2, flags: S
Incoming interface: Null , RPF nbr 0.0.0.0 (自己是RP,所以是Null,0.0.0.0)
Outgoing interface list:
Serial0, Forward/Sparse, 00:00:17/00:03:13
共享树的形成:
一、PC发出一个igmp join(224.1.1.1)消息给last router。
二、R5形成共享树条目(*,G),并且向R4发出一个Pim join(*,224.1.1.1)的加入消息。
三、R4形成(*,G),并且向R3发起一个Pim join(*,224.1.1.1)的加入消息。
四、R3形成(*,G)
源树的形成:
一、source发出流量给first route(R1)
二、R1将源发过来的组播信息流的组播包封装为单播包(unicast register packet),发送到RP
register包的封装:DIP:23.1.1.3|SIP:1.1.1.1|224.1.1.1|server'IP
三、RP收到register packet后,做三件事
1、解封装,并沿共享树发下去
2、产生(S,G)条目,并且RPF校验指向源
3、向source发起一个(S,G)的加入
四、R2形成源树(S,G),并且向R1发起一个(S,G)的加入。
五、R1形成源树(S,G),接着做两件事:
1、沿(S,G)源树发出组播
2、封装unicast register packet继续发
六、RP从(S,G)收到multicast packet后,向first-hop router (R1)发出register-stop包。
七、R1收到register-stop包后,停止单播register packet
八、last router切换到源树,向源发出(S,G)的join消息
注意:在源树中,RPF接口是去往源的接口
在共享树中,RPF接口是去往RP的接口
最后一跳的阀值切换:
可以在最后一跳路由器设定一个阀值,当收到的多播包超过阀值后,切换到源树,默认情况下阀值等于0,也就是说一有流量播下来就立马切换到源树。
产生RP的三种方法:
Router(config)#ip pim rp-address 1.1.1.1 在每台路由器上都指定
原理:在网络中先指定一台MA(映射代理路由器),然后再指定多个想成为RP的候选路由器。每一个候选路由器都会向MA发出自已的申请,参与竞选。最后,由MA选出RP,再将RP的地址发给网络中的每一台路由器。
RP选举规则:IP地址大的成为RP
注意:c-rp/ma 的用来参选的loopback口一定要宣告进IGP
注意:Auto RP必须运行在sparse-dense模式下,cisco私有技术。
C-RP -- 候选RP,也就是想成为RP的路由器
MA -- 映射代理,MA的多播地址:224.0.1.39,一旦指定MA,它的每一个组播接口都会加入224.0.1.39
所有运行组播的路由器都会加入224.0.1.40
第一步:配置MA
R1(config)#ip pim send-rp-discovery loopback 0 scope 5
在MA上配,会每60S向224.0.1.40发送一个discovery消息,规定了只能传5跳
第二步:配置候选RP
R1(config)#ip pim send-rp-announce loopback 0 scope 5
配置为候选RP,向224.0.1.39每60秒发送一个RP-Announce,且只能传5跳
注意点:
R1(config)#int lo0
R1(config-if)#ip pim sparse-dense-mode(要确保loopback口也运行PIM)
特定组--
ip pim accept-rp 1.1.1.1 MUL-GROUP 只允许特定组接受1.1.1.1这个RP的消息
ip pim send-rp-announce Loopback0 scope 20 group-list MUL-GROUP 只允许lo0口参与特定组的RP选举
ip access-list standard MUL-GROUP
permit 224.1.1.1
R1(config)#ip pim rp-address 1.1.1.1 override 默认情况下,Auto-RP优于静态RP,如果想静态优先,打上这一命令
R3#show ip pim rp mapping (in-use )
Clear ip pim rp-mapping 清除RP映射表项
三、BSR 自举路由器
Router(config)#ip pim bsr-candidate loopback0 指定 BSR
Router(config)#ip pim rp-candidate loopback0 指定想成为 RP 的路由器
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
组播命令集
Router(config)#ip multicast-routing 起用组播
Router(config-if)#ip pim dense-mode [sparse-mode] [sparse-dense-mode] 在接口下启用组播的模式
Show ip pim neighbor
Show ip pim interface [detail]
Router(config-if)#ip pim dr-priority 2 在 MA 网络中需要选举 DR ,此命令调整路由器接口的优先级,抢占 DR 。
Router(config)#ip pim spt-threshold 0 修改 last router 的阀值,用于切换到源树。
Router(config-if)#ip igmp join-group 224.1.1.1 加入多播组
Show ip igmp groups
Show ip igmp interface [e0]
Show ip mroute
Show ip pim rp mapping 查看 RP 信息
Clear ip pim rp-mapping 清除 RP 映射表项
Show ip pim interface
Show ip pim rp-hash 224.1.1.1 查看本组的 RP 是谁
Debug ip pim ? 调试 PIM 的各项信息
Debug ip pim auto-rp
Debug ip pim bsr
静态 RP --
Router(config)#ip pim rp-address 1.1.1.1 在每台路由器上都指定
自动 RP --
Router(config)#ip pim send-rp-discovery loopback0 scope 5 指定 RP 映射代理,环回口必须运行 space-dense 模式
Router(config)#ip pim send-rp-announce loopback0 scope 5 指定想成为 RP 的路由器,环回口必须运行 space-dense 模式
R1(config)#ip pim rp-address 1.1.1.1 override 默认情况下,Auto-RP优于静态RP,如果想静态优先,打上这一命令
BSR --
Router(config)#ip pim bsr-candidate loopback0 指定 BSR
Router(config)#ip pim rp-candidate loopback0 指定想成为 RP 的路由器
特定组--
ip pim accept-rp 1.1.1.1 MUL-GROUP 只允许特定组接受1.1.1.1为它的RP
ip pim send-rp-announce Loopback0 scope 20 group-list MUL-GROUP 只允许lo0口参与特定组的RP选举
ip access-list standard MUL-GROUP
permit 224.1.1.1
Multicast 是基于 UDP 的,它所传输的数据包是用 UDP 封装的。
RTP- 实时传输协议 real-time
RCTP- 实时控制协议
先封装 RTP ,再封装 UDP
20byte | 8byte | 12byte | |
IP | UDP | RTP | Vlice payload |
IGMP 因特网组管理协议
多播地址:
224.0.0.1 所有主机和路由器
224.0.0.2 所有路由器
224.0.0.5
224.0.0.6
224.0.0.9
224.0.0.10
224.0.0.13 PIM 用
Sparse-mode
1 、 pim sparse mode
2 、 Bi-directional 双向 PIM
让源和 RP 之间也使用( * , G )共享树,在每一个链路上产生一个 DF ,到 RP 的距离 COST 值最小的成为 DF ,
DF 之间有四种消息来联系 offer,winner,backoff,offer inf
3 、 SSM 在源已经固定的情况下使用
事先已知道源,可以允许 last hop router 直接发送出一个 (S,G) 的 join 申请。和源之间建立联系,生成 spt 。不必形成共享树 , 直接形成一条最短路径树。
4 、 MSDP multicast source discovery protocol 基于 TCP
用于做域间路由的技术
一边一条命令
R1 上: Ip msdp peer 2.2.2.2( 对方 ) connect-source lo0 remote 2
R2 上: Ip msdp peer 1.1.1.1 ( R1 ) connect-source lo0 remote 1
RP 配置
1 、 static rp
2 、 auto rp
想成为 RP 的路由器发送 announce 给映射代理
send rp-announce to 224.0.1.39( 映射代理 )
send rp-discovery to 224.0.1.40( 所有 PIM 路由器 )
224.0.1.40 224.0.1.39
3 、 bsr rp (bootstrop router) 224.0.0.13
先决定出谁是 active BSR 路由器
Active BSR 发出一个消息 bsr message(bar ip address) 到 224.0.0.13
路由器收到 bsr message 信息
想成为 RP 的路由器单播给 active bsr 说明自已相成为某个组的 RP
Active bsr 收到各个路由器想成为 RP 的消息后,不做决定,发出这些收集到的信息。 To 224.0.0.13
4 、 anycast rp
last router 从共享树切换到源树是每秒检查一次,从源树切换回源树是每分钟检查一次