组播Multicast 2 PIM

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

2、组播的RPF Check( 逆向路径转发技术检查
因为组播和单播的路径是相反的,所以这个检测是检测单播和组播的路径是不是相反(相对应)的。
组播Multicast 2 PIM_第1张图片
      这个图中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最短路径),其余的路径被修剪掉了,以节省网络带宽。
组播Multicast 2 PIM_第2张图片
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),这里看下图理解下:
组播Multicast 2 PIM_第3张图片
      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 *

拓扑如下:
组播Multicast 2 PIM_第4张图片
一、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: F T                                                       用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: J T                                                    用源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无关系)

你可能感兴趣的:(组播Multicast 2 PIM)