14-MLD配置
本章节下载: 14-MLD配置 (270.92 KB)
目 录
本章中所指的“接口”为三层口,包括VLAN接口、三层以太网接口等。三层以太网接口是指在以太网接口视图下通过port link-mode route命令切换为三层模式的以太网接口,有关以太网接口模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网接口配置”。
MLD(Multicast Listener Discovery Protocol,组播侦听者发现协议)用于在三层设备和其直连网段中的用户主机之间建立和维护IPv6组播组成员关系。
到目前为止,MLD有两个版本:
· MLDv1(由RFC 2710定义),源自IGMPv2
· MLDv2(由RFC 3810定义),源自IGMPv3
所有版本的MLD都支持ASM(Any-Source Multicast,任意信源组播)模型;MLDv2可以直接应用于SSM(Source-Specific Multicast,指定信源组播)模型,而MLDv1则需要在MLD SSM Mapping技术的支持下才能应用于SSM模型。有关ASM和SSM模型的介绍,请参见“IP组播配置指导”中的“组播概述”。
MLDv1主要基于查询和响应机制完成对IPv6组播组成员的管理。
当一个网段内有多台运行MLD的路由器时,由于它们都能从主机那里收到MLD成员关系报告报文(Multicast Listener Report Message),因此只需其中一台路由器发送MLD查询报文(Query Message)即可,该路由器就称为MLD查询器(Querier)。这就需要有一个查询器的选举机制来确定由哪台路由器作为MLD查询器,其选举过程如下:
(1) 所有MLD路由器在初始时都认为自己是查询器,并向本地网段内的所有主机和路由器发送MLD普遍组查询(General Query)报文(目的地址为FF02::1);
(2) 本地网段中的其它MLD路由器在收到该报文后,将报文的源IPv6地址与自己的链路本地接口地址作比较。通过比较,IPv6地址最小的路由器将成为查询器,其它路由器成为非查询器(Non-Querier);
(3) 所有非查询器上都会启动一个定时器(即其它查询器存在时间定时器Other Querier Present Timer)。在定时器超时前,如果收到了来自查询器的MLD查询报文,则重置该定时器;否则,就认为原查询器失效,并发起新的查询器选举过程。
图1-1 MLD查询响应示意图
如图1-1所示,假设Host B与Host C想要收到发往IPv6组播组G1的IPv6组播数据,而Host A想要收到发往IPv6组播组G2的IPv6组播数据,那么主机加入IPv6组播组以及MLD查询器(Router B)维护IPv6组播组成员关系的基本过程如下:
(1) 主机会主动向其要加入的IPv6组播组发送MLD成员关系报告报文以声明加入,而不必等待MLD查询器发来的MLD查询报文;
(2) MLD查询器(Router B)周期性地以组播方式向本地网段内的所有主机和路由器发送普遍组查询报文(目的地址为FF02::1);
(3) 在收到该查询报文后,关注G1的Host B与Host C其中之一(这取决于谁的延迟定时器先超时)——譬如Host B会首先以组播方式向G1发送MLD成员关系报告报文,以宣告其属于G1。由于本地网段中的所有主机都能收到Host B发往G1的报告报文,因此当Host C收到该报告报文后,将不再发送同样针对G1的报告报文,因为MLD路由器(Router A和Router B)已知道本地网段中有对G1感兴趣的主机了。这个机制称为主机上的MLD成员关系报告抑制机制,该机制有助于减少本地网段的信息流量;
(4) 与此同时,由于Host A关注的是G2,所以它仍将以组播方式向G2发送报告报文,以宣告其属于G2;
(5) 经过以上的查询和响应过程,MLD路由器了解到本地网段中有G1和G2的成员,于是由IPv6组播路由协议(如IPv6 PIM)生成(*,G1)和(*,G2)组播转发项作为IPv6组播数据的转发依据,其中的“*”代表任意IPv6组播源;
(6) 当由IPv6组播源发往G1或G2的IPv6组播数据经过组播路由到达MLD路由器时,由于MLD路由器上存在(*,G1)和(*,G2)组播转发项,于是将该IPv6组播数据转发到本地网段,接收者主机便能收到该IPv6组播数据了。
当一个主机离开某IPv6组播组时:
(1) 该主机向本地网段内的所有IPv6组播路由器(目的地址为FF02::2)发送离开组(Done)报文;
(2) 当查询器收到该报文后,向该主机所声明要离开的那个IPv6组播组发送特定组查询(Multicast-Address-Specific Query)报文(目的地址字段和组地址字段均填充为所要查询的IPv6组播组地址);
(3) 如果该网段内还有该IPv6组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间(Maximum Response Delay)内发送成员关系报告报文;
(4) 如果在最大响应时间内收到了该IPv6组播组其它成员发送的成员关系报告报文,查询器就会继续维护该IPv6组播组的成员关系;否则,查询器将认为该网段内已无该IPv6组播组的成员,于是不再维护这个IPv6组播组的成员关系。
MLDv2在兼容和继承MLDv1的基础上,进一步增强了主机的控制能力,并增强了MLD状态。
MLDv2增加了针对IPv6组播源的过滤模式(INCLUDE/EXCLUDE),使主机在加入某IPv6组播组G的同时,能够明确要求接收或拒绝来自某特定IPv6组播源S的IPv6组播信息。当主机加入IPv6组播组时:
· 若要求只接收来自指定IPv6组播源如S1、S2、……发来的IPv6组播信息,则其报告报文中可以标记为INCLUDE Sources(S1,S2,……);
· 若拒绝接收来自指定IPv6组播源如S1、S2、……发来的IPv6组播信息,则其报告报文中可以标记为EXCLUDE Sources(S1,S2,……)。
如图1-2所示,网络中存在Source 1(S1)和Source 2(S2)两个IPv6组播源,均向IPv6组播组G发送IPv6组播报文。Host B仅对从Source 1发往G的信息感兴趣,而对来自Source 2的信息没有兴趣。
图1-2 指定源组的IPv6组播流路经
如果主机与路由器之间运行的是MLDv1,Host B加入IPv6组播组G时无法对IPv6组播源进行选择,因此无论Host B是否需要,来自Source 1和Source 2的IPv6组播信息都将传递给Host B。
当主机与路由器之间运行了MLDv2之后,Host B就可以要求只接收来自Source 1、发往G的IPv6组播信息(S1,G),或要求拒绝来自Source 2、发往G的IPv6组播信息(S2,G),这样就只有来自Source 1的IPv6组播信息才能传递给Host B了。
运行MLDv2的组播路由器按每条直连链路上的组播地址(per multicast address per attached link)来保持IPv6组播组的状态。IPv6组播组的状态包括:
· 过滤模式:保持对INCLUDE或EXCLUDE的状态跟踪。
· 源列表:保持对新增或删除IPv6组播源的跟踪。
· 定时器:表示IPv6组播地址超时后切换到INCLUDE模式的过滤定时器、关于源记录的源定时器等。
MLD依据接口来维护组成员关系,各实例的MLD根据接口所属的实例来处理协议报文的收发。当路由器收到MLD报文时,需要区分该报文所属的实例,并在该实例范围内对其进行处理。当某实例内的MLD需要和其它IPv6组播协议交互信息时,只会通知本实例内的其它IPv6组播协议。
与MLD相关的协议规范有:
· RFC 2710:Multicast Listener Discovery (MLD) for IPv6
· RFC 3810:Multicast Listener Discovery Version 2 (MLDv2) for IPv6
表1-1 MLD配置任务简介
配置MLD基本功能 |
|||
配置MLD版本 |
|||
配置IPv6组播组过滤器 |
|||
调整MLD性能 |
配置IPv6组播组成员快速离开 |
在配置MLD基本功能之前,需完成以下任务:
· 配置任一IPv6单播路由协议,实现网络层互通
在配置MLD基本功能之前,需准备以下数据:
· MLD的版本
· 以静态方式加入的IPv6组播组和IPv6组播源的地址
· IPv6组播组过滤的ACL规则
在需要建立和维护IPv6组播组成员关系的接口上使能MLD。
使能IPv6组播路由,并进入IPv6 MRIB视图 |
缺省情况下,IPv6组播路由处于关闭状态 本命令的详细介绍请参见“IP组播命令参考”中的“IPv6组播路由与转发” |
|
使能MLD |
由于不同版本MLD协议的报文结构与种类不同,因此需要为同一网段上的所有路由器配置相同版本的MLD,否则MLD将不能正常运行。
配置MLD的版本 |
缺省情况下,MLD的版本为MLDv1 |
在配置了静态加入IPv6组播组或组播源组后,接口将作为该IPv6组播组的虚拟组成员存在,从而可以接收发往该组的IPv6组播数据,以测试IPv6组播数据的转发。
在配置了静态加入后,接口并不会对MLD查询器发出的查询报文进行响应;当配置静态加入或取消静态加入的配置时,接口也不会主动发送MLD成员关系报告报文或MLD离开组报文。也就是说,该接口并没有真正成为该IPv6组播组的成员。
在运行IPv6 PIM-SM的设备上配置静态加入时,如果待配接口上同时使能了MLD和IPv6 PIM-SM,则该接口必须为IPv6 PIM-SM的DR,否则该接口将不能加入IPv6组播组或组播源组;如果待配接口上使能了MLD但未使能IPv6 PIM-SM,则该接口必须为MLD查询器,否则该接口也不能加入IPv6组播组或组播源组。有关IPv6 PIM-SM和DR的介绍,请参见“IP组播配置指导”中的“IPv6 PIM”。
配置静态加入IPv6组播组或组播源组 |
mld static-group ipv6-group-address [ source ipv6-source-address ] |
缺省情况下,接口没有以静态方式加入任何IPv6组播组或组播源组 |
如果不希望接口所在网段上的主机加入某些IPv6组播组,可在该接口上配置IPv6 ACL规则作为过滤器,接口将按照该规则对收到的MLD成员关系报告报文进行过滤,只为该规则所允许的IPv6组播组维护组成员关系。
表1-5 配置IPv6组播组过滤器
配置IPv6组播组过滤器 |
缺省情况下,接口上没有配置IPv6组播组过滤器,即该接口下的主机可以加入任意IPv6组播组 |
由于IPv6组播组过滤器只能过滤MLD报文,因此无法对接口静态加入IPv6组播组或组播源组进行限制。
在调整MLD性能之前,需完成以下任务:
· 配置任一IPv6单播路由协议,实现网络层互通
· 配置MLD基本功能
在某些应用(如ADSL拨号上网)中,MLD查询器的一个端口唯一对应着一台接收者主机,当主机在多个IPv6组播组间频繁切换(如进行电视选台)时,为了快速响应主机的离开组报文,可以在MLD查询器上开启MLD快速离开功能。
在使能了MLD快速离开功能之后,当MLD查询器收到来自主机的离开组报文时,不再发送MLD特定组查询报文或MLD特定源组查询报文,而是直接向上游发送离开通告,这样一方面减小了响应延迟,另一方面也节省了网络带宽。
表1-6 配置IPv6组播组成员快速离开
使能IPv6组播组成员快速离开功能 |
缺省情况下,IPv6组播组成员快速离开功能处于关闭状态 |
执行reset mld group命令可能导致接收者中断IPv6组播信息的接收。
在完成上述配置后,在任意视图下执行display命令可以显示配置后MLD的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除MLD的统计信息。
表1-7 MLD显示和维护
显示MLD组播组的信息 |
|
显示接口上MLD配置和运行信息 |
|
清除MLD组的动态加入记录 |
· 网络中运行OSPFv3和IPv6 PIM-DM,接收者通过组播方式接收视频点播信息,不同组织的接收者组成末梢网络N1和N2,Host A与Host C分别为N1和N2中的组播信息接收者。
· Switch A通过Vlan-interface100连接N1,通过Vlan-interface101连接IPv6 PIM网络中的其它设备。
· Switch B与Switch C分别通过各自的Vlan-interface200连接N2,并分别通过Vlan-interface201和Vlan-interface202连接IPv6 PIM网络中的其它设备。
· Switch A与N1之间运行MLDv1,Switch A为MLD查询器;Switch B、Switch C与N2之间也分别运行MLDv1,且由于Switch B的接口IPv6地址较小,因此由其充当MLD查询器。
· 通过配置,使N1中的主机只能加入IPv6组播组FF1E::101,而对N2中的主机则无任何限制。
图1-3 MLD典型配置组网图
(1) 配置IPv6地址和IPv6单播路由协议
请按照图1-3配置各接口的IPv6地址和前缀长度,并在IPv6 PIM-DM域内的各交换机上配置OSPFv3协议,具体配置过程略。
(2) 使能IPv6组播路由,并使能IPv6 PIM-DM和MLD
# 在Switch A上使能IPv6组播路由,在接口Vlan-interface101上使能IPv6 PIM-DM,并在接口Vlan-interface100上使能MLD。
[SwitchA] ipv6 multicast routing
[SwitchA-mrib6] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld enable
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 101
[SwitchA-Vlan-interface101] ipv6 pim dm
[SwitchA-Vlan-interface101] quit
# 在Switch B上使能IPv6组播路由,在接口Vlan-interface201上使能IPv6 PIM-DM,并在接口Vlan-interface200上使能MLD。
[SwitchB] ipv6 multicast routing
[SwitchB-mrib6] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] mld enable
[SwitchB-Vlan-interface200] quit
[SwitchB] interface vlan-interface 201
[SwitchB-Vlan-interface201] ipv6 pim dm
[SwitchB-Vlan-interface201] quit
# 在Switch C上使能IPv6组播路由,在接口Vlan-interface202上使能IPv6 PIM-DM,并在接口Vlan-interface200上使能MLD。
[SwitchC] ipv6 multicast routing
[SwitchC-mrib6] quit
[SwitchC] interface vlan-interface 200
[SwitchC-Vlan-interface200] mld enable
[SwitchC-Vlan-interface200] quit
[SwitchC] interface vlan-interface 202
[SwitchC-Vlan-interface202] ipv6 pim dm
[SwitchC-Vlan-interface202] quit
(3) 配置IPv6组播组过滤器
# 在Switch A上限定接口Vlan-interface100下的主机只能加入IPv6组播组FF1E::101。
[SwitchA] acl ipv6 number 2001
[SwitchA-acl6-basic-2001] rule permit source ff1e::101 128
[SwitchA-acl6-basic-2001] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] mld group-policy 2001
[SwitchA-Vlan-interface100] quit
# 在Switch B上显示接口Vlan-interface200上MLD配置和运行的信息。
[SwitchB] display mld interface vlan-interface 200
Vlan-interface200(FE80::200:5EFF:FE66:5100):
MLD is enabled.
MLD version: 1
Query interval for MLD: 125s
Other querier present time for MLD: 255s
Maximum query response time for MLD: 10s
Querier for MLD: FE80::200:5EFF:FE66:5100 (This router)
MLD groups reported in total: 1
当某主机发送了加入IPv6组播组G的报文后,离该主机最近的路由器上却没有IPv6组播组G的组成员信息。
· 组网、接口连线的正确与否以及接口的协议层是否up将直接影响IPv6组播组成员信息的生成;
· 在路由器上必须使能IPv6组播路由,在连接主机的接口上必须使能MLD;
· 如果路由器接口上运行的MLD版本比主机的低,那么路由器将无法识别主机发来的较高版本的MLD报告报文;
· 如果在接口上使用命令mld group-policy对加入IPv6组播组G进行了限制后,该接口将不再接收未通过过滤的那些要求加入IPv6组播组G的报文。
(1) 检查组网是否正确,接口间的连线是否正确,以及接口状态是否正常,是否配置了正确的IPv6地址。通过命令display mld interface查看接口信息。若无接口信息输出,说明接口状态异常,原因通常是接口上配置了shutdown命令,或者接口连线不正确,或者接口上没有配置正确的IPv6地址。
(2) 检查是否使能了IPv6组播路由。通过命令display current-configuration查看是否配置了命令ipv6 multicast routing。若缺少该配置,则需要在系统视图下执行命令ipv6 multicast routing使能IPv6组播路由,同时也需要在相应接口上使能MLD。
(3) 检查接口上运行的MLD版本。通过命令display mld interface来检查接口上运行的MLD版本是否低于主机所使用的版本。
(4) 检查接口上是否配置了IPv6 ACL规则来限制主机加入IPv6组播组G。通过命令display current-configuration interface观察是否配置了mld group-policy命令。如果配置的IPv6 ACL规则对加入IPv6组播组G进行了限制,则需要修改该IPv6 ACL规则,允许接受IPv6组播组G的报告报文。
在同一网段的不同MLD路由器上,各自维护的组成员关系不一致。
· 运行MLD的路由器为每个接口维护多个参数,各参数之间相互影响,非常复杂。如果同一网段路由器的MLD接口参数配置不一致,必然导致组成员关系的混乱。
· 另外,MLD目前有2个版本,版本不同的MLD路由器与主机之间虽然可以部分兼容,但是连接在同一网段的所有路由器必须运行相同版本的MLD。如果同一网段路由器的MLD版本不一致,也将导致MLD组成员关系的混乱。
(1) 检查MLD配置。通过命令display current-configuration观察接口上MLD的配置信息。
(2) 在同一网段的所有路由器上执行命令display mld interface来检查MLD相关定时器的参数,确保配置一致。
(3) 通过命令display mld interface来检查各路由器上运行的MLD版本是否一致。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!