ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

华为ME60二层组播配置实战:IGMP Snooping与跨VLAN转发详解

华为ME60二层组播配置实战:IGMP Snooping与跨VLAN转发详解 简介这份资源是华为ME60 V800R011C10版本的二层组播配置指南面向负责ME60多业务控制网关运维与组播业务部署的网络工程师及技术学习者。内容围绕IGMP Snooping机制展开系统讲解二层组播转发表的建立与按需分发原理并覆盖配置注意事项、静态二层组播、SSM Mapping、IGMP Snooping Proxy、基于用户VLAN的组播VLAN、表项限制、CAC、PW快速恢复、二层组播实例以及MLD Snooping、MLD Snooping Proxy、IPv6 SSM Mapping等IPv6场景功能同时给出维护命令与配置举例。资源包为1个PDF文件大小约1.87MB章节编号清晰、便于按功能模块检索查阅。目前已有189人学习下载适合需要掌握二层组播配置方法、排查组播转发问题或对照案例完成设备调试的读者参考使用。1. 华为 ME60 二层组播配置从 IGMP Snooping 到跨 VLAN 转发的落地拆解手里有一台 ME60上游是 BRAS 或 SR下游挂着 IPTV 组播业务用户投诉换台卡顿、部分频道黑屏抓包一看二层全是广播泛洪——这种场景我遇到过不止一次。华为 ME60 V800R011C10 配置指南里的二层组播章节解决的正是这个问题它利用 IGMP Snooping 侦听上游三层设备和下游主机之间的 IGMP 协议报文在数据链路层建立端口与组播 MAC 地址的映射关系让组播数据只往有接收者的端口转发而不是在 VLAN 内广播。这份指南覆盖了 IGMP Snooping、静态二层组播、SSM Mapping、Proxy、组播 VLAN、表项限制、CAC、MLD Snooping 等十几个功能模块适合正在做 IPTV 或 VPLS 组播承载的接入网工程师。需要提前说清楚一点当设备同时跑二层和三层组播时二层配置会被三层继承覆盖两边必须保持一致否则你配了半天二层参数可能根本不生效——这是整份文档里最容易被忽略的硬约束。2. IGMP Snooping 基本功能使能顺序、版本匹配与查询器参数2.1 为什么必须先全局再 VLAN/VSI 使能IGMP Snooping 的工作逻辑不复杂二层设备收到主机发的 IGMP Report 报文时把收到报文的端口和报文里的组播组地址记下来形成一张映射表后续组播数据到达时只往表里记录的端口转发。但配置顺序上有个硬性要求——必须先在系统视图下全局使能才能在 VLAN 或 VSI 内使能。这个顺序反了VLAN 下的igmp-snooping enable直接报错没有任何商量余地。我一般按这个顺序操作# 第一步进入系统视图全局使能 IGMP Snooping system-view igmp-snooping enable # 第二步进入目标 VLAN使能该 VLAN 的 IGMP Snooping vlan 100 igmp-snooping enable quit # 如果需要批量使能多个 VLAN最多 10 个 igmp-snooping enable vlan 100 to 110 # 第三步提交配置 commit全局使能相当于打开设备的 IGMP Snooping 总开关VLAN/VSI 下的使能是具体到某个广播域的开关。两者都打开功能才真正生效。批量使能那条命令适合 VLAN 规划比较规整的场景比如 IPTV 业务统一走 VLAN 100 到 110一条命令搞定不用逐个进 VLAN 视图。2.2 IGMP 版本选择v2 还是 v3igmp-snooping version这个参数决定了设备能处理哪个版本的 IGMP 报文。版本号设 1 只处理 IGMPv1设 2 能处理 v1 和 v2设 3 则 v1、v2、v3 全兼容。实际部署中如果上游查询器跑的是 IGMPv2二层设备设 version 2 就够了但如果业务要做 SSM指定源组播必须上 version 3因为 SSM 模型依赖 IGMPv3 的源过滤能力。# 在 VLAN 视图下配置 IGMP Snooping 版本 vlan 100 igmp-snooping version 3 commit版本设低了会怎样如果主机发 IGMPv3 Report 而设备只支持 v2报文里的源地址信息被丢弃SSM 频道直接看不了。版本设高了不会有害但也没必要——v3 的报文处理比 v2 多一层解析对设备 CPU 有轻微额外开销。我一般建议纯 ASM 业务设 v2有 SSM 需求设 v3。2.3 路由器端口老化时间与成员动态老化时间的配合路由器端口是朝向上游三层设备的接口用来接收组播数据和发送加入信息。动态路由器端口有个老化时间默认值下如果超时没收到 IGMP Query 或 PIM Hello端口就被从路由器端口列表里删掉组播数据随之中断。网络拥塞或上游设备响应慢的时候这个老化时间需要适当调大。# 使能动态学习路由器端口 vlan 100 igmp-snooping router-learning # 调整路由器端口老化时间单位秒 igmp-snooping router-aging-time 400 commit成员动态老化时间的计算稍微绕一点。端口收到 Report 报文后老化时间 robust-count × query-interval max-response-time收到 Leave 报文后老化时间重置为robust-count × lastmember-queryinterval。这几个参数在二层设备和上游三层设备上必须配成一样的值否则二层和三层对组成员关系的判断会出现时间差表现为换台时短暂黑屏或组播流中断。# 配置查询器参数需与上游三层设备一致 vlan 100 igmp-snooping query-interval 60 igmp-snooping robust-count 2 igmp-snooping max-response-time 10 igmp-snooping lastmember-queryinterval 1 commitquery-interval是查询器发通用查询的间隔robust-count是发特定组查询的次数max-response-time是主机回复查询的最大等待时间。这三个值决定了成员动态老化时间的长短。lastmember-queryinterval是收到 Leave 后发特定组查询的间隔影响最后一个成员离开时表项多快被删除。我的经验是IPTV 场景下 query-interval 设 60 秒、robust-count 设 2、max-response-time 设 10 秒换台响应和表项收敛比较平衡。2.4 成员快速加入与快速离开的适用边界成员快速加入l2-multicast fast-channel的原理是预先为某个组播组预留系统资源等真正收到加入报文时立刻转发省去查表建表的时间。这个功能对换台速度提升明显但代价是预留的资源即使没有成员加入也占着配多了影响系统性能。我一般只对热门频道做快速加入比如央视几个高清台。# 为指定组播组配置快速加入source 和 group 按实际填写 vlan 100 l2-multicast fast-channel source-address 10.0.0.1 255.255.255.255 group-address 239.1.1.1 255.255.255.255 commit成员端口快速离开igmp-snooping prompt-leave解决的是最后一个成员离开后表项迟迟不删的问题。默认情况下设备收到 Leave 后还要等一段时间看有没有其他主机发 Report确认没人要了才删表项。配了快速离开就直接删换台更快。但这个功能有个前提VLAN/VSI 内每个接口下只能有一个接收者主机。如果一个接口下挂了多台主机比如通过 HUB 级联快速离开会导致其中一台换台时把整个接口的表项删掉其他主机跟着断流。# 配置成员端口快速离开可指定允许快速离开的组播组范围 vlan 100 igmp-snooping prompt-leave group-policy 2000 commitgroup-policy后面跟 ACL 编号用来限定哪些组播组允许快速离开。ACL 规则需要提前配好VLAN 会按 ACL 过滤收到的 Leave 报文。这个参数在多人共享一个接入端口的场景下特别有用——只对独享端口的用户开快速离开共享端口的老老实实等老化。3. 静态二层组播与 SSM Mapping长期稳定接收和版本兼容的解法3.1 静态路由器端口和静态成员端口的配置差异动态学习的路由器端口和成员端口会老化网络抖动或协议报文丢失都可能导致表项被删。如果某些组播流需要长期稳定地往固定端口发送——比如酒店客房电视系统、医院病房的固定频道——静态二层组播就是更可靠的选择。静态表项不会老化也不受协议攻击影响。静态配置分两部分静态路由器端口和静态组播组成员端口。前者让组播流稳定地从某个端口进来后者让指定组播组的数据固定往某个端口出去。# 配置静态路由器端口 vlan 100 igmp-snooping static-router-port interface gigabitethernet 1/0/1 quit # 配置静态组播组成员端口 vlan 100 igmp-snooping static-group 239.1.1.1 interface gigabitethernet 1/0/2 commit静态路由器端口配在上游接口静态成员端口配在下游用户接口。注意静态成员端口不需要主机发 IGMP Report设备会一直往这个端口转发指定组的组播流。如果端口下没有实际接收者带宽就白白浪费了。所以静态成员端口只适合接收者固定的场景用户会动态换台的场景还是用动态学习更合适。3.2 SSM Mapping 解决 IGMPv1/v2 主机的 SSM 需求SSMSource-Specific Multicast要求主机用 IGMPv3 报文指定组播源地址。但现网里大量老机顶盒只支持 IGMPv1 或 v2发不了带源地址的 Report。SSM Mapping 就是给这些老设备兜底的在二层设备上配好组播组和源的映射关系老主机发 IGMPv2 的 Join 报文时设备根据映射表自动补上源地址转成 SSM 加入。# 使能 SSM Mapping 并配置映射规则 vlan 100 igmp-snooping version 3 igmp-snooping ssm-mapping enable igmp-snooping ssm-mapping group-address 232.1.1.1 source-address 10.0.0.1 commitgroup-address是组播组地址source-address是对应的组播源。一个组可以映射多个源设备会为每个源分别建立表项。SSM Mapping 的前提是 IGMP Snooping 版本必须设成 3因为设备内部需要用 IGMPv3 的表项结构来存储源信息。配完以后用display igmp-snooping ssm-mapping检查映射表是否生效。3.3 IGMP Snooping Proxy 的代理逻辑与带宽节省没有 Proxy 的时候同一个 VLAN 里 50 台主机看同一个频道50 个 IGMP Report 报文全部透传到上游三层设备上游设备要维护 50 个成员关系。IGMP Snooping Proxy 把这 50 个 Report 聚合成 1 个发给上游上游只需要维护 1 个成员关系。上游的组播流下来后二层设备再根据自己维护的组成员表复制给 50 台主机。# 在 VLAN 内使能 IGMP Snooping Proxy vlan 100 igmp-snooping proxy enable commitProxy 生效后上游设备看到的只有一个成员二层设备承担了组成员管理的职责。这个功能在接入网里几乎是必配的——一个 BRAS 下面挂几千个用户不配 Proxy 的话上游 IGMP 表项直接爆掉。配了 Proxy 之后上游表项数量从用户数降到 VLAN 数压力小几个数量级。3.4 基于用户 VLAN 的组播 VLAN跨 VLAN 复制转发组播 VLAN 解决的是这样一个问题组播源在 VLAN 10用户在 VLAN 100 到 200如果每个用户 VLAN 都单独从上游拉一份组播流上行带宽浪费严重。组播 VLAN 的做法是让组播流在 VLAN 10 里只传一份到了接入设备再复制到各个用户 VLAN。# 配置组播 VLAN 和用户 VLAN 的映射 vlan 10 multicast-vlan enable multicast-vlan user-vlan 100 to 200 commitmulticast-vlan enable把 VLAN 10 标记为组播 VLANmulticast-vlan user-vlan指定哪些用户 VLAN 可以从这个组播 VLAN 复制数据。用户 VLAN 里的主机发 IGMP Report 时设备把 Report 转到组播 VLAN 的上游端口组播流下来后在组播 VLAN 内转发同时复制到有成员的用户 VLAN。这个功能在 IPTV 城域网里用得很多核心思路就是“上行一份下行按需复制”。4. 二层组播表项限制、CAC 与 PW 快速恢复带宽管控和可靠性4.1 表项限制与 CAC 的区别和配合二层组播表项限制管的是“能加多少个组”CAC 管的是“能占多少带宽”。两者配合使用才能既防组数爆炸又防带宽超限。表项限制的配置比较直接# 在 VLAN 内限制组播组数量 vlan 100 igmp-snooping group-limit 50 commitgroup-limit 50表示这个 VLAN 内最多允许 50 个组播组同时存在。超过 50 个加入请求会被拒绝。这个值要根据接入设备的组播复制能力和上行带宽来定——如果一台设备最多能复制 2G 组播流量每个高清频道 8M那理论上限是 250 个组但实际要考虑 CPU 和内存开销一般设 100 到 150 比较稳妥。CAC 的配置更细一些可以按组播组数量和带宽两个维度限制# 在 VSI 视图下配置二层组播 CAC vsi iptv-vsi igmp-snooping enable l2-multicast cac enable l2-multicast cac group-limit 30 l2-multicast cac bandwidth 500000 commitgroup-limit 30限制最多 30 个组bandwidth 500000限制总带宽 500M单位 Kbps。CAC 还支持按节目提供商的频道单独管理这个在有多家内容商的场景下有用——防止一家内容商的频道把带宽占满其他内容商的用户加不进来。4.2 PW 快速恢复延迟删除表项换来的秒级切换VPLS 组网里PW伪线故障切换是个绕不开的问题。主 PW 断了备用 PW 升为主用但备用 PW 上如果没有提前学习组播转发表项切换后要重新等 IGMP Report 建表这段时间组播流是断的。PW 快速恢复的思路是PW Down 后不立即删除出接口下的二层组播转发表项而是延迟一段时间再删。如果 PW 很快恢复表项还在组播流立刻就能转发。# 配置 PW 快速恢复 vsi iptv-vsi igmp-snooping enable l2-multicast pw-fast-recovery enable l2-multicast pw-fast-recovery delay-time 30 commitdelay-time 30表示 PW Down 后延迟 30 秒再删表项。这个值设太小起不到保护作用设太大则 PW 真的断了之后表项占着资源不释放。一般设 20 到 60 秒比较合理取决于 PW 保护倒换的实际耗时。4.3 备用设备快速转发组播流PW 快速恢复解决的是表项延迟删除的问题备用设备快速转发解决的是备用设备提前学习表项的问题。在 VPLS 双归场景下备用设备上的 PW 处于阻塞状态组播协议报文过不来备用设备学不到组播转发表。配了备用设备快速转发后备用设备可以通过备用链路收到 IGMP Query 和 Report 报文提前建好表项。# 在备用设备上配置组播协议报文转发 vsi iptv-vsi igmp-snooping enable l2-multicast backup-query forward source-mac-replace l2-multicast backup-report forward source-mac-replace commitbackup-query forward让备用设备往备用链路上转发 IGMP Query 报文backup-report forward让备用设备接收备用链路上的 Report/Leave 报文。source-mac-replace参数把协议报文里的源 MAC 替换成备用设备的 MAC避免上游设备看到重复的源 MAC 产生混淆。这两个命令配合使用备用设备在主 PW 正常时就能学到组播转发表主备切换时组播流几乎无中断。5. 避坑与排查二层组播配置里最容易翻车的五个点5.1 二层和三层组播配置不一致导致二层配置失效现象在 VLAN 下配了 IGMP Snooping 参数display igmp-snooping configuration看配置也在但组播流转发行为跟预期不符像是二层配置根本没起作用。原因设备同时运行二层和三层组播时二层组播会继承三层组播的配置。如果三层组播的 IGMP 版本、查询器参数跟二层配的不一样二层实际生效的是三层继承下来的值自己配的被覆盖了。解决配置前先确认设备上是否跑了三层组播。如果跑了二层和三层的关键参数——IGMP 版本、query-interval、robust-count、max-response-time——必须配成一致。改完用display igmp-snooping configuration和display igmp configuration对比两边的参数值确认没有冲突。5.2 MLD Snooping 不支持 BD 和组播 VLAN现象在 BDBridge Domain或组播 VLAN 场景下配 MLD Snooping命令敲下去报错或者配了不生效。原因ME60 的 MLD Snooping 有明确的场景限制——不支持 BD、不支持组播 VLAN、不支持二层组播实例、不支持二层组播 CAC。这些限制在配置注意事项里写得很清楚但实际配的时候容易忽略。解决IPv6 组播场景下如果业务需要 BD 或组播 VLANMLD Snooping 这条路走不通。要么改用其他方案要么确认业务是否真的需要这些特性。配之前先翻一遍配置注意事项里的限制表比配完再排查省时间。5.3 成员端口快速离开在共享端口下误删表项现象一个接口下挂了两台机顶盒其中一台换台时另一台也跟着断流几秒后恢复。原因配了igmp-snooping prompt-leave设备收到 Leave 报文后立即删除该接口对应的组播表项不等其他主机发 Report。共享端口下一台主机离开时把整个接口的表项删了其他主机跟着遭殃。解决共享端口下不要开快速离开或者用group-policy限定只有独享端口的用户才能快速离开。判断端口是独享还是共享看接口下挂了几台主机——通过交换机级联多个机顶盒的端口就是共享端口。5.4 路由器端口老化时间过短导致组播流频繁中断现象组播业务隔一段时间断几秒然后自动恢复周期性出现。原因动态路由器端口老化时间设得太短网络拥塞时 IGMP Query 或 PIM Hello 报文没及时到达路由器端口超时被删组播流中断。等下一个 Query 周期到了重新学习业务恢复。解决把igmp-snooping router-aging-time适当调大默认值不够就设 400 秒甚至更长。同时检查上游设备的 Query 发送间隔确保二层的老化时间大于上游 Query 间隔的 3 倍以上。5.5 组播 VLAN 用户 VLAN 映射漏配导致部分用户看不了现象组播 VLAN 配好了部分用户能看部分用户看不了看不了的用户集中在某几个 VLAN。原因multicast-vlan user-vlan命令里漏配了那几个 VLAN或者 VLAN 范围写错了。组播流只复制到配了映射的用户 VLAN没配的 VLAN 里用户发的 IGMP Report 上不去组播流也下不来。解决用display multicast-vlan检查组播 VLAN 和用户 VLAN 的映射关系确认所有需要接收组播的用户 VLAN 都在列表里。VLAN 范围用to关键字的时候注意起止 VLAN 是否包含完整。6. 验证与进阶用 display 命令闭环确认配置生效配完二层组播怎么确认真的生效了我一般按这个顺序走一遍# 查看 IGMP Snooping 全局和 VLAN 配置 display igmp-snooping configuration # 查看路由器端口信息 display igmp-snooping router-port vlan 100 # 查看成员端口和组播组信息 display igmp-snooping port-info vlan 100 verbose # 查看二层组播转发表 display l2-multicast forwarding-table vlan 100 # 查看 SSM Mapping 表项如果配了 display igmp-snooping ssm-mappingdisplay igmp-snooping port-info verbose这条命令最有用它把 VLAN 下每个端口加入了哪些组播组、表项是什么类型动态还是静态、老化时间还剩多少全列出来。如果某个端口应该有的组播组没出现或者表项类型不对从这里就能定位问题。再进一步可以抓包确认 IGMP 报文交互是否正常# 开启 IGMP Snooping 调试谨慎使用调试信息量大 debugging igmp-snooping packet debugging igmp-snooping event # 查看调试信息 display debugging igmp-snooping调试开关在生产环境要慎用debugging igmp-snooping packet在用户量大的 VLAN 里会刷屏可能影响设备性能。我一般只在业务低谷期开几分钟抓完就关。最后说一个我踩过的坑有一次配完 IGMP Snooping Proxy上游设备看到的成员数确实降下来了但用户换台明显变慢。排查发现是 Proxy 的查询器参数跟上游不一致——Proxy 用自己的参数发查询上游用另一套参数两边对组成员老化时间的判断差了十几秒。把query-interval、robust-count、max-response-time三个值在二层和三层上配成完全一样之后换台速度恢复正常。从那以后我每次配 Proxy都强制先把上游三层设备的 IGMP 参数抄下来在二层设备上逐条对齐确认display igmp-snooping configuration和display igmp configuration两边输出一致才继续往下配。希望帮到你。本文还有配套的精品资源点击获取
返回列表