云数据中心网络虚拟化——大二层技术巡礼之NVo3技术DC间隧道

2018-04-03 10:45:41 浏览数 (1)

NVo3体系框架只是要求隧道构建在IP网络上,并没有要求一定是要端到端的,因此DC间跨越Internet进行互联的一些技术也属于NVo3框架中。这类技术往往部署在汇聚层设备上,隧道起于DC边缘,终止于DC边缘。

其实DC间互联就是典型的V**业务,早期的DC间互联就是通过传统的二层V**来实现的,但是在向云数据中心演化中,这类技术表现出了如下的缺陷:

  • 由于传统的二层V**依赖于数据泛洪以确定MAC地址的可达性,“大二层”中庞大的虚拟机规模导致了大量泛洪包被发到Internet上。
  • STP和HSRP需要跨DC收敛,常常会导致出向路由次优。
  • 传统的二层V**一般为有连接的pseudo-wires隧道,开销较大,维护复杂且可扩展性差。
  • 对多宿主的场景不提供支持,或者不支持PE双活与负载均衡。

因此,很有必要重新设计DC间互联的V**技术,以满足大二层和两地三中心的组网需求,一般称之为DCI(Datacenter Interconnect)。目前DCI技术主要有Cisco OTV,Huawei EVN,H3C EVI。

1)Cisco OTV

OTV(Overlay Transport Virtualization)是Cisco提出的DCI技术,在Nexux 7000提供了支持。OTV通过为传统的二层V**增加控制平面来进行MAC地址学习和ARP代理,避免了不必要的跨Internet泛洪;通过在DC间隔离STP BDPU和HSRP Hello,实现了出向路由最优;通过动态封装建立无连接、无状态的隧道增强了可扩展性;自动完成对多宿主的探测,支持基于VLAN的负载分担和基于vPC的双活机制。

OTV数据平面的封装格式如上图所示,外层IP头后面跟着8字节的OTV Shim头,原始以太网帧中的VLAN header也被移到了Shim头中作为租户二层网络的标识。Shim头具体的格式就不太清楚了,毕竟OTV是Cisco的私有实现。控制平面通过IGMP加入OTV组播组,在ED(OTV Edge Device)间建立邻居,使用IS-IS在邻居间学习(VLAN,MAC,Remote IP)的转发信息。考虑到Internet对IP组播的限制,OTV支持头端复制的伪广播机制模拟邻居间的3层组播,这种情况下就只能手配邻居了。一个OTV网络中典型的单播通信流程如下所示,假设OTV邻居已经建立:

VM 1发送ARP请求到ED 1上;ED 1学习MAC 1的本地连接端口,然后封装OTV Shim头通过data组播组发送到ED 2。同时,ED 1通过control组播组传输IS-IS LSP,告知ED 2 VM 1的位置信息;ED 2收到IS-IS更新,得知VM 1连接在ED 1上;ED 2收到data组播组的ARP请求后解封装,本地泛洪到VM 2;VM 2单播ARP回复到ED 2;ED 2学习MAC 2的本地连接端口,然后封装OTV Shim头封装好ED 1的IP地址单播给ED 1。同时,ED 2通过control组播组传输IS-IS LSP,告知ED 1 VM 2的位置信息;ED 1收到IS-IS更新,得知VM 2连接在ED 2上;ED 1收到携带ARP回复的单播后,解封装转发给VM 1。

上述过程中ED一旦学习到IS-IS LSP的触发就会在control组播组中告诉邻居相应的信息,因此在VM跨数据中心迁移场景下,ED间能迅速得知VM的新位置,大大缩短了收敛的时间。除了上述优势外,OTV还具备以下特性:

  • STP隔离。OTV将STP BPDU在ED上进行阻塞,避免了跨站点STP计算。由于站点间通过控制平面进行MAC学习,因此DC间不会出现环路,因此只要在每个DC站点内部运行生成树协议保证DC内无环就可以了。这种做法极大地提高了二层的收敛速度和可扩展性。
  • 未知单播隔离。OTV禁止未知单播的跨站点广播,认为IS-IS能够学习到所有合法MAC地址的信息。针对静默主机,可以手工配置静态MAC地址对应远端OTV接口的表项。
  • ARP代理。对远端站点返回的ARP 回复进行监听,当再收到本地查询同样目的IP的ARP请求时直接代理回复,减少跨站点的泛洪。
  • 出向/入向路径优化。OTV在ED上阻塞HSRP Hello,避免站点A中的主机到站点B中网关进行路由所引发的次优路径问题;OTV设备支持健康路由注入和LISP,以实现入向路径最优。
  • 多宿、负载分担和双活机制。ED设备间自动选举AED(Authority Edge Device)作为主设备转发流量,其他ED作为备份。ED间也可以基于VLAN进行AED选举,实现负载均衡。ED间还支持vPC跨设备链路聚合,以实现ED的双活。

OTV是项非常不错的技术,而且它的自动化封装非常好,一般情况下4条命令就足以实现DCI,Cisco在数通领域的深厚功力可窥一二。如果说OTV有什么限制的话,一是ED邻居数量比较有限,目前看到的资料表明它最多支持8个站点的互联。另外,OTV不支持网关一体化,需要配合VDC技术做本地的业务整合。

这两年华为和华三也都跟进了DCI技术,华为的叫做EVN,华三的叫做EVI。

2)Huawei EVN

EVN(Ethernet Virtual Network)是华为参照EV**(Ethernet V**,RFC 7209)提出的DCI技术。其转发原理与OTV完全相同,只不过其控制平面从IS-IS换做了EV**-BGP,数据平面仿照VxLAN换成了MACinUDP的封装。一些DCI的特性,比如STP/VRRP抑制,ARP代理,未知单播隔离等等都是效仿的OTV。

由于EV**主要对多宿主部署做了详细的描述,因此相比于OTV,EVN主要加强了PE双活机制和MP2MP(Multipath to Multipath)机制。它细化了负载分担的策略粒度,支持PE多虚一的GEO Cluster模式,还支持基于UDP源端口的ECMP。另外,EVN支持的站点数量比OTV多,好像号称是可以达到64个(如有知情人士,烦请向作者确认),EVN支持网关一体化。由于EVN使用了BGP,而且自动化封装的不是很好,因此EVN在配置上要比OTV麻烦很多。

3)H3C EVI

EVI(Ethernet Virtualization Interconnect)是华三的DCI技术,其实也难为这帮子厂家了,起名字真是够费劲的。EVI的控制平面使用ENDP(EVI Neighbor Discovery Protocol)建立邻居,使用IS-IS进行地址学习,数据平面用了GRE的封装,如下图所示。

EVI实现的特性主要包括ARP代理、未知流量抑制。好像没有对STP/VRRP这些的优化机制,多宿PE的负载均衡策略也只能通过VLAN来做。目前了解到EVI有一个特性是它会在邻居间选举出一个DIS做控制信息的分发,类似于OSPF中的DR的角色,此外EVI还支持IS-IS虚拟系统来扩展LSP的分片数量,以增加系统所能发布的MAC地址数量。

老规矩,技术都讲完了,列表对比一下。这三种都是私有技术,以下都是从网上能够搜集的资料中整理的,一些内容也不一定准确。

从技术上来讲,DCI技术也可以用作端到端隧道,DCI的控制平面就相当于NVA的角色。不过,这种做法的显著缺陷在于,目前DCI技术只支持VLAN作为租户标识,这意味着租户数量最多为4k,与VxLAN这种端到端的隧道动辄支持个16million租户相比,不禁相形见绌。EVN在PE上用了VxLAN的封装,也可以提供16million的租户,华为自己也宣称EVN可以用于端到端虚拟化,不过想一想要在数据中心这些交换机上配BGP,好像应该是不太现实的。而且要是用于端到端,DCI技术里的一些per DC特性也就没有了用武之地,

0 人点赞