博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2018|回复: 0

组播

[复制链接]
发表于 2007-5-10 00:09:38 | 显示全部楼层 |阅读模式
]这段时间太忙了。 不好意思了.大家.下面写组播的东西..望大家共赏

<转发方式>
  1.基于流(一定是快速转发,但第一个包是基于进程转发的)
  2.基于数据包
  3.基于源
  4.基于源和目的
<处理机制>
  1.进程转发(通过CPU处理)
  2.快速转发(基于芯片,直接从某个端口扔出去)
Multicast is UDP based
<RTP>
<RTCP>
         
<Multicast>
·一个发送方同时将信息传输给一组接收方:
  1.将公司信息发送给所有雇员
  2.广播视频和音频,包括用于远程学习和交互式视频
  3.从中央数据仓库将数据传输给多个部门
  4.将股票报价传递给经纪人 (保证同时收到,不能一个先收到一个后收到)
·路由器不转发广播包,
  如果目的是发往非本子网的其他主机,广播做不到。
应用流量:服务器-客户端
          互动流量
一个人说给多个人听。
Unicast (A/B/C 类)
Broadcast (路由器不转发广播包)
ip Directed-Broadcast (默认disable)
show ip int e0
应用:不支持组播的设备。组播转换成广播
R2--R1--R3
R2:ping 13.1.1.255,正常R1给予回应。
在R1 S1口开启ip directed-broadcast
R1会将此广播包转发给R3
Multicast
Source -> Server
Destination -> Group
分散到其他广播域
多播路由器的2个基本功能:路由发现&包的前转。
最简单的包前转方法:向除了上游端口外的所有端口转发,称为“反向路径广播”。
                    RPB(Reverse Path Broadcast)
隐式加入:发送者发起的。(Dense密集模式-Push模式)
   路由器收到多播流,用IGMP来判断它直连子网是否有组员,如果没有,就向上游路由器发Prune,
   上游路由器就停止向这个Prune的路由器前转多播流量。
显式加入(Explicit):接收者发起的。
<Multicast Address>

224.0.0.0 - 239.255.255.255 保留给路由协议和其他网络维护功能。路由器不会把目标地址是这一范围的包前转。
保留的链路本地地址:224.0.0.0 - 224.0.0.255
    保留给本地网段上的网络协议使用。路由器不转发目标地址为这段地址的数据包。
    TTL=1 (FR Hub & Spoke 中。Spoke端不能建邻居)
全局范围地址:      224.0.1.0 - 238.255.255.255
    公司可以使用这段地址在组织之间和通过Internet以组播方式传输数据。
  指定源多播地址:  232.0.0.0 - 232.255.255.255
    此段地址被保留给SSM使用。SSM是PIM的一种扩展。
  GLOP地址:        233.0.0.0 - 233.255.255.255
    这段地址和AS号对应。
    例:AS62010的16进制表示为F23A,F2的十进制242,3A的十进制58,
        所以子网233.242.58.0/24被全局保留,供AS62010使用。
有限范围地址:      239.0.0.0 - 239.255.255.255
    使用这些地址的组播被限定在本地或组织内。公司、大学和其他组织使用有限范围地址来进行本地组播。
    与Internet相连的边缘路由器不会将这段多播地址帧转发到外网。
R1(config)#access-list 100 deny ip any 224.0.0.0 15.255.255.255
224.0.0.1   子网中的所有主机和路由器
224.0.0.2   子网中的所有路由器(HSRP)
224.0.0.4   DVMRP路由器
224.0.0.13  PIM路由器
224.0.0.18  VRRP
224.0.1.1   NTP
224.0.1.39  RP-Announce
224.0.1.40  RP-Discovery

<IP和MAC的对应>
IP地址的最后23位被映射到MAC地址的最后23位
0000,0001 0000,0000 0101,1110 0000,0000 0000,0000 0000,1010
          24位                0             23位
   01        00        5E        00        00        0A
< RPF (Reverse Path Forwarding)>
收到数据包的方向也必须是本路由器用来转发数据包源地址的方向,否则扔掉数据包
upstream ( 前往信源的方向)
downstream ( 前往接收方的方向)
show ip mroute static 查看静态多播路由
  "RPF check fails"-----先查多播路由表,再查单播路由表
RPF接口默认每5秒检测一次
        
   
<TTL>
接口的TTL阀值必须<=数据包的ttl值,接口才会转发
     
        入向接口的TTL值大于或等于出向接口的TTL值时,才转发.
R1(config-if)#ip multicast boundary 1   不分in,out方向
R1(config)#access-list 1 permit 239.129.0.0 0.0.255.255
Show ip pim int s0 detail
Show ip igmp int s0 ?
Ip multicast ttl-threshold 2   设置TTL值,必须在接口下
< Tree >
·Shortest-Path / Source Distribution Tree
  SPT(Shortest Path Tree)
  (S,G)  (192.168.1.1,224.1.1.1)
  源树的优点:在信源和接收方之间创建一条最优的路径,可以最大限度的降低转发多播流的网络延迟。
  同时也增加了开销,路由器要针对每个信源存储路径信息,在包含数千个信源的网络中,这种开销是庞大的。
  一个源一棵树.适用于比较多接收者时使用.每3分钟修剪一次.推模型.一般运行在DENSE模式下.
·Shared Distribution Tree
  RP(Rendezvous Point)
  (*,G)  (*,224.1.1.1)
  共享树的优点:每台路由器存储的信息较少,降低内存消耗。
  缺点:选择信源到接收方的路径不是最优的。所以要慎重考虑RP的位置。
  拉模型.RP可以手工指定.receiver端向RP端发出register包.一般运行在SPARSE模式下.
<IGMP(Internet Group Management Protocol)>
·IGMP报文封装在IP包中,Protocol NO.=2  / TTL=1
IGMPv1(hold time :180second):   1.Query包    每60秒发一次   由路由器发向224.0.0.1    DIP:224.0.0.1 GROUP:0.0.0.0
                                2.Report包   主机回应Queries或主动发
           DIP:224.1.1.1  GROUP: 224.1.1.1
IGMP没有离组消息,称之为静悄悄的离开,180S之后holdtime 到时,才从组中去掉
IGMP-V1没有查询者机制,要靠上层的PIM选出DR
IGMPv2: 1.Group-specific query  DIP: 224.1.1.1 GROUP:224.1.1.1
        2.Leaving a Group  DIP: 224.0.0.2 GROUP:224.1.1.1
当有多个路由器在同一个网段时,要先比出查询者(比最小IP地址),查询者老化时间默认是120S
IGMPv3-----可选择接收某些源
R1-----------PC2
R1(config)#ip multicast-routing       开启多播路由协议
R1(config-if)#ip pim dense-mode
R1/R2#debug ip igmp
R2(config-if)#ip igmp join-group 224.1.1.1        使R2加入"224.1.1.1"的组

R1#show ip igmp groups [detail]             查看谁加入了哪个组
IGMP Connected Group Membership
Group Address    Interface                Uptime    Expires   Last Reporter
224.0.1.40       Ethernet0                00:03:10  00:02:58  10.1.1.1
224.1.1.1        Ethernet0                00:03:10  00:02:58  10.1.1.2
R1#show ip igmp interface ethernet 0
Ethernet0 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
  Current IGMP router version is 2
  IGMP query interval is 60 seconds     
    (#ip igmp query-interval 60)每60S发送Query。"query-interval"乘以2等于"querier-timeout"
  IGMP querier timeout is 120 seconds   
    (#ip igmp querier-timeout 120)  非查询者在120S内没有收到查询者的包,自己充当这个角色。
  IGMP max query response time is 10 seconds  
   (#ip igmp query-max-response-time 20) 查询包中的字段,告诉主机回应Report的最大响应时间.
  Last member query count is 2
  Last member query response interval is 1000 ms
  Inbound IGMP access group is not set
  IGMP activity: 5 joins, 4 leaves
  Multicast routing is enabled on interface
  Multicast TTL threshold is 0
  Multicast designated router (DR) is 10.1.1.1 (this system)
  IGMP querying router is 10.1.1.1 (this system)
     网络中如果有多个路由器发Query,选举IP地址小的作为发送查询者。
  Multicast groups joined by this system (number of users):
      224.0.1.40(1)
Show ip mroute    查看多播路由表
<多播IP地址相对应的MAC地址>


<CGMP(Cisco Group Management Protocol)>   在路由器和交换机上都要配
for 2900
R3(config-if)#ip cgmp              在R3的某个接口起CGMP
SW3#show cgmp                      2900交换机默认已起用CGMP,3550和2950不支持
Group Destination Address (GDA) 组MAC地址
Unicast Source Address (USA)  单播源地址
Debug ip cgmp
<IGMP Snooping>  只要配置交换机,业界标准
Show mac-address-table multicast  查看交换机多播MAC表
Sw1(config)#ip igmp snooping vlan 1          基于VLAN 1 起用IGMP的SNOOPING
SW1#show ip igmp snooping groups
<PIM(Protocol independent Multicast)>
  PIM的在IP中的协议号是103
·PIM-DM ( Dense Mode )
·不管是何种单播路由协议,PIM都可以使用他们实现组播转发。
  并使用现在有单播路由表实现RPF校验。
  由于不必发送组播路由更新,所以PIM比其他组播协议开销降低了很多。
Flood&prune 每三分钟就要做一次
Hello:30S
Hold :30*3.5= 1分45秒
R1#debug ip packet detail
*Mar  1 00:15:44.207: IP: s=12.1.1.2 (Serial0), d=224.0.0.13, len 54, rcvd 0, proto=103
·MA网络PIM通过Hello包来选择DR,主要用于IGMPv1,DR将成为Querier。
  DR选举方式:1.Priority大的(默认=1)R1(config-if)#ip pim dr-priority 3
              2.IP地址大的
  DR可抢占。只有以太口才选DR,串口不选DR。
  如果运行的是IGMPv2,则DR的选举不一定会成为Querier。IGMPV2自已会选
DR的作用:1、充当IGMPV1的Querier
   2、在Dense无用     3、sparse中 send&receive join&register message
R1(config-if)#ip pim dr-priority 2        在接口下改优先级
R1#show ip pim neighbor
PIM Neighbor Table
Neighbor          Interface                Uptime/Expires    Ver   DR
Address                                                            Prio/Mode
10.1.1.2          Ethernet0                00:31:45/00:01:30 v2    3 / DR S
                                                               10.1.1.2的优先级为3,且为DR

R2#show ip igmp int e0
  Multicast designated router (DR) is 10.1.1.2 (this system)
  IGMP querying router is 10.1.1.2 (this system)

R3(config-if)#
*Mar  1 00:24:35.290: PIM(0): Send v2 Assert on Ethernet0/0 for 224.1.1.1, source 14.1.1.4, metric [120/1]
*Mar  1 00:24:35.290: PIM(0): Assert metric to source 14.1.1.4 is [120/1]
*Mar  1 00:24:35.290: PIM(0): We win, our metric [120/1]
*Mar  1 00:24:35.290: PIM(0): (14.1.1.4/32, 224.1.1.1) oif Ethernet0/0 in Forward state
R2#
*Mar  1 00:24:47.870: PIM(0): Received v2 Assert on Ethernet0/0 from 23.1.1.3
*Mar  1 00:24:47.870: PIM(0): Assert metric to source 14.1.1.4 is [120/1]
*Mar  1 00:24:47.870: PIM(0): We lose, our metric [120/1]
*Mar  1 00:24:47.870: PIM(0): (14.1.1.4/32, 224.1.1.1) oif Ethernet0/0 in Prune state

   Graft
   Graft-Ack

D:表示组播组是一个密集模式,仅在(*,G)出现.
C:有直接的组成员,会在(*,G)和(S,G)都出现.
L:表示自己就是组成员,会在(*,G)和(S,G)都出现.
P:输出接口为空/输出接口都处于Prune状态,结果Prune会从此(S,G)送至上游RPF邻居.会在(*,G)和(S,G)都出现.
T:信息经(S,G)转发,只要收到第一个(S,G)包,就设置该标志.因此,T始终都会出现,仅在(S,G)出现.
J:........................

(*, 224.1.1.1), 00:14:14/stopped, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial1, Forward/Dense, 00:13:54/00:00:00
(14.1.1.4, 224.1.1.1), 00:14:14/00:00:00, flags: T
  Incoming interface: Ethernet0, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial1, Forward/Dense, 00:13:54/00:00:00
--------------------------------------------------------------------------
(*, 224.1.1.1), 00:14:16/00:02:58, RP 0.0.0.0, flags: D
  Incoming interface: Null, RPF nbr 0.0.0.0
  Outgoing interface list:
    Serial1, Forward/Dense, 00:13:56/00:00:00
如果没有组播流,(*,G)等到(S,G)消失后,从3分钟倒计时.

*Mar  1 01:05:36.191: PIM(0): Received v2 Join/Prune on Serial0 from 12.1.1.2, to us
*Mar  1 01:05:36.195: PIM(0): Prune-list: (14.1.1.4/32, 224.1.1.1)  
*Mar  1 01:05:36.199: PIM(0): Prune Serial0/224.1.1.1 from (14.1.1.4/32, 224.1.1.1)
*Mar  1 01:08:38.467: PIM(0): Received v2 Join/Prune on Serial0 from 12.1.1.2, to us
*Mar  1 01:08:38.471: PIM(0): Prune-list: (14.1.1.4/32, 224.1.1.1)  
*Mar  1 01:08:38.475: PIM(0): Prune Serial0/224.1.1.1 from (14.1.1.4/32, 224.1.1.1)
3分钟周期发送Prune.
无论在什么时候,只要出现了(S,G),就会出现它的父项(*,G),但(*,G)不作转发选择。

·PIM-SM ( Sparse Mode )
指定RP的方式
Static  指定RP(一般用环回口),并通告进IGP
auto RP
BSR
DR的作用:
1、充当IGMPV1的Querier
2、在Dense无用     
3、sparse中 send&receive join包&register包 message
Register包由信源发向RP,查询本组中有无组员,它是一个单播包。如果本组中有组员,则RP向信源发出一个(S,G)JOIN包和register stop包(停止单播),则后续数据以多播包下发,并形成spt树,

IP PIM UDP RTP VOIDE  
R3(config)#ip pim rp-address 2.2.2.2  在RP上也要打入这一命令,指明谁是RP
*Mar  1 01:51:22.647: PIM(0): Building Periodic Join/Prune message for 224.1.1.1
*Mar  1 01:51:22.651: PIM(0): Insert (*,224.1.1.1) join in nbr 13.1.1.1's queue
*Mar  1 01:51:22.655: PIM(0): Building Join/Prune packet for nbr 13.1.1.1
*Mar  1 01:51:22.659: PIM(0): Adding v2 (2.2.2.2/32, 224.1.1.1), WC-bit, RPT-bit, S-bit Join
*Mar  1 01:51:22.663: PIM(0): Send v2 join/prune to 13.1.1.1 (Serial1)
*Mar  1 01:52:21.823: PIM(0): Building Periodic Join/Prune message for 224.1.1.1
*Mar  1 01:52:21.827: PIM(0): Insert (*,224.1.1.1) join in nbr 13.1.1.1's queue
*Mar  1 01:52:21.831: PIM(0): Building Join/Prune packet for nbr 13.1.1.1
*Mar  1 01:52:21.835: PIM(0): Adding v2 (2.2.2.2/32, 224.1.1.1), WC-bit, RPT-bit, S-bit Join
*Mar  1 01:52:21.839: PIM(0): Send v2 join/prune to 13.1.1.1 (Serial1)
WC-bit  :表示这个加入地址是一个RP地址,不是源
RPT-bit :表示这个消息顺着共享树传送RP
S-bit   :标识是Sparse-mode
R2#show ip mroute
(*, 224.1.1.1), 00:00:17/00:03:13, RP 2.2.2.2, flags: S
  Incoming interface: Null, RPF nbr 0.0.0.0  (自己是RP,所以是Null,0.0.0.0)
  Outgoing interface list:
    Serial0, Forward/Sparse, 00:00:17/00:03:13


R4 ping 224.1.1.1
R2 debug ip pim
*Mar  1 02:06:08.487: PIM(0): Check RP 1.1.1.1 into the (*, 224.1.1.1) entry
*Mar  1 02:06:08.495: PIM(0): Send v2 Register to 1.1.1.1 for 24.1.1.4, group 224.1.1.1
*Mar  1 02:06:08.579: PIM(0): Received v2 Join/Prune on Serial0 from 12.1.1.1, to us
*Mar  1 02:06:08.583: PIM(0): Join-list: (24.1.1.4/32, 224.1.1.1), S-bit set
*Mar  1 02:06:08.591: PIM(0): Add Serial0/12.1.1.1 to (24.1.1.4/32, 224.1.1.1), Forward state

<Auto RP>  必须运行在sparse-dense模式下
C-RP 候选RP
MA 映射代理,MA的多播地址:224.0.0.39
224.0.0.40 所有支持auto rp的路由器
c-rp/ma 的loopback一定要宣告进IGP
R1(config)#ip pim send-rp-announce loopback 0 scope 5
配置为候选RP,向224.0.1.39每60秒发送一个RP-Announce,且只能传5跳
R1(config-if)#ip pim send-rp-discovery loopback 0 scope 5  在MA上配,也规定了只能传5跳
R1(config)#int lo0
R1(config-if)#ip pim sparse-mode(要确保loopback口也运行PIM)
映射代理收听RP-Announce消息,并选择RP(IP地址大的优选),它在RP-Disconvery消息中向PIM域中的其他路由器通告RP的地址。

R3#show ip pim rp mapping (in-use )


组      播
Multicast是基于UDP的,它所传输的数据包是用UDP封装的。
RTP-实时传输协议real-time
RCTP-实时控制协议
先封装RTP,再封装UDP

20byte 8byte 12byte     
IP UDP RTP Vlice payload  
IGMP因特网组管理协议
多播地址:
224.0.0.1 所有主机和路由器
224.0.0.2 所有路由器
224.0.0.5   
224.0.0.6
224.0.0.9
224.0.0.10
224.0.0.13     PIM用


Sparse-mode
pim sparse mode
Bi-directional  双向PIM
   让源和RP之间也使用(*,G)共享树,在每一个链路上产一个DF,到RP的距离COST值最小的成为DF,
DF之间有四种消息来联系offer,winner,backoff,offer inf
SSM 在源已经固定的情况下使用
   事先已知道源,可以允许last hop router 直接发送出一个(S,G)的join申请。和源之间建立联系,生成spt。不必形成共享树,直接形成一条最短路径树。
MSDP multicast source discovery protocol基于TCP
   用于做域间路由的技术
   一边一条命令
   R1上:Ip msdp peer 2.2.2.2(对方) connect-source lo0 remote 2
   R2上:Ip msdp peer 1.1.1.1(R1)connect-source lo0 remote 1
RP配置
static rp
auto rp
想成为RP的路由器发送announce给映射代理
send rp-announce   to  224.0.1.39(映射代理)
send rp-discovery   to 224.0.1.40(所有PIM路由器)
224.0.1.40   224.0.1.39
bsr rp   (bootstrop router)   224.0.0.13
先决定出谁是active BSR路由器
Active BSR发出一个消息bsr message(bar ip address)到224.0.0.13
路由器收到bsr message信息
想成为RP的路由器单播给active bsr 说明自已相成为某个组的RP
Active bsr收到各个路由器想成为RP的消息后,不任决定,发出这些收集到的信息。To 224.0.0.13
anycast rp
last router从共享树切换到源树是每秒检查一次,从源树切换回源树是每分钟检查一次
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-24 02:18 , Processed in 0.089209 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表