在 EX 系列交换机 VLAN 上配置 MLD 侦听(CLI 过程)
您可以在 VLAN 上启用 MLD 侦听,以限制 VLAN 上 IPv6 组播流量泛洪。启用 MLD 侦听后,交换机将检查主机和组播路由器之间的 MLD 消息,并了解哪些主机有兴趣接收组播组的组播流量。然后,交换机根据了解到的信息,仅将 IPv6 组播流量转发到连接到相关接收方的接口,而不是将流量泛洪到所有接口。
默认情况下,交换机上不启用 MLD 侦听。要在所有 VLAN 上启用 MLD 侦听,请执行以下操作:
[edit] user@switch# set protocols mld-snooping vlan all
对于许多网络,MLD 侦听不需要进一步配置。
您可以为每个 VLAN 执行以下可选配置:
在特定 VLAN 上有选择地启用 MLD 侦听。
注意:您无法在辅助 VLAN 上配置 MLD 侦听。
为接口启动时交换机在接口上发送的常规查询指定 MLD 版本。
在一个 VLAN 或所有 VLAN 上启用立即离开。立即离开可减少当接口上的最后一个成员主机离开组时交换机停止转发组播流量所需的时间长度。
将接口配置为 VLAN 或所有 VLAN 的静态组播路由器接口,这样交换机就无需动态了解该接口是组播路由器接口。
将接口配置为组播组的静态成员,这样交换机就不需要动态学习接口的成员资格。
更改某些计时器和计数器的值,以匹配在用作 MLD 查询器的组播路由器上配置的值。
使用该语句配置 vlan all
MLD 侦听时,任何未单独配置 MLD 侦听的 VLAN 都将继承 VLAN 的所有 配置。另一方面,任何单独配置为 MLD 侦听的 VLAN 都不会从 VLAN 全部继承其配置。任何未为单个 VLAN 显式定义的参数都将采用其默认值,而不是 VLAN 所有 配置中指定的值。例如,在以下配置中:
protocols { mld-snooping { vlan all { robust-count 8; } vlan employee { interface ge-0/0/8.0 { static { group ff1e::1; } } } } }
除 员工外,所有 VLAN 的可靠计数均为 8。由于 员工 是单独配置的,因此其 稳健计数 值不是由 VLAN all 下设置的值决定的。相反,其稳健计数是默认值 2。
在 VLAN 上启用或禁用 MLD 侦听
默认情况下,不会在任何 VLAN 上启用 MLD 侦听。您必须显式配置一个 VLAN 或所有 VLAN 以进行 MLD 侦听。
本主题介绍如何在特定 VLAN 或交换机上的所有 VLAN 上启用或禁用 MLD 侦听。
要在所有 VLAN 上启用 MLD 侦听,请执行以下操作:
[edit protocols mld-snooping] user@switch# set vlan all
要在特定 VLAN 上启用 MLD 侦听:
[edit protocols mld-snooping] user@switch# set vlan vlan-name
注意:您无法在辅助 VLAN 上配置 MLD 侦听。
例如,要启用 MLD 侦听 VLAN 教育:
[edit protocols mld-snooping] user@switch# set vlan education
要在除少数 VLAN 之外的所有 VLAN 上启用 MLD 侦听:
在所有 VLAN 上启用 MLD 侦听:
[edit protocols mld-snooping] user@switch# set vlan all
禁用单个 VLAN 上的 MLD 侦听:
[edit protocols mld-snooping] user@switch# set vlan vlan-name disable
例如,要在除 vlan100 和 vlan200 之外的所有 VLAN 上启用 MLD 侦听:
[edit protocols mld-snooping] user@switch# set vlan all
[edit protocols mld-snooping] user@switch# set vlan vlan100 disable
[edit protocols mld-snooping] user@switch# set vlan vlan200 disable
您还可以停用交换机上的 MLD 侦听协议,而无需更改 MLD 侦听 VLAN 配置:
[edit] user@switch# deactivate protocols mld-snooping
配置 MLD 版本
您可以配置启用 MLD 侦听时交换机发送的 MLD 查询版本。默认情况下,交换机使用 MLD 版本 1 (MLDv1)。如果您使用的是与协议无关的组播源特定组播 (PIM-SSM),我们建议您将交换机配置为使用 MLDv2。
通常,交换机被动监控组播路由器和主机之间发送的 MLD 消息,不发送 MLD 查询。例外情况是交换机检测到接口已启动。当接口启动时,交换机会立即向接口上的所有主机发送常规成员资格查询。通过这样做,交换机使组播路由器能够更快地学习组成员身份,而不是必须等到 MLD 查询器发送下一个常规查询。
常规查询的 MLD 版本确定主机成员身份报告的 MLD 版本,如下所示:
MLD 版本 1 (MLDv1) 常规查询 — MLDv1 和 MLDv2 主机都使用 MLDv1 成员身份报告进行响应。
MLDv2 常规查询 — MLDv2 主机使用 MLDv2 成员身份报告进行响应,而 MLDv1 主机无法响应查询。
默认情况下,交换机发送 MLDv1 查询。这可确保与仅支持 MLDv1 且无法处理 MLDv2 报告的主机和组播路由器兼容。但是,如果您的 VLAN 包含 MLDv2 组播路由器和主机,并且路由器运行的是 PIM-SSM,我们建议您为 MLDv2 配置 MLD 侦听。这样做可以让路由器快速了解接口上的主机希望从哪些组播源接收流量。
配置 MLD 版本不会限制交换机可以侦听的 MLD 消息版本。交换机可以侦听 MLDv1 和 MLDv2 消息,无论配置的 MLD 版本如何。
要在交换机上配置 MLD 版本:
[edit protocols]user@switch# set mld-snooping vlan vlan-name version number
例如,要将 VLAN 营销的 MLD 版本设置为版本 2:
[edit protocols]user@switch# set mld-snooping vlan marketing version 2
启用立即休假
默认情况下,当启用了 MLD 侦听的交换机收到成员接口上的 MLD 离开报告时,它会等待接口上的主机响应特定于 MLD 组的查询,以确定接口上是否仍有主机有兴趣接收组组播流量。如果交换机在设定的时间间隔内未看到组的任何成员资格报告,则会从组播转发表中删除接口的组成员资格,并停止将组的组播流量转发到接口。
您可以通过在 VLAN 上启用立即休假来减少此默认行为造成的休假延迟。
在 VLAN 上启用立即离开时,也会启用主机跟踪,从而允许交换机跟踪接口上已加入组播组的主机。当交换机收到来自组最后一个成员的离开报告时,它会立即停止将流量转发到接口,并且不会等待接口组成员资格超时。
MLD 版本 1 (MLDv1) 和 MLDv2 都支持立即休假。但是,对于 MLDv1,我们建议您仅在接口上只有一个 MLD 主机时才配置立即离开。在 MLDv1 中,接口上只有一个主机发送成员身份报告以响应特定于组的查询 — 任何其他感兴趣的主机都会抑制其报告。此报告抑制功能意味着交换机在任何给定时间都只知道一个感兴趣的主机。
要在 VLAN 上启用立即离开,请执行以下操作:
[edit protocols]user@switch# set mld-snooping vlan vlan-name immediate-leave
要在所有 VLAN 上启用立即保留,请执行以下操作:
[edit protocols]user@switch# set mld-snooping vlan all immediate-leave
将接口配置为组播路由器接口
在交换机上启用 MLD 侦听后,交换机会通过监控 MLD 查询或协议无关组播 (PIM) 更新的接口来确定哪些接口面向组播路由器。如果交换机在接口上收到这些消息,则会将该接口作为组播路由器接口添加到其组播转发表中。
除了动态学习的接口外,组播转发表还可以包括您明确配置为组播路由器接口的接口。与动态学习接口的表条目不同,静态配置接口的表条目不会老化并从转表中删除。
您可能需要配置静态组播路由器接口的示例包括:
您的网络配置异常,通过监控 MLD 查询或 PIM 更新,无法阻止 MLD 侦听可靠地了解组播路由器接口。
您的实现不需要 MLD 查询器。
您具有稳定的拓扑,并希望避免动态学习过程带来的延迟。
如果要配置为组播路由器接口的接口是中继端口,则该接口将成为中继端口上配置的所有 VLAN 的组播路由器接口,即使您尚未为所有 VLAN 显式配置该接口也是如此。此外,所有未注册的组播数据包(无论是 IPv4 还是 IPv6 数据包)都会转发到组播路由器接口,即使该接口配置为仅用于 MLD 侦听的组播路由器接口也是如此。
要将接口配置为静态组播路由器接口,请执行以下操作:
[edit protocols]user@switch# set mld-snooping vlan vlan-name interface interface-name multicast-router-interface
例如,要将 ge-0/0/5.0 配置为交换机上所有 VLAN 的组播路由器接口:
[edit protocols]user@switch# set mld-snooping vlan all interface ge-0/0/5.0 multicast-router-interface
在接口上配置静态组成员身份
要确定如何转发组播数据包,启用了 MLD 侦听的交换机会维护一个组播转发表,其中包含具有特定组播组相关侦听器的主机接口列表。交换机通过在 MLD 成员资格报告到达启用了 MLD 侦听的接口时检查这些主机接口,来学习要在此表中添加或删除的主机接口。
除了此类动态学习的接口之外,组播转发表还可以包括静态配置为组播组成员的接口。配置静态组接口时,交换机会将该接口作为组的主机接口添加到转发表。与动态学习接口的条目不同,静态接口条目不会老化并从转发表中删除。
您可能希望在接口上配置静态组成员身份的示例包括:
您希望模拟连接的组播接收器以进行测试。
该接口具有无法发送 MLD 成员报告的接收器。
您希望特定组的组播流量立即可供接收方使用,而不会因动态加入过程而施加任何延迟。
您无法为静态组接口配置组播源地址。静态组接口的 MLD 版本始终为 MLD 版本 1。
交换机不会代表静态配置的接口模拟 MLD 成员资格报告。因此,组播路由器可能不知道交换机的接口是组播组的成员。您可以在路由器上配置静态组接口,以确保交换机接收组组播流量。
要将主机接口配置为组播组的静态成员,请执行以下操作:
[edit protocols]user@switch# set mld-snooping vlan vlan-name interface interface-name static group ip-address
例如,要将 VLAN ip-camera-vlan 中的接口 ge-0/0/11.0 配置为组播组 ff1e::1 的静态成员:
[edit protocols]user@switch# set mld-snooping vlan ip-camera-vlan interface ge-0/0/11.0 static group ff1e::1
更改计时器和计数器值
MLD 使用各种计时器和计数器来确定 MLD 查询器发送成员身份查询的频率以及组成员身份超时的时间。在瞻博网络 EX 系列交换机上,MLD 和 MLD 侦听计时器和计数器默认值设置为适用于 IPv6 的 RFC 2710 组 播侦听器发现 (MLD) 中的建议值。这些值适用于大多数多播实现。
但是,在某些情况下,您可能希望调整计时器和计数器值,例如,减少突发性、减少离开延迟或针对子网上的预期数据包丢失进行调整。如果更改 VLAN 上 MLD 查询器的计时器或计数器值,我们建议您更改 VLAN 上所有组播路由器和交换机的值,以便所有设备几乎同时使组成员资格超时。
可在交换机上配置以下定时器和计数器:
查询间隔 — MLD 查询器在发送常规查询之间等待的时间长度(默认值为 125 秒)。您可以更改此间隔以调整子网上的 MLD 消息数量;值越大,常规查询的发送频率就越低。
您不能直接为 MLD 侦听配置此值。MLD 侦听从交换机上配置的 MLD 值继承该值,该值将应用于交换机上的所有 VLAN。
要配置 MLD 查询间隔:
[edit protocols]user@switch# set mld query-interval seconds
查询响应间隔 - 主机在响应之前可以等待的最长时间(默认值为 10 秒)。您可以更改此间隔来调整子网上 MLD 消息的突发峰值。设置较大的间隔以使流量的突发性降低。
您不能直接为 MLD 侦听配置此值。MLD 侦听从交换机上配置的 MLD 值继承该值,该值将应用于交换机上的所有 VLAN。
要配置 MLD 查询响应间隔,请执行以下操作:
[edit protocols]user@switch# set mld query-response-interval seconds
查询最后一个成员间隔 - MLD 查询器在发送特定于组的成员资格查询之间等待的时间长度(默认值为 1 秒)。MLD 查询器在收到来自主机的休假报告后发送特定于组的查询。您可以缩短此间隔,以减少在最后一个成员离开组后组播流量停止转发所需的时间。
您不能直接为 MLD 侦听配置此值。MLD 侦听从交换机上配置的 MLD 值继承该值,该值将应用于交换机上的所有 VLAN。
要配置 MLD 查询最后一个成员间隔,请执行以下操作:
[edit protocols]user@switch# set mld query-last-member-interval seconds
robust-count - 查询器重新发送常规成员资格查询或特定于组的成员资格查询的次数(默认值为 2 次)。您可以增加此计数以调整更高的预期数据包丢失。
对于 MLD 侦听,您可以为特定 VLAN 配置 稳健计数 。如果 VLAN 未配置 稳健计数 ,则会从为 MLD 配置的值继承稳健 计数 值。
要为 VLAN 上的 MLD 侦听配置 稳健计数 :
[edit protocols]user@switch# set mld-snooping vlan vlan-name robust-count number
为 查询间隔、 查询响应间隔和 稳健计数 配置的值决定了组播侦听间隔,即交换机在常规查询后等待组成员身份报告的时间长度,然后从其组播转发表中删除组播组。交换机通过将 查询间隔 乘以 稳健计数 ,然后添加 查询响应间隔来计算组播侦听间隔:
(查询间隔 x 稳健计数)+ 查询响应间隔 = 组播侦听间隔
例如,当使用 查询间隔、 查询响应间隔和 稳健计数 的默认设置时,组播侦听器间隔为 260 秒:
(125 x 2) + 10 = 260
您可以使用命令 show mld-snooping membership
显示组超时之前组播侦听器间隔中的剩余时间。