案例丨SDN 技术研究和组网实践
文 / 中国农业银行数据中心专家 许青邦
中国农业银行数据中心高级专员 黎毅赟
数年前,农业银行在总行层面规划和建设了VXLAN DCI(Datacenter Interconnect)网络核心,将内外网Fabric资源池通过DCI高速互联,并采用原创的多段式VXLAN和两级外部网络技术,实现跨Fabric的逻辑分区、资源调度及服务链功能,为云原生应用提供超大规模的网络资源池。该架构业已成为大型金融数据中心网络的最佳实践和事实标准,被同业广泛采用。
VXLAN DCI初始主要提供硬SDN Fabric资源池接入,但近几年软SDN技术在金融行业逐渐试点和规模应用,VXLAN DCI架构要兼顾软SDNFabric资源池接入需求,实现软硬SDN融合的统一架构。本文以华为HCS8.1云平台为原型,重点讨论软SDN的技术原理、组网设计以及与VXLAN DCI的对接方式。
软SDN组网结构
软硬SDN又分别称为Host Overlay和Network Overlay,最大的区别在于VxLAN网关位置,还有网络服务和运维方式等,两者比较如下。
VXLAN网关,硬SDN网关位于外部接入交换机上,对硬件MAC/ARP/FIB表项要求很高,支持高密度线速转发,一般要求Fabric内网络设备同构;软SDN网关位于服务器内部vSwitch上,对软件vSwitch Openflow表项要求高,需占用服务器CPU、内存等资源,转发性能稍弱一些,硬件接入交换机为纯Underlay设备,不感知租户和虚机信息,Fabric内网络设备支持异构。
网络服务,硬SDN主要提供L2/L3连通性,FW、LB等高层服务需要专门的软件或硬件设施,还要解决控制器与云平台适配问题;软SDN为云平台的集成组件,不涉及云网对接问题,能提供L2~L7全栈的服务,具体包括vFW、ELB、EIP、NAT、VPN等,全都通过服务器软件或NFV实现,具备快速交付和水平扩展能力。
运维方式,硬SDN技术在金融行业起步较早,设备间通过BGPEVPN交换MAC和IP路由信息,与传统路由交换技术体系一脉相承,网络人员稍加培训便能上手,还有成熟配套的可视化智能运维系统,网络状态一目了然。软SDN发源于公有云环境,近一两年才在金融行业逐步落地部署,vSwitch基于控制器下发的Openflow流表封装和转发VXLAN报文,对习惯路由交换的网络人员,技术路线切换是一个很大的挑战,而且缺乏完备的智能化运维系统,故障处理会比较吃力。
从以上对比可以看出,软SDN除了转发性能和智能运维等略显不足,在灵活性和扩展性方面较领先于硬SDN。随着公有云技术栈私有化部署推进,软SDN逐渐被业界和用户接受认可。
典型的软SDN Fabric由管理区、公共服务区、网络服务区、业务区等构成,各分区通过核心交换机互联,分区内部为SPINE+LEAF物理组网结构,具体分工如下。
管理区:为Openstack控制节点、软SDN控制器、云服务组件等接入区域。
公共服务区:为租户DNS、公共PaaS、API网关等服务器接入区域。
网络服务区:为VPCRouter、ELB、EIP、NAT、VPN等软网元接入区域。
业务区:为VM宿主机、BM裸金属、存储等服务器接入区域。
软SDN技术原理
软SDN通过统一的服务器形态模拟所有的网络和安全服务,包括基础的L2/L3连通性、vFW、ELB、EIP、NAT、VPN等,能满足云用户对网络服务的所有想象,下面逐一介绍私有云中最为常用的软SDN技术、网络服务及基本原理,具体实现如图1所示。
图1 网络服务示意图
(1)DVR(Distributed Virtual Router),类似硬SDN的分布式路由技术,主要提供VPC内路由互通。
假设vpc1网段a的vm1a(宿主机kvm1)访问网段b的vm1b(宿主机kvm2),kvm1 vm1a将报文经由br-int送给dvr gwa网关,dvr查询流表修改源mac=gwb、目的mac=vm1b,报文再经过本地br-int和br-tun,br-tun查询流表修改源mac=dvr,并通过VXLAN隧道(vni=b)将报文送至kvm2。kvm2br-tun收到VXLAN报文后,查询流表剥离VXLAN封装并映射到VLAN b,由于源mac=dvr,直接把报文转给br-int,最后抵达vm1b。
(2)VPCRouter,在DVR基础上提供VPC间路由互通。
假设vpc1网段a的vm1a访问vpc2网段c的vm2c,在vpc router上配置跨vpc静态路由,vpc1路由c指向vpc2,vpc2路由a指向vpc1。kvm1 vm1a将报文经由br-int送给dvr gwa,dvr查询流表修改源mac=gwa、目的mac=vpcrouter,报文再经过本地br-int和brtun,br-tun查询流表修改源mac=dvr,并通过VXLAN隧道(vni=a)将报文送至vpc router。vpc router收到VXLAN报文后,查询流表剥离VXLAN封装并映射到vpc1,根据目的地址vm2c切换到vpc2,最后使用VXLAN隧道(vni=c)把报文送达vm2c。
以上为同Fabric不同VPC的路由互通过程,如果vpc1、vpc2分别属于Fabric1、Fabric2,则需要在两个Fabric的VPC Router之间建立VPC Peering,还要打通Underlay路由,才能实现跨Fabric的VPC路由直通。
(3)云专线,Fabric内部或云上全部基于VXLAN构建VPC虚拟网络,但最终还是要通往云外世界,服务于云下用户,而云专线就是连接云上云下网络的纽带。提供云专线接入的设备称为L3GW(Layer 3 Gateway),一般为硬SDN交换机,软SDN控制器负责与L3GW建立BGPEVPN邻居,以及Openflow流表与Type2/3/5 EVPN路由的转换。
假设vpc1网段a的vm1a访问云下网段z的vmz,kvm1vm1a将报文经由br-int送给dvrgwa,dvr查询流表修改源mac=gwx、目的mac=l3gw,报文再经过本地br-int和br-tun,br-tun查询流表修改源mac=dvr,并通过VXLAN隧道(vni=x)将报文送至l3gw。l3gw收到VXLAN报文后,剥离VXLAN封装并映射到vpc1 vrf1,查询vmz路由指向云专线vrf2,再将报文送给云外pe,最终经云外网络路由至vmz。
上面描述的是基于L3GW的硬专线,还可以通过VPCRouter提供的软专线连接云下网络,从性能角度考虑首选硬专线。
(4)ELB,为计算资源提供L4和L7负载均衡服务。
假设vpc1网段a的vm1a作为client访问vpc2网段d的vip2d服务地址,后端服务器为vpc2网段c的vm2c,在vpcrouter上配置跨vpc静态路由,vpc1路由c+d指向vpc2,vpc2路由a指向vpc1。kvm1 vm1a将报文送给vpc router,vpc router查询流表转发给vpc2 vip2d,elb收到后调度给服务器vm2c,同时软sdn控制器还会向kvm2 br-int下发回程流表,确保来回路径一致。
实际组网中,更多为云下内网客户端通过云专线,公众客户端通过互联网+EIP访问云上ELBVIP,ELB调度过程同上。
(5)BM GW,为BM裸金属提供网络接入。
LEAF交换机通过Access端口连接BM,为每个BM分配唯一VLAN ID,通过Trunk端口连接BM GW,允许所有BM VLAN通过,逻辑上等同于BM直连BMGW内部的br-int,接入与VM共享的VPC平面。具体实现时,由于LEAF为硬件交换机,软SDN控制器需要通过Neutron+管理LEAF交换机端口。
假设vpc1网段a的bm1a访问vpc1网段b的bm1b,访问过程与vm相似不再赘述。
(6)其他服务,vFW基于计算节点宿主机的iptables机制实现,属于分布式云上FW,能满足大部分VPC的防护需求,但vFW的策略规格明显低于硬件FW,对于大型VPC,使用云外硬件FW是一个不错的选项,其他如EIP、NAT、VPN等服务,更多与互联网接入相关,就不逐一展开介绍了。
(7)容器网络,HCS8.1为IaaS+PaaS一体化云平台,能够一站式提供BM/VM/Pod多态的计算资源,以及VPCIP、VPCENI(Elastic Network Interface)等主流一体化网络接入方式,具体示例如下。
VPC IP模式,云平台在vpc1内创建eni1弹性网卡并绑定vm1a,分配网段a地址,vm1a内部采用l3 ipvlan cni,eni1为父接口,通过子接口为pod1e1、pod1e2提供网络接入,pod分配独立网段e地址,还需要在vpc router上配置网段e路由,下一跳指向vm1a,实现vpc网络平面和pod网络平面的路由互通。
VPC ENI模式,云平台在vpc1内创建eni2、eni3弹性网卡并绑定vm1b内的pod1b1、pod1b2,分配网段b地址,创建eni4、eni5弹性网卡并绑定bm1a内的pod1a1、pod1a2,分配网段a地址,实现pod直连vpc网络平面。实际使用eni时有规格的限制,华为采用独创的eni+vlan技术,巧妙解决了eni上限问题。
软SDN组网设计
介绍完软SDN技术原理,下面就组合这些技术来构建一个通用的软SDNFabric,并融入VXLANDCI网络,具体组网如图2所示。
图2 综合组网示意图
软SDN Fabric1采用标准四功能区架构,可支持2000台以上物理服务器接入,云上创建了外联DMZ区vpc1、内网生产区vpc2,通过各自的云专线连接DCIPE,在L3GW上将vpc1绑定extdmz dci vpn、vpc2绑定prd dci vpn,打通云上vpc和dci vpn路由,dci vpn代表逻辑分区或安全域。
硬SDN Fabric2采用BL+SPINE+LEAF标准架构,云上创建内网生产区vpc3,通过边界BL连接DCI核心,在BL上将vpc3绑定prd dci vpn,打通云上vpc和dci vpn路由。由于vpc1和vpc3绑定了相同的prd dci vpn,自然就实现两个内网生产分区的路由直通。
PRD-DS为云上prd dci vpn和云下intra vpn的网络边界,并旁挂部署硬件FW,确保云上云下互访经过FW严格控制。同时顾及软SDN Fabric的vFW规格限制,vpc2内部不启用vFW,而是通过PRD-DS的FW同时为vpc2和vpc3提供边界防护。
EXT-DS为云上ext-dmz dci vpn和云下intra vpn以及外联的网络边界,并旁挂部署内外网硬件FW,形成标准两道FW的DMZ网络结构。vpc1内部也不启用vFW,通过EXT-DS直连的FW为vpc1提供内外边界防护。
以vpc1和vpc2互访为例,由于vpc1、vpc2都未启用vFW,因此不能使用vpc peering直接在云上打通两个vpc路由,而是借助DCI和边界FW提供的服务链能力,保证访问路径经过各自的边界FW,并实现云上云下访问的统一入口和安全防护。
总结和展望
虽然软SDN技术较为灵活,服务较为丰富,但在转发性能和网络运维方面还需要优化改进,性能提升终极手段为智能网卡技术,又称为弹性裸金属,将Hypervisor和VXLAN网关功能卸载到硬件网卡上,既保留了软SDN的灵活性,又达到与硬SDN相当的性能水平,当然成本会相对较高。而硬SDN在一些特定场景还是有明显优势,比如追求极致性能的分布式数据库、大数据等,需要云平台供给物理服务器资源和网络提供高速转发能力,对其他网络服务的依赖相对较少,硬SDN可以很好的应对解决这些痛点。可以预见,软硬SDN在很长一段时间内还会并存,以发挥各自优势,具体实现时,软硬交换机可以独立或联合构建Fabric,后者又称为Hybrid Overlay,需要控制器同时管理软硬交换机和协议转换,分别满足虚机和裸金属的网络接入需求。
(栏目编辑:张丽霞)
往期精选:
(点击查看精彩内容)
新媒体中心:主任 / 邝源 编辑 / 傅甜甜 张珺 邰思琪