CCIE学习笔记之组播

查看组播路由表:

show ip mroute

查看igmp组成员:

show ip igmp group

通用规则:

1.      无论何时,只要创建一个(S,G)项而其相应的父(*,G)不存在,就首先自动创建新的(*,G)项。

2.      RPF接口是作为对源IP地址(或稀疏模式(*,G)项,RP)的最小开销路径接口来估算的。如果多个接口开销相同,选择最高IP地址的接口作为“切入点”。(比较顺序:1.管理距离2.最长匹配3.开销,这和单播不同,单播先比较最长匹配)。

3.      在创建新的(S,G)项时,其出口表提供一个来自父(*,G)项的出口表副本。

4.      组播转发项的入口(RPF接口)决不能在其出口表上出现。

5.      每个组播状态项的RPF接口(即输入接口)每5秒重新计算一次,而且依据规则4对输出接口的列表做适当的调整(以防在出口表上出现输入接口)。

6.      对(*,G)项的出口表的添加和删除都被复制(在通用规则4的限制下)到所有与该组有关的(S,G)项。

密集模式规则

1.      密集模式(*,G)的输出接口列表映射了现有的PIM-DM邻居接口或直接连接的组成员接口。

2.      密集模式(S,G)项的出口在剪枝时不能删除,而是被标记为“Prune/Dense”,且仍保留在出口表上。

3.      当一个接口的PIM邻居列表上增加一个新邻居时,该接口在所有PIM-DM(S,G)输出列表重新设置“Forward/Dense”状态。

稀疏模式规则

1.      稀疏模式(*,G)项作为显示加入操作的结果而创建的。

2.      稀疏模式(*,G)项的入口总是指向RP的共享树。

3.      稀疏模式(S,G)项在下列条件下创建:

接收一条(S,G)加入消息/剪枝消息

上一跳路由器上切换到SPT时

不可预料的(S,G)到达时(*,G状态不存在)

在RP上收到一条注册(Register)消息

注意:PIM-SM SPT也是通过和共享树一样的基本显示加入(Explicit Join)机制创建的。

4.      增加到稀疏模式(*,G)或(S,G)项的出口表中的接口由如下两个条件之一决定:

当通过该接口接收到一个适当的(*,G)或(S,G)加入消息时

当该接口存在一个该组的直连成员时

5.      从稀疏模式(*,G)或(S,G)项的出口表中删除一个接口发生在如下两种之一的情形:

当通过该接口接受到一个适当的(*,G)或(S,G)剪枝消息(不被否决)时

当接口的有效倒计时器倒计时到0时

6.      接口有效计时器重新置回3分钟有两个条件:

该接口收到适当的(*,G)或(S,G)加入消息(下游邻居1分钟发送一次加入消息)

在接口上接收到一个来自直连成员的IGMP Membership Report。

7.      当(S,G)项的RPF邻居与(*,G)项的RPF邻居不同时,路由器将向共享树发送一个(S,G)RP位剪枝消息。即(S,G)RP位剪枝消息从共享树和SPT的分支点开始。

8.      稀疏模式(S,G)项的RPF接口(即入口)使用源的IP地址计算的,除了设置RP位的情况外,在这种情况下,使用RP的IP地址。

PIM密集模式

ip multicast-routing   //开启全局组播

(config-if)#ip pim dense-mode  //接口上开启组播

PIM转发

1.      通过输入包的源地址(S)和组地址(G)来搜索(S,G)的最长匹配项

2.      (S,G)都不匹配则寻找(*,G),注意密集模式仅使用(S,G)项来转发,所以跳过这一步。

3.      如果无现有的(S,G)则根据规则创建一个(S,G)项。

4.      对输入包进行RPF检查,对组播路由表项的输入接口信息的维护可以不用每次进行RPF校验时都去查路由表,而只是每隔5秒对每个组播项的输入接口信息进行一次重新计算。

5.      如果检查成功则转发到所有未被剪枝的输出接口上。

PIM剪枝

在点到点链路,非RPF接口收到包后会以一个限制的速率向此接口的邻居发送剪枝消息,邻居收到后立即回应一个响应消息完成剪枝。

在多路访问网络,非RPF接口收到包之后只是简单的丢弃而不发送剪枝消息。

当路由器从下游邻居接收一个(S,G)RP位剪枝消息时:

1.      创建一个(S,G)状态项(如果不存在)

2.      在该(S,G)项中设置RP位(用R标记表示)

3.      根据通用规则3,用来自父(*,G)项接口的一个拷贝来形成(S,G)项出口表

4.      从出口表中删除该接口,即接收(S,G)RP位剪枝消息的接口。

5.      根据RP地址(而不是根据源地址)计算或重新计算(S,G)项的RPF信息(入口和RPF邻居)

思路:有一些流转成SPT,但是又不能把共享树的流量全部剪掉,所以就生成一个(S,G)表项,然后剪掉RP位剪枝消息进来的接口,因为转发是先匹配(S,G)表项,所以相当于把流量剪枝了

PIM嫁接

PIM稀疏模式

配置:

全局:ip multicast-routing

接口:ip pim sparse-mode

接口:ip pim rp-address

PIM稀疏模式转发

和密集模式不同,用(*,G)转发组播消息。(*,G)一般根据需要创建,要么有加入消息,要么有直连主机

Register过程:

接收者首先加入:

1.      源开始发送Group G信息流。

2.      路由器A在Register消息中封装包,单播到RP

3.      路由器C(RP)解包,沿着共享树向下转发。

4.      RP向源发送(S,G)加入消息,建立SPT。

5.      RP开始接收沿着SPT向下的(S,G)信息。

6.      RP向路由器A发送Register Stop

7.      路由器A停止在Register消息中封装信息

8.      (S,G)信息沿着单一的路径(SPT)向下游RP发包

注意:单纯的源并没有加入组播组

源首先注册:

1. 源开始发送Group G信息流。

2.路由器A在Register消息中封装包,单播到RP

3.路由器C(RP)在共享树上没有接收者,丢弃包

4.RP向路由器A发送Register-Stop

5.路由器A停止在Register消息中封装信息,丢弃来自源的后续包

6.路由器C接收来自共享树上一个接收者的(*,G)加入消息

7.RP向组中所有已知源发送(S,G)加入消息

8.RP开始接收沿着SPT向下的(S,G)消息

9.RP沿着共享树向下把(S,G)信息转发给接收者

PIM汇聚点

静态指定:

ip pim rp-address address [group-list acl]

自动RP:

原理:

加入组播224.0.1.40来每隔默认60s接收来自映射代理的自动RP信息,保持时间默认60*3,如果超时,切换到静态配置的RP,如果没有静态配置RP,则切换到密集模式

映射代理(mapping agent)加入224.0.1.39来接收RP候选的声明

候选RP每隔默认60s向224.0.1.39组播RP通知消息,映射代理中的候选RP保持时间默认60*3

基本配置:

把路由器配置成候选RP(IP地址高的成为主RP):

ip pim send-rp-announce interface scope ttl[group-list acl] [interval secs]

如:ip  pim send-rp-announce  loopback0  scope 16  group-list 10

access-list 10 permit 239.254.0.00.0.255.255

把路由器配置成RP映射代理:

ip pim send-rp-discovery scope ttl

稀疏-密集模式:

ip pim sparse-dense-mode

根据路由器是否有改组的RP信息,做出在一个接口使用稀疏模式的决定,这样可以先启动一个密集模式的网络,以后再切换到一个稀疏模式网络,而不必在网络的每个接口上改变PIM模式

查看RP和映射代理:

show ip pim rp mapping

如果有pimv1标记,表明该信息通过自动RP了解到

组播边界:

可以用来防止RP通知和RP发现消息流到网络边界之外:

int s0

ip multicastboundary 10

防止候选RP的欺骗:

在映射代理上全局命令:

ip pim rp-announce-filter rp-list acl[group-list acl]

如:ip pimrp-announce-filter rp-list 10 group-list 20

access-list 10 permit host 172.16.2.2

access-list 20 deny 239.0.0.0 0.0.255.255

否定的自动RP声明:

ip pim send-rp-announce loopback0 scope 16group-list 10

access-list 10 per 224.0.0.015.255.255.255.255

access-list 10 deny 225.1.1.0 0.0.0.255

候选RP会向组范围225.1.1.0 0.0.0.255发送一个否定的RP声明,强迫组播组仍然处于密集模式,当映射代理接收到一个否定的RP声明时,它就会否决掉任何积极的RP声明(在否决声明的组范围内),如果没有配显示的deny则不会发否定的RP声明

PIM自举路由器机制:

原理:

候选RP把其候选RP广播经过单播直接发送到当前候选的BSR

候选RP每60秒发送一次,保持时间60*2.5=150s

BSR(候选自举路由器,bootstrap router)用一跳一跳的特殊BSR消息流(分布)把所有组到RP映射信息分布到网络中的所有路由器。

按跳流动的BSR消息和对BSR单播的候选RP广播消除了组播的需要。

BSR消息包含一套已知的组到RP候选的映射信息,每台路由器运行相同的哈希算法为给定的组选择当前活动的RP,如果当前RP失效,则网络中的所有路由器快速容易的选出一个新的RP

可以配置多个候选BSR,但是只有一个BSR成为主BSR(优先级高),如果所有BSR失效,那么路由器会停止接收定期的BSR消息,并且其组到RP映射信息也同时到期,路由器将切换到一个静态配置的RP,如果没有则切换到密集模式。

自动RP一个RP是整个处于ACL组播范围的RP,但是在PIMv2 BSR中,因为根据哈希算法一个候选RP可能只是其ACL组播范围某一部分的RP。

BSR消息组播到所有PIM路由器(224.0.0.13)组播组(TTL值为1)。PIMv2路由器相邻的路由器接收BSR消息并从其他接口重新组播出去,TTL为1。BSR消息含有当前BSR的IP地址,如果一个路由器充当RP的时候要通过BSR消息了解到当前BSR的IP地址才能把RP消息单播给当前BSR。

配置:

把路由器配置成候选RP:

ip pim rp-candidate loopback0 group-list 10[group-list acl][interval secs]

把路由器配置成候选BSR:

ip pim bsr-candidate interfacehash-mask-length [priority]   //默认BSR优先级为0,如果掩码为30,那么每4个组播地址映射到同一个RP

限制BSR消息:

接口:ip pim border

注意:只是让接口既不发送也不接收PIMv2BSR消息,防止BSR消息流入或流出网络。防止了BSR流出网络那么外部的候选RP就不知道内部的当前BSR地址(在BSR消息中),也就防止了外部RP发单播消息给内部BSR

不影响正常的PIM消息流(如加入和剪枝,组播信息流等)

管理RP:

如果一个路由器没有被配置成一个组的RP,但是这个路由器还是可能成为这个组的RP:如当一台路由器收到(*,G)加入消息,而这条消息的RP地址为自己时,就会把自己当做RP;当收到注册消息而注册的RP为自己时,也会成为RP。

限制命令:

所有路由器上全局:ip pimaccept-rp rp-address|auto-rp [group-list acl]

如果过滤器承认这个RP和组地址的组合那么RP就是合法的,否则拒绝或忽略,如果没有可选的group-list那么默认所有的组

如果用auto-rp那么自由已经被选作组的RP的路由器才能接收和处理(*,G)加入消息和PIM注册消息

有三种形式的命令:

1.      ip pim accept-rp rp-address[group-list acl] //可出现多次

2.      ip pim accept-rp auto-rp[group-list acl]  //RP地址必须在组到RP映射缓存中,而这个猪不能是自动RP组播组(224.0.1.39和224.0.1.40),和第三种形式的命令互斥

3.      ip pim accept-rp 0.0.0.0 [group-list acl] //通用RP项,与任何RP地址匹配,和第二种形式命令互斥

路由器从上而下匹配这个表,寻找第一个字段匹配的RP地址,如果找到且不是自动RP项则看group-list是否承认这个组,如果承认则允许这个RP地址作为该组的合法RP,否则拒绝;如果匹配的是自动RP,那么当group-list拒绝时则匹配通用RP项的group-list(如果有的话),有则允许,如果还没有才拒绝。如果匹配到结尾都没有找到匹配的第一个字段(RP),则拒绝。

例子1:

ip pim accept-rp 172.16.8.2 group-list 10

ip pim accept-rp auto-rp group-list 11

ip pim accept-rp 0.0.0.0group-list 12

允许172.16.8.2成为group-list 10的RP,RP缓存有的可以成为group-list 11的RP,RP缓存有但是group-list 11拒绝的可以继续匹配group-list12,如果有则可以成为RP,没有则不允许

例子2:

ip pim accept-rp 0.0.0.0group-list 12

让除了group-list 12以外的所有组都只工作在密集模式

注:没有必要为224.0.1.39和224.0.1.40使用ip pimaccept-rp 的deny语句,因为这两个组会自动采用deny语句比便不干涉正常的密集模式传送自动RP信息

定义“最后的壕沟”RP(即所有候选RP失效则用静态RP,防止转化为密集模式):

ip pim rp-address 172.16.9.1 10

access-list 10 deny 224.0.1.39

access-list 10 deny 224.0.1.40

access-list 10 permit any

CCIE学习笔记之组播

时间: 2024-11-03 05:32:55

CCIE学习笔记之组播的相关文章

CCIE学习笔记之特性集

etherchannel loadbalance  dst –mac 以太网隧道负载方式基于目标MAC MST (config)# spanning -tree mode mst (config)# spanning -tree mst configuration (config-mst )#  name CCIE (config-mst )#  instance 1 vlan 20,40,60 spanning -tree mst 3 root primary spanning -tree m

CCIE学习笔记之BGP

Aggregate-address address mask as-set 聚合路由时不然as-path信息丢失 R1(config-router)#aggregate-address 1.0.0.0255.0.0.0 as-set Aggregate-address address mask as-set advertise-maproute-map-name 用advertise-map决定聚合总保留那个AS路径信息 在R2上: aggregate-address 10.1.1.0 255.

CCIE学习笔记之EEM

当内存使用到一定程度生成日志并发邮件: 注册applet并进入applet配置模式: Router(config)# event manager appletmemory-fail 定义触发事件: event snmp oid oid-value get-type{exact|next} entry-op operator entry-val entry-value[exit-comb| and}] [exit-opoperator] [exit-val exit-value] [exit-ti

CCIE学习笔记之EIGRP

CCIE学习笔记 向eigrp域宣告一条默认路由: 1.      用ipdefault-network: R2关键配置: Ip route 2.0.0.0255.0.0.0 null 0  //在路由表中制造一条主类网络 Router eigrp 1 Network2.0.0.0            //宣告主类网络 Ipdefault-network 2.0.0.0    //相当于告诉EIGRP域内的路由器默认网关在2.0.0.0,所以发布这个网关的路由器的路由表要可达这个地址 Ip r

CCIE学习笔记之MPLS与MPLS VPN

配置: 接口下启用:mpls ip mpls label protocol ldp | tdp | both 配置LDP RID(全局):mpls ldp route-id interface [force] 如mpls ldp route-idloopback0 force 注:force强制命令立即生效,注意对方的LDP RID可达才能和对方建立LDP邻居关系 修改MPLS MTU(接口):mpls mtu [override] 1516       //因为加上4字节的标签,这条命令可以用

CCIE学习笔记之OSPF

Area area-id default-cost cost 在ABR或ASBR上设置广播到stub,total stub,NSSA的默认路由的开销,默认为1. Router ospf 1 Area 1 default-cost 10 Area area-id nssa no-redistribution 在NSSA区域连接area 0的ABR上,不让此ABR把重发布进此ABR的路由发布进NSSA,而只发布进area 0. Router ospf 1 Area 1 nssa no-redistr

CCIE学习笔记之RSVP

Router(config-if)# ip rsvp bandwidth  [ interface-kbps] [ single-flow-kbps ] ! EnablesRSVP for IP on an interface Router(config)# ip rsvp sendersession-ip-address sender-ip-address [tcp  | udp  |  ip-protocol ] session-dport sender-sport previous-hop

CCIE学习笔记之端到端QOS

Class-map默认行为match-all Match protocol http mime "*/audio/*" Match protocol http mime "*/video/*"  //分类器寻找特殊类型的音频和视频mime流量 Match protocol http "*.jpg|*.jpeg"     //匹配图片流量 注:MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自

CCIE学习笔记 5---IPV6

IPV4 =  32 Bits IPV6 = 128 Bits ◆ IPv6地址的表示方法: - 首选表示法,用32位16进制数表示 16进制,如:FE08.... 4个数字一组(16bits),中间用 : 隔开,如:2001:12FC 例如:2001:0410:0000:0001:0000:0000:0000:45ff - 压缩表示法:为0的压缩比特压缩,在每一节的开始火用 ::  表示连续的0 若以0开头可以省略,连续全0 的组可以用 :: 表示.例如 1:2::ACDE:... 一个地址中