组播源发现协议(MSDP:MulticastSourceDiscoveryProtocol)描述了一种连接多PIM-SM(PIM-SM:PIMSparseMode)域的机制。
每种PIM-SM域都使用自己独立的RP,它并不依赖于其它域内的RP。
该优点在于:1. 不存在第三方(Third-party)资源依赖域内RP。
2. PIM-SM域只依靠本身的RP。
3. 接收端域:只带接受端的域可以获取数据而不用全局通告组成员。
MSDP可以和其它非PIM-SM协议一起使用。
PIM-SM域内的MSDP发话路由器与其它域内的MSDP对等设备之间存在一种MSDP 对等关系,这种关系通过TCP连接形成,在其中控制信息进行交换。
每个域都有一个或多个连接到这个虚拟拓扑结构。
这种拓朴结构使得域能从其它域发现组播源。
如果组播源想知道含有接收端的域,那么PIM-SM中的标准源树建立机制就会被用于在域内分配树上传送组播数据。
MSDP使用TCP639端口建立对等连接(高ip侦听,低ip连接),和BGP一样,对等间连接必须明确配置,当PIMDR在RP注册源时,RP向所有的MSDP对等体发送源激活消息,然后其他MSDP路由器将SA泛洪,为防止环回,现检查MBGP,再检查BGP Message-Type23.16.2 实现域间组播策略对于一个多ISP的域间组播设计,需要考虑很多问题,如下图是一个常见的多ISP域,每个自治系统间BGP路由器使用了RR。
建立域间的组播策略分为如下3个步骤1.建立整体的域内组播策略2.建立整体的域间组播策略3.建立将客户连接到网络基础设施的实施策略23.16.2 建立整体的域内组播策略在4个ISP相互之间部署组播服务之前,必须在各自的网络中实现域内组播。
域内组播实现一般采用PIM-SM协议。
常规的配置流程如下:1.首先在全局启用组播在全局配置Ip multicast-routing [distributed]后面的distributed参数是用在Cisco 7500 12000等支持分布式交换的路由器上面的,同时需要启用Ip multicast multipath该命令用于:如果存在针对某个单播路由前缀的代价相等的路径,对于匹配该单播前缀的各个组播数据包,路由器可以使用不同的逆向路径转发接口进行数据转发,负载均衡基于(S,G)而不是基于包。
2.在接口上启用PIM组播一般情况下启用Ip dense-sparse-mode同时在接口上启用分布式快速交换:Ip mroute-cache distributed但接口上需要先启用Ip route-cache distributedCisco建议所有支持分布式交换的平台都打开分布式交换,同时如果分布式交换关闭后,将采用很慢的进程式交换极大的影响了性能3.选择路由器作为RPRP的实际位置并不是一个十分关键的决定因素,因为RP只能用来让信源和接受者取得联系,最后交换翻转过程会生成一个最短路径树,但需要考虑RP的处理能力是否足够强,是否处于中心位置,通常将RP的位置放置在整个ISP域的中心,全域可访问到的位置,同时应该分配一个32位掩码的唯一的ip地址给回环地址,并以此地址作为RP的地址。
4.在网络中的各路由器上静态的配置RP要配置RP,需要使用全局配置命令ip pim rp-address <rp-address>< acl>这条命令配置了某个组播组的PIM RP地址,首跳路由器戴白哦信源组播主机上的行为,使用RP地址来发送注册数据包,路由器使用组播主机行为的RP地址,试图变成组的成员。
这些路由器向RP发送join和prune消息,可以为所有的组播组或者D类地址范围的一个子集配置一个RP地址,通过ACL来描述23.16.3 建立整体的域间组播策略要成功地在4个ISP之间实现域间组播,每个ISP都哟阿勇到下列协议:1. 用于域间路由选择的MBGP2. 用于域间信源发现的组播源发现协议 MSDP首先来看MBGP的配置,MBGP的配置前文已经有类似的模板,这里再作一些补充:1.配置MBGP伙伴关系BGP邻居配置如下:Neighbor ip-address remote-as number [nlri {unicast|mulitcast}]这条命令配置了BGP伙伴和其相关AS编号, 如果加上了Multicast字段,则只想邻居发送组播的网络层可达信息(NLRI),如果加上unicast只发送单播,默认情况下只传送单播路由信息所以组播通过MP_Reach和MP_unreach路径属性传送, 如果要支持组播和单播,则两个参数都需要加上 .可以通过peer-Group来在多台路由器上实现这个属性, 命令如下 :neighbor peer-group-name peer-group [nlri {unicast | multicast}]此时还要通告相应网段,网段通告也是默认支持unicast模式,需要加入关键字network network-number [mask network-mask] [nlri {unicast | multicast}] 这条命令配用于确认AS中的某个网络是否应该注入到BGP的RIB中, 对于支持MBGP的路由器有两个RIB,一个是单播RIB另一个是MBGP RIB.在Route-Map中,也需要注意:Match nlri {unicast | multicast}同时对于Set也需要采用multicast关键字Set nlri {unicast | multicast}Route-map的标准环境中,单播和组播RIB是分开的.所以可以通过不同的routemap实现单播信息和组播信息的区别,例如 redistribute, aggregate-address, and neighbor outboundroute-map等,如下就是一个仅让组播支持默认路由的实例neighbor ip-address default-originate route-map map-name对于Cisco IOS 12.0以后的版本,还需要配置MBGP地址族,配置命令如下:address-family ipv4 multicast确认配置可以采用show ip bgp neighborsshow ip mbgp2.配置MSDP伙伴会话选择一个用于MSDP伙伴会话的IP地址,通常是MSDP伙伴会话和BGP伙伴会话使用同一个配置在回环接口上的地址,配置伙伴会话通过如下命令:ip msdp peer {peer-name | peer-address} [connect-source type number] connect-source关键字为TCP连接提供源IP地址,用type和number属性确定某个端口。
3.配置推荐的SA过滤器在全局配置针对发送给MSDP伙伴的SA消息的进出过滤列表:ip msdp sa-filter in|out {peer-address | peer-name} [list access-list] [route-map map-name]缺省情况下收到所有SA消息都转发给伙伴,如果同时使用了ACL和Route-map属性,要过滤或者允许通过发往SA消息中的任何(S,G)都需要满足全部条件。
4.配置SA缓存启动SA缓存功能来缓存关于网络中活动信源的信息,使用Ip msdp cache-sa-state5.确认MSDP伙伴目前正常工作Show ip msdp peerShow ip msdp sa-cache6.配置合适的组播边界在接口上配置Ip multicast boundary <acl>ip pim bsr-border前一条命令可以对特定的组定义管理上的边界,后一条命令定义的PIM域的边界,同时,该命令在某接口配置后,BootStrap消息沿任何防向都不能超越边界。
新版本的IOS中这条命令直接改为:Ip pim border7.伙伴关系对比23.16.4 ISP2的域内配置ISP2的网络拓扑图如下图所示Step 1. 配置全局组播ip multicast-routing distributedStep 2. 接口配置组播interface POS3/0ip pim sparse-modeip mroute-cache distributedinterface GigabitEthernet4/0ip mroute-cache distributedinterface GigabitEthernet4/0.430ip pim sparse-modeinterface GigabitEthernet4/0.440ip pim sparse-modeinterface POS5/0ip pim sparse-modeip mroute-cache distributed注意Gbit/s的接口只能在主接口上配置ip mroute-cache distributed,不能配置在子接口上Step 3. 选择路由器作为RP处于ISP2网络拓扑中心位置的ISP2BB4被选作RP,所有组播,BGP相关的配置放置在一个回环接口上interface Loopback1ip address J.2.0.124 255.255.255.255ip pim sparse-modeip mroute-cache distributedno shutdownStep 4. 在每个路由器上配置静态的RPip pim rp-address J.2.0.124Step 5.限制可以使用地址 232/24的组播组. (可选)ip pim accept-register list no-ssm-rangeip access-list extended no-ssm-range deny ip any232.0.0.0 0.255.255.255 permit ip any any23.16.5 ISP2的域间配置router bgp 2neighbor ISP2INTERNAL peer-group nlri unicast multicastrouter bgp 2neighbor J.2.0.254 remote as 1 nlri unicast multicastshow ip bgp neighbors J.2.0.254show ip mbgp summaryBGP router identifier J.2.0.207, local AS number 2MBGP table version is 149252 network entries and 1 paths using 222 bytes of memory90 BGP path attribute entries using 4320 bytes of memory82 BGP AS-PATH entries using 2336 bytes of memoryBGP activity 1073815/1042808 prefixes, 58323706/58292540 pathsNeighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcdJ.2.0.201 4 2 836411212820 14925 0 0 8w2d 0 J.2.0.202 4 2 836281212935 14925 0 0 8w2d 0 J.2.0.203 4 2 14665771212059 14925 0 0 8w1d 1 J.2.0.204 4 2 836451213054 14925 0 0 8w2d 0 J.2.0.205 4 2 62903031213059 14925 0 0 8w2d 0 J.2.0.206 4 2 12174721213014 14925 0 0 8w2d 0 J.2.0.208 4 2 962431201558 0 0 08w2d 0(NoNeg)J.2.0.254 4 1 21267182811770 14925 0 04w3d 0然后配置MBGP Peerip msdp peer J.1.0.207 connect-source Loopback0 remote-as 1ip msdp peer J.4.0.203 connect-source Loopback0 remote-as 4ip msdp peer J.3.0.207 connect-source Loopback0 remote-as 3配置推荐的SA过滤器The following SA filter configuration is for the connection to the ISP1BB7 router:ip msdp sa-filter in J.1.0.207 list 124ip msdp sa-filter out J.1.0.207 list 124The following SA filter configuration is for the connection to the ISP4BB3 router:ip msdp sa-filter in J.4.0.203 list 124ip msdp sa-filter out J.4.0.203 list 124The following SA filter configuration is for the connection to the ISP3BB7 router:ip msdp sa-filter in J.3.0.207 list 124ip msdp sa-filter out J.3.0.207 list 124The following access list is configured on the ISP2BB4 router:access-list 124 deny ip any host 224.0.2.2access-list 124 deny ip any host 224.0.1.3access-list 124 deny ip any host 224.0.1.24access-list 124 deny ip any host 224.0.1.22access-list 124 deny ip any host 224.0.1.2access-list 124 deny ip any host 224.0.1.35access-list 124 deny ip any host 224.0.1.60access-list 124 deny ip any host 224.0.1.39access-list 124 deny ip any host 224.0.1.40access-list 124 deny ip any 239.0.0.0 0.255.255.255access-list 124 deny ip 10.0.0.0 0.255.255.255 anyaccess-list 124 deny ip 127.0.0.0 0.255.255.255 anyaccess-list 124 deny ip 172.16.0.0 0.15.255.255 anyaccess-list 124 deny ip 192.168.0.0 0.0.255.255 anyaccess-list 124 deny ip any 232.0.0.0 0.255.255.255access-list 124 permit ip any any配置SA缓存ip msdp cache-sa-state验证MSDP伙伴关系show ip msdp peerMSDP Peer J.1.0.207 (?), AS 1 (configured AS)Description:Connection status:State:Up, Resets:2, Connection source:Loopback0 (J.2.0.204) Uptime(Downtime):4w3d, Messages sent/received:114677/106473 Output messages discarded:0Connection and counters cleared 7w0d agoSA Filtering:Input (S,G) filter:124, route-map:noneInput RP filter:none, route-map:noneOutput (S,G) filter:124, route-map:noneOutput RP filter:none, route-map:noneSA-Requests:Input filter:noneSending SA-Requests to peer:enabledPeer ttl threshold:0Input queue size:0, Output queue size:0MSDP Peer J.4.0.203 (?), AS 4 (configured AS)Description:Connection status:State:Up, Resets:743, Connection source:Loopback0 (J.2.0.204) Uptime(Downtime):1w2d, Messages sent/received:29748/36008Output messages discarded:0Connection and counters cleared 7w0d agoSA Filtering:Input (S,G) filter:124, route-map:noneInput RP filter:none, route-map:noneOutput (S,G) filter:124, route-map:noneOutput RP filter:none, route-map:noneSA-Requests:Input filter:noneSending SA-Requests to peer:enabledPeer ttl threshold:0Input queue size:0, Output queue size:0MSDP Peer J.3.0.207 (?), AS 3 (configured AS)Description:Connection status:State:Up, Resets:8, Connection source:Loopback0 (J.2.0.204)Uptime(Downtime):08:12:05, Messages sent/received:1893/493Output messages discarded:0Connection and counters cleared 7w0d agoSA Filtering:Input (S,G) filter:124, route-map:noneInput RP filter:none, route-map:noneOutput (S,G) filter:124, route-map:noneOutput RP filter:none, route-map:noneSA-Requests:Input filter:noneSending SA-Requests to peer:enabledPeer ttl threshold:0Input queue size:0, Output queue size:0配置边界interface POS0/0description TO ISP1BB7, POS9/0/0ip pim bsr-borderip multicast boundary 1!access-list 1 deny 224.0.1.39access-list 1 deny 224.0.1.40access-list 1 deny 239.0.0.0 0.255.255.255access-list 1 permit any23.16.6 配置AnyCast RP任播RP是一项非常有价值的应用,它利用厂MSDP允许—个PIM-SM网络中存在多个RP的特性。