组播学习笔记一、基础知识1、组播得概念:使用组播得好处:一个源可以利用组播向多个目标发送数据(如:IGP得无类路由协议使用得组播)使用组播可以节省带宽与设备得cost…………组播得缺点:组播就是基于UDP发送得。
(数据层面)2、RTP(real-time transport protocol):实时传输协议,因为组播就是基于UDP得,其传输就是无序得,为了解决接受数据时有序得,就需要对数据得实时传输。
3、由于就是基于UDP得所以她得传输与UDP一样都就是尽力得传输。
没有拥塞避免机制。
因为就是无序传输,需要利用RTP来解决。
在冗余拓扑中,可能让接受者收到多个一样得报文,可以通过PIM来解决。
4、组播应用得类型,a、1对多b、多对多(视频会议)c、多对15、组播得专用名词。
First-hop:第一跳路由器 Last-hop:最后一跳路由器IGMP:典型得个人PC与路由器之间沟通得协议。
6、PIM:协议无关得组播,即与运行得IGP没有关系。
7、ip地址得分类回顾:A类:0~127 B类:128~191 C类:192~223 D类:224~239其中D类就是组播地址,不能被配置在设备得接口上。
在A类地址中127就是被保留得特色地址,也就就是我们常用得本地环回地址。
8、组播地址不能被当做源地址,只能被当做目标地址。
9、组播地址得细分:A、保留得本地链路地址:224、0、0、0~224、0、0、255B、公网组播地址:224、0、1、0~238、255、255、255保留得公网组播地址SSM(source specific multicast)指定源得组播(在CCSP中会涉及)这种协议时PIM得高级协议(232、0、0、0~232、255、255、255)GLOP地址(233、0、0、0~233、255、255、255)就就是申请一个BGP得AS号会送一段组播地址,这段地址就就是GLOP地址。
这个地址就是可以根据AS号来算出来得,如下所示:如果AS:64521,那么所得组播地址就是??1、将64521转化成十六进制得数FC092、将FC09从中间断开得到FC 093、将FC与09 分别转化成两个十进制得数得到252 94、分别将这两个数字放在GLOP地址得第二位与第三位。
就得到基于本AS得地址:232、252、9、0/24C、私有得组播地址:239、0、0、0~239、255、255、25510、典型得私有地址得使用:224、0、0、1——发向所有得主机与路由器224、0、0、2——发向所有得路由器224、0、0、5——OSPF向所有路由器发送路由信息使用得组播地址。
224、0、0、6——OSPF中MA网络,发向DR使用得组播地址224、0、0、9——RIPv2224、0、0、10——EIGRP224、0、0、13——PIM发送hello包得组播地址二、IGMP协议1、IGMP得定义:( internet group management protocol) internet组管理协议,本协议有三个版本V1、V2、V3、这里我们重点学习V2。
IGMP就是封装在IP包里面得,这里IGMP得IP协议号就是2。
IGMPv1得数据包模型:2、IGMPv1:她有两种报文;(1)、查询包,由最后一跳路由器发送,查询有哪些组员(每60秒发一次,发送得组播地址就是:224、0、0、2)查询报文得目标地址与组地址D:224、0、0、2 group:0、0、0、0(2)、report包,由主机发送,说明加入了某个组。
她得目标地址与组地址分别就是:D:224、1、1、1 G:224、1、1、1 如左所示:其目标与组地址都一样,这就是因为通过路由器向下发送查询报文,主机收到该报文后,会向路由器发送report报文来回复,而发送得report得报文由本地主机运行得应用程序而决定加入什么样得组,故而确定了组地址。
而用本地得组地址作为发送report包得目得地址。
则就是有两方面得优点:使用组地址作为report报文得目标地址,可以将报文发给网关路由器与加入同一个组得PC,这时,所有得PC都会以这个地址来发report报文,而相同得报文会被抑制掉,从而只发一个相同得report报文给网关路由器。
(3)离组消息:在180S内发送三次查询包,如果一直没有收到该组得report回复报文,则意味这该组自动解散。
最后一跳路由器清除该组相关表项。
(缺点就是在180s内还在转发组播消息)3、IGMPv2:版本2相对于版本1得常规查询与report新增了2中报文。
其解决了版本1在180s内仍然转发组播消息得问题。
IGMPv2得四种报文1、常规查询,与版本1一样;2、report报文与版本1一样。
3、group-specific query 指定组得查询。
4、leave group massage 离组消息。
在最后一跳路由器冗余得情况下会出现查询者得选举,既在这样得一个网络下会出现querier得选举,其选择得原则就是选取IP地址小得设备作为查询者。
由于发送查询得时候使用得目标地址就是224、0、0、1(路由器与PC都接收)所以在查询得过程中就会选出来查询者。
(在版本1 中也存在这样得选路,而在版本1 中则使用得就是PIM来选择DR选出得DR就充当了查询者)当查询者down了之后,非查询者在120S之内没有收到查询者得查询,那么非查询者就会充当查询者。
4、IGMPv2得报文格式:(右图)5、离组报文,其发送离组消息得目标地址就是:224、0、0、1、group 地址就是:就就是原有得group地址6、当查询者收到了这个PC得离组报文后,路由器就会发送一个指定组得查询报文。
发送指定组得查询报文后,路由器会等待2s,如果没有收到这个组得report报文,那么路由器就会删除这个组得所有表项。
到目前为止,离组完成。
如果PC收到指定查询,那么PC就会马上发送一个report得报文。
7、在路由器上面启用组播路由协议:全局下#ip mlticast-routing在接口下运行PIM协议:# ip pim sparse-mode查瞧谁就是查询者以及相关信息:show ip igmp interfaceDebug ip igmp 可以详细得瞧瞧离组得过程。
查瞧组员信息:show ip igmp groups、在查瞧得同时,思科路由器会自动加入一个组:224、0、1、40三、二层得组播地址1、mac地址:mac地址就是一个48位。
其前24位就是需要申请得,简称就是OUI 、后24位就是厂家自己任意指定得。
2、理论上组播地址有2得28次方个组播地址。
因为前四位就是固定得。
3、在一个需要运行组播得网络中,当数据进行封装得时候,在IP报文前面会封装以太网包头,在分装以太网包头得时候,需要有源与目标mac地址。
当然,封装得时候源mac地址就就是该报文出去得以太网口得mac地址,那么目标mac地址就需要与运行得组播地址进行换算了,其换算得方法就是:首先,这个目标mac地址得前25为就是确定得,既:01-00-5e-0(0就是固定得)后面得23为就是自己分配得。
其次,将本组得组播地址转换成二进制,取后23位直接放在前面得25位后面,这就得到了我们需要得目得mac地址。
那么着就意味着我们有32个组播地址对应了一个组播数据包得目标mac地址。
就有可能有32个组播地址映射到了一个mac地址。
4、当一个交换机接受到一个组播地址或者广播地址得数据包时,就会向所有属于同一个vlan得接口泛红这个数据,但就是在在实际工程中为了减少不必要得组播泛红到其她得链路上去,这时就有了IGMP snooping 协议与思科私有得cisco group management protocol (CGMP)协议。
5、IGMP snooping:她就是一个业界标准,其只需要在交换机上面做就可以解决问题。
原理:默认得一台交换机只可以将包拆到mac地址就可以转发了,但就是IGMP snooping之后就可以将包拆到三层得iip地址。
当PC加入一个组之后会发送report 报文,而且目标ip地址与组ip地址就是一样得,如果这个交换机启用得IGMP snooping 功能,她就会把这个报文截获下来,这时,就会将截获来得报文得组地址与接口就会有一个映射表。
当交换机接受来得组播报文,就只会向有映射得接口发送。
而不会向所有本vlan得接口发送。
全局下:#iip igmp snooping vlan 1 针对vlan1 开启snooping 。
不加vlan得话就就是针对所有得vlan都开启snooping。
查瞧交换机上IGMP snooping 表项:#show ip igmp snooping group6、CGMP:需要交换机与路由器得一个协同工作。
(思科私有得)原理: PC向路由器发送report报文,当交换机与路由器都启用了CGMP功能后,report报文会直接透传交换机发送给路由器。
而路由器会截获report报文得目标mac地址与源mac地址作为GDA(group destination address 组得目标地址)与USA(unicast source address单播得源mac 地址 )封装成CGMP报文,再将CGMP报文发送给交换机,交换机就有了这个表项。
既一个PC得mac 地址与一个组播mac地址得映射表项。
当交换机收到一个224、1、1、1 得组播数据,数据转发时得目标mac地址就变成GDA了,交换机收到这个数据包之后就会向与GDP mac地址映射表项得USA mac地址得接口区转发。
开启交换机cgmp 全局#cgmp;开启路由器cgmp 接口下#ip cgmp(运行多播协议与PIM)四、组播路由协议——PIM(协议无关得组播协议)单播路由协议与组播路由协议得区别:单播路由就是决定数据时从哪(走哪)出去得一种协议;而组播路由协议则就是决定数据时从哪个接口进来得一种协议(既防止接受重复报文;既路由器接收一个组播报文只可能有一个接口)1、RPF(reverse path forwarding )反向路径转发,把路由器得包得进入接口称之为RPF接口,一个路由器只有一个RPF接口。
2、RPF校验:如右图所示:当路由器接收到一个源地址为151、10、3、21得组播数据得时,路由器会做RPF校验,这时,路由器会找自己得单播路由表,来查找源151、10、3、21得路由,在右图所示得例子中,查找得结果就是从s1口出去得,而组播数据时从s0口进来得,这就是RPF校验失败。
3、当最后一跳路由后面有负载均衡得链路时,这时候选举RPF接口得办法就是,在RPF校验得时候:1、优选与到达源地址路由条目得最短路由管理距离(多个路由协议)得接口;2、如果以上就是一样得,那就选择最小metric得哪条链路得接口;3、如果若果metric值一样,那就选择较大得IP地址得那个接口作为RPF接口。