什么是SDN?

VMware笑到最后

Posted by i9u on August 11, 2020

什么是SDN?

注意!!!!这是我读《新一代SDN VMWARE NSX网络原理与实践》的笔记,大部分内容处出之该书中。

SDN 全名是Software defined network。它不是一种技术,也不是一种协议,和IPsec一样,它只是一种体系框架、设计理念。这个框架要求网络中的控制层面和转发层面必须分离,转发层面希望和协议无关,管理员可以通过软件执行自己的想法,控制转发行为,驱动网络。

​ 当前业内认可的SDN特征:

  • 转控分离

  • 有开放的可编程API

  • 有集中控制器

  • 网络业务自动化应用

    前两点是SDN的核心,如果一个网络能够具备前两点,可以广义上认为这个是一个SDN架构。

​ Openflow是目前主流的南向接口协议,但是SDN≠Openflow。因为SDN是一种框架,而Openflow确实框架中的一种协议。

​ 网络虚拟化≠SDN,早期的网络虚拟化技术特指服务器虚拟化中的vSwitch,现在网络虚拟化特指实现方式是基于“Overlay”技术。这种技术能够突破网络系统中的VLAN数量、MAC地址容量等限制,跨越三层网络打通二层隧道,适用于超大型数据中心和多租户数据中心以及双活/灾备数据中心。

​ Overlay可以由物理网络搭建和服务器hypervisor搭建。前者没真正实现转控分离,不符合SDN的特征,后者一般会有集中的管理层面和控制层面,以及分离的转发层面。网络虚拟化是SDN发展到一定阶段的必然趋势,可能是SDN的分支,但是不是SDN本身,有人将后者这种基于主机的Overlay称为新一代SDN,因为它和SDN本身有很大的区别。

​ NFV同样也不是SDN,它的目标是利用下虚拟化技术在标准的硬件设备上运行多个网络功能软件来虚拟出多种网络设备(vSwitch、vRouter、vFriewalld),它们可能有统一的控制层面,NFV和SDN是互补关系。比如Vmware NSX就具备NFV属性——NSX使用x86服务器的软件来实现各种网络功能,但是NSX中的Overlay属性过于明显,因此VMware更愿意将NSX解决方案称为网络虚拟化解决方案,而不是NFV解决方案。另外,Openstack、Cloudstack、OVS等,与SDN都没有任何直接关系。Openstack和Cloudstack是云管理平台,而OVS是SDN鼻祖Nicira公司开发的一款vSwitch,现在已经开源。

SDN框架

该图是SDN框架中的各个层面,直观阐述了SDN框架:

image-20200811110949644

  • 基础设施:负责转发数据的设备,它可以是物理设备也可以是虚拟化平台里的Vswicth

  • 南向接口:负责控制器和基础设施通信的接口,目前主流有Openflow协议。

  • 控制层:负责SDN的控制层面的设备,可以有一个或多个。

  • 北向接口:被外部应用调用的接口,比如外部的运维平台,目前没主流接口协议。

  • 应用层:最终的应用程序,它可能是监控运维平台,通过北向接口下发配置或者获取状态,控制器收到后通过南向接口下发到最终转发设备上。

SDN相关组织和厂商对SDN的态度

由于不同厂家和科研机构有不同的见解和利益管理,目前没有类如网络协议指定标准的IEEE和IEF的协会,导致了多个组织去推动某个 技术发展,出现了分歧。不同的IT厂商在产品线、功能和特性上的差异,因此它们看到SDN的角度也不尽相同,应对SDN浪潮的手段也不同。

目前,SDN领域最有影响的组织是ONF(open networking foundation)。由google、facebook、Microsoft等公司共同发起(虽然它们都不是网络设备制造商),成立与2011年,最早定义并希望推动SDN标准化的非盈利组织,科研和活动经费来之会员公司的赞助和年费,主要工作成果是制定了Openflow、OF-Config版本标准。

2013年由于不满ONF制定的游戏规则,18家IT厂商联合推动了ODL(open daylight)的成立。这18家尝试是brocade、Cisco、citrix、ericsson、IBM、Juniper、red hat、Microsoft、操,太多了。这18家绝大多数是IT行业内巨头,多为网络设备制造商。

比较ONF和ODL这两个组织的异同:

image-20200811111129437

​ ONF想摆脱厂商的限制,标准化协议和硬件,设备商主导的ODL则不同,希望部分接口标准化,保证设备厂商的利益,防止白牌交换机侵蚀市场。虽然设备商发起了ODL组织,但也没完全抛弃ONF。换句话说,由于Openflow的影响力大,而设备厂商也没有牛到能完全另起炉灶的程度。Google、Facebook强硬站在ONF这边,没有加入ODL。AWS是特例,两边都没加入,封闭发展自己的AWS。

​ 很多熟悉的厂商即时ONF会员,也是OLD的黄金、白金会员。它们看开放自己的设备接口,但又加入自己特色功能,保持设备的独特竞争力。大多数使用hybrid模式,而非纯Openflow方法实现SDN。对于API,除了支持Openflow外,还加入JSON API、XMPP、Python API等。而芯片方面,有些使用商用芯片,有些混合使用商用、自研芯片。

​ 在内部研发和并购中,以VMware收购Nicira和Cisco收购Insieme最为重磅,前者收购后推出NSX,后者推出了ACI,两者都是将SDN和近年兴起的网络虚拟化技术完美融合后的成果。Microsoft的Hyper-V在2012版本后增加其自主研发的NVGRE协议网络虚拟化功能,但没强调SDN且刻意淡化Openflow。此外Juniper收购SDN初创公司contrail后推出同名的解决方案。

服务器虚拟化的日趋成熟

​ 1999年VMware推出第一套x86虚拟化,2003年存储巨头EMC收购。2008年Microsoft推出基于Windows server的Hyper-V解决方案,底层安装windows server后可以开启虚拟机,Microsoft的公有云Azure就是基于Hyper-V搭建;Citrix公司则叫Xenserver,通过收购剑桥大学的Xen开源系统并进行二次开发。此外使用较多的还有Redhat主导的KVM开源虚拟机虚脱。

网络虚拟化的起源和发展

现今的网络虚拟化技术(特指主机overlay的网络虚拟化)会兴起,主要因为现今数据中心的三个大问题:

  • 虚拟机迁移范围收到网络架构限制——网络的复杂性

    虚拟机的迁移若想要不间断业务,则需要IP地址、MAC地址等参数不变,这要求网络处于二层中(vSphere 6.0后不再受限,但二层交换仍比三层更高小路),在网络普遍被要求多路径冗余和可靠性的情况下,各大厂家的“大二层”技术主要都是为虚拟机迁移和存储备份复制而服务。

  • 虚拟机规模受到网络规格限制——网络设备MAC地址数量级不够

    大二层的环境下,为了设备的二层地址表大小决定了云计算环境下虚拟机规模上线。接入交换机一般转发表都较小,更加限制虚拟机的数据量,若替换成和核心设备一个档次,则成本又会增加,减少接入设备的压力可以是分离网关,如果采用多个网关分担虚拟机的流量,但是这样也带来成本上升,多买一些核心和网关设备。

  • 网络隔离、分离限制——网络设备的VLAN数量不够

    主流的网络隔离技术是VLAN,受限在VLAN的标准定义中只有12个bit,即可用数量为4000个左右,对于公有云而言是大大不够。

​ 对于小型的数据中心,现在有网络技术如虚拟机感知(VEPA/802.1Qbg)、二层网络扩展(TRILL/SPB/FabricPath)、数据中心间二层技术(EVI/OTV)等,,可以很好满足业务,上诉限制不会成为瓶颈。缺点是技术完全依赖物理设备本身的技术改良。而对于大型的数据中心,能够更彻底解决这些问题是的技术开始出现,它就是名为Ovlerlay的网络虚拟化架构技术。

​ Overlay是叠加在原本网络上的虚拟网络技术,相对应底层的物理网络则名为Underlay,其大体的框架是对基础网络架构不进行大规模修改的情况下,实现应用在网络上的承载,并能和其他网络业务分离。这种模式是对传统技术的优化而被提出的,行业内早期就有Overlay技术,比如RFC3378(Ether IP)就是早期运行在网络上的二层Overlay技术,后来H3C和Cisco都在开发自己的私有二层Overlay技术,分别是EVI(Ethernet virutal interconnection)和OTV(Overlay transport virtualization),EVI和OTV都是用于解决数据中心之间的二层互联和业务扩展问题,对于Underlay层面之要求IP可达,部署相抵简单方便,但是没解决上诉的数据中心三大问题。

​ 对于Overlay的工作机制,这里只简单的表述一下。大体是运行在基于物理网络上的虚拟网络,通过二次封装使报文通过特定的隧道进行通信,它和VPN十分相似。而流量的封装点可以是物理交换机,也可以是虚拟化平台中的vSwitch。

​ 根据封装点,Overlay的部署方式被区分出三种:

  1. Network overlay(物理交换机之间)
  2. Host overlay(vSwitch之间)
  3. Integrated overlay(vSwitch和物理交换机之间)

​ 2008年,Cisco和VMware公司联合开发的虚拟交换机“Nexus 1000v系列”使网络管理员可以有效地管理虚拟机网络,并统一管理物理网络。后来,两家公司联合研发的VXLAN协议被运用在vSphere VDS和Nexus 1000v之上,这是目前最主流的二层Overlay技术,并且已经开源。

​ 这种基于主机虚拟化的Overlay技术出现,解决了以下问题:

  1. 虚拟机迁移范围受到的网络架构限制

    Overlay是一种IP报文封装技术,具备大规模扩展能力,对设备本身没有特殊要求,技术本身支持ECMP。

  2. 虚拟机规模收到网络规格限制

    虚拟机的IP报文被封装后,对网络表现为隧道另外一段的单播地址。因此,对于承载网络(特别是接入交换机),不用担心MAC地址容量不足问题。

  3. 网络隔离、分离能力限制

    更大的VLAN ID,使用24位bit标识,支持千万级VLAN数量。

​ 在很长的一段时间内,Nexus 1000v是唯一一款支持这种技术的虚拟交换机,因此它几乎垄断了市场,VMware活动了支持虚拟机所需的高级网络功能,Cisco则通过出售license获得利润。后来,Nicira的横空出世改变了局面,它提出了完整的网络虚拟化平台(NVP),逐渐为AT&T、eBay、NTT以及Rackspace等IT巨头的数据中心提供虚拟交换平台。它基于SDN理念,NVP的网络虚拟化平台做得更好(因为Nicira本身就是SDN的提出者和Openflow的发明者)

​ NVP解决方案实现了:

  • Overlay层面的转控分离
  • 自有虚拟交换机OVS系统,更多虚拟化功能
  • Openflow集中管控,有可编程API
  • STT私有Overlay技术,能实现类似VXLAN功能

​ Nicira提出的新一代SND概念要求摆脱传统SDN基于五元组的TCP/IP协议,这样意味一个问题,改变了IP和端口,就改变了一切。因为在过去的数据中心中,虚拟机因为高可用性或动态资源分配机制而迁移后,IP和端口都有可能发生变化,这就意味DN的控制器要做的策略会非常复杂。新一代的SDN概念要实现真正的自动化,通过MAC地址进行原目寻址工作,SDN和网络虚拟化结合是未来自动化数据中心的趋势。

​ Nicira提出的这个架构引起了业内强烈的震荡,也引来了很多的融资,后来各大IT巨头都想收购这家初创公司,尤其是Cisco和VMware。前者想把Nicira的NVP融入到Nexus 1000v系统中,做到真正的SDN网络虚拟化;后者认为自己是服务器虚拟化的领头羊,收购Nicira能够抢占不成熟的网络虚拟化系统,而且再也不用依靠Cisco的Nexus 1000v,还能和其他网络供应商做更好的融合方案。

​ 最终,VMware笑到最了最后。2012年7月它收购了Nicira。2013年VMware发布融合NVP后的产品,即NSX解决方案,这意味了VMware和Cisco的合作基本告一段落。Cisco无奈在后续的Nexus 1000v中逐渐加入了对Hyper-v和KVM的支持,并在2013年发布了ACI解决方案。

总结

  • SDN是为了改变当前IT架构部署和运维复杂而提出的
  • SDN诞生在斯坦福大学实验室,核心人员后来成成立了Nicira公司,后续在2012年被VMware收购
  • SDN的核心思想和转控分离,目前SDN的主流南向接口协议是Openflow
  • 网络虚拟化是为了改变当前IT架构的复杂性和横向扩展能力而提出的,当前主要基于Overlay技术实现
  • 现金的网络虚拟化技术是SDN发展到一定程度的产物,基于SDN架构的网络虚拟化解决方案,即新一代SDN可以在数据中心发货更大的作用
  • VMware收购了Nicira之后推出了融合SDN和网络寻呼的解决方案,即NSX。