网易云网络服务研发实践—第2代云网络服务|网易云( 三 )


在OVS Agent中通过学习隧道(VXLAN/GRE)网络的单播地址来优化网络,而对未知的MAC地址,则需要广播到所有节点上,形成了不必要的网络流量 。实际上, 了解全局网络拓扑,打开L2 可以直接设置每个节点的转发表,不仅减少了ARP广播和MAC地址学习的成本,而且可以将广播转化为到各个需要节点的单播,减少了广播域 。
自研功能及优化
根据公司业务特定需求,第二代云网络服务定制化开发,研发了一些新功能以及优化,主要包括:
1.增加了一种新的网络类型(SVLAN)以充分利用物理VLAN资源;
2.在L2 Agent和L3 Agent上增加ACL功能,以用于控制不同租户的访问能力;
3.在L3 Agent上实现Dual-NAT功能以支持多网段访问并节省了外网IP;
4.实现支持接入云网络环境的私有网络;
5.实现了网络节点高可用功能;
6.实现网络连通性监控功能 。
下面将详细介绍各个自研发的新功能及优化情况 。
>>>>新增SVLAN网络类型
在设计中,机房内网主要用于云主机为其他租户的云主机或同机房其他物理机提供服务,对网络带宽、延迟、损耗等都有一定的要求,所以GRE/VXLAN之类的隧道网络无法满足要求 。而另外一方面,每个租户需要的网络大小都不一样,直接使用VLAN模式,对机房的物理VLAN资源是比较大的浪费,而且申请、配置VLAN的时效性无法满足云计算快速、灵活的要求 。因此,我们设计了一种新的网络模式--SVLAN ( VLAN)以解决这个问题 。该网络模式在中的具体实现如下:
1. 预先从机房分配一些IP地址空间(一般是/22大小)和对应的物理VLAN,添加到预分配池中 。
2. 每一段完整的地址空间,都被分配成几种固定大小的子地址空间,如一个/22分配成4个/24地址,一个/24划分成4个/26地址等,这些划分出来的子地址空间,都对应原来的物理VLAN ID 。
3. 当云环境租户需要机房内网时,根据容量规划选择一个子网大小,从分配池中获取对应的CIDR与对应的物理VLAN ID 。
4. 使用分配的信息,通过API创建一个虚拟网络,云主机就可以使用这个网络 。
5. L2 Agent上通过规则实现虚拟网络与底层物理网络的映射与转换 。
>>>>访问控制管理(ACL)功能
在云计算环境中,每个租户对连通性都有不同的要求,因此平台管理员要求能够方便的调整每个租户每个网络的连通性设置,针对这个需求,我们在L2 Agent及L3 Agent上都实现了ACL功能 。该功能在中的具体实现如下:
1. ACL的控制精度为每个云环境租户/每个网络,ACL控制出方向();
2. 增加了对应的API用于管理ACL规则;
3. 机房内网通过规则实现ACL;
【网易云网络服务研发实践—第2代云网络服务|网易云】4. L3通过中的实现ACL 。
>>>>L3两次NAT
在默认的L3 Agent实现中,每个只能访问一个网段 (外网或一段私有网) ,并且每个都需要占用一个外网IP,甚至在使用L3高可用时,外网IP的数量还要翻倍,这些限制无法满足私有云的业务要求,所以我们在L3 Agent上实现了两次NAT (Dual NAT) 的功能 。在中,两次NAT的基本实现是在的网关前再增加一级路由,即宿主机作为的外网网关,这样即解决了只能访问一个网段的问题 (访问能力由宿主机决定),也减少了外网IP的数量 (每个L3节点只需要一个外网IP) 。
>>>>接入
中默认的现在只支持了IPSec VPN,现在只支持网络到网络 (site-to-site) 的连接方式 。而在实际应用中,租户需要使用VPN通过租户自己的私有网访问云主机,因此需要支持远程访问(-)的VPN功能,经过调研,我们增加了支持 。为了在云网络中支持,我们主要完成了以下工作: