IPV4和IPV6组播(Multicast)课堂小知识(一)

01

组播(Multicast)

IPV4:单播 组播 广播

IPV6:单播  组播 任播

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

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

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

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

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

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

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

02

组播分发树

1) 源树:SPT【最短路径树SPT】

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

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

S代表是source,G代表Group

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

2) 共享树:RPT

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

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

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

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

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

03

RPF检测【反向路径转发】

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

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

入口:由RPF决定

出口:由IGMP和组播路由协议决定的

04

源  组播组  接收者

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

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

IGMP【 internet组管理协议】

1)V1:query和report报文,组播路由器每隔60s周期性发送查询报文,主机响应。

缺点:没有离开机制,主机是默不作声离开,只要等到180s,组播路由器才收敛完成。

2)V2:query和report报文,组播路由器每隔60s周期性发送查询报文,主机响应。

优化了离开机制,当主机离开某个组播组,主动向组播路由器发送leave group报文,表示要离开这个组。

组播路由器会发送特定组的查询报文,询问是否还存在关于改组的其他的接收者,加速收敛。

注:

V1 下一次60s,才发现有接收者

V2 马上发送特定组查询,

05

查询器

在以太网中,如果存在多个组播路由器,会选举其中一台组播路由器作为查询器。

查询器选举原则:

IGMP V1,选举PIM协议的DR路由器作为查询器

IGMP V2 V3,选择组播路由器IP地址小的

06

组播路由协议

作用:在组播路由器之间运行组播路由协议,生成组播路由条目,当组播路由器收到组播数据包时,根据组播路由表来转发组播流量。

组播路由角色:

最后一跳组播路由器:连接着接收者

第一跳组播路由器:连接着组播源

PIM转发路由器:

07

PIM协议:协议无关组播

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

08

PIM定义了两种模式:

密集模式(Dense-Mode)和稀疏模式(Sparse-Mode)

1)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)

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

不支持共享树

09

配置PIM-DM

首先要保证组播路由器有组播源的路由条目,(配置动态路由协议EIGRP)目的是为了保证RPF检测能够成功

配置步骤:

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 查看组播路由表

10

PIM-SM【考试重点】

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

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

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

11

共享树的建立

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

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

注意:为了保证组播路由器能够对RP检测成功,首先要保证组播路由器有RP的路由。

RPT生成的(*,G)表项,用于转发组播数据

12

源树的建立

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

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

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

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

13

RPT的切换

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

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

ip pim spt-threshold infinity

14

RP的选举

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

Auto-rp>BSR>静态RP

15

PI-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 查看组播路由表

为了方便广大网络爱好学习者一起学(聚)习(众)交(搞)流(基),特开设思科干货交流群,里面已经上传大量学习资料,欢迎广大网络工程师进群学习!

扫描下方二维码  进群学习交流

觉得内容还不错的话,给我点个“在看”呗

(0)

相关推荐