在支持 ELS 的交换机 VLAN 上配置 MLD 侦听(CLI 过程)
此任务使用支持增强型第 2 层软件 (ELS) 配置样式的 Junos OS。如果您的交换机运行的软件不支持 ELS,请参阅 在 EX 系列交换机 VLAN 上配置 MLD 侦听(CLI 过程)。有关 ELS 的详细信息,请参阅 使用增强型第 2 层软件 CLI。
您可以在 VLAN 上启用 MLD 侦听,以限制 VLAN 上 IPv6 组播流量泛洪。启用 MLD 侦听后,交换机将检查主机和组播路由器之间的 MLD 消息,并了解哪些主机有兴趣接收组播组的组播流量。然后,交换机根据了解到的信息,仅将 IPv6 组播流量转发到连接到相关接收方的接口,而不是将流量泛洪到所有接口。
您可以为每个 VLAN 执行以下配置:
在特定 VLAN 上有选择地启用 MLD 侦听。
为接口启动时交换机在接口上发送的常规查询指定 MLD 版本。
启用立即离开,以减少当接口上的最后一个成员主机离开组时交换机停止转发组播流量所需的时间。
将接口配置为静态组播路由器接口,这样交换机就不需要动态了解该接口是组播路由器接口。
将接口配置为组播组的静态成员,这样交换机就不需要动态学习接口的成员资格。
更改某些计时器和计数器的值,以匹配在用作 MLD 查询器的组播路由器上配置的值。
在 VLAN 上启用或禁用 MLD 侦听
默认情况下,不会在任何 VLAN 上启用 MLD 侦听。您必须在特定接口上显式启用 MLD 侦听。
要在特定 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 上的 MLD 侦听:
[edit protocols mld-snooping] user@switch# delete vlan vlan-name
您还可以停用交换机上的 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 interface interface-name version number
例如,要在接口 ge-0/0/2 上将 MLD 版本设置为版本 2:
[edit protocols]user@switch# set mld interface ge-0/0/2 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
将接口配置为组播路由器接口
在交换机上启用 MLD 侦听后,交换机会通过监控 MLD 查询或协议无关组播 (PIM) 更新的接口来确定哪些接口面向组播路由器。如果交换机在接口上收到这些消息,则会将该接口作为组播路由器接口添加到其组播转发表中。
除了动态学习的接口外,组播转发表还可以包括您明确配置为组播路由器接口的接口。与动态学习接口的表条目不同,静态配置接口的表条目不会老化并从转表中删除。
您可能需要配置静态组播路由器接口的示例包括:
您的网络配置异常,通过监控 MLD 查询或 PIM 更新,无法阻止 MLD 侦听可靠地了解组播路由器接口。
您的实现不需要 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 employee 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 员工中的接口 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 查询器发送成员身份查询的频率以及组成员身份超时的时间。在瞻博网络交换机上,MLD 和 MLD 侦听计时器和计数器的默认值设置为适用于 IPv6 的 RFC 2710 组 播侦听器发现 (MLD) 中建议的值。这些值适用于大多数 IPv6 组播部署。
但是,在某些情况下,您可能希望调整计时器和计数器值,例如,减少突发性、减少离开延迟或针对子网上的预期数据包丢失进行调整。如果更改 VLAN 上 MLD 查询器的计时器或计数器值,我们建议您更改 VLAN 上所有组播路由器和交换机的值,以便所有设备几乎同时使组成员资格超时。
可在交换机上配置以下定时器和计数器:
query-interval
- MLD 查询器在发送常规查询之间等待的时间长度(以秒为单位)(默认值为 125 秒)。您可以更改此间隔以调整子网上的 MLD 消息数量;值越大,常规查询的发送频率就越低。要配置 MLD 查询间隔:
[edit protocols]user@switch# set mld-snooping vlan vlan-name query-interval seconds
query-response-interval
- 主机在响应之前等待的最大时间长度(以秒为单位)(默认值为 10 秒)。您可以更改此间隔以适应子网上 MLD 消息的突发峰值。设置较大的间隔以使流量的突发性降低。要配置 MLD 查询响应间隔,请执行以下操作:
[edit protocols]user@switch# set mld-snooping vlan vlan-name query-response-interval seconds
query-last-member-interval
— MLD 查询器在发送特定于组的成员身份查询之间等待的时间长度(默认值为 1 秒)。MLD 查询器在收到来自主机的休假报告后发送特定于组的查询。您可以缩短此间隔,以减少在最后一个成员离开组后组播流量停止转发所需的时间。要配置 MLD 查询的最后一个成员间隔,请执行以下操作:
[edit protocols]user@switch# set mld-snooping vlan vlan-name query-last-member-interval seconds
robust-count
- 查询器重新发送常规成员资格查询或特定于组的成员资格查询的次数(默认值为 2 次)。您可以增加此计数以调整更高的预期数据包丢失。对于 MLD 侦听,您可以针对特定 VLAN 进行配置
robust-count
。如果未配置 VLANrobust-count
,则该值将从为 MLD 配置的值继承。要在 VLAN 上配置
robust-count
MLD 侦听,请执行以下操作:[edit protocols]user@switch# set mld-snooping vlan vlan-name robust-count number
为 query-interval
、 query-response-interval
robust-count
和 配置的值确定组播侦听间隔 — 交换机在常规查询后等待组成员身份报告的时间长度,然后从其组播转发表中删除组播组。交换机通过将值乘query-interval
以robust-count
该值,然后将 添加到query-response-interval
产品中来计算组播侦听器间隔:
query-interval
( x robust-count
) + query-response-interval
= 组播侦听器间隔
例如,当使用 、 query-response-interval
和 robust-count
的query-interval
默认设置时,组播侦听器间隔为 260 秒:
(125 x 2) + 10 = 260
要显示组超时之前组播侦听器间隔中的剩余时间,请使用 show mld-snooping membership
命令。