在 Junos OS 交换机 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。由于 employee 是单独配置的,因此其 稳健计数 值不是由 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 侦听。
例如,要在 VLAN 教育上启用 MLD 侦听:
[edit protocols mld-snooping] user@switch# set vlan education
要在所有 VLAN 上启用 MLD 侦听(少数 VLAN 除外):
在所有 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 侦听 VLAN 配置的情况下停用交换机上的 MLD 侦听协议:
[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 消息版本。无论配置的 MLD 版本如何,交换机都可以同时侦听 MLDv1 和 MLDv2 消息。
要在交换机上配置 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 侦听通过监控 MLD 查询或 PIM 更新来可靠地获知组播路由器接口。
您的实施不需要 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 中的接口 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 查询器发送成员身份查询的频率以及组成员身份超时的时间。在瞻博网络 OS 交换机上,MLD 和 MLD 侦听计时器和计数器的默认值设置为 RFC 2710,IPv6 的组播侦听发现 (MLD) 中的建议值。这些值适用于大多数组播实现。
但是,在某些情况下,您可能需要调整计时器和计数器值,例如,以减少突发性、减少离开延迟或调整子网上的预期数据包丢失。如果更改 VLAN 上 MLD 查询器的计时器或计数器值,建议更改 VLAN 上所有组播路由器和交换机的值,以便所有设备几乎同时超时组成员资格。
交换机上可配置以下计时器和计数器:
query-interval— MLD 查询器在发送常规查询之间等待的时间长度(默认值为 125 秒)。您可以更改此间隔以调整子网上的 MLD 消息数;值越大,发送常规查询的频率越低。
您不能直接为 MLD 侦听配置此值。MLD 侦听继承交换机上配置的 MLD 值,该值将应用于交换机上的所有 VLAN。
要配置 MLD 查询间隔:
[edit protocols]user@switch# set mld query-interval seconds
query-response-interval— 主机可以等待响应的最长时间(默认值为 10 秒)。您可以更改此间隔以调整子网上 MLD 消息的突发峰值。设置更大的间隔以减少流量的突发性。
您不能直接为 MLD 侦听配置此值。MLD 侦听继承交换机上配置的 MLD 值,该值将应用于交换机上的所有 VLAN。
要配置 MLD 查询响应间隔:
[edit protocols]user@switch# set mld query-response-interval seconds
query-last-member-interval— MLD 查询器在发送特定于组的成员资格查询之间等待的时间长度(默认值为 1 秒)。MLD 查询器在收到来自主机的休假报告后,会发送特定于组的查询。您可以缩短此间隔,以减少最后一个成员离开组后组播流量停止转发所需的时间。
您不能直接为 MLD 侦听配置此值。MLD 侦听继承交换机上配置的 MLD 值,该值将应用于交换机上的所有 VLAN。
要配置 MLD query-last-member-interval:
[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
为 query-interval、 query-response-interval 和 robust-count 配置的值决定了组播侦听器间隔,即交换机在执行常规查询后等待组成员报告的时间长度,然后才能将组播组从其组播转发表中移除。交换机通过将 query-interval 乘以 robust-count ,然后添加 query-response-interval 来计算组播侦听器间隔:
(查询间隔 x 稳健计数)+ 查询响应间隔 = 组播侦听器间隔
例如,当使用 query-interval、 query-response-interval 和 robust-count 的默认设置时,组播侦听器间隔为 260 秒:
(125 x 2) + 10 = 260
您可以使用命令 show mld-snooping membership 显示组超时之前组播侦听器间隔中的剩余时间。