随着基于云的服务越来越多地被采用,降低数据中心复杂性的需求也逐渐增加,这推动了SDN技术的发展。由于SDN目前未有统一的行业标准,各厂商都推出了各自的SDN解决方案。与传统网络厂商(思科、华为、新华三等)相比,VMware的SDN解决方案与它们的区别在哪里?是否有特定的适用场景?
之前社区也探讨这方面的话题,整理了几个结论,供您做个参考。
@崔增顺
网络是分为软件SDN和硬件SDN两大类的。
在软件SDN的解决方案中,网络的功能是通过软件层面的Linux协议栈以及相关的OpenvSwitch技术实现的。它的优点是可以通过软件来实现网络的创建、子网的划分、路由的选择以及防火墙策略的管理等功能,可以避免对硬件网络设备的过度依赖,同时极大降低了组网的成本;它的缺点是稳定性和可扩展性不如硬件SDN专用设备。
硬件SDN是使用专用的硬件设备加上一个专用的控制器来实现相关的网络功能,这个专用的控制器对硬件设备进行策略以及流表的下发,来实现网络相关的功能。它的优点是比较稳定,缺点是不灵活且组网成本很高。在目前技术发展的趋势来看,并不存在软件SDN和硬件SDN孰优孰劣的明显对比,因此对于这两种技术都要进行相关的研究和探索。
网络支持5种网络模型:GRE/VXLAN/VLAN/FLAT/LOCAL。其中GRE/VXLAN模型是隧道技术,可以实现overlay网络。FLAT/LOCAL主要适用于简单的网络环境。因此比较常用的网络模型是VLAN模型和VXLAN模型。
其中VLAN模型的特点缺点是需要在传统的网络交换机上放开对应的VLAN,因此在做网络接入时需要依赖网络的规划,同时在多租户隔离上不是特别方便,仍然需要在网络交换机上做操作,即网络组网不够灵活;优点是VLAN技术比较成熟,不管是性能上还是稳定性上都比较好。VXLAN模型的最大的特点是在多租户场景下方便实现租户隔离,组网比较方便,不太依赖网络交换机的变更。缺点是在性能上要是达到和VLAN相同的性能,需要有支持vxlan offload的网卡进行支持。
从网络性能的角度来分析,VLAN模型的网络吞吐量要高于VXLAN模型的网络吞吐量。以万兆网卡为例,实测VLAN网络吞吐量为9Gb/s以上,VXLAN网络吞吐量为8Gb/s以上。(备注VXLAN的吞吐量需要专门支持VXLAN OFFLOAD的网卡进行支持)。
从网络隔离的角度来讲,有两大类的实现方案。方案一:对于VLAN模型的网络,网络隔离需要使用传统防火墙进行策略控制,即不同网段的策略需要在硬件防火墙上实现。方案二:对于VXLAN网络模型,可以通过软件的防火墙和安全组这两种方案进行实现。软件防火墙和安全组是都是通过Linux操作系统的iptables来进行实现,区别在于软件防火墙是部署在网络节点上,安全组是部署在计算节点上。
@phanx
目前主流的网络厂商的SDN方案都已经转向 VxLAN + EVPN。
有的厂商还在推基于OpenFlow的方案但被证明不太适合于大型的网络。
基本的思路就是overlay,通过MAC-in-UDP封装将下层的承载网络与上层的overlay网络解耦合。
IETF在Overlay技术领域提出VXLAN、NVGRE、STT三大技术方案。大体思路均是将以太网报文承载到某种隧道层面,差异性在于选择和构造隧道的不同,而底层均是IP转发。VXLAN和STT对于现网设备而言对流量均衡要求较低,即负载链路负载分担适应性好,一般的网络设备都能对L2-L4的数据内容参数进行链路聚合或等价路由的流量均衡,而NVGRE则需要网络设备对GRE扩展头感知并对flow ID进行HASH,需要硬件升级;STT对于TCP有较大修改,隧道模式接近UDP性质,隧道构造技术属于革新性,且复杂度较高,而VXLAN利用了现有通用的UDP传输,成熟性极高。
所以总体比较,VxLAN技术具有更大优势,而且当前VxLAN也得到了更多厂家和企业的支持,已经成为Overlay技术的主流标准。
在当前主流云计算数据中心网络overlay的建设过程中,又存在主要的两种不同技术发展方向;也分别适合不同的应用场景。如下两种方式:
一) 集中控制模式方案(通过SDN控制器完全控制)
二) 松散控制模式方案(通过网络设备控制协议自学习)
这两种不同的方案也各有自己的优劣势,适合不同的应用场景,以及可接受的运维管理模式以及风险范围。
一)通过SDN Controller实现:由于Controller了解整网的拓扑结构,VM管理器知道虚拟机的位置和状态,这样,通过Controller与VM管理器的联动,就可以很容易实现基于Controller完成控制平面的地址学习,然后通过标准OpenFlow协议下发到网络设备。
有如下优缺点:
1) 集中控制模式– 基于SDN的Controller进行完全控制。
2) SDN负责下发控制流表和服务策略。
3) SDN Controller 实现控制平面,通过OpenFlow/Netconf控制 VXLAN VTEP、GW、 IP GW。
4) 数据平面VxLAN二、三层转发。
5) 对SDN Controller的可靠性要求较高,必须HA部署。
6) 控制点集中,网络设备更简单。
7) 颠覆了传统网络,不会再有路由表、转发表等熟悉的转发原理。
8) 技术变革及运维管理变化较大,需要从思路上完全改变。
9) 网络流量调度非常灵活,通过控制器图形化界面即可实现。
二)通过控制协议学习:利用扩展路由协议MP-BGP EVPN协议完成VxLAN控制平面的地址学习
VxLAN隧道自动建立以及隧道自动关联;利用EVPN的BGP RR实现邻居发现 ,每个设备都通告自己的VxLAN信息,每个VTEP设备都有全网的VXLAN信息以及VxLAN和下一跳的关系。VTEP设备会和那些跟自己有相同VXLAN的下一跳自动建立VXLAN隧道,并将此VxLAN隧道跟这些相同的VxLAN关联。
同时,在松散控制模式下VxLAN组网,又分为 集中式网关 和 分布式网关。 目前方案多采用分布式网关。
总体来看松散控制模式的EVPN组网,主要有如下优缺点:
1) 松散控制模式– 基于自学习或控制协议。
2) 设备实现控制面,通过标准EVPN完成隧道建立和地址学习。
3) SDN控制器只负责下发服务策略,不下发控制流表,可靠性更高。
4) 实现控制器与网络设备之间的松耦合,提供更高可靠性的Fabric网络。
5) 数据平面也支持VxLAN二、三层转发。
6) 标准化:控制面使用EVPN,属于标准协议;DC内、DC间可扩展性极强。
7) 灵活:使用MP-BGP完成地址同步,更灵活控制地址发布规则。
8) 减少广播报文泛洪,地址通过EVPN自动同步。
9) 配置简单:隧道自动建立。
10) 扩展性强:基于会话按需下发硬件表项,支持更大规模的组网。
11) 分布式网关可实现流量路径最优,减少Spine核心节点的压力。
收起SDN并没有明确的定义,唯一可以确定的是SDN发自数据中心(DCSDN),初始特征是控制和转发平面逻辑分离,但SDN也不一定要和云还有数据中心挂钩,运营商的骨干网没有云,但也跑着很多SDN控制器。
另外还有SDN的延伸概念SDWAN等等,特征是软件驱动。
几个大厂的产品话的SDN分为两个流派,这里主要指overlay方案(你搞控制underlay网其实也是SDN,如果从软件特征出发的话),基本就是思科的软硬混合的方案ACI,可以说是H(ardware)DN,VMware的NSX是纯软件方案的S(oftware)DN
性能上是cisco占优,但必须跑在思科的自己7k的交换机上,扩展性肯定是VMware的好,跑x86纯软件。
huawei更多的像一个传统网管吧,但出于那啥,必须顶。
关于underlay和overlay,楼上纯粹瞎扯,什么和软件和硬件不兼容,纯软件方案注意这里不包含思科的ACI,网都是在x86上虚拟出来的,用的都是bridge或者ovs这类二层方案(Vmware有自己商用的方案),或者你搞一三层方案vrouter之类的。除了要保证互通外,跟底层网络硬件有什么关系?