组播是什么

组播是什么

IPV4:单播 组播 广播

IPV6:单播 组播 任播

  1. 单播:一对一,随着接收用户的增多,增加服务器和链路带宽的压力。

单播的优点:保证流量只发送给有需要的接收者

  1. 广播:一对ALL,压力会集中在网络内的主机,如果该主机不接收广播流量,需要耗费资源去处理这个广播

广播的优点:同样的流量,只需要发送一次,对链路的占用小

  1. 组播的特点: 一对多,把单播和广播的优点结合起来形成组播。

组播的优点:保证流量只发送给有需要的接收者,同样的流量,只需要发送一次,对链路的占用小

组播的缺陷:组播是基于UDP的!!!【不可靠】

实施组播的三个基本条件

硬件设施:

  1. 组播服务器
  2. 支持组播分发的网络
  3. 能接收组播流的客户端

软件技术:

  1. 必须存在组播地址
  2. 必须有多播路由协议的支持
  3. 客户端必须能自由加入或离开多播组

组播地址

一个组播组就是一个IP地址,不表示具体的主机,而是表示一系列系统的集合,主机加入某个组播组 即声明自己接收某个IP地址的报文。

组播IP地址不会在网络上实际存在

组播源IP地址:A、B、C类地址

组播目标IP地址:D类地址 224.0.0.0 --239.255.255.255

  1. 为网络协议预留的地址段有:224.0.0.0-224.0.0.255
  2. 全局范围地址:224.0.1.0-238.255.255.255
  3. 指定信源组播地址:232.0.0.0~232.255.255.255
  4. GLOP地址:233.0.0.0~233.255.255.255
  5. 有限范围地址:239.0.0.0-239.255.255.255

常用组播地址

  1. 224.0.0.1 - all multicast systems on subnet
  2. 224.0.0.2 - all routers on subnet
  3. 224.0.0.4 - all DVMRP routers(距离矢量组播路由选择协议 )
  4. 224.0.0.13 - all PIMv2 routers
  5. 224.0.0.5, 224.0.0.6, 224.0.0.9, 224.0.0.10 used by unicast routing protocols
  6. 224.0.0.25 表示所有的交换机
  7. 224.0.1.40 auto-rp

组播分发树

组播分发树:用来描述IP组播报文在网络中经过的路径。

  1. 有源树(最短路径树SPT:Source or Shortest Path Tree)
  • 由组播源到用户间的最短路径构成。路由器必须为每个组播源保存路由信息,占用内存较多 (S,G),但路径最优,接收者到多播源是最佳路径,延迟最小。

  • 优点:组播源到接收者的路径是最优的

    组播路由条目使用(S,G)表示

    S代表是source,G代表Group

    100个组播源,100个(S,G)条目-----缺点,表项过多

  1. 共享树(Shared Tree)
  • 以网络上某特定节点为公用根。占用内存较少 (*,G),路径不一定是最优的,多播流转发必须先经过RP,引入额外的延迟。

  • 对 RP 的可靠性和处理能力要求很高

  • 特点:采用一个公共节点作为根,转发组播流量

    缺点:不能保证组播源到接收者的路径是最优的

    ​ 组播路由条目使用(*,G)表示

    *代表是任意source,G代表Group

    100个组播源,1个(*,G)条目—优点,表项只有一个

组播转发

组播路由转发和单播路由转发是相反的

a、单播路由转发关心数据报文要到哪里去。

b、组播路由转发关心数据报文从哪里来。

组播路由转发使用 “反向路径转发”机制避免环路

多播数据流从多播路由器入口路由到出口转发出去

a、入口:由RPF决定

b、出口:由IGMP和多播路由协议决定的

RPF检测

概念:组播源的入接口和路由器到达组播源的出接口,不一致,RPF检测失败。不转发该组播数据包,直接丢弃

源 组播组 接收者

1)机和组播路由协议之间运行的协议 IGMP

2)组播路由器和组播路由器之间运行的协议 PIM

IGMP 协议

IGMP协议作用

​ 组播路由器通过IGMP协议了解每个接口连接的网段上是否存在组播组的接收者,也就是组成员。如果存在成员,组播路由器应将组播数据包转发到这个网段;如果没有成员则应停止转发。

  1. IGMP协议是主机跟路由器之间的控制协议
  2. 主机通过IGMP协议向组播路由器报告自己想加入的组
  3. 路由器通过IGMP协议查询网段上是否还有特定组的成员

IGMP:用于IPv4组播

MLD: 用于IPv6组播 (
Multicast Listener Discover ,组播侦听发现协议)

IGMP协议

Internet组管理协议
IGMP是一个三层协议,协议号为2,直接被封装在IP中,运行于路由器与主机之间。

请添加图片描述

IGMP原理

采用路由器查询、主机报告两种方式维持组成员关系。

a、路由器查询:路由器周期性每60秒发送查询(D=224.0.0.1 ttl=1)试图发现感兴趣的组成员。(主机每次都回复)

b、主机报告:主机主动发送一个IGMP报告(D=组播组 ttl=1) 表示要加入某个多播组(包含了要加入的多播组地址),也可以用来回复路由器的queries。同一个网段中,只需要一台主机发送report报文,避免网络种充斥大量的report报文。

抑制机制:倒数报告计时器,默认是10s

IGMP查询器

同一网段上有多个组播路由器时,选择一台组播路由器作为查询器

IGMP v1:默认DR 就是 IGMP 查询器。DR是通过PIM协议选择。

IGMP v2 v3:拥有最低的IP地址被选举为IGMP 查询器

Ip multicast routing    //开启组播路由功能
Ip igmp version {1 | 2 | 3}
Ip igmp query-interval seconds     //default 60s
Ip igmp query-max-response-time seconds     //default 10s
Ip igmp query-timeout seconds      //defaut  2*query-interval
No ip mroute-cache    //在接口上禁止IP多播包的快速交换
ip igmp last-member-query-count <1-7>    //default 2
ip igmp last-member-query-interval milliseconds  //default 1000ms

PIM协议:协议无关组播

组播路由器为了知道哪些设备需要接收组播流量。PIM无需收发组播路由更新,所以与其它组播协议相比,PIM开销降低了许多。PIM的设计出发点是在Internet范围内同时支持SPT和共享树,并使两者之间灵活转换,因而集中了它们的优点提高了组播效率。

PIM两种模式:

密集模式(Dense-Mode)

PIM-DM:泛洪—修剪 SPT
先有组播数据流,再有组播分发树

  • 泛洪:当组播路由器收到组播数据包时,先进行RPF检测,添加(S,G)表项,从除接收接口之外的其他所有接口(有PIM邻居的接口)进行转发。

  • 修剪:当组播路由器不存在接收者时,发送join/prune报文,将prune置为1
    当组播路由器存在接收者时,发送join/prune报文,将join置为0
    每个3分钟泛洪 修剪一次。

  • 注:在PIM-DM,产生(S,G)和(*,G),但是转发数据包时,根据(S,G)表项转发,不根据(*,G) 因为数据库结构的原因,创建(S,G)表项必须先创建(*,G)表项

  • 优点:配置简单,实现机制简单

  • 缺点:泛洪修剪过程不够高效

    复杂的ASSert机制

    控制和数据平面混合

    导致网络内部的所有路由器上都有(S,G)

    可能会导致非确定性的拓扑行为

    不支持共享树

稀疏模式(Sparse-Mode)

先有组播树,再有组播流量

先建立RPT,当有组播数据时,建立SPT树。

后续数据,先沿着SPT树发送,再沿着RPT树发送

共享树的建立:

接收者发送IGMP report报文给最后一跳路由器。

最后一跳路由器收到以后,会对RP做RPF检测,检测成功,生成(*,G)表项,朝着RP的方向,向上游路由器发送join/prune报文。

注意:为了保证组播路由器能够对RP检测成功,首先要保证组播路由器有RP的路由。 RPT生成的(*,G)表项,用于转发组播数据

有源树的建立:

1)组播源发送组播数据报文,第一跳路由器收到后,进行RPF检测,生成(S,G)表项,因为此时,第一跳路由器并没有建立任何的组播分发树,以单播的形式发送给RP。

2)RP收到这个单播报文,首先查看组播路由表是否存在该组播组的共享树(是否有接收者),如果存在,将单播报文中的组播提取出来,沿着共享树发送。发送join/prune消息给第一跳路由器,产生(S,G)表项

如果不存在接收者,发送join/prune消息给第一跳路由器,产生(S,G)表项

发送注册停止的报文。目的是为了让第一跳组播路由器转发后续的组播数据包,以组播的形式发送,不需要以单播的形式发送。

RPT的切换

当最后一跳路由器,发现到达组播源有更优路径时,从RPT树切换到SPT树。

注:禁止共享树向源树切换命令

ip pim spt-threshold infinity

RP的选举

如果一台设备同时使用静态和动态的方式选举RP,优先级的关系如下:

Auto-rp>BSR>静态RP

为了保证RP的稳定性,一般使用loopback口作为RP。`

RP的选举方式
手工静态

每一台组播路由器都需要配置静态RP

指定静态RP,RP地址这个接口不需要启用PIM协议?

优点:稳定

缺点:不能够动态切换,配置麻烦

静态RP配置

R1(config)# ip pim rp-address  192.168.1.1     1   [ override ]    
R1(config)# access-list 1 permit 239.1.1.0 0.0.0.255

//192.168.1.1是RP的地址
//1表示RP只为该组播地址服务【可选参数】
//override静态RP优先于Auto-RP和BSR选举的RP【可选参数】

动态

动态选举RP的缺点:同一时间,只有一个RP在工作。工作效率高

  1. Auto-RP:思科私有协议

    C-RP—候选班长

    映射代理—班主任

Auto-RP工作原理:

  1. 先选举出映射代理
  2. 映射代理通告组播的方式,告诉所有的组播路由器映射代理的信息(224.0.1.40)每隔60s
  3. C-RP以组播的形式通告C-RP的信息,组播地址是224.0.1.39,每隔60
  4. 由映射代理来选举RP,(IP地址越大,成为RP),然后再告诉所有的组播路由器

Auto-rp的选举:

映射代理和RP的选举,都是选择IP地址大的。

动态选举RP和映射代理时,参与选举的接口需要启用PIM协议。

连接PIM路由器的接口

第一跳路由器连接组播源的接口

最后一跳路由器连接接收者的接口

注:在PIM-SM中,使用auto-rp选举,出现的问题:

  1. 在PIM-SM中,要发送组播流量,必须先知道RP

RP还没有选举出来,就无法发送组播流量

  1. Auto-rp中,C-RP和映射代理发送的消息都是使用组播来发送

解决办法:ip pim sparse-dense-mode

  1. 同时运行SM和DM

没有RP时,使用DM建立SPT,选举出RP,
当RP选举出以后,使用SM来发送组播流量

  1. auto lister

当还没有建立组播分发树时,收到组播信息,将从所有启用PIM协议的接口发送出去

2)BSR:公有

C-RP—候选RP

BSR----裁判

BSR工作原理:

  1. BSR设备会以组播的形式【224.0.0.13】通告自己的存在,告诉所有的组播路由器,BSR的地址。
  2. C-RP收到BSR的信息之后,知道了BSR的地址。以单播的形式发送C-RP的信息给BSR。
  3. BSR收到以后,不选举RP,把所有的C-RP信息发送给所有的组播路由器,有组播路由器自己选举。

如果为了简化部署,可以将RP和BSR部署在同一台路由器上。

BSR选举:

①、比较优先级,大的优先

②、优先级一样,比较IP地址,大的优先

RP选举:

①、如果组中只有一个C-RP,则直接选为RP。

②、存在多个C-RP,拥有最小优先级值的C-RP成为RP。

③、优先级相同,运行一个hash函数(这个函数输入的参数有:组的前缀、hash掩码和C-RP的地址,输出为:hash值),有最大结果的C-RP成为RP。

③、如果hash值相同,有最大IP地址的C-RP成为RP。

配置PIM-DM

1)组播路由器启用组播功能:ip multicast-routing
2)在相应的接口启用PIM协议:ip pim dense-mode
连接PIM路由器的接口
第一跳路由器连接组播源的接口
最后一跳路由器连接接收者的接口
3)配置接收主机加入某个组播组:ip igmp join-group 239.1.1.1


验证命令:
R1#show ip pim interface 查看路由器哪些接口启用PIM协议
R1# show ip pim neighbor查看PIM的邻居
R1#show ip mroute 查看组播路由表

配置PIM-SM

1)组播路由器启用组播功能:ip multicast-routing
2)在相应的接口启用PIM协议:ip pim sparse-mode
连接PIM路由器的接口
第一跳路由器连接组播源的接口
最后一跳路由器连接接收者的接口
3)配置RP:ip pim rp-address 3.3.3.3【所有的组播路由器都需要配置RP】
4)配置接收主机加入某个组播组:ip igmp join-group 239.1.1.1

验证命令:
R1#show ip pim interface 查看路由器哪些接口启用PIM协议
R1# show ip pim neighbor查看PIM的邻居
R1#show ip mroute 查看组播路由表

DF

每条链路中,拥有到达RP最佳路径的路由器将被选为DF(Designated Forwarder)
DF负责响应和转发发往RP的流量
对于本地源和接收者无需转发。

DF的作用

负责转发发送给RP的组播流量
在MA网络中,有DF转发

最后一跳路由器发送的join消息
在MA网络中,RP会将组播流量发给DF,有DF转发给接收者

DF的选举原则

  1. 选择到达RP最佳路径的路由器
  2. 比较到达RP的AD值
  3. 比较到达RP的Metric
  4. 当Metric一样,IP地址大的优先

配置组播双向树:
组播路由器先启用组播路由功能和组播双向树功能
在相应的接口启用PIM协议,定义PIM-SM
定义RP
主机加入组播组

注意:
配置组播双向树的时候,
RP接口需要启用PIM-SM

R3#show ip pim interface f0/0 df

Multicast Boundary

组播边界机制被用来限制组播流量的转发的域

access-list 10 deny   224.10.10.0 0.0.0.255
access-list 10 permit any

interface FastEthernet0/0
 ip multicast boundary 10 out


access-list 100 deny   ip any  123.1.1.0 0.0.0.255 224.10.10.0 0.0.0.255
access-list 100 permit ip any any

interface FastEthernet0/1
 ip multicast boundary 100 out

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值