• 百家:云计算网络,没那么简单


    http://www.h3c.com.cn/About_H3C/Company_Publication/IP_Lh/2014/07/Home/Catalog/201501/852548_30008_0.htm

    数据中心虚拟化成为了趋势,通过服务器虚拟化提高资源利用率,同时降低单位能耗。但是,随着数据中心虚拟化程度的不断提高、虚拟化服务器规模的不断扩大,带来了巨大的管理压力。这就孕育了云计算诞生的条件。在大规模虚拟化的基础上,实现了自动化管理和集中化管理,就是云计算的基本模型。这一点在互联网行业尤其重要。

    一、 互联网云计算对网络的需求

    互联网行业数据中心的基本特征就是服务器的规模偏大。进入云计算时代后,其业务特征变得更加复杂,包括:虚拟化支持、多业务承载、资源灵活调度等(如图1所示)。与此同时,互联网云计算的规模不但没有缩减,反而更加庞大。这就给云计算的网络带来了巨大的压力。

     

    图1. 互联网云计算的业务特点

    大容量的MAC表项和ARP表项

    虚拟化会导致更大的MAC表项。假设一个互联网云计算中心的服务器有5000台,按照1:20的比例进行虚拟化,则有10万个虚拟机。通常每个虚拟机会配置两个业务网口,这样这个云计算中心就有20万个虚拟网口,对应的就是需要20万个MAC地址和IP地址。云计算要求资源灵活调度,业务资源任意迁移。也就是说任意一个虚拟机可以在整个云计算网络中任意迁移。这就要求全网在一个统一的二层网络中。全网任意交换机都有可能学习到全网所有的MAC表项。与此对应的则是,目前业界主流的接入交换机的MAC表项只有32K,基本无法满足互联网云计算的需求。另外,网关需要记录全网所有主机、所有网口的ARP信息。这就需要网关设备的有效ARP表项超过20万。大部分的网关设备芯片都不具备这种能力。

    4K VLAN Trunk问题

    传统的大二层网络支持任意VLAN的虚拟机迁移到网络的任意位置,一般有两种方式。方式一:虚拟机迁移后,通过自动化网络管理平台动态的在虚拟机对应的所有端口上下发VLAN配置;同时,还需要动态删除迁移前虚拟机对应所有端口上的VLAN配置。这种方式的缺点是实现非常复杂,同时自动化管理平台对多厂商设备还面临兼容性的问题,所以很难实现。方式二:在云计算网络上静态配置VLAN,在所有端口上配置VLAN trunk all。这种方式的优点是非常简单,是目前主流的应用方式。但这也带来了巨大的问题:任一VLAN内如果出现广播风暴,则全网所有VLAN内的虚拟机都会受到风暴影响,出现业务中断。

    4K VLAN上限问题

    云计算网络中有可能出现多租户需求。如果租户及业务的数量规模超出VLAN的上限(4K),则无法支撑客户的需求。

    虚拟机迁移网络依赖问题

    VM迁移需要在同一个二层域内,基于IP子网的区域划分限制了二层网络连通性的规模。

    二、 互联网云计算网络为什么选择Overlay

    针对互联网云计算对网络提出的这些挑战,H3C选择了基于VXLAN技术的Overlay网络架构来构建自己的云计算网络解决方案。

    1. 1. Overlay如何应对云计算网络的挑战

    首先,Overlay的核心是重新构建一个逻辑网络平面,其技术手段的关键是采用隧道技术实现L2oIP的封装。通过隧道实现各虚拟机之间的二层直连。这样网络只看见Overlay边缘节点的MAC地址,物理网络学习到的MAC表项非常有限,现有接入交换机32K的MAC表项足以满足需求(如图2所示)。对应的Overlay边缘节点实现基于会话的地址学习机制,也就是说只学习有交互流量的虚拟机MAC地址。这样也严格限制了边缘节点的地址表项。

     

    图2. Overlay网络如何应对云计算网络的挑战

    其次,Overlay网络仅仅是一个逻辑上的二层直连网络。其依赖的物理网络,是一个传统的路由网络。这个路由网络是一个三层到边缘的网络。也就是说二层广播域被缩小到极致。这样,网络风暴潜在的风险大幅度降低。同时,对于一些需要依赖二层广播的协议报文,例如:ARP报文,Overlay网络通过ARP代理等方式实现协议的内容透传,不会影响协议报文的正常运作。

    再次,针对4K VLAN上限问题,Overlay网络通过L2oIP的封装字段,提供24bits长度的隔离ID,最大可以支持16M租户或业务。

    最后,针对网络虚拟化问题。Overlay网络本身就是一个从物理网络中抽离的逻辑网络,通过名址分离使得内层IP地址完全作为一个寻址标签,不再具备路由功能,可以实现不同subnet之间二层互通,保证二层网络的连通性不受IP地址段的限制。

    1. 2. H3C为什么选择VXLAN

    从Overlay网络出现开始,业界陆续定义了多种实现Overlay网络的技术,主流技术包括:VXLAN、NVGRE、STT、Dove等(如图3所示)。

     

    图3 Overlay主流技术概览

    从标准化程度进行分析,DOVE和STT到目前为止,标准化进展缓慢,基本上可以看作是IBM和VMware的私有协议。因此,从H3C的角度来看无法选择这两种技术。

    从技术的实用性来看,XLAN和NVGRE两种技术基本相当。其主要的差别在于链路Hash能力。由于NVGRE采用了GRE的封装报头,需要在标准GRE报头中修改部分字节来进行Hash实现链路负载分担。这就需要对物理网络上的设备进行升级改造,以支持基于GRE的负载分担。这种改造大部分客户很难接受。相对而言,VXLAN技术是基于UDP报头的封装,传统网络设备可以根据UDP的源端口号进行Hash实现链路负载分担。这样VXLAN网络的部署就对物理网络没有特殊要求。这是最符合客户要求的部署方案,所以VXLAN技术是目前业界主流的实现方式。

    1. 3. VXLAN为什么选择SDN

    VXLAN的标准协议目前只定义了转发平面流程,对于控制平面目前还没有协议规范,所以目前业界有三种定义VXLAN控制平面的方式。

    ¡ 方式1:组播由物理网络的组播协议形成组播表项,通过手工将不同的VXLAN与组播组一一绑定。VXLAN的报文通过绑定的组播组在组播对应的范围内进行泛洪。简单来说,和VLAN方式的组播泛洪和MAC地址自学习基本一致。区别只是前者在三层网络中预定义的组播范围内泛洪,而后者是在二层网络中指定VLAN范围内泛洪。这种方式的优点是非常简单,不需要做协议扩展。但缺点也是显而易见的,需要大量的三层组播表项,需要复杂的组播协议控制。显然,这两者对于传统物理网络的交换机而言,都是巨大的负荷和挑战,基本很难实现。同时,这种方式还给网络带来大量的组播泛洪流量,对网络性能有很大的影响。

    ¡ 方式2:自定义协议。通过自定义的邻居发现协议学习Overlay网络的拓扑结构并建立隧道管理机制。通过自定义(或扩展)的路由协议透传Overlay网络的MAC地址(或IP地址)。通过这些自定义的协议可以实现VXLAN控制平面转发表项的学习机制。这种方式的优点是不依赖组播,不存在大量的组播泛洪报文,对网络性能影响很小。缺点是通过邻居发现协议和路由协议控制所有网络节点,这样网络节点的数量就受到协议的限制。换句话说,如果网络节点的数量超过一定范围,就会导致对应的协议(例如路由协议)运行出现异常。这一点在互联网行业更加明显,因为互联网行业云计算的基本特征就是大规模甚至超大规模。尤其是在vSwitch上运行VXLAN自定义路由协议,其网络节点数量可以达到几千甚至上万个,没有路由协议可以支持这种规模的网络。

    ¡ 方式3SDN控制器。通过SDN控制器集中控制VXLAN的转发,经由Openflow协议下发表项是目前业界的主流方式。这种方式的优点是不依赖组播,不对网络造成负荷;另外,控制器通过集群技术可以实现动态的扩容,所以可以支持大规模甚至超大规模的VXLAN网络。当然,SDN控制器本身的性能和可靠性决定了全网的性能和可靠性,所以如何能够提高控制器的性能和可靠性就是核心要素。

    三、 VXLAN Fabric网络架构的优势

    云计算网络一直都有一个理念:Network as a Fabric,即整网可以看作是一个交换机。通过VXLAN Overlay可以很好地实现这一理念——VXLAN Fabric(如图4所示)。

     

    图4 VXLAN Fabric网络架构

    Spine和Leaf节点共同构建了Fabric的两层网络架构,通过VXLAN实现Spine和Leaf之间的互联,可以看做是交换机的背板交换链路。Spine节点数量可以扩容,最大可以达到16台。Leaf节点数量也可以平滑扩容。理论上只要Spine节点的端口密度足够高,这个Fabric可以接入数万台物理服务器。

    另外,通过VXLAN隧道可以实现安全服务器节点的灵活接入。这些安全服务节点可以集中部署在一个指定区域,也可以灵活部署在任意Leaf节点下。通过Service Chain技术实现任意两个虚拟机之间可以通过任意安全服务节点互联。保证网络中虚拟机业务的安全隔离和控制访问。同理,Fabric的出口节点也可以部署在任意位置,可以灵活扩展。

    简而言之,VXLAN Fabric构建了一个灵活的、稳定的、可扩展的Overlay网络。这个网络可以有效地解决云计算对网络的挑战,是云计算网络发展的趋势。

  • 相关阅读:
    python-excel操作
    python-处理文件
    python-pandas应用总结
    python比较数组
    vue学习一(指令1.v-text,v-html,插值表达式{{msg}})
    博客园背景图页面定制css
    SpringBoot的yml文件报org.yaml.snakeyaml.scanner.ScannerException: mapping values are not allowed here in 'reader', line 11, column 16:
    python初学习一
    C#多线程
    API与WebApi
  • 原文地址:https://www.cnblogs.com/allcloud/p/6126394.html
Copyright © 2020-2023  润新知