组播=多播:当网络中进行了组播网部署后,一个台设备仅需要基于一个流量进行一次封装及可将该流量转发到所有的组员处,这些组员可处在网络的任何位置;对非组员不产生影响。在未进行组播网络部署的环境下,以组播地址为目标ip时,流量将和广播传输方式完全一致;

组播中将会把流量通过唯一的一条路径发给接收流量的加组成员;

CCNP学习笔记14

 

组播部署:在第一跳和最后一条路由器间使用组播路由协议;最后一跳路由器和组员间使用

IGMP;

 

优点:占用资源极少;

缺点:基于UDP传输

  1. 不可靠
  2. 没有流控
  3. 无序性-----应用层流量自己来排序
  4. 重复性接收同一个流量(必须避免)

 

名词注解:

First-hop 第一跳路由器

Last-hop 最后一跳路由器--叶子路由器

 

组播中不存在子网掩码、网络位等概念;

有可能会遇到类似224.1.1.0 255.255.255.0这样的写法,这里表示一段组播ip,而不是一个网段;并且与普通网段一样,该段组播ip中的224.1.1.0和224.1.1.255不可用;

一般购买组播地址时需要批量购买至少一段地址,不可零售;

 

多播ip地址:IPV4中的D类地址,第一个8位为224-239

组播地址被称为扁平地址---无掩码   只能作为目标地址

 

  1. 保留地址  224.0.0.0 ---224.0.0.255 已经分配给各个协议使用

224.0.0.1-----所有的路由器和所有主机,即全世界(组播中不存在广播域的概念)   

224.0.0.2-----所有的路由器

224.0.0.4-----DVMRP

224.0.0.5--6  OSPFV2

224.0.0.9 ----RIP

224.0.0.10---EIGRP

224.0.0.13---PIM

为控制保留地址的传播半径,大多协议在使用时将TTL值设定为1;

可以使用TTL控制组播的传播半径;

 

2、公有地址  224.0.1.0---238.255.255.255

其中232.0.0.0--232.255.255.255  SSM 高级PIM,被另一个组播路由协议占用

233.0.0.0---233.255.255.255  GLOP

GLOP-----用户每购买一个AS号就增送一段组播地址

选定要被赠送的一段组播地址:

假设AS号为9949-----先化为16进制---26DD  若购买AS好小于4位,假设AS号为121,那么添加到0121再换算为16进制

再每两位分割成一段,各自转换为一个10进制值

26--38

DD--221

赠送地址组播地址为:233.38.221.0---233.38.221.255

 

 3、私有地址  239.0.0.0---239.255.255.255

仅在局域网中使用

 

多播的MAC地址:

01-00-5e-0 00000000000000000000000  32个IP地址对应一个MAC地址

组播IP地址的后23位作为组播MAC地址的后23位

224.1.1.1  224.0000 0001.0000 0001.0000 0001

01-00-5e-0 0001.0000 0001.0000 0001

225.1.1.1

01-00-5e-0 0001.0000 0001.0000 0001

224.1.1.2

01-00-5e-0 0001.0000 0001.0000 0010

 

 

IGMP-----internet组管理协议

用于最后一跳路由器和PC间工作

作用:1、确定下方是否存在加组用户及所加组地址

           2、协同交换机能够针对组播流量进行转发

 

跨层封装协议  协议号为2

V1:CCNP学习笔记14

查询包:叶子路由器每60s一个周期    180s hold time  使用224.0.0.1  TTL=1

报告包:PC收到查询后返回自己所加组的信息,同时在刚加组时主动发出

 

路由器发出查询包后,3分钟内没有收到报告,将停止发出---直到PC主动发出报告报文再周期发出

 

查询包:

源ip地址------路由器接口ip地址

目标ip地址---224.0.0.1 TTL=1

组地址----------0.0.0.0

 

报告报文:

源ip地址------PC接口ip地址

目标ip地址---所在组地址(这样设置是为了抑制本组其他成员重复回答,避免资源占用)

组地址----------所在组地址

 

注:使用所在组地址来作为目标ip地址的原因在于,只需要让叶子路由器知道某个组是否存在组员即可,没必要所有组员均回答;最先发出的报告报文将抑制其他PC发出报告;

 

若在同一广播域中,最后一跳路由器可以存在多个,那么它们中只能一台进行查询(查询者);

IGMP V1中利用了PIM选举的DR来作为查询者;ip地址最大为DR

 

 

V2:默认兼容v1;其工作原理同V1基本相同,目前大多数协议默认使用该版本

CCNP学习笔记14

最大响应时间-----0.1s为单位  响应速度加快

Tepy:

  1. 普通查询包
  2. 指定组查询包
  3. 报告(V1/V2)
  4. 离组报文

 

正常查询和报告机制同V1一致;V2中若某一个组中某台PC离开某个组;那么这台PC会向最后一跳路由器发出一个离组报文;之后叶子路由将马上针对该组发出指定组查询包,3s内若没有回应,那么删除该组信息。

 

查询包:源ip----路由器接口ip   目标ip:224.0.0.1  TTL=1    组地址:0.0.0.0

报告包:源ip----pc接口ip       目标ip:所在组ip    组地址:所在组ip

离组包:源ip----pc接口ip       目标ip:224.0.0.2  TTL=1    组地址:所离组ip

指定组查询包:源ip---路由接口ip  目标ip:指定组地址  组地址:指定组地址

 

IGMP v2中查询者同V1的功能是一样的,但选举方式不同; 路由器接口ip地址最小的叶子路由为查询者;当前查询者失效后,需要120s新的查询者才会发出查询包

在版本2中依然会每分钟发出普通查询包,若连续3分钟无应答则切断对应组的组播流量;

 

配置:若在一台路由器的接口上运行了组播路由协议;那么该接口的IGMP协议也被开启;

  1. 默认设备不支持组播路由功能,若需要运行组播路由协议,必须先开启组播路由功能;

R1(config)#ip multicast-routing

     2 在接口上运行组播路由协议来**IGMP;

R1(config)#int f0/0

R1(config-if)#ip pim sparse-mode

 

R1#show ip igmp interface fastEthernet 0/0

 

     3  用户加组---PC开启软件即可   路由器可以使用命令来进入

R3(config)#interface fastEthernet 0/0

R3(config-if)#ip igmp join-group 224.1.1.1

模拟使R3作为一台PC加入组224.1.1.1

R2#show ip igmp groups

 

IGMP协同交换机基于组播流量生成转发列表:

交换机必须为多层交换机,二层交换机只能对流量进行泛洪;

 

IGMP snooping:公有协议

在交换机上配置(若该设备支持,将默认开启)

交换机将窥探PC向路由器发出报告报文,然后将其所加入组IP地址和接口绑定,生成记录列表;

使用IGMP snooping时由于需要窥探3层ip地址,所以该功能要求交换机支持3层;

只有当流量的目标MAC地址为组播MAC时,才会窥探;

sw(config)#ip igmp snooping 开启该协议

开启IGMP snooping功能的交换机主要偷看的是每个组成员刚刚加组时主动发出的加组报告;

 

CGMP:Cisco 组成员关系协议---需要路由器和交换机协同工作

路由器将PC返回的IGMP报告报文中的PC源MAC地址和所在组MAC地址进行绑定,然后将该表下放给交换机;交换机将根据该数据流中的目标组MAC来找到对应的PCMAC和接口;

由于组播MAC地址不精确,32个IP共用同一个MAC地址,可能导致发出组播流量到错误的目标。建议在使用CGMP协议时,网络中的组播地址后23位尽量不一致,来避免错误转发组播流量的情况;

 

组播路由协议:用于第一跳路由器到存在组员的最后一跳路由

作用:

1 从源到组用户间生成唯一的一条路径;中间的路由器上存在一张组播路由表,这些路由表保证源到每个组员只有一条最佳路径,不能出现重复性流量

2 用于在第一跳路由器和存在组员的叶子路由器间进行实时收敛,生成树型结构路径,保证从源到目的地路径唯一且最短;

 

无论何种组播路由协议中,均存在一些机制来避免重复性流量

  1. RPF 反向校验
  2. 声明
  3. 树形结构

 

RPF 反向校验:用于一台路由器同时从多个接口接收到同一(同源)组播流量时,只选举出最佳一个入接口(RPF接口)。

例:

假设一台路由器收到一个组播流量,该流量从F0/0进入,其源ip地址为12.1.1.1/24;

那么本地的单播路由表必须要有到达12.1.1.1网段的路由条目,且该条目的出接口为F0/0口,那么F0/0便满足了反向校验规则。

当多个接口均满足反向校验规则时,将进行选举----一台路由器基于一个源只能存在一个RPF接口;

选举规则:

  1. 较小的AD(管理距离)
  2. 较小的度量
  3. 接收组播流量的路由器上拥有较大ip地址的接口

 

若一台路由到达源为负载均衡,那么默认选举的路径可能不是管理员希望的路由,可以使用静态组播路由协议来变更;可以实现负载分担,不同的源将流量通过不同的接口传入;

前提是这些接口均满足RPF规则

r4(config)#ip mroute 1.1.1.1 255.255.255.255 serial 1/1

                    ip地址          本地进接口

r4(config)#ip mroute 2.2.2.2 255.255.255.255 34.1.1.2

                    源ip地址           上一跳(直连)

MA网络必须使用上一跳,点到点网络中可以使用进接口。

 

声明机制:在MA网络中会遇到本地一个RPF接口对应多个流量发出接口(上一跳);

此时需要在这些出接口中选择唯一的一个出接口来发出流量;

一个网段内基于一个源地址只能存在唯一的流量出口;

比较这些接口到达源:

  1. 较小AD
  2. 接口到源的最小度量
  3. 较大接口ip地址

 

树形结构

SPT(最短路径树)---源树:一个源一颗树;源到接收者最短路径;多源多树(S,G);源到接受者路径的路由器上将记录(S,G),其中S为源,G为所加组

RPT(共享树)---------选择一个路由器作为RP,RP到目标仅一颗树  路径可能不是最优;此时组播流量接受者和源连接的第一跳路由器都会去找RP,由RP将各个源的流量发给接受者,相当于到达全网仅一棵树;由于部分路由器没有直接和源接触,而是通过RP,所以网络中的路由器上生成的记录可能为(*,G)

 

PIM:协议无关模块-----大多的组播路由协议其实让单播路由协议携带组播路由信息来实现组播路由协议的功能---MBGP/MOSPF

PIM是一个完全独立的组播路由协议,可以使用任何单播协议;

 

PIM特征:跨层封装协议--协议号103;存在hello包,30s hello time ,105s hold time;

          存在邻居关系,更新地址地址为224.0.0.13

 

PIM拥有两种模式:

  1. 密集模式--dense-mode    企业网
  2. 稀疏模式--sparse-mode    运营商

 

密集模式:一般用于接收者较多,大多用于企业内网--LAN

使用SPT树,基于push 推模型工作

先由第一跳路由器将源发出的流量推向整个网络,过程中每台路由器的RPF和声明机制开始计算并生成最佳唯一路径,生成路由表(S,G);而后无接收者的最后一跳路由器开始向源反方向发出修剪包,修剪到存在接收者路由器为止;再每180s 重复以上动作。

 

配置:

r2(config)#ip multicast-routing

r2(config)#interface s1/0

r2(config-if)#ip pim dense-mode

r2(config-if)#int s1/1

r2(config-if)#ip pim dense-mode   一个接口开启PIM协议后,可以基于IGMP工作;可以建立PIM邻居,不开启协议的接口是不会转发组播流量的

只要需要开启IGMP就必须开启PIM,IGMP由PIM附带启动;

网络中所有路由器都要开启组播路由功能和PIM;

 

PIM配置完成后将生成邻居表:

r3#show ip pim neighbor

PIM Neighbor Table

Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,

      S - State Refresh Capable

Neighbor          Interface                Uptime/Expires    Ver     DR

Address                                                        Prio/Mode

23.1.1.1          Serial1/0                00:00:54/00:01:20   v2    1 / S

34.1.1.2          Serial1/1                00:00:37/00:01:36   v2    1 / S

36.1.1.2          FastEthernet0/0          00:00:25/00:01:19    v2    1 / DR S

优先级用于选举DR,DR仅在MA网络中选举;DR在密集模式中无意义

选举DR规则,先比优先级,大优;默认为1;然后比较接口ip最大

模式:

S 状态可刷新   DR可以抢占

B 高级PIM     双向PIM

N 低版本协议中不选举DR

 

一旦源向外发出流量,第一跳路由开始推流量,各种机制开始工作,修剪开始进行后,各台路由器将生成组播路由表

r3#show ip mroute

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

       L - Local, P - Pruned, R - RP-bit set, F - Register flag,

       T - SPT-bit set, J - Join SPT, M - MSDP created entry,

       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

       U - URD, I - Received Source Specific Host Report,

       Z - Multicast Tunnel, z - MDT-data group sender,

       Y - Joined MDT-data group, y - Sending to MDT-data group

Outgoing interface flags: H - Hardware switched, A - Assert winner

 Timers: Uptime/Expires

 Interface state: Interface, Next-Hop or VCD, State/Mode

 

(*, 224.1.1.1), 00:01:30/stopped, RP 0.0.0.0, flags: D

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    FastEthernet0/0, Forward/Dense, 00:01:30/00:00:00

    Serial1/1, Forward/Dense, 00:01:30/00:00:00

    Serial1/0, Forward/Dense, 00:01:30/00:00:00

 

(12.1.1.1, 224.1.1.1), 00:01:30/00:02:54, flags: T

  Incoming interface: Serial1/0, RPF nbr 23.1.1.1

  Outgoing interface list:

    Serial1/1, Forward/Dense, 00:01:30/00:00:00

    FastEthernet0/0, Prune/Dense, 00:01:30/00:01:29

 

只要生成一条(S,G)便会出现一条(*,G);(*,G)对密集模式无意义;

 

 

稀疏模式:主要应用于ISP网络;同时使用RPT树和SPT树

              存在RP角色,拉模型

 

首先网络中选举一个RP(全网均知);叶子路由器若下方存在组员,那么便将该组的加组信息转发到RP;之后源向外发出流量,第一跳路由器将该数据包裹于单播中传递到RP注册;若存在该组,RP将该单播流量解封为组播然后转发到用户,同时告知第一跳路由器有接收者,要求停止注册;之后第一跳路由器使用推模型,推出流量;而后最后一跳路由器向源基于单播路由表进行反向修剪,开辟一条最佳路径。

这里第一跳路由器的推模型会保持180s,之后又向RP注册再重复刚才的过程;

若不存在接收者,那么将停止注册;直到下一次的流量发出;

 

 

配置:

1)配置接口工作于稀疏模式

r2(config)#ip multicast-routing

r2(config)#interface s1/0

r2(config-if)#ip pim sparse-mode

r2(config-if)#exit

r2(config)#interface s1/1

r2(config-if)#ip pim sparse-mode

 

  1. 定义RP

【1】静态RP---管理员手写

【2】auto-rp  cisco私有

【3】BSR    公有

 

【1】静态RP,告知所有路由器谁为RP(一般使用环回地址来作为RP地址,若使用环回地址,单播路由表中必须可达环回路由,同时该环回接口也必须工作PIM中,选择环回接口是因为环回接口稳定)

r3(config)#int lo0

r3(config-if)#ip pim sparse-mode

r2(config)#ip pim rp-address 3.3.3.3 在所有设备上配置

 

【2】auto-rp  cisco私有

C-RP 候选RP-----参选者    建议多个

MA  映射代理----决策者    建议多个

 

C-RP会周期向224.0.1.39发出希望成为RP的信息,该组只有MA加入

MA认定IP地址最大成为RP,通过224.0.1.40 来宣布谁成为RP,所有运行PIM协议的路由均默认加入该组

 

C-RP配置--一般使用C-RP的环回地址来参选;故该环回可以被其他访问的同时,还必须工作于PIM中

r2(config)#interface lo0

r2(config-if)#ip pim sparse-mode

r2(config-if)#exit

r2(config)#ip pim send-rp-announce loopback 0 scope 5

                              参选接口 TTL默认为1,必须修改否则传输不到MA

 

MA配置:一般使用MA的环回地址来参选;故该环回可以被其他访问的同时,还必须工作于PIM中

r6(config)#ip pim send-rp-discovery loopback 0 scope 5

 

注:由于参选信息和结果的宣布均通过组播发出,而在稀疏模式中必须存在RP后才能进行组播流量的转发;故以上配置不能实现RP的选举;

r6(config)#ip pim autorp listener 在所有路由器配置该命令后,参选者会将参选信息单播发送给邻居,这样每台路由器均可收到参选信息和参选结果;

另:可以让所有的路由器运行在稀疏密集模式中

r2(config)#interface s1/0

r2(config-if)#ip pim sparse-dense-mode

让所有路由器的接口工作于以上模式,那么选举RP的信息将基于密集模式来进行;RP选举成功后,稀疏来转发网络组播流量。

 

DR的作用:在MA网络中将进行DR选举,先优先级最大,再ip地址最大

  1. 在IGMP V1中被利用成为查询者
  2. 在IGMP V2中无意义
  3. 在密集模式协议无意义
  4. 在稀疏模式下的MA网络中,第一跳和最后一跳路由器可能存在多台,那么将导致重复注册和加组;故进行DR选举,仅DR可以注册或加组;

r2(config)#int f0/0

r2(config-if)#ip pim dr-priority 2

相关文章: