IRF之组播应用

IRF 概述
IRF 的含义就是智能弹性架构( I ntelligent Resilient Framework )。
支持 IRF 的多台设备可以互相连接起来形成一个“联合设备”,这台“联合设备”称为一个 fabric ,而将组成 fabric 的每个设备称为一个 unit (如图 1 所示)。多个 unit 组成 fabric 后,无论在管理还是在使用上,就成为了一个整体。它既可以随时通过增加 unit 来扩展设备的端口数量和交换能力,大大提高了设备的可扩展性;同时也可以通过多台 unit 之间的互相备份增强设备的可靠性;并且整个 fabric 作为一台设备进行管理,用户管理起来也非常方便。
简单来说,就是 IRF 设备通过多个 unit 的堆叠形成了用户迫切需要的 易管理、易扩展以及高可靠的产品特点。是一种不同于业界现有所有设备的全新理念的网络设备
图1  IRF交换机
IRF技术的三大组成部分
DDM(分布式设备管理):外界可以将整个fabric看成一台整体设备进行管理,用户可以通过CONSOLE、SNMPTELNET、WEB等多种方式来管理整个fabric。
DRR(分布式弹性路由):fabric的多个设备在外界看来是一台单独的三层交换机。整个fabric将作为一台设备进行路由功能和转发功能。在某一个设备发生故障时,路由协议和数据转发可以不中断。
DLA(分布式链路聚合):支持跨设备的 链路聚合,可以在设备之间进行链路的负载分担和互为备份。 
分布式弹性组播路由作为分布弹性路由的一部分,完全具备了分布式弹性路由的特点, fabric 系统内的多台设备对外界看来是一台单独的三层交换机,而且 fabric 内部的每个 unit 可以互相备份,实现了 1:N 的备份功能。当某一台设备发生故障时,路由协议无缝切换,数据转发不中断。分布式弹性组播路由除了以上单播路由协议的优点外,还从协议本身出发,从根本上解决了组播数据占用 fabric 内部带宽的问题。成功开发的分布式 IGMP-snooping 协议和高效的组播转发表保证了每台设备间只有一份组播数据报文传送,大大节约了设备间的带宽,提高了设备转发性能。
把多个 unit 堆叠起来组成一个 fabric 在网络中运行时,将不可避免的遇到一个冲突问题:即所有的 unit 都会发送路由协议报文,都会分别和外界设备进行路由信息交互,因此外界设备看到的将是多个设备,而不是 fabric 本身一个设备,而同时由于各个 unit 上的三层接口以及 IP 地址是完全一致的,外界设备就会收到来自同一个接口同一个 IP 地址的多个路由协议报文(分别由各个 unit 发出),从而不可避免的造成冲突问题。
要解决这个冲突问题,就必须让 fabric 只发出一份路由协议报文,即让整个 fabric 作为一台设备运行,采取的办法是从所有 unit 中选出一个 unit 来发送路由协议报文,其它 unit 发送的路由协议报文都将被抑止,因此从外界看来,整个 fabric 只发出一份路由协议报文来,就像只有一台设备在跑路由协议一样。
下文图 2 中以 PIM 协议为例对 fabric 系统作为一台设备跟外界交互的方案进行了简要说明,图 2 中 Unit1 和 Unit2 组成了一个 fabric ,这个 fabric 从 Unit1 和 Unit2 分别收到了来自 Route1 、 Route2 和 Route3 的 PIM 协议报文,并且 Unit1 和 Unit2 都向外界发送了 PIM 协议报文,但是只有 Unit1 的报文被成功发送出去,而 Unit2 的 PIM 协议报文被抑制在 fabric 设备内部,从而对于外界设备来说,整个 fabric 只发出一份路由协议报文来。
图 2  IRF 系统收发组播路由协议报文示意图
IRF 的分布式弹性组播路由是基于分布式设备管理 (DDM) 技术上实现的。下面具体介绍分布式弹性组播路由需要的几个技术点:
统一的路由协议配置信息:
要使一个 fabric 中各个 unit 上的路由协议各种信息保持一致,一个基本前提就是每个 unit 关于路由协议的配置是完全一致的 。这里的完全一致不仅仅是指配置的命令完全一致,而且包括配置的时间和时序都完全一致,即用户必须同时在 fabric 中的所有 unit 上配置完全一致的命令。很显然这个需求靠用户手工在所有 unit 上分别配置命令是无法实现的,因此 IRF 设备必须实现把整个 fabric 作为一台设备进行路由协议各种配置的功能。
这里所说的把整个 fabric 作为一台设备进行路由协议各种配置的功能是指用户可以借助任何手段(包括 CONSOLE 、 SNMP 、 TELNET 、 WEB 等多种方式),也可以在 fabric 中的任意一个 unit 上,进行路由协议的相关配置,只要 fabric 中的任意一个 unit 收到用户配置,就会马上同步给其余所有 unit 同时执行,从而实现每个 unit 关于路由协议的配置完全一致的需求。
统一的三层接口信息:
设备上存在 UP 的三层接口是运行路由协议的基础,也是网络设备能够进行报文三层转发的前提条件。要使一个 fabric 中各个 unit 上的路由协议各种信息保持一致,最基本的前提就是每个 unit 的三层接口必须保持完全一致。在 IRF 技术体系里, fabric 上的三层接口是一个全局的概念,它不属于某一个 unit ,而是属于整个 fabric ,一个 fabric 作为一台设备管理本 fabric 上所有三层接口,每一个三层接口在 fabric 是具有唯一性的,对于 fabric 中任意一个 unit 来说,它看到的都是由 fabric 统一维护的全局的三层接口,因此每一个 unit 看到的结果都是一样的。这也就保证了 fabric 中每个 unit 的三层接口必须保持完全一致的要求。
PIM-DM 支持IRF 特性
PIM-DM 组播路由协议是一种密集模式组播路由协议,它周期性的扩散组播数据并周期性的收敛来维护组播分发树。 PIM-DM 没有复杂的协议状态机,只是根据 PIM 协议报文来维护组播分发树,因此只要让 fabric 中的每一台 unit 处理的 PIM 协议报文完全一致就可以保证每一台 unit 上生成的 PIM-DM 状态信息完全一致。
要实现这个功能,就必须要保证 fabric 中的每一台 unit 在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态等)都是完全一致的。采取的办法是在所有 unit 各种协议状态完全一致的情况下,任意一个 unit 收到外界传来的 PIM 协议报文就同步给其它所有 unit ,让 fabric 中的所有 unit 上同时能处理到同样的 PIM 协议报文,从而保证每个 unit 生成 PIM-DM 协议状态的一致性。
PIM-SM 支持IRF 特性
PIM-SM 组播路由协议是一种稀疏模式组播路由协议,该协议把组播信息拉入网络中的接收站点。如果没有接收者,组播数据不会在网络中扩散,只有最优组播分发树上的路由器才会接收组播。它用显示加入机制来维护共享树和最短路径树。 PIM-SM 没有复杂的协议状态机,只是根据 PIM 协议报文来维护组播分发树,因此只要让 fabric 中的每一台 unit 处理的 PIM 协议报文完全一致就可以保证每一台 unit 上生成的 PIM-SM 状态信息完全一致。
要实现这个功能,就必须要保证 fabric 中的每一台 unit 在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态等)都是完全一致的。采取的办法是在所有 unit 各种协议状态完全一致的情况下,任意一个 unit 收到外界传来的 PIM 协议报文就同步给其它所有 unit ,让 fabric 中的所有 unit 上同时能处理到同样的 PIM 协议报文,从而保证每个 unit 生成 PIM-SM 协议状态的一致性。
IGMP 支持IRF 特性
互联网组管理协议 (IGMP) 负责所连网络组成员关系的收集与维护。该协议收发通用查询报文、特定组查询报文、主机加入报文和离开报文来维护协议的各种状态信息。因此只要让 fabric 中的每一台 unit 处理的 IGMP 协议报文完全一致就可以保证每一台 unit 上生成的 IGMP 状态信息完全一致。
要实现这个功能,就必须要保证 fabric 中的每一台 unit 在相同的时间,以相同的时序收到完全相同的协议报文,并且处理该协议报文的所有前提条件(例如接口状态等)都是完全一致的。采取的办法是在所有 unit 各种协议状态完全一致的情况下,任意一个 unit 收到外界传来的 IGMP 协议报文就同步给其它所有 unit ,让 fabric 中的所有 unit 上同时能处理到同样的 IGMP 协议报文,从而保证每个 unit 生成 IGMP 协议状态的一致性。
Multicast traceroutes 支持IRF 特性
Multicast traceroutes 是一种跟踪组播数据流的协议。该协议可以从接收者出发,根据组播分发树逐个跟踪到数据源,确定组播数据流的路径,获得中间路由器的各种组播状态。这种简单协议不需要冗余备份,所以实现起来也容易。 IGMP 协议支持 IRF 后,收到的 IGMP 协议报文都会复制到 fabric 内所有的 unit 上去处理。使用 IGMP 协议号的 multicast traceroutes 协议报文也会发送到 fabric 内所有 unit 。由于 fabric 内每个 unit 的组播路由协议状态都一致,所以一台 unit 处理 multicast traceroutes 协议报文就可以获得整个 fabric 信息,同时该 unit 发送 multicast traceroutes 协议报文跟外界交互。
IGMP-snooping 支持IRF 特性
为了使 IGMP-snooping 协议支持 IRF 特性,成功开发了纯分布式 IGMP-snooping 协议。它的实现不像组播路由协议 PIM ,依靠 fabric 内广播协议报文和全局的三层接口信息来保证每个 unit 的协议状态保持一致。分布式 IGMP-snooping 中,每个 unit 只维护本 unit 上的路由器端口和主机端口状态信息,以及其它 unit 上是否有主机端口或路由器端口的状态信息,不关心其它 unit 上的端口状态信息,从而不依赖其它模块就实现了分布式 IGMP-snooping 协议。
分布式 IGMP-snooping 协议有以下几个技术亮点:
1 .维护最少的状态信息。分布式 IGMP-snooping 协议在每个 unit 只维护本 unit 上的用户端口状态信息和其它 unit 上是否有主机端口和路由器端口的信息,并不关心其它 unit 上的具体端口状态信息。这样最少的状态信息维护减少 unit 间交互信息的数量,大大提高 fabric 系统内部通信效率。
2 .按需转发 IGMP 主机加入报文,减少 IGMP 协议报文的拥塞冲突。
3 .按需转发组播数据报文,减少 fabric 内组播数据流量。
分布式 IGMP-snooping 有以下几个技术点组成。
1 .路由器端口的智能维护
当某 unit 从用户端口收到组播路由协议报文或 IGMP 通用查询报文,认为该端口上有路由器,就把该端口视为路由器端口。如果该路由器端口是 vlan 内的第一个路由器端口,则通知其它 fabric 内的所有 unit 本 unit 有路由器端口。如果该路由器端口不是本 unit 上的第一个路由器端口,那只在本地维护的路由器端口列表中增加一个端口,并不向其它 unit 通知本 unit 有路由器端口,因为其它 unit 已经知道本 unit 有一个路由器端口。
当其它 unit 收到一个消息通知某 unit 有一个路由器端口时,当前 unit 只记录某 unit 有路由器端口,不记录具体路由器端口状态信息。这样维护最少的状态信息,减少系统内部备份数据的数量,大大提高 fabric 系统运行性能。
当某 unit 的路由器端口超时时,就从本地路由器端口列表中删除该端口。如果该 unit 没有其它的路由器端口就通知其它所有 unit ,本 unit 没有路由器端口。
当其它 unit 收到一个消息通知某 unit 没有路由器端口时,直接从该路由器端口列表中删除该 unit 。
2 .主机端口的智能维护
当某 unit 收到 IGMP 主机加入报文后,认为该端口有直连主机,并把该端口视为主机端口。如果该端口是本 unit 第一个主机端口,就通知 fabric 内所有其它 unit ,本 unit 有主机端口。如果主机端口不是该 unit 第一个主机端口,那只在本地维护的主机端口列表中增加一个端口,不向其它 unit 通知本 unit 有主机端口。因为其它 unit 已经知道本 unit 有主机端口。
当其它 unit 收到一个消息通知某 unit 有一个主机端口时,当前 unit 只记录某 unit 有主机端口,并不记录具体的主机端口状态信息。虽然系统通过其它的方法可以获得全局端口信息,这里不记录其它 unit 上的具体端口信息。
当某 unit 发送一个特定组查询报文后没有收到响应的 IGMP 主机加入报文,就从本地主机端口列表中删除。如果该 unit 上没有其它主机端口就通知 fabric 内其它所有 unit ,本 unit 没有主机端口。
当其它 unit 收到一个消息通知某 unit 没有主机端口时,直接从该主机端口列表中删除该 unit 。
3 . IGMP 主机加入报文的有效抑制
当 unit 收到某组的第一个主机加入报文时,创建主机端口,并直接透传该报文到 fabric 内所有其它的 unit 。当 fabric 系统发送 IGMP 查询报文后,并不是把所有响应的主机加入报文透传到其它 unit 。而是发送查询报文后,把每组中第一个响应的主机加入报文发送到其它 unit 。其它 unit 在每个周期内只收到一份主机加入报文就可以保证协议的正常运行。这种抑制机制大大减少了 IGMP 报文的拥塞冲突,提高了 fabric 系统性能。
如图 3 所示,四个 unit 通过环型连接组成一个传统堆叠系统,主机 Host1 ~ 4 属于同一组。当每一个主机响应路由器 Router 的 IGMP 查询报文时, Unit1 会从主机 Host1 和 Host2 收到 IGMP 主机加入报文,并把这两份报文在堆叠系统内广播。 Unit4 也会从主机 Host3 和 Host4 收到 IGMP 主机加入报文,并把这两份报文在堆叠系统内广播。这样堆叠设备内会有多份同一组的 IGMP 主机加入报文,从 Unit2 到路由器的链路上也会有多份同组的 IGMP 主机加入报文。显然这种堆叠方式会增加堆叠设备的负荷,大大降低了系统性能。
图 3  传统堆叠设备中的 IGMP-snooping 协议报文示意图
如图 4 所示,四个 unit 通过环型连接组成一个 IRF 堆叠系统,主机 Host1 ~ 4 属于同一组。当每一个主机响应路由器 Router 的 IGMP 查询报文时, Unit1 会从主机 Host1 和 Host2 收到 IGMP 主机加入报文, Unit4 也会从主机 Host3 和 Host4 收到 IGMP 主机加入报文。可是 fabric 系统只会把最早响应的 IGMP 主机加入报文在 fabric 系统内广播,而且 Unit2 和路由器之间的链路上只有一份 IGMP 主机加入报文。其它同组的加入报文被有效的抑制在 fabric 系统内,确保最少的协议报文来维护 IGMP 协议状态,大大减少了 IGMP 主机加入报文的拥塞冲突。
图 4  IRF 系统中的分布式 IGMP-snooping 协议报文示意图
4 . Unit 加入处理
当新 unit 加入到 fabric 时,每个 unit 都把本 unit 上是否有主机端口或路由器端口的状态发送到新加入的 unit 上,这样新加入的 unit 就知道哪些 unit 有路由器端口和主机端口。同时新加入的 unit 也向 fabric 内其它 unit 通知本 unit 上是否有路由器端口或主机端口的状态,让 fabric 系统内的其它 unit 知道。
5 . Unit 离开处理
当某 unit 从 fabric 内离开时, fabric 内的其它 unit 直接把跟本 unit 相关的主机端口和路由器端口信息删除。从 fabric 内离开的 unit 也把跟 fabric 内其它 unit 相关的主机端口和路由器端口信息删除。
Fabric 系统是有多台独立的 unit 组成,任意一个 unit 都有完整的三层转发能力。每个 unit 都可以接收报文,且报文的出端口可以在本 unit ,也可以在其它 unit 。为了减轻 unit 间通信的压力,如何保证 unit 间只复制一份报文, fabric 内跨越最少的 unit 成为一个难题。由于成功开发了分布式 IGMP-snooping ,从协议本身出发,把高可靠性的三层转发表和分布式 IGMP-snooping 维护的出端口列表有机的结合后,产生了指导组播转发的高效组播转发表。该组播转发表只维护本 unit 上的用户出端口和 fabric 内其它 unit 上出端口所在的 unit 号,并不关心其它 unit 上具体的端口号。被这种高效组播转发表指导的组播数据在 fabric 内转发时,跨越最少的 unit ,寻找最短的路径,且 unit 间传递最少报文来转发,实现了分布式三层数据转发。彻底解决了跑组播业务就网络性能降低的难题,给用户带来了高可靠性、高性能的组播业务。
分布式组播转发有两大技术亮点:
1 .高可靠性的三层组播转发表
由分布式设备管理提供的全局配置同步和全局统一的三层接口是给高可靠性的组播路由提供了基础。虽然每个 unit 上的组播路由协议的状态都相同,所生成的组播路由表也相同,但并不是每个 unit 独立维护各自的组播转发表,而是其中的一台 unit 统一下发组播转发表,保证了 fabric 内所有三层组播转发表相同。图 2 中可以看到,只有 Unit1 下发组播转发表, unit2 的组播路由表没有下发到组播转发表。
当 fabric 内统一下发组播转发表的 unit 出现故障或离开 fabric 系统时, fabric 内剩余的 unit 会选择一台 unit 统一下发组播转发表。由于分布式弹性组播路由协议已经保证了各个协议的状态相同,组播路由表相同,所以重新下发的组播转发表也相同,保证了组播路由无缝切换,数据不中断,实现了高可靠性。
2 .高效的组播转发表
高可靠性的三层组播转发表跟分布式 IGMP-snooping 有机的结合,产生了交换机上引导组播数据转发的二三层结合的组播转发表。该组播转发表只维护本 unit 上的用户出端口和 fabric 内其它 unit 上出端口所在的 unit 号,并不关心其它 unit 上具体的端口号。这种高效组播转发表指导组播数据转发时,使组播数据跨越最少的 unit ,寻找最短的路径,且 unit 间传递最少报文来转发,实现了分布式三层数据转发。
图 5 是环型连接的传统堆叠设备。 Server 发出的组播数据会从 Unit2 进入 fabric 系统,通过 fabric 系统复制转发, Host1 ~ 5 主机才能收到组播数据。从图中可以看出, unit2 做了集中组播转发,复制了所有的组播数据流。这样 Unit2 到 Unit1 的内部链路上会有四份组播数据流,而在 Unit1 到 Unit4 的内部链路上也有两份组播数据流。这种传统组播转发增加了 fabric 系统内链路通信负荷,大大降低了系统系能,没有把组播数据复制交换负担分散在系统的多台 unit 上。这种传统堆叠方式除了端口数量增加外没有任何优点,还降低了整个网络性能。图中还附了一张 Unit2 设备的组播转发表。由于 Unit2 设备维护所有的出端口,理所当然的完成了集中式组播转发。
图 5  传统堆叠设备中的组播数据转发示意图
图 6 是环型连接的 IRF 堆叠设备。 Server 发出的组播数据会从 Unit2 进入 fabric 系统,通过 fabric 系统复制转发, Host1 ~ 5 主机才能收到组播数据。从图中可以看出,虽然 Unit2 上的转发表有三个目的地址, Unit2 只复制两份组播数据,一份是给 Host5 的组播数据流,另一份是给 Unit1 的组播数据流。 Unit1 收到组播数据流后,再把组播数据复制三份分别给两个主机 Host1 、 Host2 和 Unit4 。最终 Unit4 再复制两份组播数据流,发送给主机 Host3 和 Host4 。这种分布式三层转发保证了每一个链路有最有少的组播数据流,把组播数据复制转发这种消耗系统资源的工作分散在 fabric 系统内的每一个 unit 上去做,使每个 unit 分别负担组播转发,大幅提高了组播数据转发性能。图中还附了一张 Unit2 设备的组播转发表。由于 Unit2 设备有高效的组播转发表,才实现了分布式组播转发。
图 6  IRF 系统中的分布式组播数据转发示意图
支持 IRF 特性的分布式弹性组播路由既可以通过多台 unit 间的互相备份,大幅提高了网络可靠性,又可以高智能组播数据转发,使每个设备分别负担组播转发,充分利用了每个设备的转发容量,大幅提高了组播数据转发性能。 支持 IRF 特性的组播网络给用户带来了易管理,易扩展,高可靠性,高性能的网络。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值