一种openstack中基于流表的l3-agent实现方法技术

技术编号:32519584 阅读:13 留言:0更新日期:2022-03-02 11:20
本发明专利技术提供一种openstack中基于流表的l3

【技术实现步骤摘要】
一种openstack中基于流表的l3

agent实现方法


[0001]本专利技术涉及云计算
,尤其涉及一种openstack中基于流表的l3

agent实现方法。

技术介绍

[0002]在当前的openstack l3

agent实现中,大量使用了linux网络命名空间,linux bridge,iptables,tap/tun/veth接口等技术.在使用分布式路由的场景下,执行创建路由器命令后会在网络节点和计算节点上创建相关的网络设备和网络命名空间,用来实现路由转发等功能.这种方案已经被openstack中大量使用,但是存在明显的性能问题:经过多个虚拟网络设备的处理后,网络性能损耗巨大.特别需要提及的是,在使用ovs+dpdk的场景下,使用tap和veth接口,性能远低于预期值.因此本专利提出了一种新的使用全流表方式实现l3

agent的方法,用来解决上述背景下网络性能低的问题。
[0003]全流表方案实际上存在多种解决方案.OVN是其中一个比较热门的技术.使用OVN的情况下,很容易和CMS(Cloud Management System)集成,对于openstack的各种网络功能而言,实际上只需要调用OVN的接口即可,可以省略各种agent,而且不再对消息队列有严重依赖.但从实际使用的角度看,也存在很多问题,如低版本不支持OVN功能,数据库节点存在瓶颈问题,已经部署OVS环境迁移到OVN环境需要很多额外的工作,对于网络问题追溯更为复杂,环境的版本更新升级引入更多步骤等。

技术实现思路

[0004]为了解决以上技术问题,本专利技术提供了一种openstack中基于流表的l3

agent实现方法,报文处理时由于减少了虚拟网络设备处理次数,可以解决大规模云环境下网络性能问题,且相对于OVN等方案,只是对agent端的具体实现进行更改,变动小,整体架构上不需要做调整,更适合已经部署的OVS环境。
[0005]本专利技术的技术方案是:
[0006]一种openstack中基于流表的l3

agent实现方法,包括:
[0007]1)使用流表实现网关arp代答
[0008]2)使用流表实现网关ICMPv4代答
[0009]3)使用流表实现虚机间的三层路由
[0010]4)使用流表控制器实现FIP触发远端arp请求
[0011]5)使用流表实现FIP功能
[0012]6)使用流表实现FIP端口转发功能
[0013]7)本地更新内容缓存机制
[0014]8)通过配置实现功能开关。
[0015]进一步的,
[0016]具体包括以下步骤:
[0017](1)server端给router添加网络时,通过消息队列发送消息到agent,触发router网关创建.agent收到信息,使用全流表的方式实现虚拟网关arp代答;
[0018](2)server端给router添加网络时,通过消息队列发送消息到agent,触发router网关创建.agent收到信息,使用全流表的方式实现虚拟网关icmp代答;
[0019](3)server端给router添加网络时,通过消息队列发送消息到agent,触发router网关创建.agent收到信息,使用全流表的方式实现路由转发功能;
[0020](4)server端给port绑定fip时,通过消息队列发送消息至agent端,agent端使用全流表的方式实现FIP/FIP端口转发功能;
[0021](5)不再使用其他虚拟网络设备;
[0022](6)引入更新内容缓存机制,缓存更新信息到本地,解决控制层面数据库的访问瓶颈问题;
[0023](7)引入配置开关,实现原有方案和现有方案的顺利切换和迁移。
[0024]再进一步的,
[0025]网关arp代答
[0026]当server端成功创建router并将网络添加到router,server端将通过消息队列将网络已经添加到router的消息发送给agent端,这个时候agent端将处理这个消息,即创建对应网络的网关;原有实现中由于存在实体网关,即qrouter网络命名空间中的接口,可以响应arp请求;现有的流表化实现中,由于不存在实体网关,要求虚机在发送arp请求后,可直接在本地(计算节点)流表处理过程中响应arp。
[0027]再进一步的,
[0028]网关ICMP代答
[0029]当server端成功创建router并将网络添加到router,server端将通过消息队列将网络已经添加到router的消息发送给agent端,这个时候agent端将处理这个消息,即创建对应网络的网关;原有实现中由于存在实体网关,即qrouter网络命名空间中的接口,可以直接响应ICMP请求;现有的流表化实现中,由于不存在实体网关,要求虚机在发送ICMP请求后,可直接在本地(计算节点)流表处理过程中响应ICMP。
[0030]再进一步的,
[0031]使用流表实现虚机间的三层路由,包括
[0032]1)处理ip报文
[0033]2)处理lookup。
[0034]再进一步的,
[0035]FIP触发远端arp请求的实现
[0036]当server端接收到port绑定fip的请求后,会在处理完成后,通过消息队列发送消息.agent端收到port绑定fip消息后,需要完成绑定fip具体动作的实现;
[0037]当带有fip的虚机访问外部网络时,会进行地址转换,报文的源ip被替换为fip,之后通过fip访问外网;通过控制器来触发arp请求。
[0038]再进一步的,
[0039]使用流表实现FIP功能
[0040]当server端接收到port绑定fip的请求后,会在处理完成后,通过消息队列发送消
息.agent端收到port绑定fip消息后,需要完成绑定fip具体动作的实现;
[0041]使用流表的方式实现网络地址转换功能;
[0042]使用conntrack模块和nat进行处理,出方向将源ip地址转换为FIP,相反方向将FIP转为源虚机ip。
[0043]使用流表实现FIP端口转发功能
[0044]当server端接收到port端口绑定fip一个指定端口的请求后,处理完成后,通过消息队列发送消息.Agent端收到port端口绑定fip一个指定端口的消息后,完成绑定fip该指定端口具体动作的实现;
[0045]使用流表的方式实现网络地址转换功能;
[0046]出方向上,如果端口是上述port指定的端口,则将ip转换为fip,端口转换为绑定fip指定端口,形成port端口到fip端口的一个映射关系。
[0047]再进一步的,...

【技术保护点】

【技术特征摘要】
1.一种openstack中基于流表的l3

agent实现方法,其特征在于,包括:1)使用流表实现网关arp代答2)使用流表实现网关ICMPv4代答3)使用流表实现虚机间的三层路由4)使用流表控制器实现FIP触发远端arp请求5)使用流表实现FIP功能6)使用流表实现FIP端口转发功能7)本地更新内容缓存机制8)通过配置实现功能开关。2.根据权利要求1所述的方法,其特征在于,具体包括以下步骤:(1)server端给router添加网络时,通过消息队列发送消息到agent,触发router网关创建.agent收到信息,使用全流表的方式实现虚拟网关arp代答;(2)server端给router添加网络时,通过消息队列发送消息到agent,触发router网关创建.agent收到信息,使用全流表的方式实现虚拟网关icmp代答;(3)server端给router添加网络时,通过消息队列发送消息到agent,触发router网关创建.agent收到信息,使用全流表的方式实现路由转发功能;(4)server端给port绑定fip时,通过消息队列发送消息至agent端,agent端使用全流表的方式实现FIP/FIP端口转发功能;(5)不再使用其他虚拟网络设备;(6)引入更新内容缓存机制,缓存更新信息到本地,解决控制层面数据库的访问瓶颈问题;(7)引入配置开关,实现原有方案和现有方案的顺利切换和迁移。3.根据权利要求书2中所述的方法,其特征在于,网关arp代答当server端成功创建router并将网络添加到router,server端将通过消息队列将网络已经添加到router的消息发送给agent端,这个时候agent端将处理这个消息,即创建对应网络的网关;原有实现中由于存在实体网关,即qrouter网络命名空间中的接口,可以响应arp请求;现有的流表化实现中,由于不存在实体网关,要求虚机在发送arp请求后,可直接在本地(计算节点)流表处理过程中响应arp。4.根据权利要求书2中所述的方法,其特征在于,网关ICMP代答当server端成功创建router并将网络添加到router,server端将通过消息队列将网络已经添加到router的消息发送给agent端,这个时候agent端将处理这个消息,即创建对应网络的网关;原有实现中由于存在实体网关,即qrouter网络命名空间中的接口,可以...

【专利技术属性】
技术研发人员:陈玉林高传集谢涛涛宋伟杨燚
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1