没人点播的组播流量也在满楼灌?华为MLD Snooping按需下发还带白名单

本文整理自华为官方发布的典型配置案例,命令与步骤均按原始文档呈现,供现场实施参考。

组播是个好东西:一路视频流、一路行情数据,源端发一份,成百上千个接收者各取所需,带宽占用不随人数增长。但二层交换机默认对组播报文的处理方式是"当广播发"——不管楼下有没有人看,组播流量一律向 VLAN 内所有端口泛洪,会议室没人看也照样灌,白白吃掉交换机和终端的处理能力。

解法是在二层交换机上启用 MLD Snooping(IPv6 环境;IPv4 环境对应 IGMP Snooping):交换机偷听主机与上游路由器之间的组成员报告报文,弄清"哪个口有哪类观众",再把组播流量精准下发到有观众的端口,没人看的端口一概不发。还能顺手配一道白名单:只允许指定范围的组播组进入用户网络。

本文场景:IPv6 组播网络,上游路由器 Router 经二层交换机 Switch 连接用户;组播源向 FF16::1~FF16::5 发数据,网内 HostA、HostB、HostC 三个接收者只对 FF16::1~FF16::3 感兴趣。目标是组播按需转发,且多余的两个组进不来。

第一步,创建 VLAN 并把三个接口加入 VLAN(分别连接收者与上游路由器):

<HUAWEI> system-view
[HUAWEI] sysname Switch
[Switch] vlan 10
[Switch-vlan10] quit
[Switch] interface gigabitethernet 1/0/1
[Switch-GigabitEthernet1/0/1] port link-type hybrid
[Switch-GigabitEthernet1/0/1] port hybrid pvid vlan 10
[Switch-GigabitEthernet1/0/1] port hybrid untagged vlan 10
[Switch-GigabitEthernet1/0/1] quit
[Switch] interface gigabitethernet 2/0/2
[Switch-GigabitEthernet2/0/2] port link-type hybrid
[Switch-GigabitEthernet2/0/2] port hybrid pvid vlan 10
[Switch-GigabitEthernet2/0/2] port hybrid untagged vlan 10
[Switch-GigabitEthernet2/0/2] quit
[Switch] interface gigabitethernet 3/0/3
[Switch-GigabitEthernet3/0/3] port link-type hybrid
[Switch-GigabitEthernet3/0/3] port hybrid pvid vlan 10
[Switch-GigabitEthernet3/0/3] port hybrid untagged vlan 10
[Switch-GigabitEthernet3/0/3] quit

第二步,全局和 VLAN10 分别使能 MLD Snooping:

[Switch] mld-snooping enable
[Switch] vlan 10
[Switch-vlan10] mld-snooping enable
[Switch-vlan10] quit

官方文档特别提醒一点:要确保 Switch 与上游 Router 的普遍组查询间隔一致,否则二层组播转发表项会被错误老化、组播流量不通;不一致时可在 VLAN10 内用 mld-snooping query-interval 调整。

第三步,配组播组过滤策略:用 IPv6 基本 ACL 放行 FF16::1 到 FF16::3,并在 VLAN10 内应用:

[Switch] acl ipv6 2000
[Switch-acl6-basic-2000] rule permit source ff16::1 128
[Switch-acl6-basic-2000] rule permit source ff16::2 128
[Switch-acl6-basic-2000] rule permit source ff16::3 128
[Switch-acl6-basic-2000] quit
[Switch] vlan 10
[Switch-vlan10] mld-snooping group-policy 2000
[Switch-vlan10] quit

验证看两张表。先看成员端口学习情况:

[Switch] display mld-snooping port-info vlan 10
--------------------------------------------------------------------------------
                             (Source, Group)  Port                          Flag
                             Flag: S:Static    D:Dynamic
--------------------------------------------------------------------------------
VLAN 10, 3 Entry(s)                                                           
                     (*, ff16:0:0:0:0:0:0:1)  GE1/0/1                      -D-
                                              GE2/0/2                      -D-
                                                       2 port(s) include
                     (*, ff16:0:0:0:0:0:0:2)  GE1/0/1                      -D-
                                              GE2/0/2                      -D-
                                                       2 port(s) include
                     (*, ff16:0:0:0:0:0:0:3)  GE1/0/1                      -D-
                                              GE2/0/2                      -D-
                                                       2 port(s) include
--------------------------------------------------------------------------------

再看二层组播转发表:

[Switch] display mld-snooping forwarding-table vlan 10
VLAN ID : 10, Forwarding Mode : IP   
Total Group(s) : 3
------------------------------------------------------------------------
                     (Source, Group)    Interface               Out-Vlan
----------------------------------------------------------------------     
                         Router-port    GigabitEthernet3/0/3       10
               (*, ff16:0:0:0:0:0:0:1)  GigabitEthernet3/0/3       10
                                        GigabitEthernet1/0/1       10
                                        GigabitEthernet2/0/2       10
               (*, ff16:0:0:0:0:0:0:2)  GigabitEthernet3/0/3       10
                                        GigabitEthernet1/0/1       10
                                        GigabitEthernet2/0/2       10
               (*, ff16:0:0:0:0:0:0:3)  GigabitEthernet3/0/3       10
                                        GigabitEthernet1/0/1       10
                                        GigabitEthernet2/0/2       10
------------------------------------------------------------------------

转发表里只有 FF16::1~FF16::3 三个组,FF16::4、FF16::5 的数据不会转发给主机——按需转发加白名单双重目标都达成了。企业里跑监控视频分发、行情推送、 IPTV 这类组播业务的,接入层配上 Snooping 是基本功,既省带宽又天然隔离了不相关的组。组播规划与排障偏冷门,真遇到整网组播断流的问题,也欢迎找贵州诚鑫致达科技协助定位。

企业存储选型参考|贵州诚鑫致达

做机架式部署与数据中心扩容,群晖机型参考:RS2423RP+ · RS1221+ · RS822+。需要选型建议或上门评估,搜「诚鑫致达」即可找到我们。

服务区域|贵州诚鑫致达

贵州群晖NAS、贵阳存储、数据备份、信创云盘或 IT 集成服务,可联系贵州诚鑫致达科技,服务范围覆盖贵州全省各市州。遵义、六盘水、安顺:群晖 NAS 部署与企业存储技术服务。