cover_image

超融合网关方案在360的落地

智汇云 360智汇云开发者
2025年04月10日 03:09
一. 项目背景

随着专有网络(Virtual Private Cloud,简称VPC)在公司的全面铺开,相关的网关产品种类越来越丰富,已经逐渐构建了一套较完善的网络产品,包括NAT网关、EIP网关、负载均衡网关、云联网网关等,满足用户访问公网,打通VPC、经典网络,跨地域等多种网络访问场景。

图片

网关种类增多的同时,也带来了一些问题。首先不论是司内还是对外交付,当新增一个可用区时,为了保持功能的完整性,所有种类的网关都要进行部署,会带来较大的部署成本;其次众多种类的网关角色也会增加部署人员的理解难度,延长部署周期;再次网关流量规模不同,灵活扩展能力不足,不能快速利用其他种类网关机器,只能重新部署服务后上线。

所以我们根据现有的需求,将多种类型网关功能进行了整合,并设置了开关,可以按需开启功能。当业务规模较小时,网关可以一台承担多种角色,节省成本;随着规模逐渐扩大,可以按需独立划分网关集群,让流量路径更清晰。

二. 整体架构

超融合网关基于DPDK框架实现,由转发面和控制面组成。控制面对外提供API,对内给转发面下发配置,用于转发面逻辑匹配。

转发面根据可配置参数按需加载网络功能,选定最优的转发策略,打通流量路径。目前已适配多种架构服务器,包括Intel、鲲鹏、飞腾和海光等。操作系统支持centOS、麒麟os、Anolis OS和统信UOS在内的,多种主流操作系统。

图片三. 实现原理

超融合网关要达成的目标有以下几点:

1. 网关功能可以按需开启,配置支持热加载

2. 实现功能基础上,不影响原有转发效率

3. 不仅仅支持网关的超融合,还需要与计算和存储超融合

实现中最关键的点就在于各类网关策略的优先级选择,由于网关基于DPDK,通过用户态类协议栈处理报文转发。DPDK收包后通过上送到用户态IPV4协议栈后进入转发模块。而转发模块inet_hook_ops是通过HOOK的方式挂载在INET_HOOK_PRE_ROUTING上。HOOK挂载的优先级是通过设置priority来实现的。从网关功能分析,我们将优先级定为CCN > EIP > NAT。即优先判断是否为VPC间东西向访问流量,不是则继续判断是否是南北向流量,最后判断是否是主动出公网或访问VIP的流量。

图片

四. 难点问题

1 负载均衡健康检查场景报文处理

原生Keepalived不支持云上健康检查,VPC内的负载均衡健康检查是通过复用EIP网关功能来实现的,即给每个VPC内的RS(real server)分配一个唯一映射IP,转发面做规则替换后封装VXLAN流量扔给后端计算节点。网关独立部署时,没有问题。但超融合部署后,当虚机也同时绑定了一个真实的EIP,此时转发面无法判断两种绑定该如何转换。

解决方案:从EIP的映射关系来看,普通虚机绑定EIP与健康检查表现出来的形式是没有区别的。但是映射关系下发接口的调用位置不同,普通虚机绑定EIP是通过控制面调用FIPADM工具直接下发至转发面。健康检查是通过Keepalived进程IPC通信至转发进程,因此可以在下发EIP映射关系的时候增加一个FLAG,区分转发进程中的EIP映射关系来源。健康检查来源的FLAG为1,普通EIP绑定FLAG为0。

2.VPC内虚机(已绑定EIP)访问VIP时,如何绕过EIP逻辑,直接进入NAT HOOK?

图片

解决办法:当报文中携带VXLAN信息时,EIP的映射关系查询是根据VMIP进行的。因此,如果流量报文访问的目的地址是VIP并且走至EIP HOOK时会在当前EIP映射关系中找到转发策略,直接在当前HOOK中走转发逻辑。而我们期望的目的HOOK应该是之后的NAT HOOK。应该跳过NAT之前的所有HOOK直接进入vip的流程。因此在CCN和EIP的HOOK中添加一个判断,如果当前目的ip是vip的话,直接accept走下一个HOOK。

3. 计算节点与网关超融合后,同节点数据包不转发如何处理

对外交付时,网关和计算节点都部署在同一节点上。而当同节点虚机请求同节点网关时,内核层面会因为判断目的IP是同物理机上IP,而不将数据包扔出物理机,在lo发出。这导致目的mac地址不正确,网关无法正常处理流量,从而不通。

解决方法:在该物理节点通过BGP三层通告一个VIP,该IP不配置在物理机上。此时虚机请求网关时,会将数据包正常走协议栈发送出去。网关基于DPDK,从而实现的是用户态路由,修改该默认路由的源IP为VIP。数据包绕行交换机继续回到该节点,网关处理完成后发送数据包至计算节点,此时源IP为VIP,这样整条链路就打通了。

五. 总结

超融合网关将当前所有类型网关进行了整合,但并不是简单的网关功能合并,更多的是要保证符合多种场景的数据包,如何得到正确的处理,因此涉及到了很多复杂的条件判断。我们也针对不同的操作系统和CPU架构都做了适配,让交付更简单。

目前的超融合网关极大地增强了网关部署的灵活性。角色快速变更,能够充分提升网关的利用率。但是由于不同类型流量混在一起,也会给问题排查增加一些难度。超融合网关目前主要用于TOB部署,后面将会在司内小规模的机房上线,降低75%部署成本,提升网关利用率。


END

360智汇云是以"汇聚数据价值,助力智能未来"为目标的企业应用开放服务平台,融合360丰富的产品、技术力量,为客户提供平台服务。
目前,智汇云提供数据库、中间件、存储、大数据、人工智能、计算、网络、视联物联与通信等多种产品服务以及一站式解决方案,助力客户降本增效,累计服务业务1000+。
智汇云致力于为各行各业的业务及应用提供强有力的产品、技术服务,帮助企业和业务实现更大的商业价值。
官网:https://zyun.360.cn 或搜索“360智汇云
客服电话:4000052360
欢迎使用我们的产品!😊
关注公众号,干货满满的前沿技术文章等你来。想看哪方面内容,也欢迎留言和我们交流!

继续滑动看下一个
360智汇云开发者
向上滑动看下一个