【本文系ITA互联网技术联盟原创首发,转载或节选内容前需获授权,且注明来源:ITA互联网技术联盟互联网技术开放日分享实录。欢迎更多互联网研发团队与ITA展开内容合作,欢迎个人技术原创投稿。投稿及授权联系邮箱:[email protected],联盟微信:ita1024k,官网:www.ita1024.com】 大家好,我是 QingCloud 的工程师陈海泉,今天给大家分享一些SDN/NFV2.0 架构的网络技术。首先,说一下什么是SDN,SDN就是软件定义网络。当然也不是所有网络定制一定要软件来实现,因为有很多硬件方案也可以做到 SDN 的效果。
青云QingCloud用软件定义来实现虚拟网络,我们 2013年的时候,在公有云上线了第一代产品。当时SDN还是一个比较新鲜的事情,用户用的还比较少,随着用户量越来越大,私有网络里面的VM数量超过一定的数量级的时候,我们发现性能就有一个比较大的损失,已经无法满足用户的需求。所以我们在去年下半年的时候,花了很大功夫去做SDN/NFV2.0的事情。
VPC是什么意思呢?VPC网络是QingCloud环境内可以为用户预配置出的一个专属的大型网络。在VPC网络内,用户可以自定义IP地址范围、创建子网,并在子网内创建主机/数据库/大数据等各种云资源。 正是因为云计算需要虚拟网络,也需要VPC。所以我们还需要定义一个SDN方案解决这两个需求,现有的SDN方案主要分成两个方向: 一是用软件来定义,但是用硬件来实现。比如某些带SDN功能的交换机,把它采购进来,部署到产品里,用硬件厂商提供的API,在上面提供SDN功能。 二是NFV,就是网络功能虚拟化,用软件的方式来实现,用软件的交换机和路由器,把他们组织起来成为一个软件实现的SDN。其代表有VMwareNSX、JuniperOpenContrail等等。 QingCloud在SDN方案的选型上也做过讨论,用软件还是用硬件方案?其中考虑的问题主要是以下三个方面: 第一,成本。在公有云上面大家拼的是成本,谁的硬件成本低,谁就能把价格降到最低。如果我们采用现有的硬件方案,在网络设备上面增加了很多投资,并且我要采购的不是一个或者两个,而是一批。 第二,设备依赖。我们的私有云卖的是软件,客户可以按照偏好选择自己的硬件,假如QingCloud的SDN绑定了某款硬件产品,那我们在面对用户的时候,可能连招标的机会都没有,因为人家压根就没有办法用你的硬件。 第三,情怀。对于工程师来说,大家都想把产品做得更优秀。其实,软件跟传统快递行业非常的接近,为什么这么说。因为网络中的交换机、路由器,其实跟快递行业里的快递员和包裹集散中心非常相似,一般包裹给快递员以后,快递员会发给一个快递集散中心,这里可以查询包裹应该被送到哪个地方,然后再将包裹交给快递员,送到用户那里。顺丰在中国应该是最好的快递公司之一,因为它把转运环节都做全了,只有方方面面都能够控制才能实现压倒性的优势。因此,我们如果把数据包转发的每个流程都控制到,就有可能在系统上面做到最优,采用硬件设备使用这些功能的话,最后带来的是同质化,跟竞争对手相比不会有任何的优势。
综合以上三方面的原因,我们决定开发一套新的SDN/NFV2.0 方案,取代1.0 。
既然定了要自己做一套新的方案,怎么去实现?我们做了一些总结,新的产品需要满足传统SDN的需求。 第一,数据封装。也就是实现一个基本的虚拟网络; 第二,实现控制平面。二层、三层的网络数据进行路由规则的同步,然后下发到虚拟的交换机和路由器里面去,控制做到ARP泛洪抑制; 第三,实现数据平面。除了DVR之外,还提供了虚拟边界路由器。
除此之外,还需要增加我们需要的2.0方面的功能。 第一,VPC主机直接绑定公网IP。私有云用户大量依赖基础网络,要求VM直接绑定公网IP; 第二,负载均衡器。可对进入流量进行分流,出流量经由多台VirtualGateway (虚拟网关)分担负载,单IP可承载1TB出流量。同时,47层完全透明; 第三,IP不变。支持可以无限水平扩展的基础网络,并保持高可用及高性能,VM任意迁移,IP地址保持不变; 第四,VPC和物理网络连接。
下面分别解释刚才说的那几个基础实现。
首先解释虚拟网络。在一些大公司里会提供一种叫内部邮递的服务。公司员工之间可以发送一种快递,比如要给财务部门某同事发一个报价单,会查他的工位,知道他坐在哪。然后准备一个大信封,把要填的单子放在里面。我不需要知道这个人是在北京,还是在上海,我把这个信封交给公司的收发室,这个收发室会对这个信封进行重新封装,因为他有此员工的具体地址,然后把具有新地址的信封交给外包快递公司。放到云计算里,这就是一个虚拟网络。可以允许用户自己定义一个地址,然后进行传输,为了让它在三层网络里传输,可以再进行封装,再套一个包,写上新的地址。根据外包的内容和里层包的内容把这个数据包发送到对应的信息那里。
虚拟网络依赖于拆包、分包。现在采用的方案主要是比较流行的VXLAN,因为 VXLAN有一系列的优势。 第一,隧道连接一组物理机,由于VXLAN的数据包在整个转发过程中保持了内部数据的完整,因此VXLAN的数据平面是一个基于隧道的数据平面; 第二,使用UPD协议,当数据包交给网卡的时候,网卡根据这个数据的包头,用不同的网卡队列。这样把包交给不同的CPU处理,提升性能; 第三, 是比较有争议的Flood |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|