一、概念
组播(Multicast):组播技术的初衷是在IP网络中,以"尽力而为"的形式发送信息到某个目标组,这个目标组称为组播组,这样在有源主机向多点目标主机发送信息需求时,源主机只发送一份数据,数据的目的地址是组播组地址,这样,凡是属于该组的成员,都可以接收到一份原主机发送的数据的拷贝,此组播方式下,只有真正信息需要的成员会收到信息,其他主机不会收到。
二、组播地址(224-239)
局部链路地址:224.0.0.1-224.0.0.254,逐跳行为,不查询组播路由表
预留地址段:224.0.1.1-224.0.1.254,Internet公有服务,逐流行为
公网组播地址段:224.0.2.1-238.255.255.254
私有地址:239.0.0.1-239.255.255.254
三、组播优势和应用
组播优势:
提高效率:降低网络流量、减轻服务器和CPU负荷
优化性能:减少冗余流量、节约网络带宽、降低网络负载
分布式应用:使多点应用成为可能
组播的应用:
多媒体
培训、联合作业场所的通信
数据仓库、金融应用(股票)
任何的“单到多”数据发布应用
四、组播的劣势
组播是基于UDP的
尽力而为
没有拥塞避免机制
报文重复
报文失序
五、组播IP模型分类
ASM(Any-Source Multicast):任意源组播,只要是这个IP地址给的就收。
SFM(Source-Filtered Multicast):源过滤组播,过滤一些组播。
SSM(Source-Specific Multicast):特定源组播,指定收谁的。
六、组播Ip地址分类
七、RPF接口与RPF邻居的选择
当有多个接口都能成为该组播源的RPF接口时,选择IP地址最大的接口成为针对该组播源的RPF接口。
当有多个邻居都能成为该组播源的RPF邻居时,选择IP地址最大的邻居成为针对改组播源的RPF邻居。
八、实验
SER配置:
SER(config)#int e0/0 SER(config-if)#ip address 100.1.1.1 255.255.255.0 SER(config-if)#no sh SER(config)#no ip routing SER(config)#ip default-gateway 100.1.1.2
SER(config)#ip multicast-routing 开启组播功能
R1配置:
R1(config)#int e0/0 R1(config-if)#ip address 100.1.1.2 255.255.255.0 R1(config-if)#no sh R1(config-if)#int e0/1 R1(config-if)#ip address 101.1.1.2 255.255.255.0 R1(config-if)#no sh
R1(config)#router eigrp 100
R1(config-router)#no auto-summary
R1(config-router)#network 100.1.1.0 0.0.0.255
R1(config-router)#network 101.1.1.0 0.0.0.255
R1(config)#ip multicast-routing
R1(config)#int e0/0
R1(config-if)#ip pim dense-mode
R1(config-if)#int e0/1
R1(config-if)#ip pim dense-mode
R1#show ip pim neighbor
R2配置:
R2(config)#int e0/1 R2(config-if)#ip address 101.1.1.3 255.255.255.0 R2(config-if)#no sh R2(config-if)#int e0/2 R2(config-if)#ip address 102.1.1.3 255.255.255.0 R2(config-if)#no sh
R2(config)#router eigrp 100
R2(config-router)#no auto-summary
R2(config-router)#network 101.1.1.0 0.0.0.255
R2(config-router)#network 102.1.1.0 0.0.0.255
R2(config)#ip multicast-routing
R2(config)#int e0/1
R2(config-if)#ip pim dense-mode 启用PIM密集模式操作
R2(config-if)#int e0/2
R2(config-if)#ip pim dense-mode
R2#show ip rpf 100.1.1.0
G配置:
G(config)#int e0/2 G(config-if)#ip address 102.1.1.4 255.255.255.0 G(config-if)#no sh G(config)#no ip routing G(config)#ip default-gateway 102.1.1.3 G(config)#int e0/2 G(config-if)#ip igmp join-group 224.1.2.3 进入组接口地址,加入组地址
实验二
R3配置:
R3(config)#int e0/2 R3(config-if)#no ip igmp join-group 224.1.2.3
R3(config)#router eigrp 100
R3(config-router)#no auto-summary
R3(config-router)#network 102.1.1.0 0.0.0.255
R3(config-router)#network 103.1.1.0 0.0.0.255
R3(config)#ho R3
R3(config)#int e0/2
R3(config-if)#ip pim dense-mode
R3(config-if)#int e0/3
R3(config-if)#ip pim dense-mode
R3(config)#int e0/0
R3(config-if)#ip address 202.1.1.4 255.255.255.0
R3(config-if)#no sh
R3(config-if)#ip pim dense-mode
G配置:
G(config)#int e0/3 G(config-if)#ip address 103.1.1.5 255.255.255.0 G(config-if)#no sh G(config)#no ip routing G(config)#ip default-gateway 103.1.1.4 G(config)#int e0/3 G(config-if)#ip igmp join-group 224.1.2.3
R2配置:
R2(config)#int e0/0 R2(config-if)#ip address 202.1.1.3 255.255.255.0 R2(config-if)#no sh R2(config-if)#ip pim dense-mode
R3配置:
R3#show ip rpf 100.1.1.0 查看RPF信息
R1#show ip mroute 查看组播路由表
R1#show ip igmp interface e0/0 查看接口IGMP接口信息
实验结论:
1、RPF接口会选择选择IP地址最大的。
2、同时关闭R2、R3的pim,RPF接口会换回来(102.1.1.3)。
3、打开R2的pim,server端ping224.1.2.3可以ping通,RPF接口不会改变,因为RPF邻居没有起来。
4、只关闭R2的pim,server端ping224.1.2.3不能ping通,RPF接口不会改变,没有检测到邻居终端,实际发送是E0/2口。
九、实现负载均衡
因为有RPF检测的存在,所以默认是不可能实现组播负载均衡的。
如果相实现组播的负载均衡,那么必须将多接口变为单接口,例如用GRE Tunnel将多个物理接口封装在一起。
R1配置:
R1(config)#int loopback 0
R1(config-if)#ip address 2.2.2.2 255.255.255.0
R1(config)#router eigrp 100 R1(config-router)#no auto-summary R1(config-router)#network 100.1.1.0 0.0.0.255 R1(config-router)#network 101.1.1.0 0.0.0.255 R1(config-router)#network 2.2.2.0 0.0.0.255
R1(config)#int tunnel 0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#tunnel source loopback 0
R1(config-if)#tunnel destination 3.3.3.3
R1(config-if)#ip pim dense-mode
R2配置:
R2(config)#int loopback 0 R2(config-if)#ip address 3.3.3.3 255.255.255.0 R2(config)#router eigrp 100 R2(config-router)#no auto-summary R2(config-router)#network 101.1.1.0 0.0.0.255 R2(config-router)#network 102.1.1.0 0.0.0.255 R2(config-router)#network 3.3.3.0 0.0.0.255 R2(config)#int tunnel 0 R2(config-if)#ip address 10.1.1.2 255.255.255.0 R2(config-if)#tunnel source loopback 0 R2(config-if)#tunnel destination 2.2.2.2 R2(config-if)#ip pim dense-mode
R2(config)#ip mroute 100.1.1.0 255.255.255.0 tunnel 0 添加组播静态,帮助RPF校验成功
到这里SER端可以ping通组播组了。
R1(config)#no ip cef 关闭R1、R2的cef,此时实现负载均衡
R2(config)#no ip cef
十、组播分部树以及转发模式
转发模式:
dense-mode 密集模式SPT,基于组播源构建的转发路径
优点:在组播源与组成员之间建立最短路径,最大限度降低数据延时
缺点:每台组播路由器需要维护庞大的组播路由表来记录每个源与组之间的转发路径,设备开销会随着组播源的增加而加大。
sparse-mode 稀疏模式RPT,基于RP构建的转发路径