二层交换机的IGMPsnooping.docx
《二层交换机的IGMPsnooping.docx》由会员分享,可在线阅读,更多相关《二层交换机的IGMPsnooping.docx(17页珍藏版)》请在冰豆网上搜索。
二层交换机的IGMPsnooping
二层交换机的IGMPsnooping
教你如何配置思科IGMPSnooping
思科配置IGMPSnooping
配置IGMPSnooping
查看IGMPSnooping信息
配置IGMPSnooping的其它限制
概述
我们将从以下几个方面描述Igmpsnooping
理解IGMP
理解IGMPSnooping
理解路由连接口
理解IGMPSnooping的各种工作模式
理解源端口检查
典型应用
理解IGMP
什么是组播及组播的作用IPIP
在Internet上,诸如视频会议和视频点播等单点发送多点接收的多媒体业务正在成为信息传送的
重要组成部分.点对点的单播传输方式不能适应这一类业务传输特性,因为服务器必须为每一个接
收者提供一个相同内容的报文拷贝,同时网络上也重复地传输相同内容的报文,占用了大量资源IP
如下图所示.广播同样不能满足该要求,虽然广播允许一个主机把一个IPIPIP报文发送给同一个
网络的所有主机,但是由于不是所有的主机都需要这些报文,因而浪费了网络资源.在这种情况下
组播(multicast)应运而生,它的出现解决了一个主机向特定的多个接收者发送消息的方法.组播是指一个报文向一个主机组的传送,这个包含零个或多个主机的主机组由一个单独的IPIP""IP
地址标识.
主机组地址也称为组播地址,或者类地址,即从""D224.0.0.0~
.239.255.255.255属于保留地址,其中:
224.0.0.0~224.0.0.255
-网段中所有支持组播的主机224.0.0.1
-网段中所有支持组播的路由器224.0.0.2
第层的组播地址(组播地址)是从组播地址映2MACIP射来的.把组播的后位同IP2301-00-5e-00-00-
进行或运算得到的结果便是组播地址.如:
组播地址为,其十六进制表示为00MACIP224.255.1.1e0-
ff-01-,后位为01237f-01-,与0101-00-5e-00-00-进行或操作的结果为:
0001-00-5e-7f-01-.0101-00-5
e-7f-01-即为组的组播地址.01224.255.1.1MAC
IGMP(InternetGroupManagementProtocol)
主机通过协议向临近的路由IPIGMP器申请加入(或离开)组播组.目前有三个版本的:
在中说明,在中说明IGMPIGMPv1rfc1112IGMPv2rfc2236,IGMPv3在rfc3376中说
明.下面,我们将分别简要介绍在,主机是如何加入或离开某一组播的(假设加入IGMPv1IGMPv2
).224.1.1.1
IGMPv1中,主机向路由器上的某个接口发送224.1.1.1的IGMPreport报文,要求加入该组中.路
由器收到该请求,则认为接收到请求的接口下存在组播成员,因而该接口转发对应组播组的报文.
路由器的接口定时发送224.0.0.1(所有主机)的IGMPQuery报文,若主机要继续接收该组报文,则
应回应IGMPReport报文,如果某个接口收不到任何主机的IGMPReport报文,则认为该接口下不存
在任何组播成员,因而不向该接口转发对应组的报文.
向下兼容,它对报文进行扩展IGMPv2v1——增加了IGMP
报文,以使主机可以主动要求离开组播组.在中,主机加入组中的过程同一致,主LeaveIGMPv2v1
机发一个报文请求加入到某一组中.路由器定时发送的IGMPReport224.0.0.1IGMP报文,若主Query机要接收该组报文,则应回应报文,若路由器收不到任何主机的IGMPReportIGMP
报文,将把该组注销.在中,主机还可以主动离开某一组.当主机不在需要某一组播ReportIGMPv2
流时,它主动朝路由器发送IGMP
报文主动从该组中注销.路由器收到该报文后,发出该组的LeaveIGMP报文,若其它主机需要该组播,则将回应QueryIGMP
报文,若路由器收不到任何主机的回应,将把该组注销.Report
在的基础上,IGMPV1/V2提供了额外的源过滤IGMPV3多播功能,S2026G/F交换机不支持改功
能.同路由器的交互过程同相同.但是IGMPv3IGMPv2在IGMP
中,主机只根据组地址来决定加入某个组并从任何一个源接收发给该组地址的V1/V2组播流.而使
用的主机通告该主机所希望加入的IGMPV3多播组,同时还通告该主机所希望接收的多播源的地
址.主机可以通过一个包括列表或一个排除列表来指明希望从哪些源能接收多播流.同时IGMP
带来的另外一个好处是节省带宽,避免不需要的,非法的组播数据流占用网络带宽,这尤其在多v3
个多播源共用一个多播地址的网络环境中表现明显.
同IGMPv2对比,IGMPv的规定了以下3两种报文类型:
MembershipQuery
Version3MembershipReport
其中分为三种:
MembershipQuery
:
GeneralQuery
用于查询接口下所有多播成员信息;
Group-SpecificQuery:
用于查询接口下指定组的成员信息;
Group-and-Source-SpecificQuery:
该类型为中新增加的,用于查询接口下是否有成员需要接收指定源列表IGMPv3中的源所发出的
特定组的多播流.
IGMPVersio能够向下兼容和.n3IGMPVersion1IGMPVersion2
要了解更多组播的相关知识,请查阅IPRFC1112,RFC2236以及RFC3376.理解IGMPSnooping
在二层(Layer2)设备下,组播帧是作为广播转发的,这样容易造成组播流风暴,浪费网络带宽.网络上典型的组播帧是视频流,在某个VLAN中,如果有个用户注册了某组视频流,那么该VLAN中的
所有成员都能收到这个视频流,无论他们是否想要.
IGMPSnooping的作用便是解决这个问题的,它能使视频流只朝注册用户所在的端口转发,从而
不会影响到其它的用户.
Snooping的中文含义是"窥探",从这个词的含义我们就很容易理解它的工作过程:
交换机"窥探"用户主机与路由器之间的交互报文,跟踪组信息及申请的端口.当交换机"窥探"到主机朝路由器发出的IGMPreport(请求)报文,交换机便把该端口加入组播转发表中;当交换机"窥探"到IGMP
Leave(离开)报文时,交换机便把该端口从表中删除.路由器会定时发IGMPQuery报文,在收到IGMP
Query报文后,如果在一定的时间段内没有收到主机的IGMPReport报文,便把该端口从表中删除.
理解路由连接口
路由连接口就是连接组播路由器的端口,如下图所示.
主机发出的IGMPReport,IGMPLeave等报文将从该口转发向路由器.只有从该端口收到
的IGMP
Query报文才被视为合法的报文转发向主机端口,从非路由连接口收到的IGMPQuery报文将被丢弃.
如何配置及查看路由连接口请看配置IGMPSnooping章节.
注意,在某些网络环境中,只要网络中不存在组播路由器,就无需配置路由连接口,IGMPsnooping
依然能正常运行.如下图:
在这个网络环境中,没有组播路由器,而这四台PC既可能是组播流的发送者,也可能是组播流的
接收者,这时,中间的交换机其实只要打开IGMPsnooping就可满足需求,不必设置任何一个端口为
路由连接口.
另外,路由连接口缺省就是要成为该VLAN内组播数据的接收者,如下图:
支持IGMPsnooping的交换机不但要把组播数据转发给组播流的接收者,也要把组播数据转发给
路由连接口,以便让组播路由器将组播数据流转发给其他网络.但是有可能管理员不想把某一批组
播数据让上级的组播路由器知道,我们的交换机可以配置路由连接口需要转发哪些组播数据,过滤
哪些组播数据,以满足网络管理员的多种需求.
上图的网络拓朴中,如果没有"组播流接收者",我们也会自动的创建一条组播转发表项到组播路由器,但这种由"组播数据流"产生的组播转发表项可能是不稳定的,建议管理员直接配置一条静态的组播转发表项到路由连接口(请参见配置IGMPsnooping的静态成员),以保证组播流的稳定转发.
理解IGMPSnooping的各种工作模式
DISABLE模式:
在该模式下,IGMPSnooping不起作用,即交换机不"窥探"主机与路由器之间的
IGMP报文,组播帧当广播在VLAN内转发.
IVGL工作模式:
在该模式下,各VLAN间的组播流是相互独立的.主机只能朝与自己处于同一个VLAN
的路由连接口请求组播.
SVGL工作模式:
在该模式下,各VLAN的主机共享一组播流.主机可以跨VLAN申请组播流.指定一
个MulticastVLAN,在该VLAN收到的组播数据流可以向跨VLAN的其他主机转发.如下图所示:
只要组播数据流的VID是MulticastVLAN的(或者UNTAG的数据流,接收端口的nativevlan为
MulticastVLAN),都将转发给该组播地址的成员端口,无论该成员端口是不是这个VLAN内的.所
形成的组播转发表的VID将是MulticastVLAN的.在SVGL模式下,除了路由连接口,其它端口只有
有处于MulticastVLAN中,其发送的多播在才会VLAN中转发.
IVGL和SVGL两种模式可以同时存在,您可以为划分一批组播地址范围给SVGL,在这批组播地址内
组播转发表(GDA表)都是跨VLAN转发的,而其他的组播地址则使用IVGL模式.锐捷网络公司实现的IGMPSnooping提供的IVGL模式与SVGL模式,增强了网络应用的灵活性,使
之能适应不同的网络环境.
理解源端口检查
cisco
公司推出的交换机中,部分产品支持IGMP源端口检查功能,提高了网络的安全性.IGMP源端口检查指严格限定IGMP组播流的进入端口.当IGMP源端口检查关闭时,从任何端口进入
的视频流均是合法的,交换机会把它们转发到已注册的端口.当IGMP源端口检查打开时,只有从路
由连接口进入的视频流才是合法的,交换机把它们转发向已注册的端口;而从非路由连接口进入的
视频流被视为是非法的,将被丢弃.
典型应用
组播的应用越来越大,最主要的是被应用于校园网与小区网中.组播技术可以应用于天气预报,新闻传送,视频点播等服务,目前最常见的是视频点播.
1,普通的网络拓扑
对设备的要求:
1,交换机支持IGMPSnooping
需要的设置:
1,打开IGMPSnooping功能
2,设置上链为路由连接口
特点:
1,配置简单
2,能有效地减少广播风暴,提高网络带宽利用率配置IGMPSnooping
我们将从以下几个章节描述如何配置igmpsnoopingIgmpsnooping的默认值
配置IGMPProfiles
配置路由连接口
配置路由连接口转发组播帧的范围
配置IVGL模式
配置SVGL模式
配置IVGL,SVGL并存模式
配置DISABLE模式
配置Query报文的最长响应时间
配置IGMPsnooping的静态成员
Igmpsnooping的默认值
Igmpsnooping状态DISABLE状态
路由连接口所有的口均不是路由连接口,不进行动态学习.
IGMPProfile表项为空,缺省行为是denySVGL的multicastvlanVLAN1
IGMPfiltering无
IGMPsnooping静态成员无
配置前的注意点:
您最好在配置好VLAN,端口的access,trunk,AP属性后再进行IGMPsnooping的配置,否
则就可
能达不到您所预期的要求.因为以上这些属性都是交换机的基本配置属性,如果在生成组播转
发表
后去修改这些属性,之后可能产生异常的转发效果.配置IGMPProfiles
这里要先介绍一个IGMPProfile表项,它可以定义一系列的组播地址范围,定义
permit/deny动
作,以提供后面的"SVGL模式应用的组播地址范围","路由连接口过滤组播数据范围","IGMP
Filtering范围"各项功能使用.注意如果已经把一个IGMPProfile关联到一个功能应用上,再
去修
改它,会影响到该功能生成的组播转发表.命令含义
步骤1configureterminal进入全局配置模式.
步骤2ipigmpprofileprofilenumber进入IGMPProfile模式,分配一个数字以供标识,该数字范围为1-65535.
步骤3permit|deny(可选)配置是要permit还是deny这一批组播地址范围,缺省值是deny.这个行为
表示:
允许/禁止以下range内的这些组播
地址,并禁止/允许其他的组播地址.
步骤4rangeipmulticastaddress添加组播地址范围,可添加多个.步骤5end退回到特权模式.
步骤5showipigmpprofileprofile
number
(可选)查看IGMPprofile的配置.
如果要删除其中一个IGMPprofile,可以用noipigmpprofileprofilenumber来执行.如果要删除profile里的一个range,可以用norangeipmulticastaddress来执行.以下有个例子是表示profile的配置过程:
Switch(config)#ipigmpprofile1
Switch(config-igmp-profile)#permit
Switch(config-igmp-profile)#range224.1.1.1225.1.1.1Switch(config-igmp-profile)#range226.1.1.1
Switch(config-igmp-profile)#end
Switch#showipigmpprofile1
IGMPProfile1
permit
range224.1.1.1225.1.1.1
range226.1.1.1
按以上配置,这个IGMPProfile的规则就是permit224.1.1.1到225.1.1.1的组播地址,以及
226.1.1.1这个组播地址,其他的组播地址都被deny.
配置路由连接口
路由连接口是组播路由器连接交换机的端口(并不是指和视频流服务器连接的端口).您可以静
态地配置路由连接口,也可配置让交换机动态的侦听IGMPquery/dvmrp或PIM报文,以自动识别路由
连接口.
在特权模式下,按如下步骤设置一个路由连接口
命令含义
步骤1configureterminal进入全局配置模式.
步骤2ipigmpsnoopingvlanvlan-id
mrouter{interfaceinterface-id|
learnpim-dvmrp}
设置接口为路由连接口,使用该命令的no选项删除一个路由连接口.您也可以配置让交换机动态学习路由连接口;用相应的no命令来关闭动态学习,并清空所有动态学习到的路由连接口.缺省是不进行动态学习
的.
步骤3end退回到特权模式.
步骤4writememory保存配置.
步骤5showipigmpsnoopingmrouter[vlanvlan-id][learn]
查看路由连接口配置以及该VLAN是否打开动态学习路由连接口.
以下例子是设置以太网接口1/1为路由连接口,并配置自动学习路由连接口:
Switch#configureterminal
Switch(config)#ipigmpsnoopingvlan1mrouterinterfacefast1/1
Switch(config)#ipigmpsnoopingvlan1mrouterlearnpim-dvmrp
Switch(config)#end
Switch#showipigmpsnoopingmrouterVlanInterfaceStateIGMPprofile
--------------------------------
1Fa0/1static1
Fa0/12dynamic0
Switch#showipigmpsnoopingmrouterlearnVlanlearnmethod
----------------------
1pim-dvmrp
配置路由连接口转发组播帧的范围
由于路由连接口缺省就要做为该VLAN内所有组播地址的成员,而转发组播数据流.但是有可
能某
些组播数据不希望转发给组播路由器,管理员可以用IGMPProfile来过滤该路由连接口转发
组播数
据的范围.
以下是配置路由连接口转发组播帧的范围的实例:
命令含义
步骤1configureterminal进入全局配置模式.步骤2ipigmpsnoopingvlanvlan-id
mrouterinterface
interface-idprofile
profilename
设置该端口为这个路由连接口,并关联的
profile.符合该profile的组播流才会被
转发到这个路由连接口上.
步骤3end退回到特权模式.
步骤4writememory保存配置.
步骤5showipigmpsnoopingmroute查看IGMPSnooping配置.
您可以通过noipigmpsnoopingvlanvlan-idmrouterinterfaceinterface-id
profile来删除
与profile的关联.
以下是配置路由连接口转发组播帧的范围的实例:
Switch#configureterminal
Switch(config)#ipigmpsnoopingvlan1mrouterinterfacefast1/1profile1
Switch(config)#end
Switch#showipigmpsnoopingmrouter
VlanInterfaceStateIGMPprofile
--------------------------------
1Fa0/1static1
Fa0/12dynamic
配置IVGL模式
在特权模式下,按如下步骤打开并设置IGMPSnooping为IVGL模式,IVGL模式的详细描述
请见IGMP
Snooping概述.
命令含义
步骤1configureterminal进入全局配置模式.步骤2ipigmpsnoopingivgl打开并设置IGMPSnooping为IVGL模式.
步骤3end退回到特权模式.
步骤4writememory保存配置.
步骤5showipigmpsnooping查看IGMPSnooping配置.
以下例子是打开并设置IGMPSnooping为IVGL模式:
Switch#configureTerminal
Switch(config)#IPigmpsnoopingivgl
Switch(config)#end
配置SVGL模式
.
打开SVGL模式时,还可以配置一个MulticastVlan,表示组播数据流可被接收的VLAN.注意,如
果修改MulticastVlan,原先属于MulticastVlan的组将被删除.
相关igmpsnoopingSVGL模式的说明请看《理解IGMPSnooping的各种工作模式》这一章节.
命令含义
步骤1configureterminal进入全局配置模式.
步骤2ipigmpsnoopingsvgl打开SVGL模式
步骤2ipigmpsnoopingsvglvlanvid设置MulticastVlan,缺省值为vlan1步骤3end退回到特权模式.
步骤4writememory保存配置.
步骤5showipigmpsnooping查看IGMPSnooping配置.
以下例子是打开并设置IGMPSnooping为SVGL模式.并设置MulticastVlan为2:
Switch#configureTerminal
Switch(config)#ipigmpsnoopingsvglvlan2
Switch(config)#end
在IGMPsnooping运行中修改svglvlan会导致修改前后的两个Vlan中所有组清除一遍,以便按新规则重新生成组播转发表.
您还要指定应用SVGL模式的组播地址范围,不指定这个组播地址范围,SVGL模式将无法运行.可
以利用IGMPprofile来指定组播地址范围,注意IGMPprofile中的规则必须是permit.命令含义
步骤1configureterminal进入全局配置模式.
步骤2ipigmpsnoopingsvglprofile
profilenumber
设置应用SVGL模式的组播地址范围
步骤3end退回到特权模式.
步骤4writememory保存配置.
步骤5showipigmpsnoopingsvgl查看IGMPSnooping配置.
以下是配置IGMP模式的实例:
Switch#configureterminal
Switch(config)#ipigmpsnoopingsvglSwitch(config)#ipigmpsnoopingsvglprofile1Switch(config)#end
Switch#showipigmpsnooping
Igmp-snoopingmode:
svgl
SVGLvlan-id:
1
SVGLprofilenumber:
1
Sourcecheckport:
Disabled
Querymaxresponetime:
10(Seconds)
在SVGL模式运行中修改svglprofile会可能会导致MulticastV