02-MLD Snooping配置
本章节下载: 02-MLD Snooping配置 (459.63 KB)
目 录
本章所指的路由器代表了一般意义下的路由设备,以及配置了路由功能的无线接入点设备。为提高可读性,在手册的描述中将不另行说明。
MLD Snooping是Multicast Listener Discovery Snooping(组播侦听者发现协议窥探)的简称。它是运行在二层设备上的IPv6组播约束机制,用于管理和控制IPv6组播组。
运行MLD Snooping的二层设备通过对收到的MLD报文进行分析,为端口和MAC组播地址建立起映射关系,并根据这样的映射关系转发IPv6组播数据。
如图1-1所示,当二层设备没有运行MLD Snooping时,IPv6组播数据报文在二层网络(包括VLAN)中被广播;当二层设备运行了MLD Snooping后,已知IPv6组播组的组播数据报文不会在二层网络中被广播,而被组播给指定的接收者。
图1-1 二层设备运行MLD Snooping前后的对比
MLD Snooping通过二层组播将信息只转发给有需要的接收者,可以带来以下好处:
· 减少了二层网络中的广播报文,节约了网络带宽;
· 增强了IPv6组播信息的安全性;
· 为实现对每台主机的单独计费带来了方便。
如图1-2所示,Router A连接组播源,在Switch和AP上分别运行MLD Snooping,Host A和Host C为接收者主机(即IPv6组播组成员)。
结合图1-2,介绍一下MLD Snooping相关的端口概念:
· 路由器端口(Router Port):交换机或AP上朝向三层组播设备(DR或MLD查询器)一侧的端口,如Switch的Ethernet1/0端口和AP的GigabitEthernet1/0/1端口。交换机将本设备上的所有路由器端口都记录在路由器端口列表中。
· 成员端口(Member Port):又称IPv6组播组成员端口,表示交换机上朝向IPv6组播组成员一侧的端口,如Switch的Ethernet1/1端口,以及AP的WLAN-BSS1和WLAN-BSS2端口。交换机或AP将本设备上的所有成员端口都记录在MLD Snooping转发表中。
· 本文中提到的路由器端口都是指交换机或AP上朝向组播路由器的端口,而不是指路由器上的端口。
· 如不特别指明,本文中提到的路由器/成员端口均包括动态和静态端口。
· 在运行了MLD Snooping的交换机上或AP,所有收到源地址不为0::0的MLD普遍组查询报文或IPv6 PIM Hello报文的端口都将被视为动态路由器端口。
表1-1 MLD Snooping动态端口老化定时器
定时器 |
说明 |
超时前应收到的报文 |
超时后AP的动作 |
动态路由器端口老化定时器 |
AP为其每个动态路由器端口都启动一个定时器,其超时时间就是动态路由器端口老化时间 |
源地址不为0::0的MLD普遍组查询报文或IPv6 PIM Hello报文 |
将该端口从路由器端口列表中删除 |
动态成员端口老化定时器 |
当一个端口动态加入某IPv6组播组时,AP为该端口启动一个定时器,其超时时间就是动态成员端口老化时间 |
MLD成员关系报告报文 |
将该端口从MLD Snooping转发表中删除 |
MLD Snooping端口老化机制只针对动态端口,静态端口永不老化。
运行了MLD Snooping的AP对不同MLD动作的具体处理方式如下:
MLD查询器定期向本地网段内的所有主机与路由器(FF02::1)发送MLD普遍组查询报文,以查询该网段有哪些IPv6组播组的成员。
在收到MLD普遍组查询报文时,AP将其通过VLAN内除接收端口以外的其它所有端口转发出去,并对该报文的接收端口做如下处理:
· 如果在路由器端口列表中已包含该动态路由器端口,则重置其老化定时器。
· 如果在路由器端口列表中尚未包含该动态路由器端口,则将其添加到路由器端口列表中,并启动其老化定时器。
以下情况,主机会向MLD查询器发送MLD成员关系报告报文:
· 当IPv6组播组的成员主机收到MLD查询报文后,会回复MLD成员关系报告报文。
· 如果主机要加入某个IPv6组播组,它会主动向MLD查询器发送MLD成员关系报告报文以声明加入该IPv6组播组。
在收到MLD成员关系报告报文时,AP将其通过VLAN内的所有路由器端口转发出去,从该报文中解析出主机要加入的IPv6组播组地址,并对该报文的接收端口做如下处理:
· 如果不存在该IPv6组播组所对应的转发表项,则创建转发表项,将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
· 如果已存在该IPv6组播组所对应的转发表项,但其出端口列表中不包含该端口,则将该端口作为动态成员端口添加到出端口列表中,并启动其老化定时器;
· 如果已存在该IPv6组播组所对应的转发表项,且其出端口列表中已包含该动态成员端口,则重置其老化定时器。
AP不会将MLD成员关系报告报文通过非路由器端口转发出去,因为根据主机上的MLD成员关系报告抑制机制,如果非路由器端口下还有该IPv6组播组的成员主机,则这些主机在收到该报告报文后便抑制了自身的报告,从而使AP无法获知这些端口下还有该IPv6组播组的成员主机。
当主机离开IPv6组播组时,会通过发送MLD离开组报文,以通知组播路由器自己离开了某个IPv6组播组。当AP从某动态成员端口上收到MLD离开组报文时,首先判断要离开的IPv6组播组所对应的转发表项是否存在,以及该IPv6组播组所对应转发表项的出端口列表中是否包含该接收端口:
· 如果不存在该IPv6组播组对应的转发表项,或者该IPv6组播组对应转发表项的出端口列表中不包含该端口,AP不会向任何端口转发该报文,而将其直接丢弃;
· 如果存在该IPv6组播组对应的转发表项,且该IPv6组播组对应转发表项的出端口列表中包含该端口,AP会将该报文通过VLAN内的所有路由器端口转发出去。同时,由于并不知道该接收端口下是否还有该IPv6组播组的其它成员,所以AP不会立刻把该端口从该IPv6组播组所对应转发表项的出端口列表中删除,而是重置其老化定时器。
当MLD查询器收到MLD离开组报文后,从中解析出主机要离开的IPv6组播组的地址,并通过接收端口向该IPv6组播组发送MLD特定组查询报文。AP在收到MLD特定组查询报文后,将其通过VLAN内的所有路由器端口和该IPv6组播组的所有成员端口转发出去。对于MLD离开组报文的接收端口(假定为动态成员端口),AP在其老化时间内:
· 如果从该端口收到了主机响应该特定组查询的MLD成员关系报告报文,则表示该端口下还有该IPv6组播组的成员,于是重置其老化定时器;
· 如果没有从该端口收到主机响应该特定组查询的MLD成员关系报告报文,则表示该端口下已没有该IPv6组播组的成员,则在其老化时间超时后,将其从该IPv6组播组所对应转发表项的出端口列表中删除。
与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 Snooping版本 |
可选 |
||
配置MLD Snooping端口功能 |
配置动态端口老化定时器 |
可选 |
|
配置静态端口 |
可选 |
||
配置模拟主机加入 |
可选 |
||
配置端口快速离开 |
可选 |
||
禁止端口成为动态路由器端口 |
可选 |
||
配置MLD Snooping查询器 |
使能MLD Snooping查询器 |
可选 |
|
配置MLD查询和响应 |
可选 |
||
配置MLD查询报文源IPv6地址 |
可选 |
||
配置MLD Snooping策略 |
配置IPv6组播组过滤器 |
可选 |
|
配置丢弃未知IPv6组播数据报文 |
可选 |
||
配置MLD成员关系报告报文抑制 |
可选 |
||
配置端口加入的IPv6组播组最大数量 |
可选 |
||
配置IPv6组播组替换 |
可选 |
||
配置MLD报文的802.1p优先级 |
可选 |
||
配置MLD Snooping主机跟踪功能 |
可选 |
对于MLD Snooping的相关配置来说:
· MLD-Snooping视图下的配置对所有VLAN都有效,VLAN视图下的配置只对当前VLAN有效。对于某VLAN来说,优先采用该VLAN视图下的配置,只有当在该VLAN视图下没有进行配置时,才采用MLD-Snooping视图下的相应配置。
· MLD-Snooping视图下的配置对所有端口都有效;二层以太网接口视图下的配置只对当前端口有效;二层聚合接口视图下的配置只对当前接口有效;端口组视图下的配置对当前端口组中的所有端口有效。对于某端口来说,优先采用二层以太网接口视图、二层聚合接口视图或端口组视图下的配置,只有当在上述视图下没有进行配置时,才采用MLD-Snooping视图下的相应配置。
· 二层聚合接口与其各成员端口上的配置互不影响,且成员端口上的配置只有当该端口退出聚合组后才会生效,二层聚合接口上的配置也不会参与聚合计算。
在配置MLD Snooping基本功能之前,需完成以下任务:
· 使能IPv6转发功能
· 配置相应VLAN
在配置MLD Snooping基本功能之前,需准备以下数据:
· MLD Snooping的版本
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
全局使能MLD Snooping,并进入MLD-Snooping视图 |
mld-snooping |
必选 缺省情况下,MLD Snooping处于关闭状态 |
退回系统视图 |
quit |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内使能MLD Snooping |
mld-snooping enable |
必选 缺省情况下,VLAN内的MLD Snooping处于关闭状态 |
· 在VLAN内使能MLD Snooping之前,必须先在系统视图下全局使能MLD Snooping,否则将无法在VLAN内使能MLD Snooping。
· 在指定VLAN内使能了MLD Snooping之后,MLD Snooping功能只在属于该VLAN的端口上生效。
配置MLD Snooping的版本,实际上就是配置MLD Snooping可以处理的MLD报文的版本:
· 当MLD Snooping的版本为1时,MLD Snooping能够对MLDv1的报文进行处理,对MLDv2的报文则不进行处理,而是在VLAN内将其广播;
· 当MLD Snooping的版本为2时,MLD Snooping能够对MLDv1和MLDv2的报文进行处理。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置MLD Snooping的版本 |
mld-snooping version version-number |
必选 缺省情况下,MLD Snooping的版本为1 |
当MLD Snooping的版本由版本2切换到版本1时,系统将清除所有通过动态加入的MLD Snooping转发表项;对于在版本2下通过手工配置而静态加入的MLD Snooping转发表项,则分为以下两种情况进行不同的处理:
· 如果配置的仅仅是静态加入IPv6组播组,而没有指定IPv6组播源,则这些转发表项将不会被清除;
· 如果配置的是指定了IPv6组播源的静态加入IPv6组播源组,则这些转发表项将会被清除,并且当再次切换回版本2时,这些转发表项将被重新恢复。
在配置MLD Snooping端口功能之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
· 配置相应端口组
在配置MLD Snooping端口功能之前,需准备以下数据:
· 动态路由器端口老化时间
· 动态成员端口老化时间
· IPv6组播组和IPv6组播源的地址
对于动态路由器端口,如果在其老化时间超时前没有收到MLD普遍组查询报文或者IPv6 PIM Hello报文,AP将把该端口从路由器端口列表中删除。
对于动态成员端口,如果在其老化时间超时前没有收到该IPv6组播组的MLD成员关系报告报文,AP将把该端口从该IPv6组播组所对应转发表的出端口列表中删除。
如果IPv6组播组成员的变动比较频繁,可以把动态成员端口老化时间设置小一些,反之亦然。
表1-5 全局配置动态端口老化定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
配置动态路由器端口老化时间 |
router-aging-time interval |
必选 缺省情况下,动态路由器端口的老化时间为260秒 |
配置动态成员端口老化时间 |
host-aging-time interval |
必选 缺省情况下,动态成员端口的老化时间为260秒 |
表1-6 在VLAN内配置动态端口老化定时器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置动态路由器端口老化时间 |
mld-snooping router-aging-time interval |
必选 缺省情况下,动态路由器端口的老化时间为260秒 |
配置动态成员端口老化时间 |
mld-snooping host-aging-time interval |
必选 缺省情况下,动态成员端口的老化时间为260秒 |
如果某端口所连接的主机需要固定接收发往某IPv6组播组的IPv6组播数据,可以配置该端口静态加入该IPv6组播组,成为静态成员端口。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
配置静态成员端口 |
mld-snooping static-group ipv6-group-address [ source-ip ipv6-source-address ] vlan vlan-id |
必选 缺省情况下,端口不是静态成员端口 |
· 静态成员端口不会对MLD查询器发出的查询报文进行响应;当配置静态成员端口或取消静态成员端口的配置时,端口也不会主动发送MLD成员关系报告报文或MLD离开组报文。
· 静态成员端口和静态路由器端口都不会老化,只能通过相应的undo命令删除。
通常情况下,运行MLD的主机会对MLD查询器发出的查询报文进行响应。如果主机由于某种原因无法响应,就可能导致组播路由器认为该网段没有该IPv6组播组的成员,从而取消相应的转发路径。
为避免这种情况的发生,可以将AP的端口配置成为IPv6组播组成员(即配置模拟主机加入)。当收到MLD查询报文时由模拟主机进行响应,从而保证该AP能够继续收到IPv6组播报文。
模拟主机加入功能的实现原理如下:
· 在某端口上使能模拟主机加入功能时,AP会通过该端口主动发送一个MLD成员关系报告报文;
· 在某端口上使能了模拟主机加入功能后,当收到MLD普遍组查询报文时,AP会通过该端口响应一个MLD成员关系报告报文;
· 在某端口上关闭模拟主机加入功能时,AP会通过该端口发送一个MLD离开组报文。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
配置模拟主机加入IPv6组播组或组播源组 |
mld-snooping host-join ipv6-group-address [ source-ip ipv6-source-address ] vlan vlan-id |
必选 缺省情况下,没有配置模拟主机加入IPv6组播组或组播源组 |
· 每配置一次模拟主机加入,即相当于启动了一台独立的主机。例如,当收到MLD查询报文时,每条配置所对应的模拟主机将分别进行响应。
· 与静态成员端口不同,配置了模拟主机加入的端口会作为动态成员端口而参与动态成员端口的老化过程。
端口快速离开是指当AP从某端口收到主机发送的离开某IPv6组播组的MLD离开组报文时,直接把该端口从对应转发表项的出端口列表中删除。此后,当AP收到对该IPv6组播组的MLD特定组查询报文时,AP将不再向该端口转发。
在AP上,在只连接有一个接收者的端口上,可以通过使能端口快速离开功能来节约带宽和资源;而在连接有多个接收者的端口上,如果AP或该端口所在的VLAN已使能了丢弃未知IPv6组播数据报文功能,则不要再使能端口快速离开功能,否则,一个接收者的离开将导致该端口下属于同一IPv6组播组的其它接收者无法收到IPv6组播数据。
表1-9 全局配置端口快速离开
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
使能端口快速离开功能 |
fast-leave [ vlan vlan-list ] |
必选 缺省情况下,端口快速离开功能处于关闭状态 |
表1-10 在端口上配置端口快速离开
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
使能端口快速离开功能 |
mld-snooping fast-leave [ vlan vlan-list ] |
必选 缺省情况下,端口快速离开功能处于关闭状态 |
目前,在IPv6组播用户接入网络中存在以下问题:
· 如果AP收到了某用户主机发来的MLD普遍组查询报文或IPv6 PIM Hello报文,那么该主机所在的端口就将成为动态路由器端口,从而使VLAN内的所有IPv6组播报文都会向该端口转发,导致该用户主机收到的IPv6组播报文失控。
· 同时,用户主机发送MLD普遍组查询报文或IPv6 PIM Hello报文,也会影响该接入网络中三层设备上的IPv6组播路由协议状态(如影响MLD查询器或DR的选举),严重时可能导致网络中断。
当禁止某端口成为动态路由器端口后,即使该端口收到了MLD普遍组查询报文或IPv6 PIM Hello报文,该端口也不会成为动态路由器端口,从而能够有效解决上述问题,提高网络的安全性和对IPv6组播用户的控制能力。
表1-11 禁止端口成为动态路由器端口
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
禁止端口成为动态路由器端口 |
mld-snooping router-port-deny [ vlan vlan-list ] |
必选 缺省情况下,不禁止端口成为动态路由器端口 |
本配置与静态路由器端口的配置互不影响。
在配置MLD Snooping查询器之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
在配置MLD Snooping查询器之前,需准备以下数据:
· 发送MLD普遍组查询报文的时间间隔
· 发送MLD特定组查询报文的时间间隔
· MLD普遍组查询的最大响应时间
· MLD普遍组查询报文的源IPv6地址
· MLD特定组查询报文的源IPv6地址
在运行了MLD的IPv6组播网络中,会有一台三层组播设备充当MLD查询器,负责发送MLD查询报文,使三层组播设备能够在网络层建立并维护IPv6组播转发表项,从而在网络层正常转发IPv6组播数据。
但是,在一个没有三层组播设备的网络中,由于二层设备并不支持MLD,因此无法实现MLD查询器的相关功能。为了解决这个问题,可以在二层设备上使能MLD Snooping查询器,使二层设备能够在数据链路层建立并维护IPv6组播转发表项,从而在数据链路层正常转发IPv6组播数据。
表1-12 在VLAN内使能MLD Snooping查询器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
使能MLD Snooping查询器 |
mld-snooping querier |
必选 缺省情况下,MLD Snooping查询器处于关闭状态 |
尽管MLD Snooping查询器并不参与MLD查询器的选举,但在运行了MLD的IPv6组播网络中,配置MLD Snooping查询器不但没有实际的意义,反而可能会由于其发送的MLD普遍组查询报文的源IPv6地址较小而影响MLD查询器的选举。有关MLD查询器的详细介绍,请参见“IP组播配置指导”中的“MLD”。
可以根据网络的实际情况来修改发送MLD普遍组查询报文的时间间隔。
在收到MLD查询报文(包括普遍组查询和特定组查询)后,主机会为其所加入的每个IPv6组播组都启动一个定时器,定时器的值在0到最大响应时间(该时间值由主机从所收到的MLD查询报文的最大响应时间字段获得)中随机选定,当定时器的值减为0时,主机就会向该定时器对应的IPv6组播组发送MLD成员关系报告报文。
合理配置MLD查询的最大响应时间,既可以使主机对MLD查询报文做出快速响应,又可以减少由于定时器同时超时,造成大量主机同时发送报告报文而引起的网络拥塞:
· 对于MLD普遍组查询报文来说,通过配置MLD普遍组查询的最大响应时间来填充其最大响应时间字段;
· 对于MLD特定组查询报文来说,所配置的发送MLD特定组查询报文的时间间隔将被填充到其最大响应时间字段。也就是说,MLD特定组查询的最大响应时间从数值上与发送MLD特定组查询报文的时间间隔相同。
表1-13 全局配置MLD查询和响应
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
配置MLD普遍组查询的最大响应时间 |
max-response-time interval |
必选 缺省情况下,MLD普遍组查询的最大响应时间为10秒 |
配置发送MLD特定组查询报文的时间间隔 |
last-listener-query-interval interval |
必选 缺省情况下,发送MLD特定组查询报文的时间间隔为1秒 |
表1-14 在VLAN内配置MLD查询和响应
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置发送MLD普遍组查询报文的时间间隔 |
mld-snooping query-interval interval |
必选 缺省情况下,发送MLD普遍组查询报文的时间间隔为125秒 |
配置MLD普遍组查询的最大响应时间 |
mld-snooping max-response-time interval |
必选 缺省情况下,MLD普遍组查询的最大响应时间为10秒 |
配置发送MLD特定组查询报文的时间间隔 |
mld-snooping last-listener-query-interval interval |
必选 缺省情况下,发送MLD特定组查询报文的时间间隔为1秒 |
应确保发送MLD普遍组查询报文的时间间隔大于MLD普遍组查询的最大响应时间,否则有可能造成对IPv6组播组成员的误删。
可以通过此项配置改变MLD查询报文的源IPv6地址。
表1-15 在VLAN内配置MLD查询报文源IPv6地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置MLD普遍组查询报文源IPv6地址 |
mld-snooping general-query source-ip { ipv6-address | current-interface } |
必选 缺省情况下,MLD普遍组查询报文的源IPv6地址为FE80::02FF:FFFF:FE00:0001 |
配置MLD特定组查询报文源IPv6地址 |
mld-snooping special-query source-ip { ipv6-address | current-interface } |
必选 缺省情况下,MLD特定组查询报文的源IPv6地址为FE80::02FF:FFFF:FE00:0001 |
MLD查询报文源IPv6地址的改变可能会影响网段内MLD查询器的选举。
在配置MLD Snooping策略之前,需完成以下任务:
· 在VLAN内使能MLD Snooping
在配置MLD Snooping策略之前,需准备以下数据:
· IPv6组播组过滤的IPv6 ACL规则
· 端口加入的IPv6组播组最大数量
· MLD报文的802.1p优先级
在使能了MLD Snooping的AP上,通过配置IPv6组播组过滤器,可以限制用户对组播节目的点播。
在实际应用中,当用户点播某个组播节目时,主机会发起一个MLD成员关系报告报文,该报文到达AP后,进行ACL检查:如果该接收端口可以加入这个IPv6组播组,则将其列入到MLD Snooping转发表中;否则AP就丢弃该报文。这样,未通过ACL检查的IPv6组播数据就不会送到该端口,从而达到控制用户点播组播节目的目的。
表1-16 全局配置IPv6组播组过滤器
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
配置IPv6组播组过滤器 |
group-policy acl6-number [ vlan vlan-list ] |
必选 缺省情况下,没有配置全局IPv6组播组过滤器,即各VLAN内主机可以加入任意合法的IPv6组播组 |
表1-17 在端口上配置IPv6组播组过滤器
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
配置IPv6组播组过滤器 |
mld-snooping group-policy acl6-number [ vlan vlan-list ] |
必选 缺省情况下,端口上没有配置IPv6组播组过滤器,即该端口下的主机可以加入任意合法的IPv6组播组 |
未知IPv6组播数据报文是指在MLD Snooping转发表中不存在对应转发表项的那些IPv6组播数据报文:
· 当使能了丢弃未知IPv6组播数据报文功能时,AP将丢弃所有收到的未知IPv6组播数据报文;
· 当关闭了丢弃未知IPv6组播数据报文功能时,AP将在未知IPv6组播数据报文所属的VLAN内广播该报文。
表1-18 全局配置丢弃未知IPv6组播数据报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
使能丢弃未知IPv6组播数据报文功能 |
drop-unknown |
必选 缺省情况下,丢弃未知IPv6组播数据报文的功能处于关闭状态,即对未知IPv6组播数据报文进行广播 |
表1-19 在VLAN内配置丢弃未知IPv6组播数据报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
使能丢弃未知IPv6组播数据报文功能 |
mld-snooping drop-unknown |
必选 缺省情况下,丢弃未知IPv6组播数据报文的功能处于关闭状态,即对未知IPv6组播数据报文进行广播 |
对于同时支持drop-unknown和mld-snooping drop-unknown这两条命令的设备来说,MLD-Snooping视图和VLAN视图下的配置是互斥的。也就是说,当在MLD-Snooping视图下全局使能了丢弃未知IPv6组播数据报文的功能后,不允许在VLAN视图下使能或关闭该功能,反之亦然。
当二层设备收到来自某IPv6组播组成员的MLD成员关系报告报文时,会将该报文转发给与其直连的三层设备。这样,当二层设备上存在属于某IPv6组播组的多个成员时,与其直连的三层设备会收到这些成员发送的相同MLD成员关系报告报文。
当使能了MLD成员关系报告报文抑制功能后,在一个查询间隔内二层设备只会把收到的某IPv6组播组内的第一个MLD成员关系报告报文转发给三层设备,而不继续向三层设备转发来自同一组播组的其它MLD成员关系报告报文,这样可以减少网络中的报文数量。
表1-20 配置MLD成员关系报告报文抑制
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
使能MLD成员关系报告报文抑制功能 |
report-aggregation |
必选 缺省情况下,MLD成员关系报告报文抑制功能处于使能状态 |
通过配置端口加入的IPv6组播组的最大数量,可以限制用户点播组播节目的数量,从而控制了端口上的数据流量。
表1-21 配置端口加入的IPv6组播组最大数量
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
配置端口加入的IPv6组播组最大数量 |
mld-snooping group-limit limit [ vlan vlan-list ] |
必选 缺省情况下,端口加入的IPv6组播组最大数量与设备的型号有关,请以设备的实际情况为准 |
在配置端口加入的IPv6组播组最大数量时,如果当前端口上的IPv6组播组数量已超过配置值,系统将把该端口相关的所有转发表项从MLD Snooping转发表中删除,该端口下的主机都需要重新加入IPv6组播组,直至该端口上的IPv6组播组数量达到限制值为止。其中,如果该端口已配置为静态成员端口,系统会将静态成员端口的配置重新生效一次;如果在该端口上配置了模拟主机加入,系统在收到模拟主机发来的报告报文之后才会重新建立相应的转发表项。
由于某些特殊的原因,当前AP或端口上通过的IPv6组播组数目有可能会超过AP或该端口的限定;另外,在某些特定的应用中,AP上新加入的IPv6组播组需要自动替换已存在的IPv6组播组(一个典型的应用就是“频道切换”,即用户通过加入一个新的IPv6组播组就能完成离开原IPv6组播组并切换到新IPv6组播组的动作)。
针对以上情况,可以在AP或者某些端口上使能IPv6组播组替换功能。当AP或端口上加入的IPv6组播组数量已达到限定值时:
· 若使能了IPv6组播组替换功能,则新加入的IPv6组播组会自动替代已存在的IPv6组播组,替代规则是替代IPv6地址最小的IPv6组播组;
· 若没有使能IPv6组播组替换功能,则自动丢弃新的MLD成员关系报告报文。
表1-22 全局配置IPv6组播组替换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
使能IPv6组播组替换功能 |
overflow-replace [ vlan vlan-list ] |
必选 缺省情况下,IPv6组播组替换功能处于关闭状态 |
表1-23 在端口上配置IPv6组播组替换
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入相应视图 |
进入二层以太网或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
使能IPv6组播组替换功能 |
mld-snooping overflow-replace [ vlan vlan-list ] |
必选 缺省情况下,IPv6组播组替换功能处于关闭状态 |
当端口加入的IPv6组播组最大数量取缺省值时,IPv6组播组替换功能将不会生效,因此在使能IPv6组播组替换功能之前,必须先将端口通过的IPv6组播组最大数量配置为非缺省值(具体配置过程请参见“1.6.5 配置端口加入的IPv6组播组最大数量”)。
可以通过本配置来改变MLD报文的802.1p优先级。当AP的出端口发生拥塞时,AP通过识别报文的802.1p优先级,优先发送优先级较高的报文。
表1-24 全局配置MLD报文的802.1p优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
配置MLD报文的802.1p优先级 |
dot1p-priority priority-number |
必选 缺省情况下,MLD报文的802.1p优先级为0 |
表1-25 在VLAN内配置MLD报文的802.1p优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
配置MLD报文的802.1p优先级 |
mld-snooping dot1p-priority priority-number |
必选 缺省情况下,MLD报文的802.1p优先级为0 |
通过使能MLD Snooping主机跟踪功能,可以使AP能够记录正在接收IPv6组播数据的成员主机信息(包括主机的IPv6地址、运行时间和超时时间等),以便于网络管理员对这些主机进行监控和管理。
表1-26 全局配置MLD Snooping主机跟踪功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入MLD-Snooping视图 |
mld-snooping |
- |
全局使能MLD Snooping主机跟踪功能 |
host-tracking |
必选 缺省情况下,MLD Snooping主机跟踪功能处于关闭状态 |
表1-27 在VLAN内配置MLD Snooping主机跟踪功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN视图 |
vlan vlan-id |
- |
在VLAN内使能MLD Snooping主机跟踪功能 |
mld-snooping host-tracking |
必选 缺省情况下,MLD Snooping主机跟踪功能处于关闭状态 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后MLD Snooping的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除IPv6组播组信息。
表1-28 MLD Snooping显示和维护
命令 |
|
查看MLD Snooping组的信息 |
display mld-snooping group [ vlan vlan-id ] [ verbose ] [ | { begin | exclude | include } regular-expression ] |
查看MLD Snooping跟踪的主机信息 |
display mld-snooping host vlan vlan-id group ipv6-group-address [ source ipv6-source-address ] [ | { begin | exclude | include } regular-expression ] |
查看MLD Snooping监听到的MLD报文的统计信息 |
display mld-snooping statistics [ | { begin | exclude | include } regular-expression ] |
清除MLD Snooping组的动态加入记录 |
reset mld-snooping group { ipv6-group-address | all } [ vlan vlan-id ] |
清除MLD Snooping监听到的所有MLD报文的统计信息 |
reset mld-snooping statistics |
· 如图1-3所示,Router通过GigabitEthernet 1/1接口连接IPv6组播源(Source),通过GigabitEthernet 1/0接口连接AP;
· Router上运行MLDv1,Swithc和AP上运行版本1的MLD Snooping,并由Router充当MLD查询器;
· 通过配置,使连接在AP上的接收者(Client)只能接收发往IPv6组播组FF1E::101的IPv6组播数据;
图1-3 IPv6组策略配置组网图
(1) 使能IPv6转发功能,并配置IPv6地址
使能各设备的IPv6转发功能,并按照图1-3配置各接口的IPv6地址和前缀长度,具体配置过程略。
(2) 配置Router
# 使能IPv6组播路由,在各接口上使能IPv6 PIM-DM,并在接口GigabitEthernet 1/0上使能MLD。
<Router> system-view
[Router] multicast ipv6 routing-enable
[Router] interface GigabitEthernet 1/0
[Router-GigabitEthernet1/0] mld enable
[Router-GigabitEthernet1/0] pim ipv6 dm
[Router-GigabitEthernet1/0] quit
[Router] interface GigabitEthernet 1/1
[Router-GigabitEthernet1/1] pim ipv6 dm
[Router-GigabitEthernet1/1] quit
(3) 配置Switch
# 全局使能MLD Snooping。
<Switch> system-view
[Switch] mld-snooping
[Switch-mld-snooping] quit
# 创建VLAN 100,把端口GigabitEthernet 1/1到GigabitEthernet 1/3添加到该VLAN中,并在该VLAN内使能MLD Snooping。
[Switch] vlan 100
[Switch-vlan100] port GigabitEthernet 1/1 to GigabitEthernet 1/3
[Switch-vlan100] mld-snooping enable
[Switch-vlan100] quit
# 创建二层聚合端口1。
[Switch] interface Bridge-Aggregation 1
[Switch-Bridge-Aggregation1] quit
# 分别将端口GigabitEthernet 1/2至GigabitEthernet 1/3加入到聚合组1中。
[Switch] interface GigabitEthernet 1/2
[Switch-GigabitEthernet1/2] port link-aggregation group 1
[Switch-GigabitEthernet1/2] quit
[Switch] interface GigabitEthernet 1/3
[Switch-GigabitEthernet1/3] port link-aggregation group 1
[Switch-GigabitEthernet1/3] quit
# 配置二层聚合接口1为Trunk端口,并允许VLAN 100的报文通过。
[Switch] interface bridge-aggregation 1
[Switch-Bridge-Aggregation1] port link-type trunk
[Switch-Bridge-Aggregation1] port trunk permit vlan 100
# 将二层聚合口配置为MLD Snooping静态路由端口。
[Switch-Bridge-Aggregation1] mld-snooping static-router-port vlan 100
[Switch-Bridge-Aggregation1] quit
(4) 配置AP
# 全局使能MLD Snooping。
<AP> system-view
[AP] mld-snooping
[AP-mld-snooping] quit
# 创建VLAN 100,把端口GigabitEthernet1/0/1、GigabitEthernet1/0/2和WLAN-BSS1添加到该VLAN中;在该VLAN 内使能MLD Snooping,并使能丢弃未知IPv6组播数据报文功能。
[AP] vlan 100
[AP-vlan100] port GigabitEthernet 1/0/1
[AP-vlan100] port GigabitEthernet 1/0/2
[AP-vlan100] port WLAN-BSS1
[AP-vlan100] mld-snooping enable
[AP-vlan100] mld-snooping drop-unknown
[AP-vlan100] quit
# 创建二层聚合端口1。
[AP] interface Bridge-Aggregation 1
[AP-Bridge-Aggregation1] quit
# 分别将端口GigabitEthernet 1/0/1至GigabitEthernet 1/0/2加入到聚合组1中。
[AP] interface GigabitEthernet 1/0/1
[AP-GigabitEthernet1/0/1] port link-aggregation group 1
[AP-GigabitEthernet1/0/1] quit
[AP] interface GigabitEthernet 1/0/2
[AP-GigabitEthernet1/0/2] port link-aggregation group 1
[AP-GigabitEthernet1/0/2] quit
# 配置二层聚合接口1为Trunk端口,并允许VLAN 100的报文通过。
[AP] interface bridge-aggregation 1
[AP-Bridge-Aggregation1] port link-type trunk
[AP-Bridge-Aggregation1] port trunk permit vlan 100
# 配置IPv6组播组过滤器,使VLAN 100内的主机只能加入IPv6组播组FF1E::101。
[AP] acl ipv6 number 2001
[AP-acl6-basic-2001] rule permit source ff1e::101 128
[AP-acl6-basic-2001] quit
[AP] mld-snooping
[AP–mld-snooping] group-policy 2001 vlan 100
[AP–mld-snooping] quit
(5) 检验配置效果
当配置完成后,Client发送组地址为FF1E::101的MLD加入报文,通过使用display mld-snooping group命令可以查看MLD Snooping组播组的详细信息。
[AP] display mld-snooping group vlan 100
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port
Subvlan flags: R-Real VLAN, C-Copy VLAN
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Router port(s):total 1 port(s).
BAGG1 (D) ( 00:01:23 )
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Host port(s):total 1 port(s).
WLAN-BSS1 (D)
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 1 port.
WLAN-BSS1
由此可见,AP上的端口WLAN-BSS1已经加入了IPv6组播组FF1E::101,VLAN 100内没有其它组播组,并且Client A可以接收组播组FF1E::101的组播数据。
· 如图1-4所示,Router通过GigabitEthernet 1/1接口连接组播源(Source),通过GigabitEthernet 1/0接口连接Switch,Switch和AP之间配置链路聚合;
· Router上运行MLDv1,Switch和AP上运行版本1的MLD Snooping,并由Router充当MLD查询器;
· 通过在AP上配置静态成员端口,使无线客户端Client上不需要通过组播客户端软件加入组播组ff1e::101即可接收组播数据。
(1) 使能IPv6转发功能,并配置IPv6地址
使能各设备的IPv6转发功能,并按照图1-4配置各接口的IPv6地址和前缀长度,具体配置过程略。
(2) 配置Router
# 使能IPv6组播路由,在各接口上使能IPv6 PIM-DM,并在接口GigabitEthernet 1/0上使能MLD。
<Router> system-view
[Router] multicast ipv6 routing-enable
[Router] interface GigabitEthernet 1/0
[Router-GigabitEthernet1/0] mld enable
[Router-GigabitEthernet1/0] pim ipv6 dm
[Router-GigabitEthernet1/0] quit
[Router] interface GigabitEthernet 1/1
[Router-GigabitEthernet1/1] pim ipv6 dm
[Router-GigabitEthernet1/1] quit
(3) 配置Switch
# 全局使能MLDSnooping。
<Switch> system-view
[Switch] mld-snooping
[Switch-mld-snooping] quit
# 创建VLAN 100,把端口GigabitEthernet 1/1到GigabitEthernet 1/3添加到该VLAN中,并在该VLAN内使能MLD Snooping。
[Switch] vlan 100
[Switch-vlan100] port GigabitEthernet 1/1 to GigabitEthernet 1/3
[Switch-vlan100] mld-snooping enable
[Switch-vlan100] quit
# 创建二层聚合端口1。
[Switch] interface Bridge-Aggregation 1
[Switch-Bridge-Aggregation1] quit
# 分别将端口GigabitEthernet 1/2至GigabitEthernet 1/3加入到聚合组1中。
[Switch] interface GigabitEthernet 1/2
[Switch-GigabitEthernet1/2] port link-aggregation group 1
[Switch-GigabitEthernet1/2] quit
[Switch] interface GigabitEthernet 1/3
[Switch-GigabitEthernet1/3] port link-aggregation group 1
[Switch-GigabitEthernet1/3] quit
# 配置二层聚合接口1为Trunk端口,并允许VLAN 100的报文通过。
[Switch] interface bridge-aggregation 1
[Switch-Bridge-Aggregation1] port link-type trunk
[Switch-Bridge-Aggregation1] port trunk permit vlan 100
# 将二层聚合口配置为MLD Snooping静态路由端口。
[Switch-Bridge-Aggregation1] mld-snooping static-router-port vlan 100
[Switch-Bridge-Aggregation1] quit
(4) 配置AP
# 全局使能MLD Snooping。
<AP> system-view
[AP] mld-snooping
[AP-mld-snooping] quit
# 创建VLAN 100,把端口GigabitEthernet1/0/1、GigabitEthernet1/0/2、WLAN-BSS1添加到该VLAN中;在该VLAN内使能MLD Snooping,并使能丢弃未知组播数据报文功能。
[AP] vlan 100
[AP-vlan100] port GigabitEthernet 1/0/1
[AP-vlan100] port GigabitEthernet 1/0/2
[AP-vlan100] port WLAN-BSS1
[AP-vlan100] mld-snooping enable
[AP-vlan100] mld-snooping drop-unknown
[AP-vlan100] quit
# 创建二层聚合端口1。
[AP] interface Bridge-Aggregation 1
[AP-Bridge-Aggregation1] quit
# 分别将端口GigabitEthernet 1/0/1至GigabitEthernet 1/0/2加入到聚合组1中。
[AP] interface GigabitEthernet 1/0/1
[AP-GigabitEthernet1/0/1] port link-aggregation group 1
[AP-GigabitEthernet1/0/1] quit
[AP] interface GigabitEthernet 1/0/2
[AP-GigabitEthernet1/0/2] port link-aggregation group 1
[AP-GigabitEthernet1/0/2] quit
# 配置二层聚合接口1为Trunk端口,并允许VLAN 100的报文通过。
[AP] interface bridge-aggregation 1
[AP-Bridge-Aggregation1] port link-type trunk
[AP-Bridge-Aggregation1] port trunk permit vlan 100
# 将二层聚合口配置为MLD Snooping静态成员端口。
[AP-Bridge-Aggregation1] mld-snooping static-group ff1e::101 vlan 100
[AP-Bridge-Aggregation1] quit
(5) 检验配置效果
# 查看AP上VLAN 100内MLD Snooping组的详细信息。
[AP] display mld-snooping group vlan 100 verbose
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
Port flags: D-Dynamic port, S-Static port, C-Copy port, P-PIM port
Vlan(id):100.
Total 1 IP Group(s).
Total 1 IP Source(s).
Total 1 MAC Group(s).
IP group(s):the following ip group(s) match to one mac group.
IP group address:FF1E::101
(::, FF1E::101):
Attribute: Host Port
Host port(s):total 1 port(s).
BAGG1 (S)
MAC group(s):
MAC group address:3333-0000-0101
Host port(s):total 1 port(s).
BAGG1 (S)
由此可见,AP上的二层聚合端口BAGG1已经成为了静态成员器端口。
AP不能实现MLD snooping二层组播功能。
MLD Snooping没有使能。
(1) 使用display current-configuration命令查看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 current-configuration命令查看是否已使能丢弃未知IPv6组播数据报文的功能。如果没有使能,则使用drop-unknown或mld-snooping drop-unknown命令使能丢弃未知IPv6组播数据报文功能。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!