一种openstack虚拟机通过所在节点snat连接外网的系统及方法技术方案

技术编号:39007956 阅读:10 留言:0更新日期:2023-10-07 10:39
一种openstack虚拟机通过所在节点snat连接外网的系统,包括有创建分布式snat的虚拟路由器、限定虚拟机南北流量流向模块、网卡链路状态检测模块;连接外网的方法包括以下步骤:步骤S1,创建分布式snat的路由器;步骤S2,创建限定虚拟机南北流量流向模块;步骤S3,网卡链路状态检测。路状态检测。路状态检测。

【技术实现步骤摘要】
一种openstack虚拟机通过所在节点snat连接外网的系统及方法


[0001]本专利技术属于计算机
,具体涉及一种openstack虚拟机通过所在节点snat连接外网的系统及方法。

技术介绍

[0002]网络一直是Openstack的核心功能之一,Openstack也提供了很多技术方案满足用户差异化的网络需求,现有数据中心组网方案大多使用Vxlan+DVR,相比于传统路由器方案,该方案确实在一定程度上降低了网络节点的负载,同时提高可扩展性,但对于外网资源稀缺场景下,未绑定浮动ip的虚拟机南北流量还是需要集中到一个网络节点去通过snat处理,这样就会造成以下问题:单个网络节点负载高、单点成为整个网络的瓶颈、其他节点网络资源浪费、网络故障概率高、snat故障迁移慢、计算节点与网络节点之间的tunnel网络承担较大流量、网络架构复杂不易维护等诸多问题。

技术实现思路

[0003]为克服上述现有技术的不足,本专利技术的目的是提供一种openstack虚拟机通过所在节点snat连接外网的系统及方法
[0004]为实现上述目的,本专利技术采用的技术方案是:一种openstack虚拟机通过所在节点snat连接外网的系统,包括有创建分布式snat的虚拟路由器、限定虚拟机南北流量流向模块、网卡链路状态检测模块;
[0005]所述的创建分布式snat的路由器,用于创建分布式snat类型的虚拟路由器,并在每个计算节点上都部署snat功能;
[0006]所述的限定虚拟机南北流量流向模块,用于将虚拟机南北流量限定只流入本地snat,而不向网络节点流入;
[0007]所述网卡链路状态检测模块,用于实时检测计算节点上外部网络绑定的物理端口链路状态,在链路状态断开时,使本节点虚拟机通过路由连接外网的流量导向其他正常节点,保证虚拟机南北流量快速恢复,增强网络可靠性。
[0008]一种openstack虚拟机通过所在节点snat连接外网的方法,包括以下步骤:
[0009]步骤S1,创建分布式snat的路由器
[0010]用于创建分布式snat类型的虚拟路由器,并在每个计算节点上都部署snat功能;DVR模式下未绑定浮动ip的虚拟机南北流量需要集中到网络节点去处理的一个重要原因就是本节点上没有snat功能,无法处理;将snat功能分布式部署在每个计算节点上;
[0011]步骤S2,创建限定虚拟机南北流量流向模块
[0012]本步骤用于将虚拟机南北流量限定只流入本地snat,而不向网络节点流入;DVR模式下未绑定浮动ip的虚拟机是将南北流量集中流向网络节点,所以要解决现有技术的问题,还必须限定使得虚拟机流量只流入本地snat,而虚拟机南北流量集中流向网络节点是
通过ovs流表将其通过br

tun端点经tunnel网络转发至对端br

tun端点,所以所述限定虚拟机南北流量流向须在ovs的br

tun流表中进行修改;
[0013]所述的步骤S2,具体又包括以下步骤:
[0014]步骤S2

1,neutron

server接收到内部网络接入虚拟路由器请求,创建内部网络snat_port;
[0015]步骤S2

2,neutron

openvswitch

agent对snat_port进行ovs绑定时修改br

tun的ovs流表规则,在table 22中添加丢弃snat_port的arp响应报文的规则;
[0016]步骤S2

3,在br

tun的ovs流表table 1中添加丢弃目的mac地址为snat_port对应mac地址的规则;
[0017]步骤S3,网卡链路状态检测
[0018]实时检测计算节点上外部网络绑定的物理端口链路状态,在链路状态断开时,使本节点虚拟机通过路由连接外网的流量导向其他正常节点,保证虚拟机南北流量快速恢复,增强网络可靠性。
[0019]所述的步骤S1,具体又包括以下步骤:
[0020]步骤S1

1,修改neutron

server数据库的routers表,增加一个ex_network字段表示虚拟路由器对应的外部网络的uuid;
[0021]步骤S1

2,neutron

server创建虚拟机路由器时,不再创建外部网关,而是将外部网络的uuid和其他属性记录入routers表中;
[0022]步骤S1

3,各计算节点的neutron

l3

agent发现新建的虚拟路由后,获取虚拟路由器的信息,向neutron

server发起创建本节点外部网关的请求,请求中至少包含本节点neutron

l3

agent的uuid和该虚拟路由器的外部网络的uuid;
[0023]步骤S1

4,neutron

server接收到各计算节点的neutron

l3

agent发起的创建外部网关的请求,将请求中节点的neutron

l3

agent的uuid作为port的device_id属性,用于区别每个gw_port所属的节点,向核心插件ML2发起创建port,并将port信息分别返回给各计算节点的neutron

l3

agent;
[0024]步骤S1

5,各计算节点的neutron

l3

agent接收到创建本节点外部网关的返回后,创建各计算节点本地的snat网络命名空间,将各自的外部网关作为外部网关加入本地的snat网络命名空间,并将其作为snat的源地址写入本地的snat网络命名空间的iptables规则中。
[0025]所述的步骤S3,具体又包括以下步骤:
[0026]步骤S3

1,查询本计算节点上的分布式snat路由是否已连接内部网络,如果是则进行步骤S3

2,如果否则继续步骤S3

1;
[0027]步骤S3

2,查询本计算节点上外部网络绑定的物理端口名称;
[0028]步骤S3

3,使用系统命令(如ethtool)查询上述物理端口的链路状态;
[0029]步骤S3

4,如果上述物理端口的链路状态为断开,删除br

tun的ovs流表中table 22丢弃snat_port的arp响应报文的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种openstack虚拟机通过所在节点snat连接外网的系统,其特征在于,包括有创建分布式snat的虚拟路由器、限定虚拟机南北流量流向模块、网卡链路状态检测模块;所述的创建分布式snat的路由器,用于创建分布式snat类型的虚拟路由器,并在每个计算节点上都部署snat功能;所述的限定虚拟机南北流量流向模块,用于将虚拟机南北流量限定只流入本地snat,而不向网络节点流入;所述网卡链路状态检测模块,用于实时检测计算节点上外部网络绑定的物理端口链路状态,在链路状态断开时,使本节点虚拟机通过路由连接外网的流量导向其他正常节点,保证虚拟机南北流量快速恢复,增强网络可靠性。2.一种openstack虚拟机通过所在节点snat连接外网的方法,其特征在于,包括以下步骤:步骤S1,创建分布式snat的路由器用于创建分布式snat类型的虚拟路由器,并在每个计算节点上都部署snat功能;DVR模式下未绑定浮动ip的虚拟机南北流量需要集中到网络节点去处理的一个重要原因就是本节点上没有snat功能,无法处理;将snat功能分布式部署在每个计算节点上;步骤S2,创建限定虚拟机南北流量流向模块本步骤用于将虚拟机南北流量限定只流入本地snat,而不向网络节点流入;DVR模式下未绑定浮动ip的虚拟机是将南北流量集中流向网络节点,所以要解决现有技术的问题,还必须限定使得虚拟机流量只流入本地snat,而虚拟机南北流量集中流向网络节点是通过ovs流表将其通过br

tun端点经tunnel网络转发至对端br

tun端点,所以所述限定虚拟机南北流量流向须在ovs的br

tun流表中进行修改;步骤S3,网卡链路状态检测实时检测计算节点上外部网络绑定的物理端口链路状态,在链路状态断开时,使本节点虚拟机通过路由连接外网的流量导向其他正常节点,保证虚拟机南北流量快速恢复,增强网络可靠性。3.根据权利要求2所述的一种openstack虚拟机通过所在节点snat连接外网的方法,其特征在于,所述的步骤S1,具体又包括以下步骤:步骤S1

1,修改neutron

server数据库的routers表,增加一个ex_network字段表示虚拟路由器对应的外部网络的uuid;步骤S1

2,neutron

server创建虚拟机路由器时,不再创建外部网关,而是将外部网络的uuid和其他属性记录入routers表中;步骤S1

3,各计算节点的neutron

l3

agent发现新建的虚拟路由后,获取虚拟路由器的信息,向neutron

server发起创建本节点外部网关的请求,请求中至少包含本节点neutron

l3

agent的uuid和该虚拟路由器的外部网络的uuid;步骤S1

4,neutron

server接收到各计算节点的neutron

l3

agent发起的创...

【专利技术属性】
技术研发人员:高强
申请(专利权)人:西安雷风电子科技有限公司
类型:发明
国别省市:

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

1