路由--交换--城域网
组播的优势(视频会议)
减轻服务器和CPU负荷
减少了链路带宽资源的占用
减轻了网络设备的负载
组播是基于UDP
组播最适合一对多通信方式的应用
组播服务器--组播网络(PIM)--(IGMP)终端主机
OUI 厂商唯一标识符
组播的地址
三层地址:224-239
二层地址:组播MAC地址 01-00-5e-xx-xx-xx 第25位为零
将IP 地址 转变成 MAC地址
MAC前面24位固定不变
IP后面23位移入组播地址当中
因为组播地址224-239 IP 前面4位永远一样可以忽略
剩下IP的5-9位形成一个32:1的映射关系
所以在命名组播地址时候要间隔分配,不要并排分配
链路本地地址(保留给本地网段上的网络协议使用)link local
224.0.0.0/24
224.0.0.1 所有主机
224.0.0.2 所有多播路由器
224.0.0.4 所有DVMRP路由器
224.0.0.5 所有OSPF路由器
224.0.0.6 所有OSPF指定路由器
224.0.0.9 所有RIPv2路由器
224.0.0.10 所有EIGRP路由器
224.0.0.13 所有PIM路由器
224.0.0.15 所有CBI路由器
IANA指派地址 保留给特定的网络协议使用
224.0.1.0/24
224.0.1.1 NTP
224.0.1.21 DVMRP
224.0.1.39 RP-announce
224.0.1.40 RP-discovery
239.0.0.0/8 保留给内部网络使用(管理范围地址)
公有地址
SSM地址
232.0.0.0/8
GLOP地址
233.0.0.0/8
运行组管理协议能够将用户加进来,运行组播路由协议能够将服务器流量推到最后一跳路由器
IGMP 互联网组管理协议
用于实现终端主机加入组
V1 淘汰 V2 在用 V3 草案
IGMPV1
membership query
membership report
组成员表
无良好的退出机制
IGMPV2
membership query<Genaral>
membership report
leave group message
group spectific query特定组查询
IGMP包的ip协议号为2
所有运行组播路由协议都会加入224.1.1.40这个组
配置命令
最后一跳路由器
ip multicast-routing
int f2/0
ip pim dense-mode
主机接口下 先把单播地址写好
ip igmp join-group 224.1.1.10
show ip igmp membership
IGMPV3增加对信源的过滤(选择接收哪个组播源的流量)
二层组播的解决方案
CGMP:思科私有,在路由器和交换机上面执行,路由器将客户的MAC信息和二层组播MAC信息绑定后,直接通过CGMP包告知交换机<在全局下开启cgmp>
IGMP Snooping:行业标准,二层交换机上执行,交换机需要看懂IGMP分组信息,对硬件性能要求非常高<在接口下开启igmp snooping>
组播路由协议
RIP/OSPF/EIGRP/BGP--单播路由协议
根据这些路由协议所生成的路由表,可以承载单播流量,所以我们把此类路由协议成为单播路由
组播路由协议分类
DVMRP MOSPF PIM-DM PIM-SM
PIM 协议独立组播
先保证底层可达,就能跑PIM
分类
PIM-DM 密集模式
PIM-SM 稀疏模式
术语:
组播树,最短路径树/有源树(SPT),共享树
组播表,源、目的、源接口、目的接口
PIM-DM 推模式
泛滥与剪枝 过程每3分钟重复一次
show ip mroute 查看PIM组播表(组播树)
show ip pim nei 查看PIM邻居
组播流不会负载均衡
pim 传输层 224.0.0.13
静默式处理 常见到(hello包和join/prune包)
特征:
1.组播表中,关于组播路由的记录方式有两种<S,G>和<*,G>,G表示特定的组播地址
2.根据<S,G>条目生成组播树并执行数据转发,<*,G>仅仅做为所有其他<S,G>的父节点,并用于标识本网络有此组数据
所有其他<S,G>的父节点,并且用于标识本网络有此组的数据
3.单播路由协议的路由表只关心目的地以及出接口;组播路由协议路由表除了关心目的地和出接口,也关心源和进接口,用于组成组播树以及防止环路
4.RPF(反向路径转发)检测机制:一个环路防止机制,组播路由器只会转发从进接口进来的数据包,从其他口进来的包都必须丢弃,进接口进来的包只会转发给出接口,不能返回数据
进接口=RPF接口,一般进接口和RPF口是通过单薄表的最短路径选举出来的
5.<S,G>路径记录方式使得组播路由表的压力比较大
PIM-DM的五种包
HELLO:发现和维护邻居关系
JOIN/PRUNE:加入和修剪树
Graft:嫁接,重新加入多播树(以前被修剪过)
Graft ACK:嫁接成功后确认
Assert:声明,多路访问环境中用来协商哪台多播路由器来往该多路网络转发多播数据流
PIM-SM 拉模式 告诉我你要不要
组播数据流只发送到有需要的地方
共享树的根不再多播数据流的源头,而位于网络中管理员指定的汇聚点(RP redezvous point)
所有多播源先把多播流发送到RP,再由RP分发到各接收点,目标组地址向它的多个源节点共享多播分布树S
PIM-SM部署
全局开启组播
ip multicast-routing
选举RP(静态、BSR公有、Auto-RP私有)
ip pim rp-address 1.1.1.1 (选环回口比较稳定)
在所有接口下开启PIM-SM
int range f0/0 , f1/0
ip pim sparse-mode
特征:
1."拉模式",主机主动加入组
2.当路由器收到IGMP report时,则向上游路由器发送Join分组,加入组播树(不会周期放洪,节省带宽)
3.SM组播树相比DM组播树更加高效,只将数据流发送给需要的主机。
4.SM组播树称为共享树Share Tree,整个SM组播树中选举出RP,根据IP或优先级选择,RP一般性能要好
5.为什么要选举RP,是因为当源服务器很多的时候,通过RP的汇聚点转发,可以节省下游路由器很多的<S,G>记录最短路径树中每个源的一棵树,共享树中所有源共享一棵树
6.RP选举出来之后,所有的源数据发往RP,RP统一发送到接收者
当接收者收到组播流的时候,便找到真正的源,此时会在源和接收者建立最短路径树SPT,后续的数据直接基于最短路径树来转发,所以整个过程中,RP充当接收者和源的中介,它仅仅作为一个跳板,并不一定要转发源的数据
SM共享树加入
(*,G)仅在共享树沿途建立
SM 发送者注册
(S,G)注册 以单播形式,注册完后加入(S,G)生成源树
(S,G)仅在源树沿途建立
RP向第一跳路由器发送注册停止消息,停止注册过程
源数据流沿源树(SPT)流向RP
从RP开始,数据流沿共享树(RPT)流向接收者
SM SPT切换
最后一条路由器加入源树
DM模式是牺牲带宽来建立最短路径树
SM模式是按需进行修剪(RP的意义)
阀值切换不同厂家的方式也有所不同
相同点:
1.邻居发现机制
2.单播路由表变化时RPF的重新选择
3.DR的选择
4.Prune-override
5.Forwarder的选择
不同点
1.SM使用了显示加入模式,起初时由组成员发起的
2.SM支持共享树(RPT)有支持源树(SPT)