一种利用流表实现VIP的浮动IP功能的方法技术

技术编号:34009777 阅读:17 留言:0更新日期:2022-07-02 14:18
本发明专利技术提供一种利用流表实现VIP的浮动IP功能的方法,属于云计算和计算机网络技术领域,本发明专利技术通过在网络节点的ovs上下发流表,利用openflow的NAT转换功能来替代命名空间里的iptables NAT转换功能,减少了流量送往linux命名空间一进一出的流程,提升网络性能。提升网络性能。提升网络性能。

【技术实现步骤摘要】
一种利用流表实现VIP的浮动IP功能的方法


[0001]本专利技术涉及云计算和计算机网络
,尤其涉及一种利用流表实现VIP 的浮动IP功能的方法。

技术介绍

[0002]在云平台中,VIP是一种常见的产品,例如用多台云主机配置keepalive做主 备切换来实现高可用集群,keepalive需要配置一个VIP对外提供服务,当用户配 置一个内网ip作为VIP时,如果想要能被外部访问或者想要利用VIP出外网,就 需要给这个VIP绑定一个浮动ip,在openstack的neutron+openvswtich模式中, VIP绑定浮动ip是利用linux的iptables的sNAT、dNAT实现的,VIP的流量南 北向流量会集中的从网络节点进行转发,流量到达网络节点后会先送到linux的 命名空间中去匹配iptables的NAT规则,匹配完成后再送到ovs桥上进行转发出 网,这个去命名空间的一进一出就会影响网络性能,况且当网络节点上的iptables 规则过多时,网络性能影响更大。

技术实现思路

[0003]为了解决以上技术问题,本专利技术提供了一种利用流表实现VIP的浮动IP功能 的方法。在openstack的openvswitch+dvr模式下利用openflow实现浮动ip的 dNAT、sNAT功能来提升网络性能。
[0004]本专利技术的技术方案是:
[0005]一种利用流表实现VIP的浮动IP功能的方法,通过在网络节点的ovs上下发 流表,利用openflow的NAT转换功能来替代命名空间里的iptables NAT转换功能, 减少了流量送往linux命名空间一进一出的流程,提升网络性能。
[0006]进一步的,
[0007]在dvr模式的网络节点上,通过匹配ip地址、mac地址等关键特征来拦截流 量,避免让流量进入linux的namespace中,直接在br

int网桥上利用流表实现 sNAT、dNAT功能;
[0008]在流表实现sNAT的流程中,利用ovs的controller向浮动ip网关发送arp 请求,当网关回复arp应答报文时,流表匹配到应答报文,利用ovs的learn功 能生成修改sNAT流量的目的mac为fip网关mac的流表;
[0009]在流表实现dNAT功能的流程中,在完成dNAT转换后,利用ovs的controller 功能,向VIP发出arp请求,当VIP回复arp应答报文时,流表匹配到应答报文, 利用ovs的learn功能生成修改目的mac为VIP mac的流表。
[0010]再进一步的,
[0011]在网络节点的br

int ovs桥上下发流表,根据流量包的地址是否是VIP的地 址来进行匹配,匹配到的VIP的南北向流量,就会利用流表实现其sNAT、dNAT功 能,流表是根据控制端的VIP和浮动IP信息在网络节点生成的,生成的流表实现 功能如下:
[0012]VIP出网方向的流量,流表会将源ip做sNAT操作,替换成浮动ip,并将流 量送到位
于物理交换机上的浮动ip网关上:
[0013]第一步,在table 60里匹配源ip是VIP,目的ip是内网网关mac的流量, 送往94号表,
[0014]“ip,dl_vlan=84,dl_dst=fa:16:3e:e5:7a:06,nw_src=192.168.1.106 actions=strip_vlan,load:0x54

>NXM_NX_REG6[],resubmit(,94)”。
[0015]第二步,在table 94里,会加上该流量的标识信息,实现网络隔离,然后将 流量送到table150。
[0016]第三步,在table 150中实现sNAT功能,将源ip替换成浮动ip的地址,源 mac替换成网络节点上的浮动ip agent网关port的mac,将目的mac改为 00:00:00:00:00:00,然后将流表分别转发到table 162,table 163号表。
[0017]第四步,table 162里的流表是通过ovs的learn功能学习浮动ip网关回复 的报文生成的流表,学习到的流表会将流量的目的mac替换成浮动ip网关的mac。 如果已经学习到网关的流表,在VIP的出网流量就能匹配到,然后将目的mac替 换成浮动ip网关mac,将reg7寄存器的值置为1表示这个流量已经修改过目的 mac地址了,并将流量送到table163中;如果匹配不到,流量会被drop。
[0018]第五步,table 163中会实现两条流表,第一条优先级为3的流表会匹配reg7 是否为0,目的mac是否为00:00:00:00:00:00,如果匹配成功说明table172中 没有学到浮动ip网关的的mac,所以这条流表将会利用ovs的controller功能向 浮动ip网关发送一个arp请求,浮动ip网关收到arp请求回复后,table 172中 就能学到浮动ip网关mac。第二条优先级为2的流表会在第一条没匹配到时执行, 表明流量已经在table162中替换过浮动ip网关mac地址了,将流量送到与 br

floating相连的端口。
[0019]第六步,流量将通过br

floaing网桥转发出网,送到位于物理交换机上的浮 动ip网络网关上,完成sNAT出网流程。
[0020]VIP入网方向的流量,流表会完成浮动ip的arp应答,将目的ip做DNAT转 换后替换成VIP地址,然后根据VIP的mac地址进行转发:
[0021]第一步,table60创建两条流表,优先级为100的流表匹配从br

floating来 的,目的mac是qg端口mac,目的ip是浮动ip的流量,送往table161;优先级 为90的流表匹配从br

floating来的arp请求报文流表,送往table160。
[0022]第二步,table 160会完成浮动ip的arp应答,将qg端口的mac地址作为浮 动ip的mac地址进行回复。
[0023]第三步,table 161完成DNAT功能,将报文的目的ip替换成VIP,将源mac 地址替换成内网网关的mac,目的mac替换成00:00:00:00:00:00,然后将报文分 别送到table172,table173。
[0024]第四步,table172和table162类似,是ovs学习到的流表,table 172学习 的是VIP的流表,该流表会将目的mac替换成VIP的mac,将reg7寄存器的值置 为1,然后将流量送往table173。
[0025]第五步,在table173中,包含两条流表,优先级为3的流表匹配reg7=0的 流量,说明table172没有学习到VIP的mac,所以这条流表会通过controlle本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种利用流表实现VIP的浮动IP功能的方法,其特征在于,通过在网络节点的ovs上下发流表,利用openflow的NAT转换功能来替代命名空间里的iptables NAT转换功能。2.根据权利要求1所述的方法,其特征在于,在dvr模式的网络节点上,通过匹配ip地址、mac地址来拦截流量,避免让流量进入linux的namespace中,直接在br

int网桥上利用流表实现sNAT、dNAT功能;在流表实现sNAT的流程中,利用ovs的controller向浮动ip网关发送arp请求,当网关回复arp应答报文时,流表匹配到应答报文,利用ovs的learn功能生成修改sNAT流量的目的mac为fip网关mac的流表;在流表实现dNAT功能的流程中,在完成dNAT转换后,利用ovs的controller功能,向VIP发出arp请求,当VIP回复arp应答报文时,流表匹配到应答报文,利用ovs的learn功能生成修改目的mac为VIP mac的流表。3.根据权利要求2所述的方法,其特征在于,在网络节点的br

int ovs桥上下发流表,根据流量包的地址是否是VIP的地址来进行匹配,匹配到的VIP的南北向流量,就会利用流表实现其sNAT、dNAT功能。4.根据权利要求3所述的方法,其特征在于,流表是根据控制端的VIP和浮动IP信息在网络节点生成的。5.根据权利要求3或4所述的方法,其特征在于,VIP出网方向的流量,流表会将源ip做sNAT操作,替换成浮动ip,并将流量送到位于物理交换机上的浮动ip网关上。6.根据权利要求5所述的方法,其特征在于,步骤如下:第一步,在table 60里匹配源ip是VIP,目的ip是内网网关mac的流量,送往94号表,“ip,dl_vlan=84,dl_dst=fa:16:3e:e5:7a:06,nw_src=192.168.1.106actions=strip_vlan,load:0x54

>NXM_NX_REG6[],resubmit(,94)”;第二步,在table 94里,会加上该流量的标识信息,实现网络隔离,然后将流量送到table150;第三步,在table 150中实现sNAT功能,将源ip替换成浮动ip的地址,源mac替换成网络节点上的浮动ip agent网关port的mac,将目的mac改为00:00:00:00:00:00,然后将流表分别转发到table 162,table 163号表;第四步,table 162里的流表是通过ovs的learn功能学习浮动ip网关回复的报文生成的流表,学习到的流表会将流量的目的mac替换成浮动ip网关的mac;如果已经学习到网关的流表,在VIP的出网流量就能匹配到,然后将目的mac替换成浮动ip网关m...

【专利技术属性】
技术研发人员:李亚洁刘金欣胡章丰李彦君
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1