组播学习笔记_第1页
组播学习笔记_第2页
组播学习笔记_第3页
组播学习笔记_第4页
组播学习笔记_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

组播学习笔记组播学习笔记 一 基础知识一 基础知识 1 组播的概念 使用组播的好处 一个源可以利用组播向多个目标发送数据 如 IGP 的无类路由协议使用的组播 使用组播可以节省带宽和设备的 cost 组播的缺点 组播是基于 UDP 发送的 数据层面 2 RTP real time transport protocol 实时传输协议 因为组播是基于 UDP 的 其传输是无序的 为了解决接受数据时有序的 就需要对数据的实时传输 3 由于是基于 UDP 的所以他的传输和 UDP 一样都是尽力的传输 没有拥塞避免机制 因为是无序传 输 需要利用 RTP 来解决 在冗余拓扑中 可能让接受者收到多个一样的报文 可以通过 PIM 来 解决 4 组播应用的类型 a 1 对多 b 多对多 视频会议 c 多对 1 5 组播的专用名词 First hop 第一跳路由器 Last hop 最后一跳路由器 IGMP 典型的个人 和路由器之间沟通的协议 6 PIM 协议无关的组播 即和运行的 IGP 没有关系 7 ip 地址的分类回顾 A 类 0 127 B 类 128 191 C 类 192 223 D 类 224 239 其中 D 类是组播地址 不能被配置在设备的接口上 在 A 类地址中 127 是被保留的特色地址 也 就是我们常用的本地环回地址 8 组播地址不能被当做源地址 只能被当做目标地址 9 组播地址的细分 A 保留的本地链路地址 224 0 0 0 224 0 0 255 B 公网组播地址 224 0 1 0 238 255 255 255 保留的公网组播地址 SSM source specific multicast 指定源的组播 在 CCSP 中会涉及 这种协议时 PIM 的高级协 议 232 0 0 0 232 255 255 255 GLOP 地址 233 0 0 0 233 255 255 255 就是申请一个 BGP 的 AS 号会送一段组播地址 这段 地址就是 GLOP 地址 这个地址是可以根据 AS 号来算出来的 如下所示 如果 AS 64521 那么所得组播地址是 1 将 64521 转化成十六进制的数 FC09 2 将 FC09 从中间断开得到 FC 09 3 将 FC 和 09 分别转化成两个十进制的数得到 252 9 4 分别将这两个数字放在 GLOP 地址的第二位和第三位 就得到基于本 的地址 232 252 9 0 24 C 私有的组播地址 239 0 0 0 239 255 255 255 10 典型的私有地址的使用 224 0 0 1 发向所有的主机和路由器 224 0 0 2 发向所有的路由器 224 0 0 5 OSPF 向所有路由器发送路由信息使用的组播地址 224 0 0 6 OSPF 中 MA 网络 发向 DR 使用的组播地址 224 0 0 9 RIPv2 224 0 0 10 EIGRP 224 0 0 13 PIM 发送 hello 包的组播地址 二 二 IGMP 协议协议 1 IGMP 的定义 internet group management protocol internet 组管理协议 本协议有三个版 本 V1 V2 V3 这里我们重点学 习 V2 IGMP 是封装在 IP 包里面 的 这里 IGMP 的 协议号是 IGMPv1 的数据包模型 2 IGMPv1 他有两种报文 1 查询包 由最后一跳路由器发送 查询有哪些组员 每 60 秒发一次 发送的组播地址 是 224 0 0 2 查询报文的目标地址和组地址 224 0 0 2 group 0 0 0 0 2 report 包 由主机发送 说明加入了某个组 他的目标地址和组地址分别是 D 224 1 1 1 G 224 1 1 1 如左所示 其目标和组地址都一样 这是因为通过路由器向下 发送查询报文 主机收到该报文后 会向路由器发送 report 报文来回复 而发送的 report 的报文由本地主机运行的应用程序而决定加入什么样的组 故而确定了组地址 而用本地 的组地址作为发送 report 包的目的地址 则是有两方面的优点 使用组地址作为 report 报 文的目标地址 可以将报文发给网关路由器和加入同一个组的 PC 这时 所有的 PC 都会 以这个地址来发 report 报文 而相同的报文会被抑制掉 从而只发一个相同的 report 报文 给网关路由器 3 离组消息 在 180S 内发送三次查询包 如果一直没有收到该组的 report 回复报文 则意 味这该组自动解散 最后一跳路由器清除该组相关表项 缺点是在 180s 内还在转发组播 消息 3 IGMPv2 版本 2 相对于版本 1 的常规查询和 report 新增了 2 中报文 其解决了版本 1 在 180s 内仍 然转发组播消息的问题 IGMPv2 的四种报文 1 常规查询 和版本 1 一样 2 report 报文和版本 1 一样 3 group specific query 指定组的查询 4 leave group massage 离组消息 在最后一跳路由器冗余的情况下会出现查询者的选举 既在这样的一个网络下会出现 querier 的选 举 其选择的原则是选取 IP 地址小地址小的设备作为查询者 由于发送查询的时候使用的 目标地址是 224 0 0 1 路由 器和 PC 都接收 所以在查询 的过程中就会选出来查询者 在版本 1 中也存在这样的 选路 而在版本 1 中则使用 的是 PIM 来选择 DR 选出的 DR 就充当了查询者 当查询者 down 了之后 非查询者在 120S 之内 没有收到查询者的查询 那么非查询者就会充当查询者 4 IGMPv2 的报文格式 右图 5 离组报文 其发送离组消息的 目标地址是 224 0 0 1 group 地址是 就是原有的 group 地址 6 当查询者收到了这个 的离 组报文后 路由器就会发送 一个指定组的查询报文 发 送指定组的查询报文后 路 由器会等待 如果没有 收到这个组的 report 报文 那么路由器就会删除这个组 的所有表项 到目前为止 离组完成 如果 PC 收到指定查询 那么 PC 就会马上发送一个 report 的报文 7 在路由器上面启用组播路由协议 全局下 ip mlticast routing 在接口下运行 PIM 协议 ip pim sparse mode 查看谁是查询者以及相关信息 show ip igmp interface Debug ip igmp 可以详细的看看离组的过程 查看组员信息 show ip igmp groups 在查看的同时 思科路由器会自动加入一个组 224 0 1 40 三 二层的组播地址三 二层的组播地址 1 mac 地址 mac 地址是一个 48 位 其前 24 位是需要申请的 简称是 OUI 后 24 位是厂家自己 任意指定的 2 理论上组播地址有 2 的 28 次方个组播地址 因为前四位是固定的 3 在一个需要运行组播的网络中 当数据进行封装的时候 在 IP 报文前面会封装以太网包头 在 分装以太网包头的时候 需要有源和目标 mac 地址 当然 封装的时候源 mac 地址就是该报文 出去的以太网口的 mac 地址 那么目标 mac 地址就需要和运行的组播地址进行换算了 其换算 的方法是 首先 这个目标 mac 地址的前 25 为是确定的 既 01 00 5e 0 0 是固定的 后面 的 23 为是自己分配的 其次 将本组的组播地址转换成二进制 取后 23 位直接放在前面的 25 位后面 这就得到了我们需要的目的 mac 地址 那么着就意味着我们有 32 个组播地址对应了 一个组播数据包的目标 mac 地址 就有可能有 32 个组播地址映射到了一个 mac 地址 4 当一个交换机接受到一个组播地址或者广播地址的数据包时 就会向所有属于同一个 vlan 的接 口泛红这个数据 但是在在实际工程中为了减少不必要的组播泛红到其他的链路上去 这时就 有了 IGMP snooping 协议和思科私有的 cisco group management protocol CGMP 协议 5 IGMP snooping 他是一个业界标准 其只需要在交换机上面做就可以解决问题 原理 默认的一台交换机只可以将包拆到 mac 地址就可以转发了 但是 IGMP snooping 之后就 可以将包拆到三层的 iip 地址 当 PC 加入一个组之后会发送 report 报文 而且目标 ip 地址和 组 ip 地址是一样的 如果这个交换机启用的 IGMP snooping 功能 他就会把这个报文截获下 来 这时 就会将截获来的报文的组地址和接口就会有一个映射表 当交换机接受来的组播报 文 就只会向有映射的接口发送 而不会向所有本 vlan 的接口发送 全局下 iip igmp snooping vlan 1 针对 vlan1 开启 snooping 不加 vlan 的话就是针对所有的 vlan 都开启 snooping 查看交换机上 IGMP snooping 表项 show ip igmp snooping group 6 CGMP 需要交换机和路由器的一个协同工作 思科私有的 原理 PC 向路由器发送 report 报文 当交换机和路由器都启用了 CGMP 功能后 report 报文会直 接透传交换机发送给路由器 而路由器会截获 report 报文的目标 mac 地址和源 mac 地址作为 GDA group destination address 组的目标地址 和 USA unicast source address 单播的源 mac 地址 封装成 CGMP 报文 再将 CGMP 报文发送给交换机 交换机就有了这个表项 既一个 PC 的 mac 地址和一个组播 mac 地址的映射表项 当交换机收到一个 224 1 1 1 的组播数据 数 据转发时的目标 mac 地址就变成 GDA 了 交换机收到这个数据包之后就会向和 GDP mac 地址 映射表项的 USA mac 地址的接口区转发 开启交换机 cgmp 全局 cgmp 开启路由器 cgmp 接口下 ip cgmp 运行多播协议和 PIM 四 组播路由协议四 组播路由协议 PIM 协议无关的组播协议 协议无关的组播协议 单播路由协议和组播路由协议的区别 单播路由是决定数据时从哪 走哪 出去的一种协议 而组播路由协议则是决定数据时从哪个接口进来的一种协议 既防止接受重复报文 既路由器接收 一个组播报文只可能有一个接口 1 RPF reverse path forwarding 反向路径转发 把路由器的包的进入接口称之为 RPF 接口 一个路 由器只有一个 RPF 接口 2 RPF 校验 如右图所示 当路由器接收到一个源地址为 151 10 3 21 的组播数据的时 路由器会做 RPF 校验 这 时 路由器会找自己的单播路由表 来查找源 151 10 3 21 的路由 在右图所示的例子中 查找的结果 是从 s1 口出去的 而组播数据时从 s0 口进来的 这是 RPF 校验失败 3 当最后一跳路由后面有负载均衡的链路时 这时候选举 RPF 接口的办法是 在 校验的时候 优选与 到达源地址路由条目的最短路由管理距离 多个路由协 议 的接口 如果以上是一样的 那就选择最小 metric 的哪条链路的接口 3 如果若果 metric 值一样 那就选择较大的 IP 地址的那个接口作为 RPF 接口 4 当我们需要基于组来做组播的负载分担的时候 可以写 一条组播的静态路由来干扰个别流量的的走向 全局下 ip mroute 1 1 1 1 255 255 255 255 入接口 其中 1 1 1 1 255 255 255 255 是发送组播数据 的源地址 入接口就是本地路由器上的组播数据进入的接口 组播的静态路由的 AD 是 0 5 组播中的两棵树 A source rooted 源树 SPT 原理 当一个网络中有多个组播数据源的时候 每个源会在这个网络中生成一棵树 这时就 会在本地产生一个表项 组播路由表 他会标识出这个组播数据流量是从哪个接口 进来的 要从哪个接口出去 运 SPT 的缺点是 占用路由器的 cost 优点是 源到 达接受者是最优的 B shared trees 共享树 RPT 原理 当有多个组播数据源的时候 在网络中指定一个 RP 路由器 这时 所有的组播数据 流量都发向 RP 设备 然后 网络中以 RP 为源树 来形成一棵树 这个模型是一个分 段模型 在 RP 以前还是源树 在 RP 以后就是共享树了 6 PIM 的两种模式 1 sparse mode 稀疏模式 2 dense mode 密集模式 有组播流量才能够形成树形结构 所谓的密集模式就是接受者非 常多 使用的模式是 push 模式 使用的树是 spt 树 其运行原理 当源路由器有组播数据 流量向下发的时候 第一跳路由器会将流量发向所有的最后一跳路由器 一旦组播流量泛 洪完成后 每台设备上就会产生一个表项 S G 如果有的最后一跳设备上面没有接受者 那么就会发送一个 pruning 包 当源树的根收到 pruning 包之后就会修剪掉没有接受者的设 备的组播表项 到了这个时候 组播流量就只向有接受者的最后一跳设备发送 在这个过 程完成后 每三分钟会泛洪一次组播流量 也会在进行一次修剪 如此 循环这个过程 如果 网络在接受者比较多 那么这种模式就比较好 3 PIM 的工作原理 当两台设备的接口都运行 PIM 的 sparse 或者 dense 模式 就开始建立邻 居 发 hello 包 发送的组播地址 224 0 0 13 30s 发送一次 hold 时间是 105s 在 IGMPv1 中选举查询者就是在这个过程中进行的 选举规则是 先比接口优先级 再比接口先比接口优先级 再比接口 的 地址较高的 地址较高 当邻居建立成功后 可以使用命令 show ip pim neighbor 查看 这时会看到这个表有三 个状态属性 如下图所示 Dense mode 的配置 首先 在设备上面需要配置的设备上面启 IGP 路由 为了防止 RPF 校验失败 其次 开启设备的组播路由功能 全局下 ip multicast routing 最后 在所有转发组播流量的接口下配置 PIM 模式 ip pim dense mode 在 ping 组播地址的时候 要是没有回包 很有可能是接受者的最后一跳路由器没有回去的 路由 5 在 PIM 中修改接口的优先级 ip pim dr priority 优先级 6 查看组播路由表 show ip mroute 在查看组播路由器的路由表的时候后面的 flags 位的字母 分别表示 D 表示运行的是 dense 模式 S 表示运行的是 sparse 模式 T 表示 SPT 位置位了 表示组播数据已经从形成好的源树开始转发 7 组播中的通用规则 A 当组播运行的时候 其路由表中产生一个 S G 就会自动产生一个 G 但是在 dense 模式下 G 不做组播数据转发 8 sparse 模式 稀疏模式 其使用了 pull 模式来转发组播流量 其用到了 SPT 树和 RPT 树 这种模式只要有了接受者就会形成树形结构 原理原理 右图为例 在运行 sparse 模式之前 在 网络中选取一个 RP 当接受者加入一个组之后 连接接受者的的最后一跳设备会向 RP 发出一个 G 的 join 包 此时 RP 到达最后一跳路 由器 这棵树 RPT 就形成了 让 RP 知 道有接受者 在这个过程中从 RP 路由器到最后 一跳路由器都会形成一个 G 的表项 当第 一跳路由器接收到组播流量的时候 会向 RP 用 单播发送一个 register 报文 S G register 报文 里面 IP 包头之后封装的是 PIM 信息 目的 是查看 RP 上面有无该组的组员 这时 有两种情况 如果有的话 那么就直接把这个 register 包解封装 就按照正常的组播流量向下走 然后 RP 会向第一跳路由器发送一个 join 信息 S G 因为所有的组播流量都封装在一个单播数据包中 最终需要通过组播路由 表来转发 当第一跳路由器收到后 形成 spt 树 组播流量就会通过 spt 发个 RP 再通过 RPT 发给接收者 这时 第一跳路由器仍在向 RP 发送单播 register 报文 为了抑制这种现象 RP 就会向第一跳路由器就会以单播的形式向第一跳路由器发送一个 S G register stop 报 文 来禁止第一跳路由器单播发送 register S G 报文 如果在第一跳路由器发送 register 报文的时候 RP 路由器上没有接收者的信息 那么 就会直接向第一跳路由器发送 register stop 报文 将组播流量在第一跳设备上面丢掉 9 在运行 sparse 模式的时候 设备会自动运行 switchover 当最后一跳路由器在从 RP 接收到组 播流量的时候 最后一跳路由器就会向源发送一个 S G join 的报文 这时就自己切换到最短路 径了 切换的筏值是看组播的速率 0kbps 当组播流量的速率大于 0kbps 就会向 SPT 转换 默 认切换 要使得不切换需要在最后一跳路由器上面配置 ip pim spt threshold infinity 配置 和 dense 模式的配置一样

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论