组播Multicast 1 overview

session 1 Multicast组播概念
一、优点:
1、带宽:unicast需要服务器发多份数据给相同多个的客户端
                        Multicast只需要服务器发一份数据到一个组地址就行,组中多个客户端在监听,由网络设备发给相同的组的客户端,减少带宽。
2、延迟:unicast发送给多个用户时,后发送的会比先发送的有延迟
                Multicast发送给多个用户时,没有延迟。因为是向组中发送一份数据报文,故不存在先手顺序无延迟
缺点:只能基于udp,不属于端到端连接,没法使用tcp
 
二、内容
1、组播地址只能做目标地址
2、组播成员:接收组播流量的一组设备(沿途路由器只负责传递组播流量,可以不用加入组播组)
3、不支持组播的设备可以将流量以单播(复制多分)和广播的形式转发
 
三、组播地址
       组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。
1、224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;
1、224.0.0.0~224.0.0.255
224.0.0.1 所有支持组播的设备都在该组中
224.0.0.2 组中的所有路由器使用的地址
224.0.0.5/6 ospf协议的更新信息组
224.0.0.13   PIMv2路由器协议使用地址
224.0.0.22   IGMPv3协议使用的地址
2、224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;
3、224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;
4、239.0.0.0~239.255.255.255为本地管理组播地址,仅在特定的本地范围内有效。(组播中的私有地址)
5、233.0.0.0 ~ 233.255.255.255 全球可路由的组播地址BGP组播
 
四、组播ip与MAC地址的映射关系
组播ip与MAC的换算,举例:
一、组播ip:239.255.0.1
MAC地址:01-00-5E-7E-00-01
换算方法:组播ip地址都是/8的前缀,所以前8bit不用管固定的,也就是239,后面24bit是对应的MAC地址的。在48bitMAC地址中,前24bit是分配给厂家的也是固定的,也就是01-00-5E,后面24bit对应的是ip的24bit,但是第25bit是固定的0(特殊原因),所以只有23bit来对应ip的23bit,那么换算成2进制就是:
ip:                          239. 11111111.00000000.00000001
mac:01-00-5e- 01111111.00000000.00000001     (ip的后23bit个可用做mac,前面25bit固定)
换算下来mac是:01-00-5e-7F-00-01                         二进制换成16进制(8421原则),其中红色的就是固定为0的,不考虑,后面的23bit用于组播ip和mac的换算, 01111111=7F,00000000=00,00000001=01
同理,在换算一个组播地址:
二、ip:224.254.1.2
             mac:01-00-5e-xx-xx-xx
换算结果为:224.254.1.2 对应 01-00-5e-7e-01-02
 
session 2 组播协议IGMPv2
IGMPv2用于组播成员与组播网关使用的组播通信协议,组播和ospf协议一样都是以接口为范围的。
组播网关配置:
R1(config)#ip multicast-routing                                          开启组播功能
R1(config-if)#ip pim dense-mode                                   使用PIM协议,共享模式无需RP       
R1#show ip igmp interface s0/0                                         可以查看IGMP协议状况
Serial0/0 is up, line protocol is up
   Internet protocol processing disabled
   IGMP is enabled on interface
   Current IGMP host version is 2
   Current IGMP router version is 2
   IGMP query interval is 60 seconds
   IGMP querier timeout is 120 seconds
   IGMP max query response time is 10 seconds
   Last member query count is 2
   Last member query response interval is 1000 ms
   Inbound IGMP access group is not set
   IGMP activity: 0 joins, 0 leaves
   Multicast routing is enabled on interface
   Multicast TTL threshold is 0
   IGMP querying router is 0.0.0.0 (this system)
   No multicast groups joined by this system
R1#
R1(config-if)#ip igmp join-group 224.1.1.1                                        将接口加入组224.1.1.1
R1#show ip igmp groups  224.1.1.1                                                                  查看当前组中有哪些终端
IGMP Connected Group Membership
Group Address       Interface                               Uptime       Expires     Last Reporter     Group Accounted
224.1.1.1               Serial0/0                               00:01:26   stopped     0.0.0.0               
R1#
 
  一、IGMP的抑制机制
IGMP的原理:
1、首先由组播网关设备每60秒发起一起query查询,IGMP的query查询报由网关发起,询问哪些成员需要加入组,初始源ip是网关接口ip,目的是组播组ip,IGMP头部中的组成员地址是0.0.0.0初始填充。
2、监听组播地址的终端接收组播网关的query查询,若要加入组,就会对网关产生回应report报文,并同时生成一个抑制计时器。
3、抑制(cancel report):计时器由终端生成且时间随机(每个终端的初始倒计时间都不一样),当某个终端的计时器到达0秒时候触发report响应抑制后,它会向同一个组中的其他终端成员发送抑制,让他们不要再发送report响应给组播网关设备了(因为自己已经先人一步发送了report响应给网关设备了,自己已经代表了其他监听该组地址的终端了,这样有限的减少了带宽的资源占用)等到网关设备过了60s再次发送query查询的时候,抑制会再次启动,再次由抑制计时器先到0的终端向组中的其他终端发起抑制
可以使用debug ip igmp查看每个组成员之间的report响应和cancel report响应抑制
4、IGMPv2离组
终端发起离组消息,网关收到后发送一次(cisco是2次)查询信息(在终端所在的组内,那个组的发送离开消息就向哪个组发送查询),在1s内(cisco是2s)没有收到终端回应,那么就认为该终端已经离组。
离组也有抑制,与加入组一样原理。
实验案例:
组播Multicast 1 overview_第1张图片
上图中R1是组播路由器,负责转发组播流量,而R2与R3扮演PC机较色,使用PIM动态组播路由协议以及IGMPv2协议来演示:
R1组播路由器的配置
R1#show run | include ip multicast
ip multicast-routing                                                                             开启组播路由功能
R1#
R1#show run interface f0/0
Building configuration...
Current configuration : 112 bytes
!
interface FastEthernet0/0
  ip address 10.1.1.1 255.255.255.0
  ip pim dense-mode                                                                               组播路由器启用pim协议,共享模式。R1并没有加入组中
  duplex auto
  speed auto
end
R1#
R1#show ip igmp groups 224.1.1.1                               查看224.1.1.1组中的成员
IGMP Connected Group Membership
Group Address       Interface                               Uptime       Expires      Last Reporter     Group Accounted
224.1.1.1               FastEthernet0/0                   00:08:54   00:02:26    10.1.1.3             
R1#
红色中看到组中最后一次发送 Reporter响应的是10.1.1.3即R3,因为R3的抑制计时器比R2快,后面可以看到

R2模拟客户端加入组的配置
R2#show run interface f0/0
Building configuration...
Current configuration : 142 bytes
!
interface FastEthernet0/0
  ip address 10.1.1.2 255.255.255.0
  no ip route-cache
  ip igmp join-group 224.1.1.1                                                   R2的接口模拟PC加入组224.1.1.1
  duplex auto
  speed auto
end
R2#
R3模拟客户端加入组的配置
R3#show run interface f0/0
Building configuration...
Current configuration : 142 bytes
!
interface FastEthernet0/0
  ip address 10.1.1.3 255.255.255.0
  no ip route-cache
  ip igmp join-group 224.1.1.1                                                   R3的接口模拟PC加入组224.1.1.1
  duplex auto
  speed auto
end
R3#
 
R1#show ip igmp interface f0/0
FastEthernet0/0 is up, line protocol is up
   Internet address is 10.1.1.1/24
   IGMP is enabled on interface
    Current IGMP host version is 2                                                        组播协议PIMv2
    Current IGMP router version is 2
    IGMP query interval is 60 seconds                                                   组播路由器发起查询的间隔为60s一次
   IGMP querier timeout is 120 seconds
   IGMP max query response time is 10 seconds
   Last member query count is 2
   Last member query response interval is 1000 ms
   Inbound IGMP access group is not set
   IGMP activity: 4 joins, 2 leaves
   Multicast routing is enabled on interface
   Multicast TTL threshold is 0
    Multicast designated router (DR) is 10.1.1.1 (this system)                PIM中组播DR路由器是10.1.1.1
    IGMP querying router is 10.1.1.1 (this system)                                  发送query的路由器是10.1.1.1
   Multicast groups joined by this system (number of users):
           224.0.1.40(1)
R1#
 
在R1、R2、R3开启debug ip igmp查看igmpv2的抑制机制(v3中没有)
R1#
*Mar   1 00:45:03.471: IGMP(0): Send v2 general Query on FastEthernet0/0         
发送查询
*Mar   1 00:45:09.063: IGMP(0): Received v2 Report on FastEthernet0/0 from 10.1.1.2 for 224.1.1.1
从10.1.1.2收到了report响应,10.1.1.3被10.1.1.2抑制了所以没有发送响应
*Mar   1 00:45:09.067: IGMP(0): Received Group record for group 224.1.1.1, mode 2 from 10.1.1.2 for 0 sources
*Mar   1 00:45:09.067: IGMP(0): Updating EXCLUDE group timer for 224.1.1.1
*Mar   1 00:45:09.067: IGMP(0): MRT Add/Update FastEthernet0/0 for (*,224.1.1.1) by 0
R1#u all
All possible debugging has been turned off
R1#

R2#
*Mar   1 00:45:03.479: IGMP(0): Received v2 Query on FastEthernet0/0 from 10.1.1.1
 收到R1发送的query查询
*Mar   1 00:45:03.479: IGMP(0): Set report delay time to 4.6 seconds for 224.1.1.1 on FastEthernet0/0
R2的report响应抑制计时器被随机设置为4.6s
R2#
*Mar   1 00:45:09.039: IGMP(0): Send v2 Report for 224.1.1.1 on FastEthernet0/0
因为R2的抑制计时器为4.6秒,小于R3的9.0s,所以R2向R3发送抑制,并自己发送了report给组播路由器R1,减少不必要的report在网络中传输
R2#
 
R3#
*Mar   1 00:45:03.499: IGMP(0): Received v2 Query on FastEthernet0/0 from 10.1.1.1
 收到R1发送的query查询
*Mar   1 00:45:03.499: IGMP(0): Set report delay time to 9.0 seconds for 224.1.1.1 on FastEthernet0/0
R3的report响应抑制计时器被随机设置为4.6s
*Mar  1 00:45:09.079: IGMP(0): Received v2 Report on FastEthernet0/0 from 10.1.1.2 for 224.1.1.1
*Mar  1 00:45:09.079: IGMP(0): Received Group record for group 224.1.1.1, mode 2 from 10.1.1.2 for 0 sources
*Mar  1 00:45:09.079: IGMP(0): Cancel report for 224.1.1.1 on FastEthernet0/0
三条红色的收到信息是R3收到R2的report响应抑制信息,因为R2的抑制计时器时间为4.6s<自己的9.0s,所以R3不在向组播路由器R1发送report响应信息,这里没有看到R3向R1发送report响应信息
R3#
 
session 3 IGMPv3
一、IGMPv3使用组地址:224.0.0.22
在IGMPv3中没有抑制,集合switch的spooning也不需要抑制,由交换机处理,不会让网络中产生大量的repoer响应报文。
IGMPv3中比v2中多了源参数可选,可以指定只report响应某个源组播路由器发来的query查询信息
配置IGMPv3相关:
R1(config)#interface s0/0
R1(config-if)#ip igmp version 3
R1(config-if)#ip igmp join-group 224.1.1.1                                                                  加入组224.1.1.1,源随意,下面是对比命令
R1(config-if)#ip igmp join-group 224.1.1.1 source 10.1.1.1                只接受源为10.1.1.1的组播报文
不限定源的话,会在一个query查询报文中包括多个组(同时查询多个组)
 
修改igmp中的参数
R1(config-if)#ip igmp ?
    access-group                IGMP group access group                                              限制组范围
   explicit-tracking                     Enable/Disable IGMP explicit-tracking
   helper-address                           IGMP helper address
   immediate-leave                         Leave groups immediately without sending last
                                                           member query, use for one host network only
    join-group                  IGMP join multicast group                                                模拟加入组
   last-member-query-count         IGMP last member query count
   last-member-query-interval   IGMP last member query interval
   limit                                             IGMP limit
   mroute-proxy                               Mroute to IGMP proxy
   proxy-service                             Enable IGMP mroute proxy service
   querier-timeout                         IGMP previous querier timeout
    query-interval              IGMP host query interval                                             修改查询时间间隔,默认60s
    query-max-response-time     IGMP max query response value                      修改最大report响应时间
   static-group                               IGMP static multicast group                                                                                 静态组
   unidirectional-link                 IGMP unidirectional link multicast routing
   v3lite                                           Enable/disable IGMPv3 Lite
    version                     IGMP version                                                                    版本
 

你可能感兴趣的:(组播Multicast 1 overview)