您的位置:首页 > 其它

组播Multicast 2 PIM

2016-07-08 19:34 369 查看
session 1 组播的转发方式

一、组播的转发方式

1、与单播路由的方向相反,单播路由关心的目的地址ip,而组播是关心源ip,组播关心流量从哪里来!组播的路由相当于单播路由的反向路径,简称RPF(Reverse Path Forwarding逆向路径转发技术)这个RPF是针对于单播来说的。

2、组播的RPF Check(逆向路径转发技术检查)

因为组播和单播的路径是相反的,所以这个检测是检测单播和组播的路径是不是相反(相对应)的。



      这个图中R3作为组播Router所进行的RPF检查是:当单播流量的目的ip是去往R1的从S1/0口出去的流量,那么组播的源发来的流量也必须是从R1源发来经过S1/0接口收到的组播源流量才可以通过RPF检测,否则如果单播流量从S1/0发出,但是组播流量从S1/1收到(而不是从S1/0收到)那么这个从S1/1收到的组播流量将会被dorp,安全考虑。(单播中也有RPF技术)

session 2 组播路由协议PIM

      PIM(protocol Independent协议无关,意为支持多种单播协议来搭建底层路径):用于路由器之间的组播流量的协议(IGMP是组播客户端与组播网关之间的协议)

PIM分为两种类型和两种模式(类型和模式可以任意搭配):

一、PIM的两种类型:

1、最短路径树(有源树),接受者到达组播流量源的距离最短,成为有源树。树根是源!

类似直销,厂家直接卖给客户

2、共享树,共享分布树,特点是组播流量的源是*,代表所有都是源。其中有RP集合点这个概念,RP是一台或者多台组播路由器,在共享树中有多个根(RP)。源发的组播流量是经过RP来代理转发和接收的。

类似分销,厂家通过代理卖给客户,所以没有有源树的组播流量的路由优(因为中间经过了RP转发一手)

二、PIM的两种模式

1、Dense-mode,密集模式,客户端相对集中

1)、组播中离源最近的设备叫做:第一跳设备(first hop),在Dense-mode模式中当有了源以后first hop负责初始化泛红(类似switch的arp查询广播),这个初始化泛红的意义是:让所有收到组播流量的路由器产生(S源
G组)表项,然后根据收到的所有路由器回应的报文来进行最短路径的选择,修剪掉不必要的路径,找出(到源)最短的路径。如下图中所示的,经过组播流量的修剪,最终路径确定为红色的箭头路径为receive客户端到源最短的路径(叫做SPT最短路径),其余的路径被修剪掉了,以节省网络带宽。



2)、组播中客户端源最近的设备叫做:最末跳设备(last hop)

其中R1就是first hop设备,而R2就是last hop设备。假如最右边的R后面也是客户端的话,那么最右边的R也同样是一个last hop设备。

2、Spares-mode,稀疏模式,客户端相对分散(实际部署当中一般都使用spares-mode)

RP(集合点):代理源来转发和接收组播流量的路由器。

      在spares-mode模式中,没有first hop泛红的现象。所有的组播流量(last hop查找)先去寻找RP,向RP逐条的发送PIM的join信息,last
hop发的PIM的join信息的表项是(* G)因为没有确定源,所以是(* G)而不是(S G),在Dense-mode模式中是(S G)因为Dense-mode组播模式是先有源,后有客户端,而在spares-mode组播模式中是先有客户端后有源。join信息发送到RP后形成不完整的共享树(这时还没有组播的数据流量,因为这时候的共享树是客户端、到达RP的沿途其他组播路由器、lasthop及RP之间形成的,并没有组播源R1的参与),在找向RP提交了join后,源source开始参与共享树,由first
hop(R1)向RP发送一个单播Register注册包(在Dense-mode模式中是直接初始化泛红的),Register注册包(iPv4头:源ip是组播源的ip,目的ip是RP的ip)中会明确源和组,收到Register注册包后,RP会向源发送join信息(同时将这个注册信息发给lasthop设备,用于让last
hop的表项从(* G)变为(S G)),表项是(S G),同时向first hop发送一个stop Register的信息,告诉first
hop可以停止(向我RP)注册了。此时当last hop设备收到这个RP转发来的(源发送的)Register注册包后,也会向源发送join信息,表项是(S G),但是这里注意!因为last hop设备收到RP发来的源的Register注册包后根据自己的单播路由表可以知道了去往源的路由了,如果去往源的最短路径不是经过RP而是其他的路径(可能走其他的组播路由器而不是走RP),这时候last
hop就会选择最短的路径将join发往源,而不是通过RP代发往源,表项依然是(S G),这里看下图理解下:



      R2lasthop会将join信息发给R3,由R3到达源(从R3到达源的路径最短,比走RP要短),而不是走RP,只是开始从RP哪里得到了源的位置,然后开始自己选择最优的路径(但是可以人为的控制让R2lasthop强制从RP到达源而不去自己做switchover的最短路径切换,命令是:ip pim spt-threshold infinity,这个命令有特殊要求的时候和做实验的时候使用,能看到完整的过程。这个命令只有在lasthop上配置才有用)

session 3 Multicast实验

show ip pim neighbor              查看pim邻居

show ip pim interface               查看哪些接口运行了pim,可以查看到当前的pim是哪种模式

组播中ping是组播ping,单播回复。ping一个组地址,有多少个单播回复,就知道这个组中有多少客户加入。

ping 224.1.1.1         可以得到该组中有哪些客户端

show ip mrouter     查看组播路由表,也就是(S G)表项,其中包括(* G)父表项和子表项(S G)

R1(config-if)#ip pim dense-mode               配置接口为稀疏模式

R1(config-if)#ip pim sparse-mode              配置接口为密集模式

R1(config)#ip pim rp-address x.x.x.x           密集模式中手动指定RP地址

R1(config)#ip pim spt-threshold infinity    密集模式中关闭SPT的switch-over最短路径切换功能(客户端的流量只从RP到源,而不选择最短到源的路径)

debug ip pim

debug ip mrouter *

拓扑如下:




一、PIM的dens-mode稀疏模式

1、底层R1-R3使用IGP搭建,eigrp 1

2、源和PC指网关,并且加入组224.1.1.1

source#show run interface s0/0  

Building configuration...

Current configuration : 136 bytes

!

interface Serial0/0

 ip address 192.168.1.100 255.255.255.0

 no ip route-cache

 ip igmp join-group 224.1.1.1

 clock rate 2000000

end

source(config)#no ip routing

source(config)#ip default-gateway 192.168.1.100

 

source#show run interface s0/0  

Building configuration...

Current configuration : 136 bytes

!

interface Serial0/3

 ip address 172.16.1.1 255.255.255.0

 no ip route-cache

 ip igmp join-group 224.1.1.1

 clock rate 2000000

end

pc(config)#no ip routing

pc(config)#ip default-gateway 172.16.1.100

 

R1上:

interface Serial0/0

 ip address 192.168.1.1 255.255.255.0

 ip pim dense-mode

 clock rate 2000000

!

interface Serial0/0

 ip address 12.1.1.1 255.255.255.0

 ip pim dense-mode

 clock rate 2000000

!

 

R2上:

interface Serial0/0

 ip address 12.1.1.2 255.255.255.0

 ip pim dense-mode

 clock rate 2000000

!

interface Serial0/0

 ip address 23.1.1.2 255.255.255.0

 ip pim dense-mode

 clock rate 2000000

!

 

R3上:

interface Serial0/0

 ip address 23.1.1.3 255.255.255.0

 ip pim dense-mode

 clock rate 2000000

!

interface Serial0/0

 ip address 172.16.1.1 255.255.255.0

 ip pim dense-mode

 clock rate 2000000

!

 

source#ping 224.1.1.1

Type escape sequence to abort.

Sending 1, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:

Reply to request 0 from 172.16.1.100, 36 ms                                                 PC已经响应源的ping

source#

 

R2#show ip mroute

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

       L - Local, P - Pruned, R - RP-bit set, F - Register flag,

       T - SPT-bit set, J - Join SPT, M - MSDP created entry,

       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

       U - URD, I - Received Source Specific Host Report,

       Z - Multicast Tunnel, z - MDT-data group sender,

       Y - Joined MDT-data group, y - Sending to MDT-data group

Outgoing interface flags: H - Hardware switched, A - Assert winner

 Timers: Uptime/Expires

 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.1.1.1), 00:21:32/00:03:23, RP 2.2.2.2, flags: S

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial0/1, Forward/Sparse, 00:16:21/00:02:47

    Serial0/2, Forward/Sparse, 00:21:32/00:03:23                  该接口信息表明S0/2口有组播流量,如IGMP的加组信息流量等,如果没有组播流量(IGMP或者PIM的)的话该接口不会出现在组播路由表中

(192.168.1.100, 224.1.1.1), 00:00:34/00:02:25, flags:

  Incoming interface: Serial0/1, RPF nbr 12.1.1.1

  Outgoing interface list:

    Serial0/2, Forward/Sparse, 00:00:35/00:03:21

(*, 224.0.1.40), 00:22:40/00:03:26, RP 2.2.2.2, flags: SJCL

  Incoming interface: Null, RPF nbr 0.0.0.0

  Outgoing interface list:

    Serial0/2, Forward/Sparse, 00:21:33/00:03:26

    Serial0/1, Forward/Sparse, 00:22:40/00:02:49

R2#

 

 二、PIM的sparse-mode密集模式

1、R1-R3底层IGP eigrp保证通信

2、源、PC配置不变

source#show run interface s0/0  

Building configuration...

Current configuration : 136 bytes

!

interface Serial0/0

 ip address 192.168.1.100 255.255.255.0

 no ip route-cache

 ip igmp join-group 224.1.1.1

 clock rate 2000000

end

source(config)#no ip routing

source(config)#ip default-gateway 192.168.1.100

 

source#show run interface s0/0  

Building configuration...

Current configuration : 136 bytes

!

interface Serial0/3

 ip address 172.16.1.1 255.255.255.0

 no ip route-cache

 ip igmp join-group 224.1.1.1

 clock rate 2000000

end

pc(config)#no ip routing

pc(config)#ip default-gateway 172.16.1.100

 

R1:

R1#show run interface s0/0

Building configuration...

 

Current configuration : 105 bytes

!

interface Serial0/0

 ip address 192.168.1.1 255.255.255.0

 ip pim sparse-mode

 clock rate 2000000

end

R1#show run interface s0/1

Building configuration...

Current configuration : 102 bytes

!

interface Serial0/1

 ip address 12.1.1.1 255.255.255.0

 ip pim sparse-mode

 clock rate 2000000

end

R1#

R1(config)#ip pim rp-address 2.2.2.2                  手工指定RP

R1(config)#exit

 

R2#show run interface s0/0

Building configuration...

Current configuration : 72 bytes

!

interface Serial0/0

 no ip address

 shutdown

 clock rate 2000000

end

R2#show run interface s0/1

Building configuration...

Current configuration : 102 bytes

!

interface Serial0/1

 ip address 12.1.1.2 255.255.255.0

 ip pim sparse-mode

 clock rate 2000000

end

R2#show run interface loopback 0       

Building configuration...

Current configuration : 63 bytes

!

interface Loopback0                                                让R2的loopback0成为RP

 ip address 2.2.2.2 255.255.255.255

end

R2#

R2(config)#ip pim rp-address 2.2.2.2                  手工指定RP

R2(config)#exit

 

R3:

R3#show run interface s0/2

Building configuration...

Current configuration : 102 bytes

!

interface Serial0/2

 ip address 23.1.1.3 255.255.255.0

 ip pim sparse-mode

 clock rate 2000000

end

R3#show run interface s0/3

Building configuration...

Current configuration : 104 bytes

!

interface Serial0/3

 ip address 172.16.1.1 255.255.255.0

 ip pim sparse-mode

 clock rate 2000000

end

R3#

R3(config)#ip pim rp-address 2.2.2.2                  手工指定RP

R3(config)#exit

 

验证:

source#ping 224.1.1.1

Type escape sequence to abort.

Sending 1, 100-byte ICMP Echos to 224.1.1.1, timeout is 2 seconds:

Reply to request 0 from 172.16.1.100, 20 ms                                                    PC的回应

source#

 

R3#show ip mroute

IP Multicast Routing Table

Flags: D - Dense, S - Sparse, B - Bidir Group, s - SSM Group, C - Connected,

       L - Local, P - Pruned, R - RP-bit set, F - Register flag,

       T - SPT-bit set, J - Join SPT, M - MSDP created entry,

       X - Proxy Join Timer Running, A - Candidate for MSDP Advertisement,

       U - URD, I - Received Source Specific Host Report,

       Z - Multicast Tunnel, z - MDT-data group sender,

       Y - Joined MDT-data group, y - Sending to MDT-data group

Outgoing interface flags: H - Hardware switched, A - Assert winner

 Timers: Uptime/Expires

 Interface state: Interface, Next-Hop or VCD, State/Mode

(*, 224.1.1.1), 00:01:18/stopped, RP 2.2.2.2, flags: SJCF                           可以看到RP是谁

  Incoming interface: Serial0/2, RPF nbr 23.1.1.2

  Outgoing interface list:

    Serial0/3, Forward/Sparse, 00:01:18/00:02:41

(172.16.1.100, 224.1.1.1), 00:01:16/00:02:22, flags: FT                            用PCping
224.1.1.1得到的路由表项

  Incoming interface: Serial0/3, RPF nbr 0.0.0.0, Registering

  Outgoing interface list:

    Serial0/2, Forward/Sparse, 00:01:16/00:03:12

(192.168.1.100, 224.1.1.1), 00:00:44/00:02:21, flags: JT                          用源ping
224.1.1.1得到的表项

  Incoming interface: Serial0/2, RPF nbr 23.1.1.2

  Outgoing interface list:

    Serial0/3, Forward/Sparse, 00:00:44/00:02:40

(*, 224.0.1.40), 00:01:37/00:02:34, RP 2.2.2.2, flags: SJCL                      cisco默认的

  Incoming interface: Serial0/2, RPF nbr 23.1.1.2

  Outgoing interface list:

    Serial0/3, Forward/Sparse, 00:01:37/00:02:34

T字符代表了该组播路由PIM的稀疏模式已经使用了"switchover的最短路径切换"来选择了最近的到达源的路由,而不是把流量发给RP(当然本例中RP就是最短的到达源的路由器,所以在本例中启不启用switchover无关系)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: