当前位置: > 其它学习 > 网络基础 >

组播 多播

时间:2020-04-07 18:33来源:linux.it.net.cn 作者:IT
组播,多播:当网络中进行了组播网部署后,一个台设备仅需要基于一个流量进行一次封装及可将该流量转发到所有的组员处,这些组员可处在网络的任何位置;对非组员不产生影响。再未进行组播网络部署的环境下,以组播地址为目标ip时,流量将和广播传输方式完全一致;
 
组播部署:在第一跳和最后一条路由器间使用组播路由协议;最后一跳路由器和组员间使用
IGMP;
 
优点:占用资源极少;
缺点:基于UDP传输
1、不可靠
2、没有流控
3、无序性-----应用层流量自己来排序
4、重复性接收同一个流量-必须避免
 
名词注解:
First-hop 第一跳路由器
Last-hop 最后一跳路由器–叶子路由器
 
多播ip地址:IPV4中的D类地址,第一个8位为224-239
组播地址被称为扁平地址—无掩码 只能作为目标地址
 
1、保留地址 224.0.0.0 —224.0.0.255 已经分配给各个协议使用
224.0.0.1-----所有的路由器和所有主机
224.0.0.2-----所有的路由器
224.0.0.4-----DVMRP
224.0.0.5–6 OSPFV2
224.0.0.9 ----RIP
224.0.0.10—EIGRP
224.0.0.13—PIM
为控制保留地址的传播半径,大多协议在使用时将TTL值设定为1;
 
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
GLOP-----用户申请一个AS号就增送一段组播地址
假设AS号为9949-----先化为16进制—26DD 若购买AS好小于4位,假设AS号为121,那么添加到0121再换算为16进制
 
再每两位分割成一段,各自转换为一个10进制值
26–38
DD–221
赠送地址组播地址为:233.38.221.0—233.38.221.255
 
3、私有地址 239.0.0.0—239.255.255.255
 
多播的MAC地址:
01-00-5e-0 00000000000000000000000 32个IP地址对应一个MAC地址
组播IP地址的后23位作为组播MAC地址的后23位
224.1.1.1 224.0000 0001.0000 0001.0000 0001
01-00-5e-0 0001.0000 0001.0000 0001
225.1.1.1
01-00-5e-0 0001.0000 0001.0000 0001
224.1.1.2
01-00-5e-0 0001.0000 0001.0000 0010
 
IGMP-----internet组管理协议
用于最后一跳路由器和PC间工作
作用:1、确定下方是否存在加组用户及所加组地址

 
2、协同交换机能够针对组播流量进行转发


 
跨层封装协议 协议号为2
V1:
查询包:叶子路由器每60s一个周期 180s hold time 使用224.0.0.1 TTL=1
报告包:PC收到查询后返回自己所加组的信息,同时在刚加组时主动发出
 
路由器发出查询包后,3分钟内没有收到报告,将停止发出—直到PC主动发出报告报文再周期发出
 
查询包:
源ip地址------路由器接口ip地址
目标ip地址—224.0.0.1 TTL=1
组地址----------0.0.0.0
 
报告报文:
源ip地址------PC接口ip地址
目标ip地址—所在组地址
组地址----------所在组地址
 
注:使用所在组地址来作为目标ip地址的原因在于,只需要让叶子路由器知道某个组是否存在组员即可,没必要所有组员均回答;最先发出的报告报文将抑制其他PC发出报告;
 
若在同一广播域中,最后一跳路由器可以存在多个,那么它们中只能一台进行查询(查询者);
在IGMP V1中利用了PIM选举的DR来作为查询者;接口ip地址最大为DR;
 
V2:默认兼容v1;其工作原理同V1基本相同


 
最大响应时间-----0.1s为单位 响应速度加快
Tepy:
1、普通查询包
2、指定组查询包
3、报告(V1/V2)
4、离组报文
 
正常查询和报告机制同V1一致;V2中若某一个组中某台PC离开某个组;那么这台PC会向最后一跳路由器发出一个离组报文;之后叶子路由将马上针对该组发出指定组查询包,2s内若没有回应,那么删除该组信息。
 
查询包:源ip----路由器接口ip 目标ip:224.0.0.1 TTL=1 组地址:0.0.0.0
报告包:源ip----pc接口ip 目标ip:所在组ip 组地址:所在组ip
离组包:源ip----pc接口ip 目标ip:224.0.0.2 TTL=1 组地址:所离组ip
指定组查询包:源ip—路由接口ip 目标ip:指定组地址 组地址:指定组地址
 
IGMP v2中查询者同V1的功能是一样的,但选举方式不同; 路由器接口ip地址最小的叶子路由为查询者;当一个查询者失效后,需要120s另一台设备才会发出查询包。
 
配置:若在一台路由器的接口上运行了组播路由协议;那么该接口的IGMP协议也被开启;
1、默认设备不支持组播路由功能,若需要运行组播路由协议,必须先开启组播路由功能;
R1(config)#ip multicast-routing
2、在接口上运行组播路由协议来激活IGMP;
R1(config)#int f0/0
R1(config-if)#ip pim sparse-mode
 
R1#show ip igmp interface fastEthernet 0/0
 
3、用户加组—PC开启软件即可 路由器可以使用命令来进入
R3(config)#interface fastEthernet 0/0
R3(config-if)#ip igmp join-group 224.1.1.1
 
R2#show ip igmp groups
 
IGMP协同交换机基于组播流量生成转发列表:
交换机必须为多层交换机,二层交换机只能对流量进行泛洪;
 
IGMP snooping:公有协议
在交换机上配置(若该设备支持,将默认开启)
交换机将窥探PC向路由器发出报告报文,然后将其所加入组IP地址和接口绑定,生成记录列表;
只有当流量的目标MAC地址为组播MAC时,才会窥探;
sw(config)#ip igmp snooping 开启该协议
 
CGMP:Cisco 组成员关系协议—需要路由器和交换机协同工作
路由器将PC返回的IGMP报告报文中的PC源MAC地址和所在组MAC地址进行绑定,然后将该表下放给交换机;交换机将根据该数据流中的目标组MAC来找到对应的PCMAC和接口;
由于组播MAC地址不精确,可能导致发出组播流量到错误的目标。
 
组播路由协议:用于第一跳路由器到最后一跳路由
作用:从源到组用户间生成唯一的一条路径;经过的每台路由器上生成一张组播路由表,这些路由表保证源到每个组员只有一条最佳路径,不能出现重复性流量。
 
无论何种组播路由协议中,均存在一些机制来避免重复性流量:
1、RPF 反向校验
2、声明
3、树形结构
 
RPF 反向校验:用于一台路由器同时从多个接口接收到同一(同源)组播流量时,只选举出最佳一个入接口(RPF接口)。
例:
假设一台路由器收到一个组播流量,该流量从F0/0进入,其源ip地址为12.1.1.1/24;
那么本地的单播路由表必须要有到达12.1.1.0/24网段的路由条目,且该条目的出接口为F0/0口,那么F0/0便满足了反向校验规则。
当多个接口均满足反向校验规则时,将进行选举----一台路由器基于一个源只能存在一个RPF接口;
选举规则:
1、较小的AD
2、较小的度量
3、较大的接口ip地址
若一台路由器到达源为负载均衡,那么默认选举的路径可能不是管理员希望的路由,可以使用静态组播路由协议来变更;可以实现负载分担,不同的源将流量通过不同的接口传入;
前提是这些接口均满足RPF规则:
r4(config)#ip mroute 1.1.1.1 255.255.255.255 serial 1/1
源ip地址 本地进接口
r4(config)#ip mroute 2.2.2.2 255.255.255.255 34.1.1.2
源ip地址 上一跳(直连)
MA网络必须使用上一跳,点到点网络中可以使用进接口。
 
声明机制:在MA网络中会遇到本地一个RPF接口对应多个流量发出接口(上一跳);
此时需要在这些出接口中选择唯一的一个出接口来发出流量;
在一个网段内基于一个源地址只能存在唯一的流量出口;
1、较小AD
2、接口到源的最小度量
3、较大接口ip地址
 
树形结构:
SPT(最短路径树)—源树 一个源一颗树 源到接收者最短路径 多源多树(S,G)
RPT(共享树)---------选择一个RP,所有源与RP建立树型接口,RP到所有目标仅一颗树 路径可能不是最优(*,G)
 
PIM:协议无关模块-----大多的组播路由协议其实让单播路由协议携带组播路由信息来实现组播路由协议的功能—MBGP/MOSPF
PIM是一个完全独立的组播路由协议,可以使用任何单播协议;
 
PIM特征:跨层封装协议–协议号103;存在hello包,30s hello time ,105s hold time;
存在邻居关系,更新地址地址为224.0.0.13
 
PIM拥有两种模式:
1、密集模式–dense-mode 企业网
2、稀疏模式–sparse-mode 运营商
 
密集模式:一般用于接收者较多,大多用于企业内网–LAN
使用SPT树,基于push 推模型工作
先由第一跳路由器将源发出的流量推向整个网络,过程中每台路由器的RPF和声明机制开始计算生成唯一且最短路径,生成路由表(S,G);而后无接收者的最后一跳路由器开始向源反方向发出修剪包,修剪到存在接收者路由器为止;再每180s 重复以上动作。
 
配置:
r2(config)#ip multicast-routing
r2(config)#interface s1/0
r2(config-if)#ip pim dense-mode
r2(config-if)#int s1/1
r2(config-if)#ip pim dense-mode 一个接口开启PIM协议后,可以基于IGMP工作;可以建立PIM邻居,不开启协议的接口是不会转发组播流量的;
 
PIM配置完成后将生成邻居表:
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:54/00:01:20 v2 1 / S
34.1.1.2 Serial1/1 00:00:37/00:01:36 v2 1 / S
36.1.1.2 FastEthernet0/0 00:00:25/00:01:19 v2 1 / DR S
优先级用于选举DR,DR仅在MA网络中选举;DR在密集模式中无意义;
选举DR规则,先比优先级,大优;默认为1;然后比较接口ip最大
模式:
S 状态可刷新 DR可以抢占
B 高级PIM 双向PIM
N 低版本协议中不选举DR
 
一旦源向外发出流量,第一跳路由开始推流量,各种机制开始工作,修剪开始进行后,各台路由器将生成组播路由表:
r3#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.1.1.1), 00:01:30/stopped, RP 0.0.0.0, flags: D
Incoming interface: Null, RPF nbr 0.0.0.0
Outgoing interface list:
FastEthernet0/0, Forward/Dense, 00:01:30/00:00:00
Serial1/1, Forward/Dense, 00:01:30/00:00:00
Serial1/0, Forward/Dense, 00:01:30/00:00:00
 
(12.1.1.1, 224.1.1.1), 00:01:30/00:02:54, flags: T
Incoming interface: Serial1/0, RPF nbr 23.1.1.1
Outgoing interface list:
Serial1/1, Forward/Dense, 00:01:30/00:00:00
FastEthernet0/0, Prune/Dense, 00:01:30/00:01:29
 
只要生成一条(S,G)便会出现一条(,G);(,G)对密集模式无意义;
 
稀疏模式:主要应用于ISP网络;同时使用RPT树和SPT树
存在RP角色,拉模型
 
首先网络中选举一个RP(全网均知);叶子路由器若下方存在组员,那么便将该组的加组信息转发到RP;之后源向外发出流量,第一跳路由器将该数据包裹于单播中传递到RP注册;若存在该组,RP将该单播流量解封为组播然后转发到用户,同时告知第一跳路由器有接收者,并停止注册;之后第一跳路由器使用推模型,推出流量;而后最后一跳路由器向源基于单播路由表进行反向修剪,开辟一条最佳路径。
若不存在接收者,那么将停止注册;直到下一次的流量发出;
 
配置:
1)
r2(config)#ip multicast-routing
r2(config)#interface s1/0
r2(config-if)#ip pim sparse-mode
r2(config-if)#exit
r2(config)#interface s1/1
r2(config-if)#ip pim sparse-mode
 
2)定义RP
【1】静态RP—管理员手写
【2】auto-rp cisco私有
【3】BSR 公有
 
【1】静态RP,告知所有路由器谁为RP(一般使用环回地址来作为RP地址,若使用环回地址,单播路由表中必须可达环回路由,同时该环回接口也必须工作PIM中,选择环回接口是因为环回接口稳定)
r3(config)#int lo0
r3(config-if)#ip pim sparse-mode
 
r2(config)#ip pim rp-address 3.3.3.3 在所有设备上配置
 
【2】auto-rp cisco私有
C-RP 候选RP-----参选者 建议多个
MA 映射代理----决策者 也可以多个
 
C-RP会周期向224.0.1.39发出希望成为RP的信息 该组只有MA加入
MA认定IP地址最大成为RP,通过224.0.1.40 来宣布谁成为RP 所有运行PIM协议的路由均默认加入该组
 
C-RP配置–一般使用C-RP的环回地址来参选;故该环回可以被其他访问的同时,还必须工作于PIM中
r2(config)#interface lo0
r2(config-if)#ip pim sparse-mode
r2(config-if)#exit
r2(config)#ip pim send-rp-announce loopback 0 scope 5
参选接口 TTL默认为1,必须修改否则传输不到MA
 
MA配置:一般使用MA的环回地址来参选;故该环回可以被其他访问的同时,还必须工作于PIM中
r6(config)#ip pim send-rp-discovery loopback 0 scope 5
 
注:由于参选信息和结果的宣布均通过组播发出,而在稀疏模式中必须存在RP后才能进行组播流量的转发;故以上配置不能实现RP的选举;
r6(config)#ip pim autorp listener 在所有路由器配置该命令后,参选者会将参选信息单播发送给邻居,这样每台路由器均可收到参选信息和参选结果;
另:可以让所有的路由器运行在稀疏密集模式中
r2(config)#interface s1/0
r2(config-if)#ip pim sparse-dense-mode
让所有路由器的接口工作于以上模式,那么选举RP的信息将基于密集模式来进行;RP选举成功后,稀疏来转发网络组播流量。
 
DR的作用:在MA网络中将进行DR选举,先优先级最大,再ip地址最大
 
1、在IGMP V1中被利用成为查询者
 
2、在IGMP V2中无意义
 
3、在密集模式协议无意义
 
4、在稀疏模式下,第一跳和最后一跳路由器可能存在多台,那么将导致重复注册和加组;故进行DR选举,仅DR可以注册或加组;–在每个网段内仅DR可以和RP沟通;
 
r2(config)#int f0/0
r2(config-if)#ip pim dr-priority 2



 


(责任编辑:IT)
------分隔线----------------------------