组播 :多播
- 在网络部署了组播工作环境后,将一份流量可以同时转发到相同或不同广播域内的所有组员处,且不对非该组用户进行影响;
- 组播的部署是需要整个网络中所有路由器交换机协同进行的;
- 组播部署拓扑:
源到第一跳路由器为第一阶段,路由器仅需要接收来自源的组播流量即可;
第一跳路由器到最后一跳路由器为第二阶段,需要运行组播路由协议,来收敛路径;
最后一跳路由器和PC间为第三阶段,需要IGMP协议来获知PC是否加组,及所加组地址;
组播的缺点 - 基于UDP工作
- 不可靠
- 没有流控
- 无序性—VOIP流量中使用RTP来排序
- 重复接受同一个流量(必须避免)
为了避免重复性,组播路由协议又被称为树型协议;因为其计算的路径没有重复性,拓扑结构类似树;故最后一跳路由器又被叫做叶子路由器;
多播的IP地址:
-
IPV4中的D类地址 第一个八位 224-239
-
扁平地址----无掩码规则-----只能作为目标地址
-
人们习惯性的为组播使用掩码-----224.0.0.0 255.255.255.0 ----用于标示一个段以前3个八位相同为一段地址;
-
1)保留地址 224.0.0.0—224.0.0.255 最后一个8位全0和全1不使用
224.0.0.1 ------所有路由器和PC
224.0.0.2 ------所有的路由器
224.0.0.3 -----未分配
224.0.0.4------DVMRP
224.0.0.5、6----OSPF
224.0.0.9 ----rip
224.0.0.10 —eigrp
224.0.0.13—PIM -
2)组播的公有地址 224.0.1.0 —238.255.255.255 需要付费使用
其中 232.0.0.0—232.255.255.255 SSM—高级PIM协议
233.0.0.0—233.255.255.255 GLOP
每申请一个AS号,就增送一段组播地址,这些地址为GLOP地址
例:AS=11111=2B67 然后2B=43 67=103
GLOP= 233.43.103.0–233.43.103.255
注:若AS号长度不够5位,前方加0补; -
3)组播的私有地址 239.0.0.0—239.255.255.255
组播的MAC地址:
- 组播IPV4地址 2^28个,理论上需要16个OUI;实际只拥有0.5个
01-00-5e-0 000 0000-0000 0000-0000 0000 - 例:ip的后23位为MAC的后23位
224.0.0.1===01-00-5e-00-00-01
32个ip共享同一个MAC地址
224.0.0.1---224.0.0.32--- 224. 00000000.00000000. 00110010
224. 00000001
224.0.0.00000010
IGMP:
Internet组管理协议,用于叶子路由器和PC间
作用:
- 使叶子路由器获知下放PC是否加组,及所加组地址
- 协同交换机基于组播进行流量转发
存在3个版本;跨层封装协议,封装到3层,协议号2;
V1:
-
叶子路由器周期60s发送一次查询包,之后PC返回报告,告知自己所加组地址;180s内所叶子路由器未收到报告报文将停止查询;新加组的PC将主动发出报告,可以用于激活路由器查询功能;
-
查询包:源ip地址—路由器接口ip地址 目标ip地址—224.0.0.1 TTL=1
组地址:0.0.0.0 -
报告包:源ip地址----PC接口ip地址 目标ip地址:所加组地址
组地址:所加组地址
注:报告报文目标地址为所加组的目标,是为了抑制本组其他组员的报告,来减少资源占用; -
在一个MA网络中为避免重复性,只能有一台叶子路由器来进行查询;该设备被称为查询者;利用组播路由协议选举的DR作为查询者;DR–优先级大、接口ip大
-
V2
-
可以接收V1的报告,兼容V1;最大相应时间以0.1s为单位,响应更快;
-
数据包类型:
- 查询
- 报告(V1/2)
- 离组报文
- 指定组查询
-
叶子路由器周期60s发送一次查询包,之后PC返回报告,告知自己所加组地址;若PC离组将主动发送离组报文,路由器马上针对该组发出查询包,2s内无应答将删除该信息;若所有组均离开将停止查询,直到被新加组PC的报告重新激活;180s hold time;
-
查询包:源ip地址–路由器接口ip地址 目标—224.0.0.1 TTL=1 组地址:0.0.0.0
-
报告包:源ip地址–pc接口IP地址 目标—所加组地址 组地址:所加组
-
离组报文:源ip地址–pc接口ip地址 目标—224.0.0.2 TTL=1 组地址:所离组
-
指定组查询包:源ip地址–路由器接口 目标—离组地址 组地址:离组
查询者:接口ip地址最小 查询者down 后120s 内切换
配置
- 在叶子路由器的接口上运行组播协议,那么该接口的IGMP协议也自动被激活
R1(config)#ip multicast-routing 必须开启组播路由功能,才能运行组播路由协议
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip pim dense-mode
- 路由器模拟PC加组:
R3(config)#int f0/0
R3(config-if)#ip igmp join-group 229.1.1.99
R1#show ip igmp interface fastEthernet 0/0
R1#show ip igmp groups
IGMP协议协同交换机基于组播流量进行转发:
- IGMP snooping —公有协议,必须为3层交换机;交换偷看PC回馈的报告报文,查看该PC的ip地址及所加组地址,之后若有组播流量需要到达该组,便向该PC转发流量;
sw(config)#ip igmp snooping
- CGMP—Cisco组成员关系协议----需要路由器协同;路由器将PC所加组的MAC地址和该PC的mac地址进行绑定,然后推送给交换机;之后组播流量到达该交换机上后,交换机基于组的目标MAC查找对应的PC,然后将流量转发到该PC出;由于32个IP共享同一个MAC,可能导致流量转发到非该组用户处;
sw(config)#ip cgmp
组播路由协议:
-
在第一跳路由器和最后一跳路由器间工作,目标在于计算由源到组源的唯一一条最佳路径;
必须避免重复性; -
组播路由协议为避免重复性,存在3个机制:
- RPF—反向路径校验;本地基于某个源的唯一一个入接口;
- 例:假设源ip地址为1.1.1.1,其组播流量从本地的F0/0进入;那么本地必须有到达1.1.1.1的单播路由表,且同时该条目的出接口为F0/0口,那么F0/0就具有称为Rpf的条件了;
- 选举规则:
1)较小的管理距离
2)较小的度量
3)较大的接口IP地址
注:若多个接口均满足RPF的条件,那么可以人为定义其中某个接口为某个源流量的RPF接口;
R2(config)#ip mroute 1.1.1.1 255.255.255.255 fastEthernet 0/0
源ip地址 入接口
-
声明–在一个MA网络内关于一个源的流量只能允许一个出接口
规则:PIM的密集模式比较到源 稀疏模式比较到RP
1)AD小
2)度量小
3)接口ip大 -
树型结构
STP(最短路径树)源树 一个源一颗树,源到接收者最短路径 多源多树
路由器生成的路由表为(S,G)
Rtp(共享树) 先选RP,所有源到RP最短路径,RP到接收者最短路径;仅一颗树;
(*,G)
PIM:
-
协议无关组播----无论单播路由协议为那种,PIM均可正常工作
跨层封装协议,协议号103,存在hello包,存在邻居关系,组播更新地址:224.0.0.13
Hello time 30s ,hold time 105s -
PIM存在两种模式----1、**密集模式 ** 2、稀疏模式
- 密集模式----一般用于局域网,使用STP树,push 推模型
当第一跳路由器接收到来自源的流量后,将该流量推向全网,过程中RPF、声明机制生效,计算出到源最短路径;之后没有加组用户的叶子路由器向上级反馈修剪包;直到存在组员的路由器为止;每180s重复该过程;
注:若路由器上某个接口未工作于组播路由协议之下,那么该接口将不转发组播流量*
r2(config)#ip multicast-routing
r2(config)#int s1/0
r2(config-if)#ip pim dense-mode
r2(config-if)#int s1/1
r2(config-if)#ip pim dense-mode
配置完成后,邻居间使用hello包建立邻居关系,生成邻居表:
r3#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
S - State Refresh Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
23.1.1.1 Serial1/0 00:00:48/00:01:25 v2 1 / S
34.1.1.2 Serial1/1 00:00:54/00:01:20 v2 1 / S
36.1.1.2 FastEthernet0/0 00:00:36/00:01:37 v2 1 / DR S
-
在以太网接口上需要选举DR,但DR对密集模式无效;
模式:
N—低版本的PIM协议中使用,hello包中不存在优先级
S—状态可刷新–DR可抢占
B—高级PIM协议 -
当邻居关系建立后,源就可以发生组播流量了,一旦流量发出后,将生成组播路由表:
r2#show ip mroute
IP Multicast Routing Table
Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,
L - Local, P - Pruned, R - RP-bit set, F - Register flag,
T - SPT-bit set, J - Join SPT, M - MSDP created entry,
X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,
U - URD, I - Received Source Specific Host Report,
Z - Multicast Tunnel, z - MDT-data group sender,
Y - Joined MDT-data group, y - Sending to MDT-data group
Outgoing interface flags: H - Hardware switched, A - Assert winner
Timers: Uptime/Expires
Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 224.0.1.40), 00:05:39/00:02:01, RP 0.0.0.0, flags: DCL
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/1, Forward/Dense, 00:05:09/00:00:00
Serial1/0, Forward/Dense, 00:05:39/00:00:00
(*, 228.1.1.99), 00:00:53/stopped, RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/1, Forward/Dense, 00:00:53/00:00:00
(12.1.1.1, 228.1.1.99), 00:00:53/00:02:34, flags: T
Incoming interface: Serial1/0, RPF nbr 0.0.0.0
Outgoing interface list:
Serial1/1, Forward/Dense, 00:00:53/00:00:00
只要出现(S,G)条目就会产生(*,G)的条目,但对密集模式无意义;
- 稀疏模式—用于ISP较多----源树和共享均使用,拉模型
存在组员的叶子路由器,将向RP进行拉流量;之后源发出流量被第一跳路由器单播转发至RP处注册,若存在目标组记录,将该流量转回组播流量后发现目标;同时告知第一跳路由器停止注册,之后第一跳路由器切换回推模型;
r2(config)#ip multicast-routing
r2(config)#int s1/0
r2(config-if)#ip pim sparse-mode
r2(config-if)#int s1/1
r2(config-if)#ip pim sparse-mode
- RP的配置方法:
- 静态(一般使用环会地址作为RP的地址)
前提该环回被通告到了单播路由协议中,该环回需要工作于PIM协议中
r3(config)#ip pim rp-address 3.3.3.3 所有加组的路由器均需配置
r3# show ip pim rp
- auto-rp Cisco私有 自动选举
存在角色:C-RP— 候选RP— 建议多个
----------------- MA---- 决策者 — 可以多个
C-RP会周期向224.0.1.39 发送希望成为RP的信息,只有MA处于该组;MA d IP地址最大设备为RP;向224.0.1.40 发送结果(默认所有路由器均加入该组)
配置:
- MA 建议使用环会地址,前提该环回被通告到了单播路由协议中,该环回需要工作于PIM协议中
r6(config)#ip pim send-rp-discovery loopback 0 scope 11
本地成为MA,ip地址为环回0; TTL ,默认为1
r3(config)#ip pim send-rp-announce loopback 0 scope 11
本地称为C-RP
注:配置完成后RP还未选出;因为选举RP的流量基于组播发送,而没有RP前,组播流量无法发送;
- 解决方法:
- 洪范选举信息
r2(config)#ip pim autorp listener 所有设备配置
- 先使用密集模式选出RP
r2(config)#int s1/0
r2(config-if)#ip pim sparse-dense-mode 所有设备接口运行
- DR的作用:在MA网络选举,先优先级大,然后接口ip大
1、在IGMPV1中充当查询者
2、在IGMPV2和PIM的密集模式中无意义
3、在PIM的稀疏模式中,避免多台第一跳和最后一跳路由器重复注册或拉流量;选举DR