07-MLD Snooping配置
本章节下载: 07-MLD Snooping配置 (505.93 KB)
MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)运行在二层设备上,通过侦听三层设备与主机之间的MLD报文来生成二层组播转发表,从而管理和控制IPv6组播数据报文的转发,实现IPv6组播数据报文在二层的按需分发。
运行MLD Snooping的二层设备通过对收到的MLD报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发IPv6组播数据。
如图1-1所示,当二层设备没有运行MLD Snooping时,IPv6组播数据报文在二层网络中被广播;当二层设备运行了MLD Snooping后,已知IPv6组播组的组播数据报文不会在二层网络中被广播,而被组播给指定的接收者。
图1-1 二层设备运行MLD Snooping前后的对比
MLD Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:
· 减少了二层网络中的广播报文,节约了网络带宽;
· 增强了IPv6组播信息的安全性;
· 为实现对每台主机的单独计费带来了方便。
如图1-2所示,Router A连接IPv6组播源,在Switch A和Switch B上分别运行MLD Snooping,Host A和Host C为接收者主机(即IPv6组播组成员)。
结合图1-2,介绍一下MLD Snooping相关的端口概念:
· 路由器端口(Router Port):交换机上朝向三层组播设备(DR或MLD查询器)一侧的端口,如Switch A和Switch B各自的FortyGigE1/0/1端口。交换机将本设备上的所有路由器端口都记录在路由器端口列表中。
· 成员端口(Member Port):又称IPv6组播组成员端口,表示交换机上朝向IPv6组播组成员一侧的端口,如Switch A的FortyGigE1/0/2和FortyGigE1/0/3端口,以及Switch B的FortyGigE1/0/2端口。交换机将本设备上的所有成员端口都记录在MLD Snooping转发表中。
· 本文中提到的路由器端口都是指交换机上朝向组播路由器的端口,而不是指路由器上的端口。
· 如不特别指明,本文中提到的路由器/成员端口均包括动态和静态端口。
· 在运行了MLD Snooping的交换机上,所有收到源地址不为0::0的MLD普遍组查询报文或IPv6 PIM Hello报文的端口都将被视为动态路由器端口。
表1-1 MLD Snooping动态端口老化定时器
源地址不为0::0的MLD普遍组查询报文或IPv6 PIM Hello报文 |
|||
当一个端口动态加入某IPv6组播组时,交换机为该端口启动一个定时器,其超时时间就是动态成员端口老化时间 |
MLD成员关系报告报文 |
将该端口从MLD Snooping转发表中删除 |
MLD Snooping端口老化机制只针对动态端口,静态端口永不老化。
运行了MLD Snooping的交换机对不同MLD动作的具体处理方式如下:
MLD查询器定期向本地网段内的所有主机与路由器(FF02::1)发送MLD普遍组查询报文,以查询该网段有哪些IPv6组播组的成员。
在收到MLD普遍组查询报文时,交换机将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
· 如果在路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。
· 如果在路由器端口列表中尚未包含该动态路由器端口,则将其添加到路由器端口列表中,并启动其老化定时器。
以下情况,主机会向MLD查询器发送MLD成员关系报告报文:
· 当IPv6组播组的成员主机收到MLD查询报文后,会回复MLD成员关系报告报文。
· 如果主机要加入某个IPv6组播组,它会主动向MLD查询器发送MLD成员关系报告报文以声明加入该IPv6组播组。
在收到MLD成员关系报告报文时,交换机将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的IPv6组播组地址,并对该报文的接收端口做如下处理:
· 如果不存在该IPv6组播组所对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
· 如果已存在该IPv6组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
· 如果已存在该IPv6组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。
交换机不会将MLD成员关系报告报文通过非路由器端口转发出去,因为根据主机上的MLD成员关系报告抑制机制,如果非路由器端口下还有该IPv6组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使交换机无法获知这些端口下还有该IPv6组播组的成员主机。
当主机离开IPv6组播组时,会通过发送MLD离开组报文,以通知组播路由器自己离开了某个IPv6组播组。当交换机从某动态成员端口上收到MLD离开组报文时,首先判断要离开的IPv6组播组所对应的转发表项是否存在,以及该IPv6组播组所对应转发表项的出端口列表中是否包含该接收端口:
· 如果不存在该IPv6组播组对应的转发表项,或者该IPv6组播组对应转发表项的出端口列表中不包含该端口,交换机不会向任何端口转发该报文,而将其直接丢弃;
· 如果存在该IPv6组播组对应的转发表项,且该IPv6组播组对应转发表项的出端口列表中除该端口还有别的成员端口存在,交换机不会向任何端口转发该报文,而将其直接丢弃。同时,由于并不知道该接收端口下是否还有该IPv6组播组的其它成员,所以交换机不会立刻把该端口从该IPv6组播组所对应转发表项的出端口列表中删除,而是向该端口发送MLD特定组查询报文,并根据MLD特定组查询报文调整该端口的老化定时器(老化时间为2×MLD特定组查询报文的发送间隔);
· 如果存在该IPv6组播组对应的转发表项,且该IPv6组播组对应转发表项的出端口列表中只有该端口,交换机会将该报文通过VLAN内的所有路由器端口转发出去。同时,由于并不知道该接收端口下是否还有该IPv6组播组的其它成员,所以交换机不会立刻把该端口从该IPv6组播组所对应转发表项的出端口列表中删除,而是向该端口发送MLD特定组查询报文,并根据MLD特定组查询报文调整该端口的老化定时器(老化时间为2×MLD特定组查询报文的发送间隔)。
当MLD查询器收到MLD离开组报文后,从中解析出主机要离开的IPv6组播组的地址,并通过接收端口向该IPv6组播组发送MLD特定组查询报文。交换机在收到MLD特定组查询报文后,将其通过VLAN内的所有路由器端口和该IPv6组播组的所有成员端口转发出去。对于MLD离开组报文的接收端口(假定为动态成员端口),交换机在其老化时间内:
· 如果从该端口收到了主机响应该特定组查询的MLD成员关系报告报文,则表示该端口下还有该IPv6组播组的成员,于是重置其老化定时器;
· 如果没有从该端口收到主机响应该特定组查询的MLD成员关系报告报文,则表示该端口下已没有该IPv6组播组的成员。当该端口的老化定时器超时后,将其从该IPv6组播组所对应转发表项的出端口列表中删除。
MLD Snooping的版本决定了MLD Snooping可以处理的MLD报文的版本:
· 当MLD Snooping的版本为1时,MLD Snooping能够对MLDv1的报文进行处理,对MLDv2的报文则不进行处理,而是在VLAN内将其广播;
· 当MLD Snooping的版本为2时,MLD Snooping能够对MLDv1和MLDv2的报文进行处理。
本系列交换机仅支持版本为1的MLD Snooping。
与MLD Snooping相关的协议规范有:
· RFC 4541:Considerations for Internet Group Management Protocol (IGMP) and Multicast Listener Discovery (MLD) Snooping Switches
表1-2 MLD Snooping配置任务简介
配置MLD Snooping基本功能 |
|||
配置MLD Snooping转发表项的全局最大数量 |
|||
配置MLD特定组查询报文的发送间隔 |
可选 |
||
配置MLD Snooping端口功能 |
|||
使能端口识别MLD报文内层VLAN功能 |
可选 |
||
配置MLD普遍组查询和响应 |
|||
调整MLD报文 |
配置MLD报文的源IPv6地址 |
||
配置IPv6组播组过滤器 |
|||
配置IPv6组播数据报文源端口过滤 |
|||
配置丢弃未知IPv6组播数据报文 |
|||
配置MLD成员关系报告报文抑制 |
|||
配置端口加入的IPv6组播组最大数量 |
|||
配置IPv6组播组替换功能 |
在配置MLD Snooping基本功能之前,需完成以下任务:
在配置MLD Snooping基本功能之前,需准备以下数据:
· MLD Snooping转发表项的全局最大数量
· MLD特定组查询报文的发送间隔
在VLAN内使能MLD Snooping之前,必须先全局使能MLD Snooping。在VLAN内使能了MLD Snooping之后,MLD Snooping只在属于该VLAN的端口上生效。
用户既可在MLD-Snooping视图下对指定VLAN进行配置,也可在VLAN视图下只对当前VLAN进行配置,二者的配置优先级相同。
表1-3 在VLAN内使能MLD Snooping
全局使能MLD Snooping,并进入MLD-Snooping视图 |
缺省情况下,MLD Snooping处于全局关闭状态 |
|
使能指定VLAN内的MLD Snooping |
缺省情况下,VLAN内的MLD Snooping处于关闭状态 |
表1-4 在VLAN内使能MLD Snooping
全局使能MLD Snooping,并进入MLD-Snooping视图 |
缺省情况下,MLD Snooping处于全局关闭状态 |
|
进入VLAN视图 |
||
在VLAN内使能MLD Snooping |
缺省情况下,VLAN内的MLD Snooping处于关闭状态 |
用户可以调整MLD Snooping转发表项(包括动态表项和静态表项)的全局最大数量,当设备上维护的表项数量达到最大数量后,将不再创建新的表项,直至有表项被老化或被手工删除。
表1-5 配置MLD Snooping转发表项的全局最大数量
配置MLD Snooping转发表项的全局最大数量 |
缺省情况下,MLD Snooping转发表项的全局最大数量为4294967295 |
在配置MLD Snooping转发表项的全局最大数量时,如果设备上维护的表项数量已超过配置值,系统不会主动删除多余表项。为避免此后无法再创建新的表项,建议用户手工删除多余表项。
当二层设备从某动态成员端口上收到MLD离开组报文时,如果设备上存在要离开的IPv6组播组所对应的转发表项,且该IPv6组播组所对应转发表项的出端口列表中也包含该接收端口,则二层设备会向该端口发送MLD特定组查询报文,并根据MLD特定组查询报文调整该端口的老化定时器(老化时间为2×MLD特定组查询报文的发送间隔)。
合理配置MLD特定组查询的最大响应时间,既可以使主机对MLD查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞。
二层设备所发送的MLD特定组查询报文,其报文的最大响应时间字段由所配置的MLD特定组查询报文的发送间隔来填充,在主机在收到MLD特定组查询报文后,会为其所加入的该IPv6组播组启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的MLD特定组查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的IPv6组播组发送MLD成员关系报告报文。
用户既可在MLD-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
如果二层设备的某端口上开启了端口快速离开功能,该端口收到MLD离开组报文后,二层设备不会向该端口发送MLD特定组查询报文。
表1-6 全局配置MLD特定组查询报文的发送间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
全局配置MLD特定组查询报文的发送间隔 |
last-listener-query-interval interval |
缺省情况下,MLD特定组查询报文的发送间隔为1秒 |
表1-7 在VLAN内配置MLD特定组查询报文的发送间隔
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内配置MLD特定组查询报文的发送间隔 |
mld-snooping last-listener-query-interval interval |
缺省情况下,MLD特定组查询报文的发送间隔为1秒 |
在配置MLD Snooping端口功能之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
在配置MLD Snooping端口功能之前,需准备以下数据:
· IPv6组播组和IPv6组播源的地址
对于动态路由器端口,如果在其老化时间内没有收到MLD普遍组查询报文或者IPv6 PIM Hello报文,交换机将把该端口从路由器端口列表中删除。
对于动态成员端口,如果在其老化时间内没有收到该IPv6组播组的MLD成员关系报告报文,交换机将把该端口从该IPv6组播组所对应转发表的出端口列表中删除。
如果IPv6组播组成员的变动比较频繁,可以把动态成员端口老化时间设置小一些,反之亦然。
用户既可在MLD-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
· 如果动态路由器端口收到的是IPv6 PIMv2 Hello报文,那么该端口的老化时间将由IPv6 PIMv2 Hello报文所携带的参数决定,而不受本节配置的影响。
· 如果二层设备向动态成员端口主动发送MLD特定组查询报文,则该端口的老化时间将根据该MLD特定组查询报文进行调整,调整的老化时间为2×MLD特定组查询报文的发送间隔。二层设备MLD特定组查询报文发送间隔的配置,请参见“1.3.4 配置MLD特定组查询报文的发送间隔”。
表1-9 在VLAN内配置动态端口老化定时器
进入VLAN视图 |
||
在VLAN内配置动态路由器端口老化时间 |
||
在VLAN内配置动态成员端口老化时间 |
如果某端口所连接的主机需要固定接收发往某IPv6组播组的IPv6组播数据,可以配置该端口静态加入该IPv6组播组,成为静态成员端口。静态成员端口不会对MLD查询器发出的查询报文进行响应;当配置静态成员端口或取消静态成员端口的配置时,端口也不会主动发送MLD成员关系报告报文或MLD离开组报文。
可以通过将交换机上的端口配置为静态路由器端口,从而使交换机上收到的所有IPv6组播数据可以通过该端口被转发出去。
静态成员端口和静态路由器端口都不会老化,只能通过相应的undo命令删除。
在二层设备的端口上配置了模拟主机加入后,该模拟主机就可以模仿真实的IPv6组播组成员主机,对MLD查询器发出的查询报文进行响应,包括:
· 启动模拟主机时,该端口会主动发送一个MLD成员关系报告报文。
· 在模拟主机的运行过程中,当收到MLD查询报文时,该端口会响应一个MLD成员关系报告报文。
· 停止模拟主机时,该端口会发送一个MLD离开组报文。
· 与静态成员端口不同,配置了模拟主机加入的端口将作为动态成员端口参与动态成员端口的老化过程。
· 模拟主机所采用的MLD版本与MLD Snooping的版本一致。
配置模拟主机加入IPv6组播组 |
端口快速离开是指当端口收到主机发来的离开指定IPv6组播组的MLD离开组报文时,直接将该端口从相应转发表项的出端口列表中删除。此后,当收到针对该IPv6组播组的MLD特定组查询报文时,交换机将不再向该端口转发。
对于一个VLAN,只有当一个端口下只有一个接收者时,才建议配置本功能;否则,当一个端口下有多个接收者时,其中一个接收者的离开会触发该端口的快速离开,从而导致属于同一IPv6组播组的其它接收者无法收到IPv6组播数据。
用户既可在MLD-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。
通常情况下,设备根据端口收到的MLD报文最外层VLAN ID来创建和维护转发表项。配置本功能后,设备根据端口收到的双VLAN tag MLD报文按其内层VLAN ID来创建和维护转发表项。
表1-14 使能端口识别MLD报文内层VLAN功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
- |
开启端口对接收的双VLAN tag的MLD报文按内层VLAN ID来创建和维护转发表项 |
mld-snooping cvid-forward |
缺省情况下,端口对接收的MLD报文按外层VLAN ID来创建和维护转发表项 |
在配置MLD Snooping查询器之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
在配置MLD Snooping查询器之前,需准备以下数据:
· MLD普遍组查询报文的发送间隔
· MLD普遍组查询的最大响应时间
在运行了MLD的IPv6组播网络中,会有一台三层组播设备充当MLD查询器,负责发送MLD查询报文,使三层组播设备能够在网络层建立并维护IPv6组播转发表项,从而在网络层正常转发IPv6组播数据。
但是,在一个没有三层组播设备的网络中,由于二层设备并不支持MLD,因此无法实现MLD查询器的相关功能。为了解决这个问题,可以在二层设备上使能MLD Snooping查询器,使二层设备能够在数据链路层建立并维护IPv6组播转发表项,从而在数据链路层正常转发IPv6组播数据。
请避免在运行了MLD的网络中配置MLD Snooping查询器,因为尽管MLD Snooping查询器并不参与MLD查询器的选举,但在运行了MLD的网络中,配置MLD Snooping查询器不但没有实际的意义,反而可能会由于其发送的MLD普遍组查询报文的源IPv6地址较小而影响MLD查询器的选举。
进入VLAN视图 |
||
缺省情况下,MLD Snooping查询器处于关闭状态 |
可以根据网络的实际情况来修改MLD普遍组查询报文的发送间隔。
合理配置MLD普遍组查询的最大响应时间,既可以使主机对MLD查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞。
对于MLD普遍组查询报文,其报文最大响应时间字段由所配置的MLD普遍组查询的最大响应时间来填充,在主机收到MLD普遍组查询报文后,主机会为其所加入的每个IPv6组播组都启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的MLD普遍组查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的IPv6组播组发送MLD成员关系报告报文。
用户既可在MLD-Snooping视图下对所有VLAN进行全局配置,也可在VLAN视图下只对当前VLAN进行配置,后者的配置优先级较高。
为避免误删IPv6组播组成员,请确保MLD普遍组查询报文的发送间隔大于MLD普遍组查询的最大响应时间,否则配置虽能生效但系统会给出提示。
表1-16 全局配置MLD普遍组查询和响应
全局配置MLD普遍组查询的最大响应时间 |
缺省情况下,MLD普遍组查询的最大响应时间为10秒 |
表1-17 在VLAN内配置MLD普遍组查询和响应
进入VLAN视图 |
||
在VLAN内配置MLD普遍组查询报文的发送间隔 |
缺省情况下,MLD普遍组查询报文的发送间隔为125秒 |
|
在VLAN内配置MLD普遍组查询的最大响应时间 |
缺省情况下,MLD普遍组查询的最大响应时间为10秒 |
在调整MLD报文之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
在调整MLD报文之前,需准备以下数据:
· MLD普遍组查询报文的源IPv6地址
· MLD特定组查询报文的源IPv6地址
· MLD成员关系报告报文的源IPv6地址
· MLD离开组报文的源IPv6地址
用户可以通过本配置改变MLD Snooping查询器发送的MLD查询报文的源IPv6地址。
用户也可以通过本配置改变模拟主机发送的MLD成员关系报告报文或MLD离开组报文的源IPv6地址。
MLD查询报文源IPv6地址的改变可能会影响网段内MLD查询器的选举。
表1-18 配置MLD报文的源IPv6地址
进入VLAN视图 |
||
配置MLD普遍组查询报文的源IPv6地址 |
缺省情况下,MLD普遍组查询报文的源IPv6地址为当前VLAN接口的IPv6链路本地地址;若当前VLAN接口没有IPv6链路本地地址,则采用FE80::02FF:FFFF:FE00:0001 |
|
配置MLD特定组查询报文的源IPv6地址 |
缺省情况下,如果收到过MLD普遍组查询报文,则以其源IPv6地址作为MLD特定组查询报文的源IPv6地址;否则,采用当前VLAN接口的IPv6链路本地地址;若当前VLAN接口没有IPv6链路本地地址,则采用FE80::02FF:FFFF:FE00:0001 |
|
配置MLD成员关系报告报文的源IPv6地址 |
缺省情况下,MLD成员关系报告报文的源IPv6地址为当前VLAN接口的IPv6链路本地地址;若当前VLAN接口没有IPv6链路本地地址,则采用FE80::02FF:FFFF:FE00:0001 |
|
配置MLD离开组报文的源IPv6地址 |
缺省情况下,MLD离开组报文的源IPv6地址为当前VLAN接口的IPv6链路本地地址;若当前VLAN接口没有IPv6链路本地地址,则采用FE80::02FF:FFFF:FE00:0001 |
在配置MLD Snooping策略之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
在配置MLD Snooping策略之前,需准备以下数据:
· IPv6组播组过滤的ACL规则
· 端口加入的IPv6组播组最大数量
在使能了MLD Snooping的交换机上,通过配置IPv6组播组过滤器,可以限制用户对组播节目的点播。
在实际应用中,当用户点播某个组播节目时,主机会发起一个MLD成员关系报告报文,该报文将在二层设备上接受IPv6组播组过滤器的检查,只有通过了检查,二层设备才会将该主机所属的端口加入到出端口列表中,从而达到控制用户点播组播节目的目的。
用户既可在MLD-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。
表1-19 全局配置IPv6组播组过滤器
全局配置IPv6组播组过滤器 |
缺省情况下,没有配置IPv6组播组过滤器,即主机可以加入任意合法的IPv6组播组 |
表1-20 在端口上配置IPv6组播组过滤器
在端口上配置IPv6组播组过滤器 |
缺省情况下,没有配置IPv6组播组过滤器,即主机可以加入任意合法的IPv6组播组 |
通过配置IPv6组播数据报文源端口过滤功能,可以允许或禁止端口作为IPv6组播源端口:
· 使能该功能后,端口不能连接IPv6组播源,因为该端口将过滤掉所有的IPv6组播数据报文(但允许IPv6组播协议报文通过),因此只能连接IPv6组播数据接收者。
· 关闭该功能后,端口既能连接IPv6组播源,也能连接IPv6组播数据接收者。
用户既可在MLD-Snooping视图下对指定端口进行全局配置,也可在接口视图下只对当前端口进行配置,二者的配置优先级相同。
表1-21 全局配置IPv6组播数据报文源端口过滤
使能指定端口的IPv6组播数据报文源端口过滤功能 |
缺省情况下,IPv6组播数据报文源端口过滤功能处于关闭状态 |
表1-22 在端口上配置IPv6组播数据报文源端口过滤
使能当前端口的IPv6组播数据报文源端口过滤功能 |
缺省情况下,IPv6组播数据报文源端口过滤功能处于关闭状态 |
未知IPv6组播数据报文是指在MLD Snooping转发表中不存在对应转发表项的那些IPv6组播数据报文:
· 当使能了丢弃未知IPv6组播数据报文功能时,交换机收到未知IPv6组播数据报文,只向其路由器端口转发,不在VLAN内广播。如果交换机没有路由器端口,IPv6数据报文会被丢弃,不再转发;
· 当关闭了丢弃未知IPv6组播数据报文功能时,交换机将在未知IPv6组播数据报文所属的VLAN内广播该报文。
表1-23 在VLAN内配置丢弃未知IPv6组播数据报文
进入VLAN视图 |
||
在VLAN内使能丢弃未知IPv6组播数据报文功能 |
缺省情况下,丢弃未知IPv6组播数据报文功能处于关闭状态,即对未知IPv6组播数据报文进行广播 |
当二层设备收到来自某IPv6组播组成员的MLD成员关系报告报文时,会将该报文转发给与其直连的三层设备。这样,当二层设备上存在属于某IPv6组播组的多个成员时,与其直连的三层设备会收到这些成员发送的相同MLD成员关系报告报文。
当使能了MLD成员关系报告报文抑制功能后,在一个查询间隔内二层设备只会把收到的某IPv6组播组内的第一个MLD成员关系报告报文转发给三层设备,而不继续向三层设备转发来自同一IPv6组播组的其它MLD成员关系报告报文,这样可以减少网络中的报文数量。
表1-24 配置MLD成员关系报告报文抑制
使能MLD成员关系报告报文抑制功能 |
缺省情况下,MLD成员关系报告报文抑制功能处于使能状态 |
通过配置端口加入的IPv6组播组的最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量。
表1-25 配置端口加入的IPv6组播组最大数量
配置端口加入的IPv6组播组最大数量 |
缺省情况下,未对端口加入的IPv6组播组最大数量进行限制 |
在配置端口加入的IPv6组播组最大数量时,如果当前端口上的IPv6组播组数量已超过配置值,系统将把该端口相关的所有转发表项从MLD Snooping转发表中删除,该端口下的主机都需要重新加入IPv6组播组,直至该端口上的IPv6组播组数量达到限制值为止。
由于某些特殊的原因,当前交换机或端口上通过的IPv6组播组数目有可能会超过交换机或该端口的限定;另外,在某些特定的应用中,交换机上新加入的IPv6组播组需要自动替换已存在的IPv6组播组(一个典型的应用就是“频道切换”,即用户通过加入一个新的IPv6组播组就能完成离开原IPv6组播组并切换到新IPv6组播组的动作)。
针对以上情况,可以在交换机或者某些端口上使能IPv6组播组替换功能。当交换机或端口上加入的IPv6组播组数量已达到限定值时:
· 若使能了IPv6组播组替换功能,则新加入的IPv6组播组会自动替代已存在的IPv6组播组,替代规则是替代IPv6地址最小的IPv6组播组;
· 若没有使能IPv6组播组替换功能,则自动丢弃新的MLD成员关系报告报文。
用户既可在MLD-Snooping视图下对所有端口进行全局配置,也可在接口视图下只对当前端口进行配置,后者的配置优先级较高。
表1-26 全局配置IPv6组播组替换功能
全局使能IPv6组播组替换功能 |
缺省情况下,IPv6组播组替换功能处于关闭状态 |
表1-27 在端口上配置IPv6组播组替换功能
在端口上使能IPv6组播组替换功能 |
缺省情况下,IPv6组播组替换功能处于关闭状态 |
在任意视图下执行display命令可以显示配置后MLD Snooping的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除MLD Snooping的信息。
表1-28 MLD Snooping显示和维护
· 如图1-3所示,Router A通过FortyGigE1/0/2接口连接IPv6组播源(Source),通过FortyGigE1/0/1接口连接Switch A;Router A上运行MLDv1,Switch A上运行版本1的MLD Snooping,并由Router A充当MLD查询器。
· 通过配置,使Host A和Host B能且只能接收发往IPv6组播组FF1E::101的IPv6组播数据;同时,使Switch A将收到的未知IPv6组播数据直接丢弃,避免在其所属的VLAN 100内广播。
图1-3 IPv6组策略配置组网图
请按照图1-3配置各接口的IPv6地址和前缀长度,具体配置过程略。
# 使能IPv6组播路由,在接口FortyGigE1/0/2上使能IPv6 PIM-DM,并在接口FortyGigE1/0/1上使能MLD。
[RouterA] ipv6 multicast routing
[RouterA-mrib6] quit
[RouterA] interface fortygige 1/0/1
[RouterA-FortyGigE1/0/1] mld enable
[RouterA-FortyGigE1/0/1] quit
[RouterA] interface fortygige 1/0/2
[RouterA-FortyGigE1/0/2] ipv6 pim dm
[RouterA-FortyGigE1/0/2] quit
# 全局使能MLD Snooping。
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/4添加到该VLAN中;在该VLAN内使能MLD Snooping,并使能丢弃未知IPv6组播数据报文功能。
[SwitchA-vlan100] port fortygige 1/0/1 to fortygige 1/0/4
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] mld-snooping drop-unknown
[SwitchA-vlan100] quit
# 配置IPv6组播组过滤器,以限定VLAN 100内的主机只能加入IPv6组播组FF1E::101。
[SwitchA] acl ipv6 number 2001
[SwitchA-acl6-basic-2001] rule permit source ff1e::101 128
[SwitchA-acl6-basic-2001] quit
[SwitchA] mld-snooping
[SwitchA–mld-snooping] group-policy 2001 vlan 100
[SwitchA–mld-snooping] quit
假设IPv6组播源分别向IPv6组播组FF1E::101和FF1E::202发送的IPv6组播数据,Host A和Host B也都申请加入这两个IPv6组播组。
# 显示Switch A上VLAN 100内IPv6动态组播组的MLD Snooping转发表项信息。
[SwitchA] display mld-snooping group vlan 100
Total 1 entries.
VLAN 100: Total 1 entries.
(::, FF1E::101)
Host slots (0 in total):
Host ports (2 in total):
FGE1/0/3 (00:03:23)
FGE1/0/4 (00:04:10)
由此可见,Host A和Host B所在的端口FortyGigE1/0/4和FortyGigE1/0/3均已加入IPv6组播组FF1E::101,但都未加入IPv6组播组FF1E::202,这表明IPv6组播组过滤器已生效。
· 如图1-4所示,Router A通过FortyGigE1/0/2接口连接IPv6组播源(Source),通过FortyGigE1/0/1接口连接Switch A;Router A上运行MLDv1,Switch A、Switch B和Switch C上运行版本1的MLD Snooping,并由Router A充当MLD查询器。
· Host A和Host C均为IPv6组播组FF1E::101的固定接收者(Receiver),通过将Switch C上的端口FortyGigE1/0/3和FortyGigE1/0/5配置为IPv6组播组FF1E::101的静态成员端口,可以增强IPv6组播数据在传输过程中的可靠性。
· 假设由于受STP等链路层协议的影响,为了避免出现环路,Switch A—Switch C的转发路径在正常情况下是阻断的,IPv6组播数据只能通过Switch A—Switch B—Switch C的路径传递给连接在Switch C上的接收者;要求通过将Switch A的端口FortyGigE1/0/3配置为静态路由器端口,以保证当Switch A—Switch B—Switch C的路径出现阻断时,IPv6组播数据可以几乎不间断地通过Switch A—Switch C的新路径传递给接收者。
如果没有配置静态路由器端口,那么当Switch A—Switch B—Switch C的路径出现阻断时,至少需要等待一个MLD查询和响应周期完成后,IPv6组播数据才能通过Switch A—Switch C的新路径传递给接收者,IPv6组播数据的传输在这个过程中将中断。
有关STP(Spanning Tree Protocol,生成树协议)的详细介绍,请参见“二层技术-以太网交换配置指导”中的“生成树”。
请按照图1-4配置各接口的IPv6地址和前缀长度,具体配置过程略。
# 使能IPv6组播路由,在接口FortyGigE1/0/2上使能IPv6 PIM-DM,并在接口FortyGigE1/0/1上使能MLD。
[RouterA] ipv6 multicast routing
[RouterA-mrib6] quit
[RouterA] interface fortygige 1/0/1
[RouterA-FortyGigE1/0/1] mld enable
[RouterA-FortyGigE1/0/1] quit
[RouterA] interface fortygige 1/0/2
[RouterA-FortyGigE1/0/2] ipv6 pim dm
[RouterA-FortyGigE1/0/2] quit
# 全局使能MLD Snooping。
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/3添加到该VLAN中,并在该VLAN内使能MLD Snooping。
[SwitchA-vlan100] port fortygige 1/0/1 to fortygige 1/0/3
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] quit
# 把FortyGigE1/0/3配置为静态路由器端口。
[SwitchA] interface fortygige 1/0/3
[SwitchA-FortyGigE1/0/3] mld-snooping static-router-port vlan 100
[SwitchA-FortyGigE1/0/3] quit
# 全局使能MLD Snooping。
[SwitchB] mld-snooping
[SwitchB-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1和FortyGigE1/0/2添加到该VLAN中,并在该VLAN内使能MLD Snooping。
[SwitchB-vlan100] port fortygige 1/0/1 fortygige 1/0/2
[SwitchB-vlan100] mld-snooping enable
[SwitchB-vlan100] quit
# 全局使能MLD Snooping。
[SwitchC] mld-snooping
[SwitchC-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/5添加到该VLAN中,并在该VLAN内使能MLD Snooping。
[SwitchC-vlan100] port fortygige 1/0/1 to fortygige 1/0/5
[SwitchC-vlan100] mld-snooping enable
[SwitchC-vlan100] quit
# 分别在端口FortyGigE1/0/3和FortyGigE1/0/5上配置静态加入IPv6组播组FF1E::101。
[SwitchC] interface fortygige 1/0/3
[SwitchC-FortyGigE1/0/3] mld-snooping static-group ff1e::101 vlan 100
[SwitchC-FortyGigE1/0/3] quit
[SwitchC] interface fortygige 1/0/5
[SwitchC-FortyGigE1/0/5] mld-snooping static-group ff1e::101 vlan 100
[SwitchC-FortyGigE1/0/5] quit
# 显示Switch A上VLAN 100内静态路由器端口的信息。
[SwitchA] display mld-snooping static-router-port vlan 100
VLAN 100:
Router slots (0 in total):
Router ports (1 in total):
FGE1/0/3
由此可见,Switch A上的端口FortyGigE1/0/3已经成为了静态路由器端口。
# 显示Switch C上VLAN 100内IPv6静态组播组的MLD Snooping转发表项信息。
[SwitchC] display mld-snooping static-group vlan 100
Total 1 entries.
VLAN 100: Total 1 entries.
(::, FF1E::101)
Host slots (0 in total):
Host ports (2 in total):
FGE1/0/3
FGE1/0/5
由此可见,Switch C上的端口FortyGigE1/0/3和FortyGigE1/0/5已经成为了IPv6组播组FF1E::101的静态成员端口。
· 如图1-5所示,在一个没有三层设备的纯二层网络环境中,IPv6组播源Source 1和Source 2分别向IPv6组播组FF1E::101和FF1E::102发送IPv6组播数据,Host A和Host C是IPv6组播组FF1E::101的接收者(Receiver),Host B和Host D则是IPv6组播组FF1E::102的接收者;所有接收者均使用MLDv1,所有交换机上都运行版本1的MLD Snooping,并选择距IPv6组播源较近的Switch A来充当MLD Snooping查询器。
· 为防止交换机在没有二层IPv6组播转发表项时将IPv6组播数据在VLAN内广播,在所有交换机上都使能丢弃未知IPv6组播数据报文功能。
图1-5 MLD Snooping查询器配置组网图
# 全局使能MLD Snooping。
[SwitchA] mld-snooping
[SwitchA-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/3添加到该VLAN中;在该VLAN内使能MLD Snooping,并使能丢弃未知IPv6组播数据报文功能。
[SwitchA-vlan100] port fortygige 1/0/1 to fortygige 1/0/3
[SwitchA-vlan100] mld-snooping enable
[SwitchA-vlan100] mld-snooping drop-unknown
# 在VLAN 100内使能MLD Snooping查询器。
[SwitchA-vlan100] mld-snooping querier
[SwitchA-vlan100] quit
# 全局使能MLD Snooping。
[SwitchB] mld-snooping
[SwitchB-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/4添加到该VLAN中;在该VLAN内使能MLD Snooping,并使能丢弃未知IPv6组播数据报文功能。
[SwitchB-vlan100] port fortygige 1/0/1 to fortygige 1/0/4
[SwitchB-vlan100] mld-snooping enable
[SwitchB-vlan100] mld-snooping drop-unknown
[SwitchB-vlan100] quit
# 全局使能MLD Snooping。
[SwitchC] mld-snooping
[SwitchC-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/3添加到该VLAN中;在该VLAN内使能MLD Snooping,并使能丢弃未知IPv6组播数据报文功能。
[SwitchC-vlan100] port fortygige 1/0/1 to fortygige 1/0/3
[SwitchC-vlan100] mld-snooping enable
[SwitchC-vlan100] mld-snooping drop-unknown
[SwitchC-vlan100] quit
# 全局使能MLD Snooping。
[SwitchD] mld-snooping
[SwitchD-mld-snooping] quit
# 创建VLAN 100,把端口FortyGigE1/0/1到FortyGigE1/0/2添加到该VLAN中;在该VLAN内使能MLD Snooping,并使能丢弃未知IPv6组播数据报文功能。
[SwitchD-vlan100] port fortygige 1/0/1 to fortygige 1/0/2
[SwitchD-vlan100] mld-snooping enable
[SwitchD-vlan100] mld-snooping drop-unknown
[SwitchD-vlan100] quit
当MLD Snooping查询器开始工作之后,除查询器以外的所有交换机都能收到MLD普遍组查询报文。
# 显示Switch B上收到的MLD报文的统计信息。
[SwitchB] display mld-snooping statistics
Received MLD general queries: 3
Received MLDv1 specific queries: 0
Received MLDv1 reports: 12
Received MLD dones: 0
Sent MLDv1 specific queries: 0
Received MLDv2 reports: 0
Received MLDv2 reports with right and wrong records: 0
Received MLDv2 specific queries: 0
Received MLDv2 specific sg queries: 0
Sent MLDv2 specific queries: 0
Sent MLDv2 specific sg queries: 0
Received error MLD messages: 0
交换机不能实现MLD snooping二层组播功能。
MLD Snooping没有使能。
(1) 使用display mld-snooping命令查看MLD Snooping的运行状态。
(2) 如果是没有使能MLD Snooping,则需先在系统视图下使用mld-snooping命令全局使能MLD Snooping,然后在VLAN视图下使用mld-snooping enable命令使能VLAN内的MLD Snooping。
(3) 如果只是没有在相应VLAN下使能MLD Snooping,则只需在VLAN视图下使用mld-snooping enable命令使能VLAN内的MLD Snooping。
配置了IPv6组播组策略,只允许主机加入某些特定的IPv6组播组,但主机仍然可以收到发往其它IPv6组播组的IPv6组播数据。
· IPv6 ACL规则配置不正确;
· IPv6组播组策略应用不正确;
· 没有使能丢弃未知IPv6组播数据报文的功能,使得属于过滤策略之外的IPv6组播数据报文(即未知IPv6组播数据报文)被广播。
(1) 使用display acl ipv6命令查看所配置的IPv6 ACL规则,检查其是否与所要实现的IPv6组播组过滤策略相符合。
(2) 在MLD-Snooping视图或相应的接口视图下使用display this命令查看是否应用了正确的IPv6组播组策略。如果没有,则使用group-policy或mld-snooping group-policy命令应用正确的IPv6组播组策略。
(3) 使用display mld-snooping命令查看是否已使能丢弃未知IPv6组播数据报文的功能。如果没有使能,则使用mld-snooping drop-unknown命令使能丢弃未知IPv6组播数据报文功能。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!