IP组播
是一台源ip主机和多台(一组)ip主机之间进行,中间的交换机和路由器根据接收者的需要,有选择地对数据进行复制和转发,主要应用有在线直播,网络电视,远程教育等。
组播方式的优势
无重复流量
节省设备与带宽资源
安全性高
有偿性有保障
组播基本架构
组播源到路由器 路由器到路由器 路由器到接收端
组播ip地址,(D类)224.0.0.0~239.255.255.255
224.0.0.0 ~224.0.0.255 为路由协议预留永久组地址
224.0.1.0~231.255.255.255 any-source临时组播地址
233.0.0.0~238.255.255.255
232.0.0.0~232.255.255.255 source-specific临时组播组地址
239.0.0.0~239.255.255.255 本地管理的any-source临时组播组地址
组播源地址是单播地址,目的地址为组地址
组播服务模型
ASM(any-source multicast)任意源组播
SSM(source-specific multicast)指定源组播
组播mac地址
组播mac地址,第一个自己的最后一位为1
单播mac地址,第一个字节的最后一位为0
IANA规定,IPv4组播mac地址的高24位为0x0005e,第25位固定位0
组播ip与mac的映射
需要组播ip地址与组播mac地址的自动映射,mac地址的低23bit为组播ip地址的低23bit
ip组播地址前4bit是110,代表组播标识,而后28bit中只有23bit被映射到mac地址,这样ip地址就有5bit信息丢失
IGMP协议
internet group managenent protocol 因特网组管理协议,用来在接收者和其直接相邻的组播路由器直接建立维护组播组成员关系。
IGMPv1的工作机制
普遍组查询与响应
响应抑制机制
IGMPv1支持两种类型的报文
普通组查询报文(general query)路由器周期性向225.0.0.1地址发送通用查询报文,默认查询周期为60s,
成员关系报告报文(membership report)用于主机加入某个组播组
查询器选举依赖组播路由协议,当一个成员离开后,60*2+10 =130s后删除对立项。
IGMP机制 | IGNPv1 | IGMPv2 | IGMPv3 |
---|---|---|---|
查询器选举 | 依靠其他协议 | 自己选举 | 自己选举 |
成员离开方式 | 静默离开 | 主动发送离开报文 | 主动发送离开报文 |
特定组查询 | 不支持 | 支持 | 支持 |
指定组源 | 不支持 | 不支持 | 支持 |
二层中组播数据转发的问题
组播数据二层被泛洪,造成网络资源浪费, 存在安全隐患
IGMP snooping机制可以实现组播数据帧在数据链路层的转发和控制
配置 IGMPv2(现在普遍使用)
multicast routing-enable
int g 0/0/1
ip addree 192.168.1.1 24
igmp enable
igmp version 2
dis igmp interface
dis igmp group
PIM
(protocol independent multicast)直接利用单播路由表的路由信息进行组播报文RPF检查,创建路由表项,转发组播报文。
协议号103,常用的是pimv2,组播地址为224.0.0.13
两种模式PIM-DM (protocol independent multicast-dense mode)
PIM-SM(protocol independent multicast-sparse mode)
PIM-DM
PIM-DM基本概述
采用(推push)模式转发组播报文
PIM网络中存在两种路由表项(S,G)路由表项或(* ,G)表项,S表示组播源,G表示组播组。*表示任意。
(S,G)路由表项主要用于PIM网络中的建立SPT,对于PIM-DM,PIM-SM网络适用。
(* , G)路由表项主要用于PIM网络中建立RPT对于PIM-SM网络适用。
PIM-DM的工作机制 邻居发现 扩散与剪枝 状态刷新 嫁接 断言
组播分发树(MDT multicat distribution tree)
特点,无论网络中的组成员有多少,每条链路上相同的组播数据最多只有一份。
被传递的组播数据在距离组播源尽可能远的分叉路口才开始复制和分发。
设计思想
首先将组播数据报文扩散到各个网段
然后再裁剪掉不存在组成员的网段
通过周期性的扩散-裁剪,构建并维护一棵连接组播源和组成员的单向无环spt
gratf机制 新的组成员加入组播组后,快速得到组播报文
assert机制 避免重复组播报文
PIM-DM 配置
rta
multicast routing-enable
int g 0/0/0
pim dm
int g 0/0/1
pim dm
int g 0/0/2
pim dm
rtd
multicast routing-enable
int g 0/0/0
pim dm
int g 0/0/1
pim dm
dis pim routing-table
dis pim neighbor
PIM-DM的局限性
PIM-DM适用于组播成员分布较为密集的园区网络,再组播成员分布较稀疏的网络中,组播流量的周期性扩散会给网络带来较大的负担。
PIM-SM基本概述
使用(拉pull)模式转发组播报文
PIM-SM的关键任务
建立RPT(rendezvous point tree,)汇聚点树也称共享树。
建立SPT最短路径树
适用于组播成员较稀疏的网络环境
PIM-SM的关键机制 邻居建立 DR竞选 RP发现 RPT构建 组播源注册 spt切换, assert;
PIM-SM配置
rta
multicast routing-enable
int g 0/0/0
pim sm
int g 0/0/1
pim sm
pim
staic-rp 4.4.4.4 //源组播地址路由器
当用户加入组播组238.1.1.1后能马上接收到组播数据
igmp static-group 238.1.1.1
sw1 交换机vlan接收组播
igmp-snooping enable
vlan 10
igmp-snooping enable
int g 0/0/1
igmp enable
igmp version 2
pim hello-option dr-priority 100 //DR优先级
int g 0/0/1
igmp enable
igmp version 2