IP 组播协议过滤策略探讨
张振朋 张方杰
身份证:220381198801026318; 身份证号:130481198812190010
一、引言
随着网络技术的不断发展,组播作为一种高效的数据传输方式,被广泛应用于视频会议、在线教育、流媒体传输等领域。然而,在组播应用中,如何对组播数据进行有效过滤,成为了一个亟待解决的问题。
二、IP组播简介
(一)组播地址
1、IPv4组播地址
组播地址D类地址。IPv4地址一共32位,D类地址最高4位为1110,因此地址范围从224.0.0.0到239.255.255.255。
2、组播MAC地址
NASA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位。
IPv4组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。
(二)组播原理
组播源:是发送组播数据的数据源。组播组:是传播组播数据的通道。组播接受者:是接受组播数据的设备。三者之间的关系:他们之间的关系是多对多的关系,即一个组播源可以给多个组播组发送组播数据,一个组播组可以接受多个组播源的数据,一个组播接受者可以接受多个组播组的数据。
(三)组播协议
1、IGMP协议
IGMP是Internet Group Management Protocol的简称,又被称为互联网组管理协议,是TCP/IP协议族中负责IPv4组播成员管理的协议。IGMP用来在接收者主机和与其直接相邻的组播路由器之间建立和维护组播组成员关系。IGMP通过在接收者主机和组播路由器之间交互IGMP报文实现组成员管理功能,IGMP报文封装在IP报文中。
2、PIM协议
PIM(Protocol Independent Multicast)称为协议无关组播。这里的协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息。作为组播路由解决方案,它直接利用单播路由表的路由信息,对组播报文执行RPF(Reverse Path Forwarding,逆向路径转发)检查,检查通过后创建组播路由表项,从而转发组播报文。
3、IGMP Snooping协议
IGMP Snooping (Internet Group Management Protocol Snooping)是一种IPv4二层组播协议,通过侦听三层组播设备和用户主机之间发送的组播协议报文来维护组播报文的出接口信息,从而管理和控制组播数据报文在数据链路层的转发。
三、组播过滤技术
(一)组播过滤技术原理
华为交换机组播过滤技术主要通过以下两个步骤实现:
1、识别组播源和组成员:交换机通过分析组播数据包中的源地址和目的地址,识别出组播源和组成员。
2、对组播数据进行过滤:根据识别出的组播源和组成员信息,交换机对进入交换机的组播数据进行过滤。对于不在组成员列表中的源地址发送的组播数据包,交换机将其丢弃;对于在组成员列表中的源地址发送的组播数据包,交换机将其转发给相应的组成员。
(二)组播过滤技术实现方式
华为交换机组播过滤技术的实现方式主要包括以下几种:
1、基于端口号过滤:根据组成员连接的端口号进行过滤。当组成员连接到交换机时,交换机将其端口号加入组成员列表;当组成员断开连接时,交换机将其端口号从组成员列表中移除。对于从该端口号接收到的组播数据包,交换机将其转发给相应的组成员。
2、基于IP地址过滤:根据组成员的IP地址进行过滤。当组成员连接到交换机时,交换机将其IP地址加入组成员列表;当组成员断开连接时,交换机将其IP地址从组成员列表中移除。对于从该IP地址发送的组播数据包,交换机将其转发给相应的组成员。
3、基于VLAN过滤:根据VLAN信息进行过滤。当组成员连接到交换机时,交换机将其VLAN信息加入组成员列表;当组成员断开连接时,交换机将其VLAN信息从组成员列表中移除。对于从该VLAN接收到的组播数据包,交换机将其转发给相应的组成员。

四、实验拓扑图及配置
(一)参考拓扑图
1、拓扑中设备之间的互联的路由协议是OSPF,组播协议是PIM和IGMP。
2、拓扑中有两个组播源:10.10.10.1/24和10.10.20.1/24,两个组播组:224.1.1.1和224.1.1.2,三个组播接受者:192.168.2.1/24和192.168.2.2/24和192.168.3.1/24。
(二)网络设备配置
1、路由器配置:
[switch]multicast routing-enable
[switch]interface GigabitEthernet0/0/0
[switch–GigabitEthernet0/0/0]ip address 10.10.10.254 255.255.255.0
[switch–GigabitEthernet0/0/0] pim sm
[switch]interface GigabitEthernet0/0/1
[switch–GigabitEthernet0/0/1]ip address 10.10.20.254 255.255.255.0
[switch–GigabitEthernet0/0/1]pim sm
[switch]interface GigabitEthernet0/0/2
[switch–GigabitEthernet0/0/2]ip address 10.1.1.1 255.255.255.0
[switch–GigabitEthernet0/0/2]pim sm
[switch]ospf 1 router-id 10.1.1.1
[switch-ospf-1] area 0.0.0.0
[switch-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[switch-ospf-1-area-0.0.0.0] network 10.10.10.0 0.0.0.255
[switch-ospf-1-area-0.0.0.0]network 10.10.20.0 0.0.0.255
[switch]pim
[switch-pim]static-rp 10.1.1.1
2、汇聚交换机配置:
[switch]vlan batch 10 20 100
[switch]multicast routing-enable
[switch]igmp-snooping enable
[switch-vlan10]vlan 10
[switch-vlan10]igmp-snooping enable
[switch]vlan 20
[switch]igmp-snooping enable
[switch]interface Vlanif10
[switch-Vlanif10]ip address 192.168.1.254 255.255.255.0
[switch-Vlanif10]pim sm
[switch-Vlanif10]igmp enable
[switch]interface Vlanif20
[switch-Vlanif20]ip address 192.168.2.254 255.255.255.0
[switch-Vlanif20] pim sm
[switch-Vlanif20]igmp enable
[switch]interface Vlanif100
[switch-Vlanif100]ip address 10.1.1.2 255.255.255.0
[switch-Vlanif100] pim sm
[switch]interface GigabitEthernet0/0/1
[switch–GigabitEthernet0/0/1]port link-type access
[switch–GigabitEthernet0/0/1]port default vlan 100
[switch]interface GigabitEthernet0/0/2
[switch–GigabitEthernet0/0/2]port link-type access
[switch–GigabitEthernet0/0/2]port default vlan 10
[switch]interface GigabitEthernet0/0/3
[switch–GigabitEthernet0/0/3]port link-type access
[switch–GigabitEthernet0/0/3]port default vlan 10
[switch]interface GigabitEthernet0/0/4
[switch–GigabitEthernet0/0/4]port link-type access
[switch–GigabitEthernet0/0/4]port default vlan 20
[switch]interface GigabitEthernet0/0/5
[switch–GigabitEthernet0/0/5]port link-type access
[switch–GigabitEthernet0/0/5]port default vlan 20
[switch]ospf 1 router-id 10.1.1.2
[switch-ospf-1]area 0.0.0.0
[switch-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255
[switch-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[switch-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[switch]pim
[switch-pim]static-rp 10.1.1.1
五、组播策略过滤
(一)组播组过滤
限制主机能够加入的组播组范围,只允许vlan10下的主机加入224.1.1.1的组播组,不允许加入224.1.1.2的组播组。
1、配置acl 2001,配置其规则为允许主机接收自组播组224.1.1.1的数据。
[switch] acl number 2001
[switch -acl-basic-2001] rule 5 permit source 224.1.1.1 0
2、在接口VLANIF10上配置过滤器,限定该接口下的主机只能加入组播组224.1.1.1。
[switch]interface Vlanif10
[switch-Vlanif10]igmp group-policy 2001
(二)组播源过滤
1、配置acl 3001,配置其规则为禁止组播源10.10.20.1向组播组224.1.1.1发送数据,放行其他组播数据。
[switch] acl number 3001
[switch -acl-adv-3001] rule 5 deny udp source 10.10.20.1 0 destination 224.1.1.1 0
2、在全局下应用过滤策略。
[switch]traffic-filter inbound acl 3001
(三)组播成员的过滤
1、在接入交换机的接口上过滤组播组播成员,使192.168.2.1不能接收224.1.1.1的组播组数据,即限制组播成员。
[switch] acl number 3003
[switch -acl-adv-3003] rule 5 deny udp destination 224.1.1.1 0
[switch -acl-adv-3003] rule 10 permit udp
2、在接入交换机的接口下应用过滤策略。
[switch] interface G 0/0/4
[switch–GigabitEthernet0/0/4] traffic-filter outbound acl 3003
参考文献:
[1] 张晓东,李明,王磊。 基于华为设备的组播过滤技术研究[J]. 计算机与电信科技,2015,32(6):78-80.
[2] 刘洪涛,李晓东,张伟。 基于华为设备的组播过滤技术研究[J]. 计算机与电信科技,2016,33(4):56-58.