配置IP多播路由.docx
《配置IP多播路由.docx》由会员分享,可在线阅读,更多相关《配置IP多播路由.docx(43页珍藏版)》请在冰豆网上搜索。
配置IP多播路由
配置IP多播路由
IP组播是一种允许一个或多个发送者(组播源),发送单一的数据包到多个接收者(一次的,同时的)的网络技术。
组播源把数据包发送到特定组播组,而只有属于该组播组的地址才能接收到数据包。
组播可以大大的节省网络带宽,因为无论有多少个目标地址,在整个网络的任何一条链路上只传送单一的数据包。
组播使用InternetAssignedNumberAuthority(IANA)规定的D类网络地址。
D类地址的最高位为1110。
因此,组播地址范围为224.0.0.0到239.255.255.255。
不过其中并不是所有地址都可以被用户使用,有一些地址被保留为协议使用或其他地址。
比如224.0.0.1表示所有组播主机地址,224.0.0.2表示所有多播路由器地址。
任何主机,不论是否为组播组成员,都可以作为组播源。
然而,只有属于组播组的成员才能接收组播帧。
组播组的成员是动态确定的,主机可以动态加入或者离开一个组。
组播帧在网络中的转发由组播路由器完成,组播路由器运行多播路由协议。
有关本节引用的CLI命令的详细使用信息及说明,请参照CLI命令集
本章描述如何配置IP多播路由,包括以下几个主要部分:
理解IP多播路由
基本IP多播路由配置
配置PIM
配置IGMP
配置DVMRP互操作
配置协议无关特性
监控与维护多播路由
理解IP多播路由
锐捷网络公司的交换机支持以下IP多播协议:
InternetGroupManagementProtocol(IGMP):
该协议在主机与组播路由器之间使用,用以跟踪多播组的成员;
Protocol-IndependentMulticast(PIM)protocol:
该协议为IP多播路由协议,在路由器以及多层交换机之间使用,用以跟踪哪些多播帧可以在相互之间转发、可以向他们直接相连的网络转发;
DistanceVectorMulticastRoutingProtocol(DVMRP):
在MBONE中使用,我们支持PIM-to-DVMRP转换,使交换机也能与使用DVMRP的网络对接;
本节包括以下内容:
理解IGMP
理解PIM
理解DVMRP
理解IGMP
要参加IP多播,多播主机、路由器、多层交换机必须能支持IGMP操作。
该协议是主机用来通知路由器或多层交换机他们相连的网络的组播成员关系,以决定对组播流的转发。
利用从IGMP获得的信息,路由器或多层交换机维护一张组播成员表,该表是基于每个接口的。
当一个接口至少有一个主机是组成员时,组播成员表才被激活。
本交换机支持两个版本的IGMP。
IGMPVersion1
在版本1中,只有两种报文类型:
Membershipquery
Membershipreport
主机发送report报文表示加入,路由器定期发送query报文,确认一个组至少有一个主机存在,当一个组的所有主机都不存在时,路由器将该组删除。
IGMPVersion2
在版本2中,规定了四种报文类型:
Membershipquery
Version1membershipreport
Version2membershipreport
Leavegroup
过程与版本1基本类似,但在主机的退出机制上加以改进。
主机可以发送leave报文通知路由器,路由器再发送query确认是否仍有主机存在。
这样加入和离开的效率得到提高。
同时,版本2处理多访问网络的多路由器情况。
所有路由器开始处于查询者状态。
当路由器收到低IP地址路由器的成员关系查询时,他们从接收者状态转变成非查询者状态。
因此最终仅有一个路由器处于查询状态。
这个路由器为网络上所有组播路由器中IP地址最低者。
当查询者路由器失效时,IGMPv2也进行处理。
非查询者路由器维护其他查询者当前的间隔定时器。
每次路由器收到成员关系查询报文时,都重置此定时器。
如果定时器超时,则此路由器开始发送查询报文,查询者路由器选举又开始了。
查询者路由器必须定期发送成员关系查询请求,以确保网络上其他路由器明白查询者路由器仍然是可工作的。
要完成这项功能,查询者路由器维护一个查询间隔定时器。
当发送成员关系查询报文时,重置此定时器。
间隔定时器为零或不需要时,查询者路由器发送另一个成员关系查询。
在路由器第一次出现时,他发送一系列一般查询报文,看看哪些组播组应该在特定接口上转发。
路由器发送的一般查询报文数基于路由器配置的启动查询计数值。
初始一般查询报文间的间隔由启动查询间隔值定义。
查询者路由器收到离开报文时,必须发送一个特定组的成员关系查询以查看该主机是否是最后一个离开组的。
路由器在停止为那个组转发分组之前发送一系列这种报文,报文数等于最后的成员查询数。
路由器发送多个特定组成员关系查询以确保那个组内没有成员了。
每隔最后成员查询间隔秒数发送一个这样的查询,以隔开查询。
收不到查询的应答时,路由器停止在那个特定接口上为这个组地址转发组播通信。
IGMPVersion3
在IGMPV1和V2的应用中存在以下几个缺陷:
●缺乏有效控制多播源的手段。
●由于不知道多播源的位置,多播路径的建立比较困难。
●发现一个唯一的多播地址十分困难,可能出现多个的多播组使用同一个多播地址的情况。
在IGMPV1/V2的基础上,IGMPV3提供了额外的源过滤多播功能。
在IGMPV1/V2中,主机只根据组地址来决定加入某个组并从任何一个源接收发给该组地址的组播流。
而使用IGMPV3的主机通告该主机所希望加入的多播组,同时还通告该主机所希望接收的多播源的地址。
主机可以通过一个包括列表或一个排除列表来指明希望从哪些源能接收多播流。
同时IGMPv3带来的另外一个好处是节省带宽,避免不需要的、非法的组播数据流占用网络带宽,这尤其在多个多播源共用一个多播地址的网络环境中表现明显。
IGMPv1和IGMPv2也可以实现某种意义上的“源地址过滤”,但它是在多播流接收端上做的。
如下图所示:
多播源有S1和S2,发送同一多播地址G的数据流。
S1、S2的多播流会向所有接收G的主机发送,而如果主机A只想接收S1的,为避免S2数据流的干扰,只能用相应的客户端软件进行终端上的过滤。
而如果网络内的设备支持IGMPv3,主机A只想接收S1来的数据流,发送joinGincludeS1的IGMPv3报文;主机B只想接收S2来的数据流,发送joinGincludeS2的IGMPv3报文,于是数据流的转发就如下所示。
节省了一部分带宽。
同版本2对比,版本3的规定了以下两种报文类型:
MembershipQuery
Version3MembershipReport
其中MembershipQuery分为三种:
GeneralQuery:
用于查询接口下所有多播成员信息;
Group-SpecificQuery:
用于查询接口下指定组的成员信息;
Group-and-Source-SpecificQuery:
该类型为IGMPv3中新增加的,用于查询接口下是否有成员需要接收指定源列表中的源所发出的特定组的多播流。
同IGMPVersion2中的MembershipReport不同,IGMPVersion3中发出的MembershipReport的目的地址固定为224.0.0.22.并且IGMPVersion3中发出的MembershipReport报文中可以包含多个组的信息。
IGMPVersion3也能够识别版本1和版本2的MembershipReport报文以及版本2的LeaveGroup报文。
IGMPVersion3的过程同IGMPVersion2类似。
IGMPVersion3能够向下兼容IGMPVersion1和IGMPVersion2。
理解PIM
PIM(ProtocolIndependentMulticast)由IDMR(域间组播路由)工作组设计,顾名思义,PIM不依赖于某一特定单播路由协议,它可利用各种单播路由协议建立的单播路由表完成RPF检查功能,而不是维护一个分离的组播路由表实现组播转发。
由于PIM无需收发组播路由更新,所以与其它组播协议相比,PIM开销降低了许多。
PIM的设计出发点是在Internet范围内同时支持SPT和共享树,并使两者之间灵活转换,因而集中了它们的优点提高了组播效率。
PIM定义了两种模式:
稠密模式(Dense-Mode)和稀疏模式(Sparse-Mode)。
PIM有两个版本。
版本1没有形成标准,已被废弃。
本交换机支持PIMv2。
PIM-DM与DVMRP很相似,都属于稠密模式协议,都采用了“扩散/剪枝”机制。
同时,假定带宽不受限制,每个路由器都想接收组播数据包。
主要不同之处在于DVMRP使用内建的组播路由协议,而PIM-DM采用RPF动态建立SPT(共享树)。
因为PIM-DM不必象DVMRP那样依赖于基于RIP的组播路由协议,所以PIM-DM没有DVMRP那样的限制。
因为PIM-DM可以使用OSPF,所以组播路由能遵从最低成本路径,将链路带宽同跳数一样考虑进去。
首先PIM-DM假设当一个组播源发送组播帧时,所有的下游接口都希望收到这些帧。
初始,所有接口都能收到组播帧。
在泛洪时,PIM-DM使用RPF算法防止出现循环。
如果一些网络区域没有接口希望收到组播,则协议会将他们剪除。
剪除的状态是有时限的,当时间到了规定值,剪除的接口又会被重新加入转发树。
当剪除区出现了新的成员,使用嫁接技术,将该区域重新加入转发树。
为了最小化数据的复制,以及剪除工作。
PIM-DM使用状态刷新消息。
由与组播源直接相连的路由器发送,并在整个网络广播。
与其他内建转发树的组播路由协议相比(DVMRP),PIM-DM的设计更简单。
然而,当网络规模增加时,带来的是大量的剪除与嫁接。
PIM-DM与PIM-SM的区别主要在两个方面:
没有周期性的加入,只有明确的剪除或嫁接;没有共享点。
PIM-SM与基于“扩散/剪枝”模型的根本差别在于PIM-SM是基于显式加入模型,即接收者向RP发送加入消息,而路由器只在已加入某个组播组输出接口上转发那个组播组的数据包。
PIM-SM采用共享树进行组播数据包转发。
每一个组有一个汇合点(RendezvousPoint:
RP),组播源沿最短路径向RP发送数据,再由RP沿最短路径将数据发送到各个接收端。
这一点类似于CBT,但PIM-SM不使用核的概念。
PIM-SM主要优势之一是它不局限于通过共享树接收组播信息,还提供从共享树向SPT转换的机制。
尽管从共享树向SPT转换减少了网络延迟以及在RP上可能出现的阻塞,但这种转换耗费了相当的路由器资源,所以它适用于有多对组播数据源和网络组数目较少的环境。
PIM-SM使用共享树和SPT来分发组播帧。
此时,路由器或多层交换机假设其他设备都不想收到这些组播,除非有明确的加入声明。
当一个主机加入了一个组,与该主机相连的设备就要用PIM加入消息通知根,即RP。
这一加入消息通过路由器依次传递,建立了一个共享树的结构。
于是,RP记录这一传递路径,同时也记录从发送组播源的第一跳路由器(DR)发来的注册消息,根据这两个信息,完善共享树。
枝叶信息的更新是通过定期的查询信息实现。
在使用共享树时,组播源首先发送组播到RP,这样才能保证所有的接收者能收到。
用*.G来表示一棵树。
*表示所有的源,G表示特定的组播地址剪除信息在共享树中也被使用,即枝叶希望不再接收到组播帧时发送。
PIMv2BSR是一种分发group-to-RP消息到所有路由器的方法。
它消除了为每个路由器设置RP的需要。
BSR使用hop-by-hop扩散BSR消息来分发映射信息。
首先,BSR是从路由器中选举出来的。
选举方法类似于二层网桥中选举root-bridge的过程,使用一个优先级值,每个BSR设备检查BSR消息,并只转发优先级比它自己高的或相等(IP地址比它高)的BSR消息。
被选中的BSR发送BSR消息到all-PIM-routersmulticastgroup(224.0.0.13) ,TTL为1。
邻居的PIMv2路由器收到后,再将它组播出来,并再设置TTL为1。
这样,BSR消息一跳一跳地被所有路由器收到。
由于消息中包括BSR的IP地址,所以侯选的BSR能通过该消息获知哪个路由器为当前的RP。
侯选RP发送候选的RP广告以宣称在哪些地址范围内他们可以成为RP,BSR将他们保存在自己的本地候选RP缓存中,BSP定期将本地候选RP发送通知所有的PIM路由器。
这些消息同样一跳一跳地到达各路由器。
理解PIM-SSM
SSM(SourceSpecificMulticast:
源特定多播)使用多播组地址和多播源地址同时来标识一个多播通道,而不是像传统的多播服务那样只使用多播组地址来标识一个多播通道。
SSM保留了传统PIM-SM模式中的主机显式加入多播组的高效性,但是跳过了PIM-SM模式中的共享树和汇合点(RendezvousPoint:
RP)。
在传统PIM-SM模式中,共享树和RP使用(*,G)多播通道,SSM直接建立由(S,G)标识的一个SPT,在PIM-SM模式中,用户点击浏览器中的多播内容,接收端设备只被通知到多播组的内容,而没有被通知到多播源的信息。
而在SSM模式中,用户端将同时接收到多播源和多播组信息,因此,SSM特别适合于点到多点的多播服务。
PIM-SSM是对传统PIM协议地扩展,使用SSM,用户能直接从多播源接收多播业务量,PIM-SSM利用PIM-SM的功能,在多播源和客户端之间,产生一个SPT树。
但PIM-SSM在产生SPT树时,不需要RP的帮助。
在缺省情况下,SSM组播组地址限制在IP地址范围:
232.0.0.0–232.255.255.255之间。
实现PIM-SSM,除了要求网络支持网络组播和SSM模式外,同时还要求网络和应用支持IGMPV3协议。
理解DVMRP
它是Internet组播时最广泛使用的路由协议。
DVMRP是一个稠密模式组播路由协议,可以被总结为“广播和剪除”多播路由协议。
它根据路由交互为每个源地址建立广播树,而后使用剪除广播树的顶点动态地生成每源组(per-source-group)组播分发树(也即源特别树)。
它执行反向路径转发(RPF)检测以决定组播流是否可以转发。
本交换机不实现完整的DVMRP协议内容,但可以支持与DVMRP路由器或交换机的互操作。
所谓反向路径转发(RPF)是指数据流依照组播分发树进行传输,只发给树中有需要的枝叶。
树可以根据各个组的成员变化而动态更新。
当数据流抵达一个接口,达到数据流的源头的反向树要根据DVMRP路由表计算出来,如果数据流到达的接口可以用来将数据流发回源头,则数据流被转发到想得到数据的接口上。
否则,该接口就不是最佳的传输树,数据流被丢弃。
通过这种方法,防止了环路的产生。
在组播成员发生变化时,传输树自动更新。
DVMRP路由器学到其他路由器是通过周期发送DVMRPprobe消息到all-DVMRP-routersmulticastgroup(224.0.0.4)。
第二个路由器将收到的第一个路由器的IP地址添加到它自己的DVMRPprobe消息中,这样DVMRPprobe消息就包括了所有的DVMRP路由器的IP地址。
当第一个路由器收到包含自己IP地址的DVMRPprobe消息后,就与发送该消息的路由器建立了邻接关系。
DVMRP邻居定期发送route-report报文交换源路由消息。
这些消息包括了源网络的掩码、跳数。
DVMRP的路由信息被单独与单播路由信息存放,他们被用来通过RPF算法建立有源树。
DVMRP是一个稠密模式的多播路由。
它通过强迫的多播模式建立父子数据库,从而创建从组播源为根的转发树。
组播帧初始沿着该有源树发送。
如果有冗余链路,组播帧不从该链路发送(即DVMRP不支持冗余)直到从一个链路收到剪除消息后,链路上转发的组播才停止。
DVMRP支持稳定的嫁接和嫁接回应,使先前被剪除的链路能重新回到树中。
嫁接回应是用来避免因为链路的繁忙导致嫁接消息的丢失。
基本IP多播路由配置
本节描述IP多播路由的基本配置。
包括以下内容:
缺省配置
基本配置
RP配置
RP信息监控
缺省配置
多播路由
关闭
PIM模式
无
PIMRP地址
无
PIMDomainBorder
禁止
PIMMulticastBoundary
无
候选BSR
无
PIMSSM
关闭
PIMSSM范围
232.0.0.0~232.255.255.255
基本配置
要让交换机的多播路由生效,必须使能IP多播路由,并且配置PIM模式,以便软件能够转发多播数据报文,并且生成多播路由表。
可以把一个接口配置为dense-mode(稠密模式)、sparse-mode(稀疏模式)、或sparse-dense-mode(稀疏/稠密模式)。
模式决定了交换机如何生成它的多播路由表,以及如何转发多播数据报。
必须为每个接口配置上面的模式之一。
在一个接口上使能PIM的同时也为它使能了IGMP操作。
由privilegedEXEC模式开始,按照如下步骤在多层交换机上使能IP多播和设置PIM模式:
命令
含义
步骤1
configureterminal
进入全局配置模式。
步骤2
ipmulticast-routing
使能IP多播路由功能
ippimssm{default|rangeaccess-list]
配置SSM的地址范围。
Default:
默认的SSM范围232.0.0.0-232.255.255.255
步骤3
interfaceinterface-id
进入接口配置模式,指定想使能多播路由的第三层接口;支持多播路由的接口有两种类型:
Routedport:
用noswitchport配置的三层端口;
SVI:
VLAN接口;
同时这些接口必须已经配置了IP地址;
步骤4
ippim
在接口上打开PIM功能。
步骤5
ippim{sparse-mode|sparse-dense-mode|dense-mode}
在接口上使能一种PIM模式;
dense-mode,稠密模式
sparse-mode,稀疏模式
Sparse-dense-mode,稀疏-稠密模式,对知道RP的组使用稀疏模式,而对不知道RP的组
使用稠密模式。
注意:
若使用sparse-mode或者sparse-dense-mode,必须同时配置RP才能
保证组播路由的正常运行;
步骤6
End
退回到特权模式。
步骤7
showrunning-config
显示当前配置,验证设置结果;
步骤8
copyrunning-configstartup-config
保存配置。
要禁止IP多播路由,可以使用全局命令:
noipmulticast-routing(注意:
禁止IP多播路由,同时将关闭所有接口的PIM)。
可以使用配置命令noippimssm来关闭SSM功能。
禁止某个接口上的PIM,可以使用接口配置命令:
noippim。
以下为配置示例:
配置SSM对应的地址范围为235.0.0.0-235.255.255.255.255:
switch(config)#ipaccess-liststandssm_range
switch(config-std-nacl)#permit235.0.0.00.255.255.255
switch(config-std-nacl)#exit
switch(config)#ippimssmrangessm_range
在接口interfacefastEthernet0/1打开PIM-DM模式
Switch(config)#interfacefastEthernet0/1
Switch(config-if)#ippim
Switch(config-if)#ippimdense-mode
在接口interfacefastEthernet0/2打开PIM-SM模式
Switch(config)#interfacefastEthernet0/2
Switch(config-if)#ippim
Switch(config-if)#ippimsparse-mode
在接口vlan1打开PIM-DM-SM模式
Switch(config)#interfacevlan1
Switch(config-if)#ippim
Switch(config-if)#ippimsparse-dense-mode
RP配置
当配置了PIMSM或者PIMSM-DM模式时,还必须配置RP(RendezvousPoint)。
有关RP的含义请见本章的理解PIM部分说明。
配置RP有两种方法:
手工配置RP
配置BSR
手工配置RP
本节描述如何手工配置RP。
如果一个组已经通过动态算法(BSR)学习到RP,就不需要再通过手工配置了。
在PIM-SM模式下,多播数据的发送源的第一跳路由器即为指派路由器,指派路由器向RP发送注册报文以宣告组播源的存在。
而组播数据的接收者通过向RP发送加入报文以通知加入一个组播组。
RP并不是一个组的成员,它是多播组的发送源和接收者的汇集地。
在特权模式下,通过以下步骤手工配置RP:
命令
含义
步骤1
configureterminal
进入全局配置模式。
步骤2
ipaccess-liststandardaccess-list-name
定义一个标准访问控制列表;
步骤3
permitsource[source-wildcard]
该访问列表对应的地址范围
步骤4
ippimrp-addressip-address[group-listaccess-list-name][override]
配置RP的地址;
缺省情况下,是PIMRP地址没有被配置,所以我们必须在所有路由器以及交换机中配置RP的地址;如果没有为一个组配置RP,该组将被作为稠密模式对待;PIM设备可以使用多个RP,但每个组只能有一个RP;ip-address输入RP的单播地址;(可选)access-list-name输入标准的IP访问列表,限制RP使用的范围,如果没有配置,则RP适用于所有组;(可选)override使用该选项表示如果手工配置的RP与通过动态方式学习到的冲突时,优先使用手工配置的RP;当同时配置access-list-name和override选项时,优先使用override
步骤5
End
退回到特权模式。
步骤6
showrunning-config
显示当前配置,验证设置结果;
步骤7
copyrunning-configstartup-config
保存配置。
删除RP地址使用全局命令noippimrp-addressip-address。
以下为配置示例,为地址224.3.3.3的组配置RP为192.168.9.2:
Switch(config)#ipaccess-liststandard1
Switch(config-std-nacl)#permit224.3.3.30.0.0.0
Switch(config-std-nacl)#exit
Switch(config)#ippimrp-address192.168.9.2group-list1
配置BSR