System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Openstack的虚拟IP实现方法技术_技高网

一种基于Openstack的虚拟IP实现方法技术

技术编号:40326599 阅读:13 留言:0更新日期:2024-02-09 14:20
本发明专利技术提出了一种基于Openstack的虚拟IP实现方法,包括:选择VPC下的子网创建对应的虚拟网口Neutron Port,将对其分配的IP地址作为虚拟地址VIP;将VIP绑定到VM上,通过VIP发出免费ARP报文,在计算节点OpenvSwitch网桥上增加拦截VIP的免费ARP报文的流表;Ryu控制器捕获到VIP的免费ARP报文,提取出源IP地址和关联的源MAC地址;Neutron Server服务器更新VIP所关联的所有Neutron Port的Allow_address_pair属性;操作分布式路由DVR,配置VIP的静态ARP数据,在静态ARP数据中,MAC地址为VIP所绑定的VM MAC地址,当VIP出现漂移时,更新正确的VM MAC地址。本发能够实现跨三层访问VIP的能力。

【技术实现步骤摘要】

本专利技术涉及云网络,特别涉及一种基于openstack的虚拟ip实现方法。


技术介绍

1、openstack是一个开源的云计算管理平台项目,是一系列软件开源项目的组合。neutron是一个用python写的分布式软件项目,用来实现openstack中的虚拟网络服务,实现软件定义网络。为了降低网络节点的负载,同时提高可扩展性,openstack自juno版本开始正式引入了dvr(distributed virtual router,分布式路由)特性。

2、在openstack neutron dvr里会记录当前vpc(virtual private cloud,私有网络)下所有vm(virtual machine,虚拟机)的静态arp(address resolution protoco,地址解析协议)信息,因此dvr在承载三层转发时,直接查询静态arp表项而无需触发arp报文去学习目标的mac地址,即使触发了arp学习,也会在openvswitch上被流表丢弃,即:当前的机制是禁止dvr主动向外发送arp报文来学习目标mac。open vswitch是一个开源的虚拟交换机实现。广泛应用在云计算行业,为网络管理员提供虚拟云主机之间和之内的流量可见性与可控性。

3、通常vip(虚拟ip地址)是通过创建一个neutron port(虚拟网口)预留出一个ip地址,将这个ip地址视作vip。vip关联vm时,对应设置vm的neutron port的allow_address_pair属性。而dvr里记录的vip静态arp配置中,其关联的mac地址则为vip neutron port自身的mac,无法感知vip绑定到哪台vm。

4、图1为现有openstack vpc网络模型中跨子网(三层)访问vip的数据流量模型,具体如下:

5、(1)通常会选择vpc下某个子网创建对应的neutron port,其分配的ip地址则作为vip。

6、(2)在dvr里配置的vip静态arp,其中的mac地址为vip对应neutron port的mac地址。

7、(3)跨子网访问vip时,执行三层转发,流量先送达默认网关(即dvr),在dvr里查询vip的静态arp配置,更改目的mac为记录的mac,再送至openvswitch转发到目的(可能在同节点也可能在不同节点)。

8、然而上述的技术方案存在如下问题:

9、现有的openstack neutron dvr里配置的vip的静态arp,其映射的mac地址并非是vip所绑定的虚拟机vm的mac地址,同时更不会随着vip的漂移而及时更新准确的静态arp配置,进而导致无法跨子网(三层)访问vip。


技术实现思路

1、本专利技术的目的旨在至少解决所述技术缺陷之一。

2、为此,本专利技术的目的在于提出一种基于openstack的虚拟ip实现方法,能够实现跨三层访问vip的能力。

3、为了实现上述目的,本专利技术的实施例提供一种基于openstack的虚拟ip实现方法,包括如下步骤:

4、步骤s1,选择私有网络vpc下的子网创建对应的虚拟网口neutron port,将对所述neutron port分配的ip地址作为虚拟地址vip;

5、步骤s2,将虚拟地址vip绑定到虚拟机vm上,通过虚拟地址vip发出免费arp报文,在计算节点openvswitch网桥上增加拦截vip的免费arp报文的流表,并发送至neutron ovsagent组件的ryu控制器;

6、步骤s3,所述ryu控制器捕获到所述虚拟地址vip的免费arp报文,并从所述免费arp报文中提取出源ip地址和关联的源mac地址,发送至neutron server服务器;

7、步骤s4,所述neutron server服务器更新vip所关联的所有neutron port的allow_address_pair属性,构造静态apr数据;

8、步骤s5,由neutron l3 agent组件操作分布式路由dvr,配置vip的静态arp数据,在静态arp数据中,mac地址为vip所绑定的vm mac地址,当vip出现漂移时,更新正确的vmmac地址。

9、进一步,在所述步骤s3中,所述源ip地址为所述虚拟地址vip;所述源mac地址为vip所绑定虚拟机的mac地址。

10、进一步,在所述步骤s4中,所述allow_address_pair属性,包括:

11、port_id:关联的neutron port uuid;

12、mac_address:关联的neutron port mac地址,作为虚拟机vm的mac地址;

13、ip_address:虚拟地址vip;

14、network_id:vip所属的网络uuid;

15、active:标识vip是否绑定在此port或vm。

16、进一步,在所述步骤s4中,在allow_address_pair数据模型中增加act ive属性,利用获取到的源ip地址和关联的源mac地址,通过比对mac地址,设置act ive属性值。

17、进一步,如果mac地址相同,则设置active属性值为true;如果mac地址不同,则设置active属性值为false。

18、进一步,当检测到active属性值为true时,则表示vip绑定在此虚拟机,数据存入数据库并进行持久化。

19、进一步,当相关服务重启时,根据持久化的数据自动恢复vip的静态arp配置。

20、进一步,在所述步骤s5中,当虚拟地址vip漂移到新虚拟机时,新虚拟机主动发送免费arp报文由,openvswitch重新捕获免费arp报文,切换vip所关联的mac地址。

21、进一步,在所述步骤s5之后,还包括如下步骤:

22、步骤s6,跨子网访问vip时,执行三层转发,流量先送达分布式路由dvr,在dvr里查询vip的静态arp配置,更改目的mac地址为vip所绑定的vm mac地址,再送至openvswitch转发到目的节点。

23、进一步,拦截vip的免费arp报文的流表由所述ryu控制器预先编排,当接收到虚拟地址vip发送的免费arp报文时,拦截该免费arp报文送至ryu控制器,并进一步通知neutronserver服务器。

24、根据本专利技术实施例的基于openstack的虚拟ip实现方法,具有以下有益效果:

25、(1)捕获免费arp,精准关联mac:vip绑定到虚机后主动发送免费arp,openvswitch捕获免费arp报文,精准提取vip及其关联的mac地址。

26、(2)vip漂移,快速切换mac:vip漂移到新虚机,新虚机主动发送免费arp,openvswitch重本文档来自技高网...

【技术保护点】

1.一种基于Openstack的虚拟IP实现方法,其特征在于,包括如下步骤:

2.如权利要求1所述的基于Openstack的虚拟IP实现方法,其特征在于,在所述步骤S3中,所述源IP地址为所述虚拟地址VIP;所述源MAC地址为VIP所绑定虚拟机的MAC地址。

3.如权利要求1所述的基于Openstack的虚拟IP实现方法,其特征在于,在所述步骤S4中,所述Allow_address_pair属性,包括:

4.如权利要求3所述的基于Openstack的虚拟IP实现方法,其特征在于,在所述步骤S4中,在Allow_address_pair数据模型中增加active属性,利用获取到的源IP地址和关联的源MAC地址,通过比对MAC地址,设置active属性值。

5.如权利要求4所述的基于Openstack的虚拟IP实现方法,其特征在于,如果MAC地址相同,则设置active属性值为True;如果MAC地址不同,则设置active属性值为False。

6.如权利要求5所述的基于Openstack的虚拟IP实现方法,其特征在于,当检测到active属性值为True时,则表示VIP绑定在此虚拟机,数据存入数据库并进行持久化。

7.如权利要求6所述的基于Openstack的虚拟IP实现方法,其特征在于,当相关服务重启时,根据持久化的数据自动恢复VIP的静态ARP配置。

8.如权利要求1所述的基于Openstack的虚拟IP实现方法,其特征在于,在所述步骤S5中,当虚拟地址VIP漂移到新虚拟机时,新虚拟机主动发送免费ARP报文由,OpenvSwitch重新捕获免费ARP报文,切换VIP所关联的MAC地址。

9.如权利要求1所述的基于Openstack的虚拟IP实现方法,其特征在于,在所述步骤S5之后,还包括如下步骤:

10.如权利要求1所述的基于Openstack的虚拟IP实现方法,其特征在于,拦截VIP的免费ARP报文的流表由所述Ryu控制器预先编排,当接收到虚拟地址VIP发送的免费ARP报文时,拦截该免费ARP报文送至Ryu控制器,并进一步通知Neutron Server服务器。

...

【技术特征摘要】

1.一种基于openstack的虚拟ip实现方法,其特征在于,包括如下步骤:

2.如权利要求1所述的基于openstack的虚拟ip实现方法,其特征在于,在所述步骤s3中,所述源ip地址为所述虚拟地址vip;所述源mac地址为vip所绑定虚拟机的mac地址。

3.如权利要求1所述的基于openstack的虚拟ip实现方法,其特征在于,在所述步骤s4中,所述allow_address_pair属性,包括:

4.如权利要求3所述的基于openstack的虚拟ip实现方法,其特征在于,在所述步骤s4中,在allow_address_pair数据模型中增加active属性,利用获取到的源ip地址和关联的源mac地址,通过比对mac地址,设置active属性值。

5.如权利要求4所述的基于openstack的虚拟ip实现方法,其特征在于,如果mac地址相同,则设置active属性值为true;如果mac地址不同,则设置active属性值为false。

6.如权利要求5所述的基于openst...

【专利技术属性】
技术研发人员:黄永远
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1