局域网SDN技术硬核内幕 13 二 从局域网到互联网

2022-07-22 19:32:57 浏览数 (2)

前面提到,在数据中心内部,通过层次化端口绑定和EVPN,云平台得以教会了让虚拟机通过硬件交换机封装VXLAN,实现同网段和不同网段的互联互通。

但是,无论是服务器,还是虚拟机,最终是要向数据中心外部提供服务的。让我们回顾开篇时见到的这张图——

在图中,每个VPC需要通过vLB对外提供负载均衡,通过vFW进行内外网的互访策略控制。对于Neutron原生的实现而言,vFW使用Linux的iptables,vLB使用开源的nginx或haproxy。正如OVS的转发效率受x86体系结构的限制一样,iptables,nginx和haproxy的吞吐量、新建连接速率等关键指标,也在大规模部署中容易成为瓶颈。

在大规模VPC的场景下,专用硬件防火墙和LB设备的优势就体现出来了。一般而言,它们是使用专用的FPGA,或带有网络与安全加速硬件的多核处理器实现的,单台设备的吞吐量最高可达到2TB以上,支持2亿以上的并发连接。

那么如何用专用硬件防火墙和LB设备,代替Neutron中原生的vFW和vLB,实现VPC对外提供服务呢?

Neutron为了使用其他软硬件防火墙和LB设备,提供了FWaaS和LBaaS这两个特性。它们分别是Firewall-as-a-Service和LoadBalance-as-a-Service的缩写,也就是将防火墙和LB特性以服务的形式提供给各个租户(VPC)。

FWaaS是在Neutron的Router中实现的,默认使用的driver为iptables。防火墙厂商将这个driver替换为自身的插件,就可以实现用硬件防火墙为Neutron提供FWaaS服务了。

类似地,LBaaS也可以通过硬件设备实现。

一个问题出现了:

我们知道,在云平台中,可能会有多个租户,每个租户理论上都需要调用FWaaS和LBaaS实现防火墙和负载均衡。那么,显然云平台投资方不可能为每个租户购买一套硬件防火墙和负载均衡设备。是不是有办法把一台防火墙/LB设备给多个租户使用呢?

我们管这种方式叫设备虚拟化。

虚拟化有两种实现,一种叫做VS(Virtual System),在管理上,将一台防火墙/LB虚拟为多台,各VS只能看见属于自身的网络接口等物理资源,以及享用分配给自身的吞吐带宽、并发连接等性能资源。这对于防火墙/LB的主控CPU要求较高,因此一般能虚拟化的数量有限。

另一种虚拟化实现叫做VRF(Virtual Routing & Forwarding)。对,和路由器的VRF一样。防火墙/LB在逻辑上依然是一个设备,只是为每个VRF实例维护一张路由转发表,各个VRF实例可以使用重叠的IP地址。这种方式能实现的虚拟化数量较多,一般的设备都能支持1K到4K个。

有了FWaaS和LBaaS驱动,就可以通过硬件实现VPC网络边缘的处理了,实现从局域网到互联网的业务对外发布。

在后面的内容中,我们还将有更多的精彩呈现,揭示更多的SDN技术内幕!

0 人点赞