CN104601432B - 一种报文传输方法和设备 - Google Patents
一种报文传输方法和设备 Download PDFInfo
- Publication number
- CN104601432B CN104601432B CN201410853757.5A CN201410853757A CN104601432B CN 104601432 B CN104601432 B CN 104601432B CN 201410853757 A CN201410853757 A CN 201410853757A CN 104601432 B CN104601432 B CN 104601432B
- Authority
- CN
- China
- Prior art keywords
- nat
- message
- virtual
- vxlan
- flow table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000006243 chemical reaction Methods 0.000 claims abstract description 198
- 238000005538 encapsulation Methods 0.000 claims abstract description 67
- 230000008569 process Effects 0.000 claims abstract description 13
- 238000013519 translation Methods 0.000 claims description 139
- 230000009471 action Effects 0.000 claims description 57
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000006855 networking Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000012858 packaging process Methods 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种报文传输方法和设备,该方法包括:虚拟交换机接收SDN控制器下发的第一流表和第二流表;虚拟交换机在收到来自虚拟机的报文时,如果报文能够匹配到所述第一流表,则虚拟交换机利用第一流表将报文发送给虚拟NAT设备,由虚拟NAT设备对报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;所述虚拟交换机在收到来自虚拟NAT设备报文时,如果报文能够匹配到所述第二流表,则虚拟交换机利用所述第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关。本发明实施例中,避免VXLAN网关对虚拟机的报文进行NAT转换,节省VXLAN网关的CPU资源,减轻VXLAN网关的处理性能。
Description
技术领域
本发明涉及通信技术领域,尤其是涉及一种报文传输方法和设备。
背景技术
随着数据中心云计算和虚拟化技术的发展,一个数据中心需要支持的虚拟机规模出现爆炸式增长,同时虚拟机迁移需要在同一个二层域内,不同租户之间需要逻辑隔离。由于传统VLAN(Virtual Local Area Network,虚拟局域网络)最多只能够支持4096个,如果使用VLAN技术进行二层域的划分和隔离,从规模上已经远远满足不了需求。因此,VXLAN(Virtual eXtensible Local Area Network,可扩展虚拟局域网络)技术应运而生,VXLAN具有更大的标识空间,并基于三层IP网络之上进行运行,更加容易部署和维护。
如图1所示,为VXLAN网络的组网示意图,物理服务器上配置多个虚拟机和虚拟交换机。对于虚拟机发出的目的为IP网络的报文,虚拟交换机对报文进行VXLAN封装,将封装后的报文发送给VXLAN网关。VXLAN网关收到目的为IP网络的报文后,对报文进行解封装,将解封装后的报文发送至IP网络。
对于虚拟机发出的目的为IP网络的报文,该报文的源IP地址为私网地址,且VXLAN网关在收到该报文之后,需要对该报文进行NAT(Network Address Translation,网络地址转换)转换。由于NAT转换需要占用VXLAN网关的CPU(Central Processing Unit,中央处理器)资源,VXLAN网关会收到大量虚拟机发送的需要NAT转换的报文,因此,VXLAN网关在同一时间内处理报文数量很多,对VXLAN网关性能要求非常高,VXLAN网关可能成为通讯瓶颈。
发明内容
本发明实施例提供一种报文传输方法,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述方法包括以下步骤:
所述虚拟交换机接收所述SDN控制器下发的第一流表和第二流表;
所述虚拟交换机在收到来自所述虚拟机的报文时,如果所述报文能够匹配到所述第一流表,则所述虚拟交换机利用所述第一流表将所述报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对所述报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
所述虚拟交换机在收到来自虚拟NAT设备的报文时,如果所述报文能够匹配到所述第二流表,则所述虚拟交换机利用所述第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关。
所述方法进一步包括:所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口。
所述方法进一步包括:
所述虚拟交换机接收所述SDN控制器下发的第三流表和第四流表;
所述虚拟交换机在收到来自所述VXLAN网关的报文时,如果所述报文能够匹配到所述第三流表,则所述虚拟交换机利用所述第三流表对所述报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对VXLAN解封装后的报文的目的IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
所述虚拟交换机在收到来自所述虚拟NAT设备的报文时,如果所述报文能够匹配到所述第四流表,则所述虚拟交换机利用所述第四流表将NAT转换后的报文发送给所述虚拟机。
所述方法进一步包括:所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
所述方法进一步包括:
所述虚拟交换机将所述虚拟交换机具有NAT转换能力的信息发送给所述SDN控制器,由所述SDN控制器在获知所述虚拟交换机具有NAT转换能力时,在所述虚拟交换机上下发NAT转换信息;其中,所述NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;
所述虚拟交换机将所述NAT转换信息发送给所述虚拟NAT设备,由所述虚拟NAT设备在对报文的源IP地址进行NAT转换时,利用报文中携带的VNI查询对应的NAT转换信息,将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口,并记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系;由所述虚拟NAT设备在对VXLAN解封装后的报文的目的IP地址进行NAT转换时,利用所述对应关系将报文的目的IP地址修改为所述对应关系中的源IP地址,将报文的目的端口修改为所述对应关系中的源端口。
本发明实施例提供一种报文传输方法,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述方法包括以下步骤:
所述VXLAN网关维护NAT转发表;其中,所述NAT转发表中记录了NAT转换的目的IP地址、NAT转换的目的端口、VXLAN隧道;
所述VXLAN网关在接收到报文时,如果所述报文的目的IP地址为所述NAT转换的目的IP地址,所述报文的目的端口为所述NAT转换的目的端口,则所述VXLAN网关对报文进行VXLAN封装,并利用所述VXLAN隧道将VXLAN封装后的报文发送给虚拟交换机,由所述虚拟交换机在收到来自VXLAN网关的报文时,将报文发送给所述虚拟机。
所述VXLAN网关维护NAT转发表的过程,具体包括:
所述VXLAN网关接收所述SDN控制器下发的NAT转换信息,所述NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;所述VXLAN网关利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表;或者,
所述VXLAN网关在接收到来自所述虚拟交换机的报文时,学习所述报文的源IP地址为NAT转换的目的IP地址,学习所述报文的源端口为NAT转换的目的端口;所述VXLAN网关利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表。
本发明实施例提供一种报文传输方法,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述方法包括以下步骤:
所述SDN控制器在收到来自所述虚拟交换机的报文时,生成所述报文对应的第一流表和第二流表,并在所述虚拟交换机上下发第一流表和第二流表;由所述虚拟交换机利用所述第一流表将来自所述虚拟机且与所述第一流表匹配的报文发送给所述虚拟NAT设备,并利用所述第二流表对来自虚拟NAT设备且与所述第二流表匹配的报文进行VXLAN封装,将VXLAN封装后的报文发送给VXLAN网关;
所述SDN控制器生成所述报文对应的第三流表和第四流表,并在所述虚拟交换机上下发所述第三流表和所述第四流表;由所述虚拟交换机利用所述第三流表对来自所述VXLAN网关且与所述第三流表匹配的报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,并利用所述第四流表将来自所述虚拟NAT设备且与所述第四流表匹配的报文发送给所述虚拟机。
所述方法进一步包括:
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口;所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
所述方法进一步包括:
所述SDN控制器接收所述虚拟交换机具有NAT转换能力的信息;
在获知所述虚拟交换机具有NAT转换能力时,所述SDN控制器确定所述虚拟交换机对应的第一NAT转换信息,并将第一NAT转换信息发送给VXLAN网关;其中,所述第一NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;
所述SDN控制器确定虚拟交换机对应的第二NAT转换信息,并将所述第二NAT转换信息发送给所述虚拟交换机;其中,所述第二NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口。
本发明实施例提供一种虚拟交换机,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述虚拟交换机具体包括:
接收模块,用于接收所述SDN控制器下发的第一流表和第二流表;
发送模块,用于在收到来自所述虚拟机的报文时,如果所述报文能够匹配到所述第一流表,则利用所述第一流表将所述报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对所述报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;在收到来自虚拟NAT设备报文时,如果所述报文能够匹配到所述第二流表,则利用所述第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关。
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;
所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口。
所述接收模块,还用于接收所述SDN控制器下发的第三流表和第四流表;
所述发送模块,还用于在收到来自所述VXLAN网关的报文时,如果所述报文能够匹配到所述第三流表,则利用所述第三流表对所述报文进行VXLAN解封装,将VXLAN解封装后的报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对VXLAN解封装后的报文的目的IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
在收到来自所述虚拟NAT设备的报文时,如果所述报文能够匹配到所述第四流表,则利用所述第四流表将NAT转换后的报文发送给所述虚拟机。
所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
所述发送模块,进一步用于将所述虚拟交换机具有NAT转换能力的信息发送给所述SDN控制器,由所述SDN控制器在获知所述虚拟交换机具有NAT转换能力时,在所述虚拟交换机上下发NAT转换信息;所述NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;
以及,将所述NAT转换信息发送给所述虚拟NAT设备,由所述虚拟NAT设备在对报文的源IP地址进行NAT转换时,利用报文中携带的VNI查询对应的NAT转换信息,将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口,并记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系;由所述虚拟NAT设备在对VXLAN解封装后的报文的目的IP地址进行NAT转换时,利用所述对应关系将报文的目的IP地址修改为所述对应关系中的源IP地址,将报文的目的端口修改为所述对应关系中的源端口。
本发明实施例提供一种VXLAN网关,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述VXLAN网关包括:
维护模块,用于维护NAT转发表;其中,所述NAT转发表中记录了NAT转换的目的IP地址、NAT转换的目的端口、VXLAN隧道;
发送模块,用于在接收到报文时,如果所述报文的目的IP地址为所述NAT转换的目的IP地址,所述报文的目的端口为所述NAT转换的目的端口,则对报文进行VXLAN封装,并利用所述VXLAN隧道将VXLAN封装后的报文发送给所述虚拟交换机,由所述虚拟交换机在收到来自所述VXLAN网关的报文时,将报文发送给所述虚拟机。
所述维护模块,具体用于接收所述SDN控制器下发的NAT转换信息,所述NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;以及,利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表;或者,
在接收到来自所述虚拟交换机的报文时,学习所述报文的源IP地址为NAT转换的目的IP地址,学习所述报文的源端口为NAT转换的目的端口;以及,利用所述虚拟交换机的IP地址建立所述VXLAN网关与所述虚拟交换机之间的VXLAN隧道,并利用所述NAT转换的目的IP地址、所述NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表。
本发明实施例提供一种SDN控制器,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述SDN控制器具体包括:
生成模块,用于在收到来自所述虚拟交换机的报文时,生成所述报文对应的第一流表、第二流表、第三流表和第四流表;
发送模块,用于在所述虚拟交换机上下发所述第一流表、所述第二流表、所述第三流表和所述第四流表;由所述虚拟交换机利用所述第一流表将来自所述虚拟机且与所述第一流表匹配的报文发送给所述虚拟NAT设备,并利用所述第二流表对来自所述虚拟NAT设备且与所述第二流表匹配的报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关;由所述虚拟交换机利用所述第三流表对来自VXLAN网关且与所述第三流表匹配的报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,并利用所述第四流表将来自虚拟NAT设备且与所述第四流表匹配的报文发送给所述虚拟机。
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口;所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
还包括:接收模块,用于接收所述虚拟交换机具有NAT转换能力的信息;
所述生成模块,还用于在获知所述虚拟交换机具有NAT转换能力时,确定所述虚拟交换机对应的第一NAT转换信息,并确定所述虚拟交换机对应的第二NAT转换信息;其中,所述第一NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;所述第二NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;所述发送模块,还用于将所述第一NAT转换信息发送给所述VXLAN网关,并将所述第二NAT转换信息发送给所述虚拟交换机。
基于上述技术方案,本发明实施例中,通过在物理服务器上运行虚拟NAT设备,由虚拟NAT设备对该物理服务器上运行的虚拟机的报文进行NAT转换,从而避免VXLAN网关对虚拟机的报文进行NAT转换,节省VXLAN网关的CPU资源,减轻VXLAN网关的处理性能,避免VXLAN网关成为通讯瓶颈。
附图说明
图1是现有技术中提出的VXLAN网络的组网示意图;
图2是本发明实施例中提出的VXLAN网络的组网示意图;
图3是本发明实施例提出的一种报文传输方法流程示意图;
图4和图5是本发明实施例提出的NAT转换信息的通知结构示意图;
图6是本发明实施例提出的一种虚拟交换机的结构示意图;
图7是本发明实施例提出的一种VXLAN网关的结构示意图;
图8是本发明实施例提出的一种SDN控制器的结构示意图。
具体实施方式
针对现有技术中存在的问题,本发明实施例提供一种报文传输方法,该方法可以应用于包括SDN(Software Defined Network,软件定义网络)控制器、物理服务器和VXLAN网关的网络(如VXLAN网络)中,且物理服务器上运行一个虚拟交换机、至少一个虚拟机。此外,物理服务器上还可以运行一个虚拟NAT设备。其中,虚拟交换机和虚拟NAT设备均是物理服务器上运行的功能模块。虚拟NAT设备可以为与虚拟交换机同等级别的功能模块,且虚拟NAT设备与虚拟交换机之间的数据流量可以通过标准的虚拟接口进行传输。虚拟NAT设备也可以为虚拟交换机的子功能模块,且虚拟NAT设备与虚拟交换机之间的数据流量可以通过标准的虚拟接口进行传输,也可以通过内部程序接口进行传输。
以图2所示的VXLAN网络为本发明实施例的应用场景示意图,并以物理服务器1上运行的虚拟机(虚拟机1、虚拟机2)访问IP网络为例进行说明。虚拟机1(地址10.0.0.1)对应VXLAN 1,并通过vPort1(虚拟接口1)连接到虚拟交换机。虚拟机2(地址10.2.0.2)对应VXLAN 2,并通过vPort2连接到虚拟交换机。虚拟交换机的地址为192.168.0.100。VXLAN网关的地址为192.168.200.1,VXLAN网关的MAC(Media Access Control,介质访问控制)地址为00-00-01,VXLAN网关到物理服务器1的隧道为Tunnel(隧道1)。
在上述应用场景下,如图3所示,该报文传输方法具体包括以下步骤:
步骤301,虚拟交换机将本虚拟交换机具有NAT转换能力的信息发送给SDN控制器,由SDN控制器接收虚拟交换机具有NAT转换能力的信息。
其中,当虚拟交换机所在的物理服务器上运行了虚拟NAT设备时,虚拟交换机确定本虚拟交换机具有NAT转换能力,并将本虚拟交换机具有NAT转换能力的信息发送给SDN控制器。进一步的,SDN控制器在接收到来自虚拟交换机的该虚拟交换机具有NAT转换能力的信息之后,获知该虚拟交换机具有NAT转换能力。
步骤302,SDN控制器在获知虚拟交换机具有NAT转换能力时,确定该虚拟交换机对应的NAT转换信息,并将该NAT转换信息发送给虚拟交换机,由该虚拟交换机将该NAT转换信息发送给虚拟NAT设备。
其中,该NAT转换信息具体包括但不限于:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口。NAT转换的目的端口可以为端口区间,基于此,NAT转换信息中包括NAT转换的起始目的端口和结束目的端口。
其中,SDN控制器在获知虚拟交换机具有NAT转换能力时,确定后续连接到此虚拟交换机上的虚拟机对应流量需要进行NAT处理时,将由虚拟交换机本地的虚拟NAT设备进行NAT处理。因此,SDN控制器根据用户配置的NAT地址池,向虚拟交换机下发对应的NAT转换信息(如NAT转换的目的IP地址、NAT转换的目的端口区间)。对于多个虚拟交换机,SDN控制器根据均衡算法为不同的虚拟交换机下发不同的NAT转换信息(NAT转换的目的IP地址、NAT转换的目的端口区间)。进一步的,当虚拟交换机上的虚拟机对应流量不需要进行NAT处理时,SDN控制器自动回收下发给该虚拟交换机的NAT转换信息(NAT转换的目的IP地址、NAT转换的目的端口区间)。
如图4所示,为SDN控制器向虚拟交换机下发NAT转换信息的结构示意图。NATControl(控制):表明该结构中携带NAT转换的目的IP地址、NAT转换的目的端口区间。VNI:表明后面的地址用于指定VNI的地址转换,VNI为0表示任意VNI。NAT IP:NAT转换的目的IP地址。start port(起始端口):NAT转换的起始目的端口。end port(结束端口):NAT转换的结束目的端口。
步骤303,SDN控制器在收到来自虚拟交换机的报文时,生成该报文对应的第一流表和第二流表,并在该虚拟交换机上下发第一流表和第二流表,由虚拟交换机接收SDN控制器下发的第一流表和第二流表。
其中,针对虚拟交换机收到的来自虚拟机的发送给外网设备的第一个报文,虚拟交换机无法查询到该报文对应的流表,因此会将该报文发送给SDN控制器;SDN控制器在收到来自虚拟交换机的报文时,生成该报文对应的第一流表和第二流表,并在该虚拟交换机上下发第一流表和第二流表。针对虚拟交换机收到的来自虚拟机的发送给该外网设备的第二个报文以及后续报文,虚拟交换机可以查询到该报文对应的流表,因此会利用查询到的流表进行相关处理,该处理过程将在后续步骤中详细说明。
本发明实施例中,第一流表的入接口为指定接口,匹配选项为SDN控制器从来自虚拟交换机的报文中学习到的虚拟机访问的外网设备的IP地址(即来自虚拟交换机的报文中携带的目的IP地址,该目的IP地址为虚拟机需要访问的外网设备的IP地址),动作(action)为封装虚拟机对应的VNI(VXLAN Network Identifier,VXLAN网络标识)和本第一流表的标识(即流表标识),出接口为虚拟NAT设备对应的接口(即vNAT口)。其中,该VNI可作为虚拟NAT设备进行NAT转换的依据,即虚拟NAT设备利用该VNI查询对应的NAT转换信息。第二流表的入接口为虚拟NAT设备对应的接口,匹配选项为第一流表的标识(即流表标识字段为第一流表的标识),动作为进行VXLAN封装,出接口为VXLAN网关对应的接口,即出接口为虚拟交换机的上行口。
如,针对对应于VXLAN 1的虚拟机1发送给外网设备A的报文生成的流表,第一流表(流表1)的入接口为虚拟机1对应的vPort1,匹配选项为来自虚拟交换机的报文中携带的目的IP地址(即虚拟机1需要访问的外网设备A的IP地址),动作为封装虚拟机1对应的VNI(VNI1)和本第一流表的标识(流表1),出接口为虚拟NAT设备对应的接口(vNAT口)。第二流表(流表2)的入接口为虚拟NAT设备对应的接口(vNAT口),匹配选项为第一流表的标识(流表1),动作为进行VXLAN封装,出接口为上行口。其中,在进行VXLAN封装时,需要在VXLAN头中封装指定VXLAN(即VXLAN字段为指定VXLAN,如VXLAN 1111,该指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络),且封装后的VXLAN头的外层IP地址为VXLAN网关的IP地址。
再如,针对对应于VXLAN 2的虚拟机2发送给外网设备B的报文生成的流表,第一流表(流表5)的入接口为虚拟机2对应的vPort2,匹配选项为来自虚拟交换机的报文中携带的目的IP地址(即虚拟机2需要访问的外网设备B的IP地址),动作为封装虚拟机2对应的VNI(VNI 2)和本第一流表的标识(流表5),出接口为虚拟NAT设备对应的接口(vNAT口)。第二流表(流表6)的入接口为虚拟NAT设备对应的接口(vNAT口),匹配选项为第一流表的标识(流表5),动作为进行VXLAN封装,出接口为上行口。其中,在进行VXLAN封装时,需要在VXLAN头中封装指定VXLAN(即VXLAN字段为指定VXLAN,如VXLAN 1111,该指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络),且封装后的VXLAN头的外层IP地址为VXLAN网关的IP地址。
SDN控制器在收到来自虚拟交换机的报文时,还生成该报文对应的第三流表和第四流表,并在该虚拟交换机上下发第三流表和第四流表,由该虚拟交换机接收SDN控制器下发的第三流表和第四流表。
本发明实施例中,第三流表的入接口为虚拟交换机的上行接口,匹配选项为指定VXLAN(即VXLAN字段为指定VXLAN,如VXLAN 1111,该指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络),动作为进行VXLAN解封装(即剥掉VXLAN封装的VXLAN头),并在VXLAN解封装后的报文中封装虚拟机对应的VNI和本第三流表的标识(即流表标识),出接口为虚拟NAT设备对应的接口(即vNAT口),VNI可作为虚拟NAT设备进行NAT转换的依据,即虚拟NAT设备利用VNI查询对应的NAT转换信息。第四流表的入接口为虚拟NAT设备对应的接口,匹配选项为第三流表的标识(即流表标识字段为第三流表的标识),动作为去掉用户数据外的封装(即去掉第三流表的标识和VNI等信息),将目的MAC地址修改为对应虚拟机的MAC地址,出接口为虚拟机对应的接口。
如针对前面对应于VXLAN 1的虚拟机1发送给外网设备A的报文生成的流表,第三流表(流表3)的入接口为虚拟交换机的上行接口,匹配选项为指定VXLAN(如VXLAN1111,该指定VXLAN 1111用于使VXLAN封装后的报文能够通过VXLAN网络),动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机1对应的VNI(如VNI 1)和本第三流表的标识(流表3),出接口为虚拟NAT设备对应的接口(即vNAT口)。第四流表(流表4)的入接口为虚拟NAT设备对应的接口,匹配选项为第三流表的标识(流表3),动作为去掉用户数据外的封装(即去掉流表3的标识和VNI等信息),将目的MAC地址修改为虚拟机的MAC地址(虚拟机1的MAC地址),出接口为虚拟机对应的接口(虚拟机1接入的接口vPort1)。
针对对应于VXLAN 2的虚拟机2发送给外网设备B的报文生成的流表,第三流表(流表7)的入接口为虚拟交换机的上行接口,匹配选项为指定VXLAN(如VXLAN1111,该指定VXLAN 1111用于使VXLAN封装后的报文能够通过VXLAN网络),动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机2对应的VNI(如VNI 2)和本第三流表的标识(流表7),出接口为虚拟NAT设备对应的接口(即vNAT口)。第四流表(流表8)的入接口为虚拟NAT设备对应的接口,匹配选项为第三流表的标识(流表7),动作为去掉用户数据外的封装(即去掉流表7的标识和VNI等信息),将目的MAC地址修改为虚拟机的MAC地址(虚拟机2的MAC地址),出接口为虚拟机对应的接口(虚拟机2接入的接口vPort2)。
步骤304,虚拟交换机在接收到来自虚拟机的报文时,如果该报文能够匹配到第一流表,则虚拟交换机利用第一流表将来自虚拟机的报文发送给虚拟NAT设备,由虚拟NAT设备对报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给虚拟交换机。
本发明实施例中,虚拟交换机利用第一流表将来自虚拟机的报文发送给虚拟NAT设备的过程,具体包括但不限于:基于第一流表中维护的匹配选项(外网设备的IP地址)、动作(封装虚拟机对应的VNI和本第一流表的标识)、出接口(虚拟NAT设备对应的接口),则:当报文的目的地址为第一流表中记录的外网设备的IP地址时,虚拟交换机匹配到该第一流表,在报文中封装该第一流表中记录的虚拟机对应的VNI和该第一流表的标识,并通过该第一流表中记录的虚拟NAT设备对应的接口将报文发送给虚拟NAT设备。
本发明实施例中,虚拟NAT设备在对报文的源IP地址进行NAT转换的过程中,虚拟NAT设备利用报文中携带的VNI(即虚拟交换机利用第一流表在报文中封装的VNI)查询对应的NAT转换信息,得到该VNI对应的NAT转换的目的IP地址和NAT转换的目的端口。之后,虚拟NAT设备将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口,并记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系。在将报文的源端口修改为NAT转换的目的端口时,虚拟NAT设备从起始目的端口到结束目的端口的端口区间内选择一个目的端口,并将报文的源端口修改为当前选择的目的端口。
步骤305,虚拟交换机在收到来自虚拟NAT设备的报文时,如果该报文能够匹配到第二流表,则虚拟交换机利用第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关,由该VXLAN网关将报文发送给外网设备。
本发明实施例中,虚拟交换机利用第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关的过程,具体包括但不限于:基于第二流表中维护的匹配选项(第一流表的标识)、动作(进行VXLAN封装)、出接口(VXLAN网关对应的接口),则:当来自虚拟NAT设备的报文中携带的第一流表的标识为第二流表中维护的匹配选项时,则虚拟交换机匹配到该第二流表,对该报文进行VXLAN封装,并通过该第二流表中记录的VXLAN网关对应的接口将VXLAN封装后的报文发送给VXLAN网关。
以下结合图2所示的应用场景对上述过程进行进一步的说明。
如图5所示,为SDN控制器向虚拟交换机下发的NAT转换信息的结构示意图。SDN控制器向物理服务器1中的VXLAN 1(对应于虚拟机1)下发的NAT转换的目的IP地址为221.0.0.1,NAT转换的目的端口区间为5000到6000,虚拟机对应的VNI为VNI 1。SDN控制器向物理服务器1中的VXLAN2(对应于虚拟机2)下发的NAT转换的目的IP地址为221.0.0.1,NAT转换的目的端口区间为6001到7000,虚拟机对应的VNI为VNI 2。进一步的,虚拟交换机在接收到上述NAT转换信息后,将NAT转换信息同步给虚拟NAT设备,由虚拟NAT设备利用该NAT转换信息维护表1所示的NAT映射表。
表1
当虚拟机1需要访问IP网络内的外网设备A(IP地址为8.8.8.8)时,虚拟交换机接收来自虚拟机的报文,该来自虚拟机的报文如表2所示。当报文的目的地址(8.8.8.8)为流表1中记录的外网设备的IP地址(8.8.8.8)时,虚拟交换机匹配到流表1,在报文中封装流表1中记录的VNI 1和流表1的标识,并通过虚拟NAT设备对应的接口将报文发送给虚拟NAT设备。虚拟NAT设备在接收到报文之后,利用该报文中携带的信息查询NAT转发表,并发现NAT转发表中没有匹配该报文的记录。因此,虚拟NAT设备利用报文中携带的VNI 1查询表1所示的NAT映射表,将报文的源IP地址修改为NAT转换的目的IP地址221.0.0.1,并将报文的源端口修改为NAT转换的目的端口5000,并在表3所示的NAT转发表中记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系,并将NAT转换后的报文发送给虚拟交换机。其中,该NAT转换后的报文如表4所示。在该NAT转换后的报文中,需要携带流表1的标识;此外,该NAT转换后的报文中还可以携带VNI 1或者不携带VNI 1,表4中以携带VNI 1为例。
表2
表3
表4
虚拟交换机在接收到来自虚拟NAT设备的报文时,由于该报文中携带流表1的标识,因此虚拟交换机匹配到流表2,去掉报文中携带的流表标识和VNI,并对该报文进行VXLAN封装,并通过该流表2中记录的VXLAN网关对应的接口将VXLAN封装后的报文发送给VXLAN网关。在对报文进行VXLAN封装时,需要在报文头外添加8字节的VXLAN头、8字节的UDP(User Data Protocol,用户数据报协议)头、20字节的IP头以及最大14字节的外层二层MAC头。其中,在封装后的8字节的VXLAN头中,封装有指定VXLAN(即VXLAN字段为指定VXLAN,如VXLAN 1111,该指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络),且封装后的VXLAN头的外层IP地址为VXLAN网关的IP地址。其余其它封装过程在此不再赘述。由于VXLAN封装后的报文的外层IP为192.168.200.1(即VXLAN网关的IP地址),且VXLAN字段为指定VXLAN,因此,VXLAN封装后的报文将被发送给VXLAN网关。VXLAN网关在收到VXLAN封装后的报文后,剥掉VXLAN封装,并根据路由将报文转发到外网设备A(即目的IP地址为8.8.8.8的外网设备),该过程与现有流程相同,在此不再详加赘述。
步骤306,VXLAN网关在接收到外网设备发送给虚拟机的报文时,根据报文的目的IP地址,即NAT转换的目的IP地址,报文的目的端口,即NAT转换的目的端口,对报文进行VXLAN封装,并利用VXLAN隧道将VXLAN封装后的报文发送给虚拟交换机。
本发明实施例中,VXLAN网关维护NAT转发表,该NAT转发表中记录NAT转换信息与VXLAN隧道的对应关系,即转换的目的IP地址、NAT转换的目的端口、VXLAN隧道。基于此NAT转发表,VXLAN网关在收到报文时,根据报文的目的IP地址以及报文的目的端口查找NAT转发表,利用NAT转发表中记录的VXLAN隧道将VXLAN封装后的报文发送给虚拟交换机。
本发明实施例中,VXLAN网关维护NAT转发表的方式,包括但不限于:
方式一、VXLAN网关接收SDN控制器下发的NAT转换信息,该NAT转换信息具体包括但不限于:NAT转换的目的IP地址、NAT转换的目的端口(端口区间)、虚拟交换机的IP地址。进一步的,VXLAN网关利用虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,建立记录NAT转换的目的IP地址、NAT转换的目的端口(端口区间)和VXLAN隧道之间关系的NAT转发表。
本发明实施例中,为了区分发送给VXLAN网关的NAT转换信息和发送给虚拟交换机的NAT转换信息进行区分,将发送给VXLAN网关的NAT转换信息称为虚拟交换机对应的第一NAT转换信息,并将发送给虚拟交换机的NAT转换信息称为虚拟交换机对应的第二NAT转换信息。
基于此,SDN控制器在获知虚拟交换机具有NAT转换能力时,在将虚拟交换机对应的第二NAT转换信息发送给虚拟交换机之前,SDN控制器确定虚拟交换机对应的第一NAT转换信息,并将虚拟交换机对应的第一NAT转换信息发送给VXLAN网关,由VXLAN网关接收SDN控制器下发的虚拟交换机对应的第一NAT转换信息,并利用SDN控制器下发的虚拟交换机对应的第一NAT转换信息,在本VXLAN网关上维护NAT转发表。
方式二、VXLAN网关在接收到来自虚拟交换机的报文时,学习报文的源IP地址为NAT转换的目的IP地址,并学习报文的源端口为NAT转换的目的端口。进一步的,VXLAN网关利用虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道。之后,VXLAN网关利用NAT转换的目的IP地址、NAT转换的目的端口和VXLAN隧道维护NAT转发表。
VXLAN网关在接收到来自虚拟交换机的报文时,学习该报文中携带的源IP地址、源端口、VNI信息、VXLAN隧道的源地址(即虚拟交换机的IP地址)等信息,并维护这些信息的老化。基于学习到的信息,VXLAN网关可以在本VXLAN网关上维护NAT转发表。其中,当存在多个VXLAN网关时,各VXLAN网关还需要将学习到的信息在各VXLAN网关之间保持同步。
以下结合方式一,对VXLAN网关收到报文之后的处理进行详细说明。
SDN控制器在获知虚拟交换机具有NAT转换能力时,在将虚拟交换机对应的第二NAT转换信息发送给虚拟交换机之前,SDN控制器向VXLAN网关发送如下第一NAT转换信息:NAT转换的目的IP地址为221.0.0.1,NAT转换的目的端口范围为5000到6000,虚拟交换机的IP地址为192.168.0.100,进入到192.168.0.100的VXLAN隧道,指定VXLAN为VXLAN 1111。NAT转换的目的IP地址为221.0.0.1,NAT转换的目的端口范围为6001到7000,虚拟交换机的IP地址为192.168.0.100,进入到192.168.0.100的VXLAN隧道,指定VXLAN为VXLAN 1111。基于上述第一NAT转换信息,VXLAN网关可以维护表5所示的NAT转发表。
表5
对于IP网络内的外网设备A向虚拟机1发送的报文(如地址为8.8.8.8的外网设备A发送的回应报文),VXLAN网关在接收到报文后,该报文如表6所示。基于表5所示的NAT转发表,该报文的目的IP地址(221.0.0.1)为NAT转换的目的IP地址(221.0.0.1),且目的端口在5000到6000范围内,因此,VXLAN网关对该报文进行VXLAN封装,并利用NAT转发表中记录的VXLAN隧道(Tunnel1)将VXLAN封装后的报文发送给虚拟交换机。对报文进行VXLAN封装时,需要在报文头外添加8字节的VXLAN头、8字节的UDP头、20字节的IP头以及最大14字节的外层二层MAC头。其中,在封装后的8字节的VXLAN头中,封装有指定VXLAN(即VXLAN字段为指定VXLAN,如VXLAN 1111,该指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络)。其余其它封装过程在此不再赘述。
表6
步骤307,虚拟交换机在接收到来自VXLAN网关的报文时,如果该报文能够匹配到第三流表,则虚拟交换机利用第三流表对报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给虚拟NAT设备,由虚拟NAT设备对VXLAN解封装后的报文的目的IP地址进行NAT转换,并将NAT转换后的报文发送给虚拟交换机。
本发明实施例中,虚拟交换机利用第三流表对报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给虚拟NAT设备的过程,具体包括但不限于:基于第三流表中维护的匹配选项(指定VXLAN)、动作(进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和本第三流表的标识)、出接口(虚拟NAT设备对应的接口),则:当来自VXLAN网关的报文中携带了第三流表中维护的指定VXLAN(如VXLAN 1111)时,虚拟交换机匹配到该第三流表,对该报文进行VXLAN解封装,并在VXLAN解封装后的报文中封装该第三流表中记录的虚拟机对应的VNI以及该第三流表的标识,并通过该第三流表中记录的虚拟NAT设备对应的接口将VXLAN解封装后的报文发送给虚拟NAT设备。
本发明实施例中,虚拟NAT设备在对VXLAN解封装后的报文的目的IP地址进行NAT转换的过程中,由于虚拟NAT设备将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口时,已经记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系。因此,基于此对应关系,虚拟NAT设备可以将VXLAN解封装后的报文的目的IP地址修改为对应关系中报文的源IP地址,并将VXLAN解封装后的报文的目的端口修改为对应关系中报文的源端口。
步骤308,虚拟交换机在接收到来自虚拟NAT设备的报文时,如果该报文能够匹配到第四流表,则利用第四流表将NAT转换后的报文发送给虚拟机。
本发明实施例中,虚拟交换机利用第四流表将NAT转换后的报文发送给虚拟机的过程,具体包括但不限于:基于第四流表中维护的匹配选项(第三流表的标识)、动作(去掉用户数据外的封装,即去掉第三流表的标识和VNI等信息,将目的MAC地址修改为对应虚拟机的MAC地址)、出接口(虚拟机对应的接口),则:当来自虚拟NAT设备的NAT转换后的报文中携带的第三流表的标识为第四流表中维护的匹配选项时,则虚拟交换机匹配到该第四流表,去掉报文中的用户数据外的封装,即去掉第三流表的标识和VNI等信息,并将报文的目的MAC地址修改为虚拟机的MAC地址,并通过该第四流表中记录的虚拟机对应的接口将NAT转换后的报文发送给虚拟机。
以下结合图2所示的应用场景对上述过程进行进一步的说明。
虚拟交换机接收来自VXLAN网关的报文,该来自VXLAN网关的报文如表6所示。当该报文中携带了第三流表中维护的指定VXLAN(如VXLAN1111)时,虚拟交换机匹配到流表3,对该报文进行VXLAN解封装,并在VXLAN解封装后的报文中封装流表3中记录的VNI 1和流表3的标识,并通过虚拟NAT设备对应的接口将报文发送给虚拟NAT设备。其中,发送给虚拟NAT设备的报文如表7所示,即报文中封装了VNI 1和流表3的标识。虚拟NAT设备在接收到该报文之后,利用该报文中携带的信息查询表3所示的NAT转发表,并发现NAT转发表中有匹配该报文的记录。因此,虚拟NAT设备将VXLAN解封装后的报文的目的IP地址(221.0.0.1)修改为NAT转发表中的源IP地址(10.0.0.1),并将VXLAN解封装后的报文的目的端口(5000)修改为NAT转发表中的源端口(2000)。虚拟NAT设备将NAT转换后的报文发送给虚拟交换机,该NAT转换后的报文如表8所示。在该NAT转换后的报文中,需要携带流表3的标识;此外,该NAT转换后的报文中还可以携带VNI1或者不携带VNI 1,表8中以携带VNI 1为例。
表7
表8
虚拟交换机在接收到来自虚拟NAT设备的报文时,由于该报文中携带流表3的标识,因此虚拟交换机匹配到流表4,去掉报文中的用户数据外的封装(即去掉报文中携带的流表标识和VNI等信息),并将报文的目的MAC地址(即虚拟交换机的MAC)修改为虚拟机1的MAC地址,并通过流表4中记录的虚拟机1对应的接口将报文发送给虚拟机1。
基于上述技术方案,本发明实施例中,通过在物理服务器上运行虚拟NAT设备,由虚拟NAT设备对该物理服务器上运行的虚拟机的报文进行NAT转换,从而避免VXLAN网关对虚拟机的报文进行NAT转换,节省VXLAN网关的CPU资源,减轻VXLAN网关的处理性能,避免VXLAN网关成为通讯瓶颈。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种虚拟交换机,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,如图6所示,所述虚拟交换机具体包括:
接收模块11,用于接收所述SDN控制器下发的第一流表和第二流表;
发送模块12,用于在收到来自所述虚拟机的报文时,如果所述报文能够匹配到所述第一流表,则利用所述第一流表将所述报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对所述报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;在收到来自虚拟NAT设备报文时,如果所述报文能够匹配到所述第二流表,则利用所述第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关。
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;
所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口。
所述接收模块11,还用于接收SDN控制器下发的第三流表和第四流表;
所述发送模块12,还用于在收到来自所述VXLAN网关的报文时,如果所述报文能够匹配到所述第三流表,则利用所述第三流表对所述报文进行VXLAN解封装,将VXLAN解封装后的报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对VXLAN解封装后的报文的目的IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
在收到来自所述虚拟NAT设备的报文时,如果所述报文能够匹配到所述第四流表,则利用所述第四流表将NAT转换后的报文发送给所述虚拟机。
所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
所述发送模块12,进一步用于将所述虚拟交换机具有NAT转换能力的信息发送给所述SDN控制器,由所述SDN控制器在获知所述虚拟交换机具有NAT转换能力时,在所述虚拟交换机上下发NAT转换信息;所述NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;以及,将所述NAT转换信息发送给所述虚拟NAT设备,由所述虚拟NAT设备在对报文的源IP地址进行NAT转换时,利用报文中携带的VNI查询对应的NAT转换信息,将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口,并记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系;由所述虚拟NAT设备在对VXLAN解封装后的报文的目的IP地址进行NAT转换时,利用所述对应关系将报文的目的IP地址修改为所述对应关系中的源IP地址,将报文的目的端口修改为所述对应关系中的源端口。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种可扩展虚拟局域网络VXLAN网关,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,如图7所示,所述VXLAN网关包括:
维护模块21,用于维护NAT转发表;其中,所述NAT转发表中记录了NAT转换的目的IP地址、NAT转换的目的端口、VXLAN隧道;
发送模块22,用于在接收到报文时,如果所述报文的目的IP地址为所述NAT转换的目的IP地址,报文的目的端口为NAT转换的目的端口,则对报文进行VXLAN封装,并利用所述VXLAN隧道将VXLAN封装后的报文发送给所述虚拟交换机,由所述虚拟交换机在收到来自所述VXLAN网关的报文时,将报文发送给所述虚拟机。
所述维护模块21,具体用于接收所述SDN控制器下发的NAT转换信息,所述NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;以及,利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表;或者,
在接收到来自所述虚拟交换机的报文时,学习所述报文的源IP地址为NAT转换的目的IP地址,学习所述报文的源端口为NAT转换的目的端口;以及,利用所述虚拟交换机的IP地址建立所述VXLAN网关与所述虚拟交换机之间的VXLAN隧道,并利用所述NAT转换的目的IP地址、所述NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表。
基于与上述方法同样的发明构思,本发明实施例中还提供了一种软件定义网络SDN控制器,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,如图8所示,所述SDN控制器包括:
生成模块31,用于在收到来自所述虚拟交换机的报文时,生成所述报文对应的第一流表、第二流表、第三流表和第四流表;
发送模块32,用于在所述虚拟交换机上下发所述第一流表、所述第二流表、所述第三流表和所述第四流表;由所述虚拟交换机利用所述第一流表将来自所述虚拟机且与所述第一流表匹配的报文发送给所述虚拟NAT设备,并利用所述第二流表对来自所述虚拟NAT设备且与所述第二流表匹配的报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关;由所述虚拟交换机利用所述第三流表对来自VXLAN网关且与所述第三流表匹配的报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,并利用所述第四流表将来自虚拟NAT设备且与所述第四流表匹配的报文发送给所述虚拟机。
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口;所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
本发明实施例中,SDN控制器还包括:
接收模块33,用于接收所述虚拟交换机具有NAT转换能力的信息;
所述生成模块31,还用于在获知所述虚拟交换机具有NAT转换能力时,确定所述虚拟交换机对应的第一NAT转换信息,并确定所述虚拟交换机对应的第二NAT转换信息;其中,所述第一NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;所述第二NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;
所述发送模块32,还用于将所述第一NAT转换信息发送给所述VXLAN网关,并将所述第二NAT转换信息发送给所述虚拟交换机。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (20)
1.一种报文传输方法,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述方法包括以下步骤:
所述虚拟交换机接收所述SDN控制器下发的第一流表和第二流表;
所述虚拟交换机在收到来自所述虚拟机的报文时,如果所述报文能够匹配到所述第一流表,则所述虚拟交换机利用所述第一流表将所述报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对所述报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
所述虚拟交换机在收到来自虚拟NAT设备的报文时,如果所述报文能够匹配到所述第二流表,则所述虚拟交换机利用所述第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关。
2.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;
所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口。
3.如权利要求1所述的方法,其特征在于,所述方法进一步包括:
所述虚拟交换机接收所述SDN控制器下发的第三流表和第四流表;
所述虚拟交换机在收到来自所述VXLAN网关的报文时,如果所述报文能够匹配到所述第三流表,则所述虚拟交换机利用所述第三流表对所述报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对VXLAN解封装后的报文的目的IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
所述虚拟交换机在收到来自所述虚拟NAT设备的报文时,如果所述报文能够匹配到所述第四流表,则所述虚拟交换机利用所述第四流表将NAT转换后的报文发送给所述虚拟机。
4.如权利要求3所述的方法,其特征在于,所述方法进一步包括:
所述第三流表的匹配选项为指定VXLAN,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络;
所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
5.如权利要求3所述的方法,其特征在于,所述方法进一步包括:
所述虚拟交换机将所述虚拟交换机具有NAT转换能力的信息发送给所述SDN控制器,由所述SDN控制器在获知所述虚拟交换机具有NAT转换能力时,在所述虚拟交换机上下发NAT转换信息;其中,所述NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;
所述虚拟交换机将所述NAT转换信息发送给所述虚拟NAT设备,由所述虚拟NAT设备在对报文的源IP地址进行NAT转换时,利用报文中携带的VNI查询对应的NAT转换信息,将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口,并记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系;由所述虚拟NAT设备在对VXLAN解封装后的报文的目的IP地址进行NAT转换时,利用所述对应关系将报文的目的IP地址修改为所述对应关系中的源IP地址,将报文的目的端口修改为所述对应关系中的源端口。
6.一种报文传输方法,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述方法包括以下步骤:
所述VXLAN网关维护NAT转发表;其中,所述NAT转发表中记录了NAT转换的目的IP地址、NAT转换的目的端口、VXLAN隧道;
所述VXLAN网关在接收到报文时,如果所述报文的目的IP地址为所述NAT转换的目的IP地址,所述报文的目的端口为所述NAT转换的目的端口,则所述VXLAN网关对报文进行VXLAN封装,并利用所述VXLAN隧道将VXLAN封装后的报文发送给虚拟交换机,由所述虚拟交换机在收到来自VXLAN网关的报文时,将报文发送给所述虚拟机。
7.如权利要求6所述的方法,其特征在于,所述VXLAN网关维护NAT转发表的过程,具体包括:
所述VXLAN网关接收所述SDN控制器下发的NAT转换信息,所述NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;所述VXLAN网关利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表;或者,
所述VXLAN网关在接收到来自所述虚拟交换机的报文时,学习所述报文的源IP地址为NAT转换的目的IP地址,学习所述报文的源端口为NAT转换的目的端口;所述VXLAN网关利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表。
8.一种报文传输方法,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述方法包括以下步骤:
所述SDN控制器在收到来自所述虚拟交换机的报文时,生成所述报文对应的第一流表和第二流表,并在所述虚拟交换机上下发第一流表和第二流表;由所述虚拟交换机利用所述第一流表将来自所述虚拟机且与所述第一流表匹配的报文发送给所述虚拟NAT设备,并利用所述第二流表对来自虚拟NAT设备且与所述第二流表匹配的报文进行VXLAN封装,将VXLAN封装后的报文发送给VXLAN网关;
所述SDN控制器生成所述报文对应的第三流表和第四流表,并在所述虚拟交换机上下发所述第三流表和所述第四流表;由所述虚拟交换机利用所述第三流表对来自所述VXLAN网关且与所述第三流表匹配的报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,并利用所述第四流表将来自所述虚拟NAT设备且与所述第四流表匹配的报文发送给所述虚拟机。
9.如权利要求8所述的方法,其特征在于,所述方法进一步包括:
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口;所述第三流表的匹配选项为指定VXLAN,所述指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
10.如权利要求8所述的方法,其特征在于,所述方法进一步包括:
所述SDN控制器接收所述虚拟交换机具有NAT转换能力的信息;
在获知所述虚拟交换机具有NAT转换能力时,所述SDN控制器确定所述虚拟交换机对应的第一NAT转换信息,并将第一NAT转换信息发送给VXLAN网关;其中,所述第一NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;
所述SDN控制器确定虚拟交换机对应的第二NAT转换信息,并将所述第二NAT转换信息发送给所述虚拟交换机;其中,所述第二NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口。
11.一种虚拟交换机,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述虚拟交换机具体包括:
接收模块,用于接收所述SDN控制器下发的第一流表和第二流表;
发送模块,用于在收到来自所述虚拟机的报文时,如果所述报文能够匹配到所述第一流表,则利用所述第一流表将所述报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对所述报文的源IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;在收到来自虚拟NAT设备报文时,如果所述报文能够匹配到所述第二流表,则利用所述第二流表对报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关。
12.如权利要求11所述的虚拟交换机,其特征在于,
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;
所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口。
13.如权利要求11所述的虚拟交换机,其特征在于,
所述接收模块,还用于接收所述SDN控制器下发的第三流表和第四流表;
所述发送模块,还用于在收到来自所述VXLAN网关的报文时,如果所述报文能够匹配到所述第三流表,则利用所述第三流表对所述报文进行VXLAN解封装,将VXLAN解封装后的报文发送给所述虚拟NAT设备,由所述虚拟NAT设备对VXLAN解封装后的报文的目的IP地址进行NAT转换,并将NAT转换后的报文发送给所述虚拟交换机;
在收到来自所述虚拟NAT设备的报文时,如果所述报文能够匹配到所述第四流表,则利用所述第四流表将NAT转换后的报文发送给所述虚拟机。
14.如权利要求13所述的虚拟交换机,其特征在于,
所述第三流表的匹配选项为指定VXLAN,所述指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
15.如权利要求13所述的虚拟交换机,其特征在于,
所述发送模块,进一步用于将所述虚拟交换机具有NAT转换能力的信息发送给所述SDN控制器,由所述SDN控制器在获知所述虚拟交换机具有NAT转换能力时,在所述虚拟交换机上下发NAT转换信息;所述NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;
以及,将所述NAT转换信息发送给所述虚拟NAT设备,由所述虚拟NAT设备在对报文的源IP地址进行NAT转换时,利用报文中携带的VNI查询对应的NAT转换信息,将报文的源IP地址修改为NAT转换的目的IP地址,将报文的源端口修改为NAT转换的目的端口,并记录报文的源IP地址、报文的源端口、NAT转换的目的IP地址、NAT转换的目的端口之间的对应关系;由所述虚拟NAT设备在对VXLAN解封装后的报文的目的IP地址进行NAT转换时,利用所述对应关系将报文的目的IP地址修改为所述对应关系中的源IP地址,将报文的目的端口修改为所述对应关系中的源端口。
16.一种可扩展虚拟局域网络VXLAN网关,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述VXLAN网关具体包括:
维护模块,用于维护NAT转发表;其中,所述NAT转发表中记录了NAT转换的目的IP地址、NAT转换的目的端口、VXLAN隧道;
发送模块,用于在接收到报文时,如果所述报文的目的IP地址为所述NAT转换的目的IP地址,所述报文的目的端口为所述NAT转换的目的端口,则对报文进行VXLAN封装,并利用所述VXLAN隧道将VXLAN封装后的报文发送给所述虚拟交换机,由所述虚拟交换机在收到来自所述VXLAN网关的报文时,将报文发送给所述虚拟机。
17.如权利要求16所述的VXLAN网关,其特征在于,
所述维护模块,具体用于接收所述SDN控制器下发的NAT转换信息,所述NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;以及,利用所述虚拟交换机的IP地址建立VXLAN网关与虚拟交换机之间的VXLAN隧道,并利用NAT转换的目的IP地址、NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表;或者,
在接收到来自所述虚拟交换机的报文时,学习所述报文的源IP地址为NAT转换的目的IP地址,学习所述报文的源端口为NAT转换的目的端口;以及,利用所述虚拟交换机的IP地址建立所述VXLAN网关与所述虚拟交换机之间的VXLAN隧道,并利用所述NAT转换的目的IP地址、所述NAT转换的目的端口和所述VXLAN隧道维护所述NAT转发表。
18.一种软件定义网络SDN控制器,应用于包括软件定义网络SDN控制器、物理服务器和可扩展虚拟局域网络VXLAN网关的网络中,所述物理服务器上运行虚拟交换机和虚拟机,其特征在于,所述物理服务器上还运行虚拟网络地址转换NAT设备,所述SDN控制器具体包括:
生成模块,用于在收到来自所述虚拟交换机的报文时,生成所述报文对应的第一流表、第二流表、第三流表和第四流表;
发送模块,用于在所述虚拟交换机上下发所述第一流表、所述第二流表、所述第三流表和所述第四流表;由所述虚拟交换机利用所述第一流表将来自所述虚拟机且与所述第一流表匹配的报文发送给所述虚拟NAT设备,并利用所述第二流表对来自所述虚拟NAT设备且与所述第二流表匹配的报文进行VXLAN封装,并将VXLAN封装后的报文发送给VXLAN网关;由所述虚拟交换机利用所述第三流表对来自VXLAN网关且与所述第三流表匹配的报文进行VXLAN解封装,并将VXLAN解封装后的报文发送给所述虚拟NAT设备,并利用所述第四流表将来自虚拟NAT设备且与所述第四流表匹配的报文发送给所述虚拟机。
19.如权利要求18所述的SDN控制器,其特征在于,
所述第一流表的匹配选项为所述SDN控制器从来自所述虚拟交换机的报文中学习到的所述虚拟机访问的外网设备的IP地址,动作为封装虚拟机对应的VXLAN网络标识VNI和第一流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第二流表的匹配选项为所述第一流表的标识,动作为进行VXLAN封装,出接口为VXLAN网关对应的接口;所述第三流表的匹配选项为指定VXLAN,所述指定VXLAN用于使VXLAN封装后的报文能够通过VXLAN网络,动作为进行VXLAN解封装,并在VXLAN解封装后的报文中封装虚拟机对应的VNI和第三流表的标识,出接口为虚拟NAT设备对应的接口,其中,所述VNI可作为虚拟NAT设备进行NAT转换的依据;所述第四流表的匹配选项为所述第三流表的标识,动作为去掉用户数据外的封装,将目的介质访问控制MAC地址修改为虚拟机的MAC地址,出接口为虚拟机对应的接口。
20.如权利要求18所述的SDN控制器,其特征在于,还包括:
接收模块,用于接收所述虚拟交换机具有NAT转换能力的信息;
所述生成模块,还用于在获知所述虚拟交换机具有NAT转换能力时,确定所述虚拟交换机对应的第一NAT转换信息,并确定所述虚拟交换机对应的第二NAT转换信息;其中,所述第一NAT转换信息具体包括:NAT转换的目的IP地址、NAT转换的目的端口、虚拟交换机的IP地址;所述第二NAT转换信息具体包括:虚拟机对应的VNI、NAT转换的目的IP地址、NAT转换的目的端口;
所述发送模块,还用于将所述第一NAT转换信息发送给所述VXLAN网关,并将所述第二NAT转换信息发送给所述虚拟交换机。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853757.5A CN104601432B (zh) | 2014-12-31 | 2014-12-31 | 一种报文传输方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410853757.5A CN104601432B (zh) | 2014-12-31 | 2014-12-31 | 一种报文传输方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104601432A CN104601432A (zh) | 2015-05-06 |
CN104601432B true CN104601432B (zh) | 2018-03-13 |
Family
ID=53126953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410853757.5A Active CN104601432B (zh) | 2014-12-31 | 2014-12-31 | 一种报文传输方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104601432B (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104954261B (zh) * | 2015-05-26 | 2018-01-16 | 上海斐讯数据通信技术有限公司 | 利用流表转发数据的方法及系统 |
CN106330649B (zh) * | 2015-06-18 | 2019-08-02 | 新华三技术有限公司 | 一种跨软件定义网络的数据报文转发方法和装置 |
CN106533818B (zh) * | 2015-09-09 | 2020-01-10 | 中国电信股份有限公司 | 基于nfv资源池的监控方法和通信方法、系统以及设备 |
CN106961412B (zh) * | 2016-01-11 | 2020-04-24 | 中国移动通信集团公司 | 一种报文转换方法、装置及系统 |
CN105847157B (zh) * | 2016-03-21 | 2018-12-18 | 中国人民解放军国防科学技术大学 | 基于sdn的标识网络间端到端的通信方法 |
CN107276783B (zh) * | 2016-04-08 | 2022-05-20 | 中兴通讯股份有限公司 | 一种实现虚拟机统一管理及互通的方法、装置和系统 |
CN105897949A (zh) * | 2016-04-11 | 2016-08-24 | 汉柏科技有限公司 | 一种数据中心内部网络的直接访问方法及系统 |
CN109155923B (zh) * | 2016-05-20 | 2020-09-04 | 华为技术有限公司 | 用于传输报文的方法、装置和系统 |
CN106101298B (zh) * | 2016-06-06 | 2019-06-21 | 刘昱 | 基于sdn的网络地址转换装置及方法 |
CN105939296B (zh) * | 2016-06-24 | 2019-11-12 | 杭州迪普科技股份有限公司 | 报文的处理方法及装置 |
CN106330605B (zh) * | 2016-08-23 | 2020-01-03 | 新华三技术有限公司 | 一种报文处理方法及装置 |
CN106982149B (zh) * | 2016-12-29 | 2019-10-01 | 中国银联股份有限公司 | 基于sdn的报文镜像方法及网络流量监控管理系统 |
CN106789541B (zh) * | 2017-02-28 | 2019-11-15 | 江苏省未来网络创新研究院 | 一种基于sdn的跨数据中心通信方法和网络系统 |
CN108667945B (zh) | 2017-03-30 | 2020-10-23 | 华为技术有限公司 | 一种报文传输方法及装置 |
CN107733800A (zh) * | 2017-11-29 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种sdn网络报文传输方法及其装置 |
CN109873768B (zh) * | 2017-12-01 | 2021-06-22 | 华为技术有限公司 | 更新转发表的方法、硬件加速器、ovs和服务器 |
CN109962989B (zh) * | 2017-12-25 | 2022-03-01 | 中国电信股份有限公司 | 穿越网络地址网关的方法、装置和系统 |
CN107948077B (zh) * | 2018-01-11 | 2021-06-29 | 迈普通信技术股份有限公司 | 一种数据报文的转发方法及装置 |
CN108810182B (zh) * | 2018-04-28 | 2021-05-18 | 深圳市德赛微电子技术有限公司 | 一种基于openflow系统的NAT流表动态学习及配置方法 |
CN108737277B (zh) * | 2018-08-30 | 2021-02-26 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN109361608B (zh) * | 2018-11-23 | 2021-04-27 | 北京六方云信息技术有限公司 | 报文处理方法、系统及存储介质 |
CN111404797B (zh) * | 2019-01-02 | 2022-02-11 | 中国移动通信有限公司研究院 | 控制方法、sdn控制器、sdn接入点、sdn网关及ce |
CN110012118B (zh) * | 2019-03-08 | 2022-07-22 | 平安科技(深圳)有限公司 | 一种提供网络地址转换nat服务的方法及控制器 |
CN110505140B (zh) * | 2019-10-09 | 2021-07-20 | 中国联合网络通信集团有限公司 | 基于VxLAN的报文转发方法和网络 |
CN112671628B (zh) * | 2019-10-15 | 2023-06-02 | 华为云计算技术有限公司 | 业务服务提供方法及系统 |
CN112671938B (zh) * | 2019-10-15 | 2023-06-20 | 华为云计算技术有限公司 | 业务服务提供方法及系统、远端加速网关 |
CN111585863B (zh) * | 2020-06-11 | 2022-03-01 | 国家计算机网络与信息安全管理中心 | 虚拟可扩展局域网报文处理设备及其数据处理方法 |
CN112202675B (zh) * | 2020-10-10 | 2022-04-15 | 四川天邑康和通信股份有限公司 | 一种基于linux内核解析DNS实现使用域名访问路由器的方法 |
CN112040030B (zh) * | 2020-11-04 | 2021-02-02 | 武汉绿色网络信息服务有限责任公司 | 报文传输方法、装置、计算机设备及存储介质 |
CN113904986B (zh) * | 2021-09-29 | 2022-11-18 | 烽火通信科技股份有限公司 | vxlan虚拟网络和vlan网络二层互通方法及设备 |
CN114157632B (zh) * | 2021-10-12 | 2023-11-21 | 北京华耀科技有限公司 | 网络隔离方法、装置、设备和存储介质 |
CN114301737B (zh) * | 2021-12-29 | 2023-10-24 | 迈普通信技术股份有限公司 | 网络配置方法、装置、网络设备及计算机可读存储介质 |
CN114567481B (zh) * | 2022-02-28 | 2024-03-12 | 天翼安全科技有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
CN115348207B (zh) * | 2022-07-21 | 2023-08-15 | 佛山职业技术学院 | 一种基于udp的主备nat设备流表同步方法及系统 |
CN116155837B (zh) * | 2022-11-16 | 2024-07-30 | 天翼云科技有限公司 | 一种虚拟交换机的报文转发方法 |
CN115987889A (zh) * | 2022-12-26 | 2023-04-18 | 迈普通信技术股份有限公司 | 虚拟网络通信方法、装置、计算机设备及存储介质 |
CN115941625B (zh) * | 2022-12-27 | 2024-04-26 | 天翼云科技有限公司 | 一种用于云网络的流表数据修正方法与系统 |
CN115987915A (zh) * | 2022-12-29 | 2023-04-18 | 武汉绿色网络信息服务有限责任公司 | 针对虚拟交换机的报文转发方法及相关设备 |
CN116170406B (zh) * | 2023-01-18 | 2024-10-11 | 阿里云计算有限公司 | 用于实现虚拟机与公网通信的系统和方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010103909A1 (ja) * | 2009-03-09 | 2010-09-16 | 日本電気株式会社 | OpenFlow通信システムおよびOpenFlow通信方法 |
CN102647347A (zh) * | 2012-03-30 | 2012-08-22 | 汉柏科技有限公司 | 实现基于连接的流量的处理方法及系统 |
CN103905317A (zh) * | 2012-12-28 | 2014-07-02 | 中兴通讯股份有限公司 | 一种软件定义网络的报文处理方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5300076B2 (ja) * | 2009-10-07 | 2013-09-25 | 日本電気株式会社 | コンピュータシステム、及びコンピュータシステムの監視方法 |
-
2014
- 2014-12-31 CN CN201410853757.5A patent/CN104601432B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010103909A1 (ja) * | 2009-03-09 | 2010-09-16 | 日本電気株式会社 | OpenFlow通信システムおよびOpenFlow通信方法 |
CN102647347A (zh) * | 2012-03-30 | 2012-08-22 | 汉柏科技有限公司 | 实现基于连接的流量的处理方法及系统 |
CN103905317A (zh) * | 2012-12-28 | 2014-07-02 | 中兴通讯股份有限公司 | 一种软件定义网络的报文处理方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104601432A (zh) | 2015-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104601432B (zh) | 一种报文传输方法和设备 | |
US11240065B2 (en) | NSH encapsulation for traffic steering | |
EP3544240B1 (en) | Data processing | |
CN109257265B (zh) | 一种泛洪抑制方法、vxlan网桥、网关及系统 | |
EP3313025B1 (en) | Data packet forwarding | |
WO2016045637A1 (en) | Forwarding data packets in software defined network | |
CN109660443B (zh) | 基于sdn的物理设备与虚拟网络通信方法和系统 | |
CN107070691B (zh) | Docker容器的跨主机通信方法和系统 | |
US10205657B2 (en) | Packet forwarding in data center network | |
US9397943B2 (en) | Configuring virtual media access control addresses for virtual machines | |
JP6426879B2 (ja) | データパケット転送 | |
CN101227407B (zh) | 基于二层隧道协议的报文发送方法及装置 | |
WO2016055027A1 (en) | Table entry in software defined network | |
EP3197107B1 (en) | Message transmission method and apparatus | |
JP2018528725A (ja) | ブロードバンドアクセス | |
JP6722816B2 (ja) | パケット転送 | |
CN108632145B (zh) | 一种报文转发方法和叶子节点设备 | |
WO2016107594A1 (en) | Accessing external network from virtual network | |
CN110311860B (zh) | Vxlan下多链路负载均衡方法及装置 | |
EP3292663B1 (en) | Packet forwarding | |
CN107426343B (zh) | 用于跨网络内的多个接口代理子网内流量的方法、系统和装置 | |
CN105827495A (zh) | Vxlan网关的报文转发方法和设备 | |
CN104869013A (zh) | 一种基于sdn的网关配置方法及sdn控制器 | |
CN107306215A (zh) | 一种数据处理方法、系统及节点 | |
CN107733800A (zh) | 一种sdn网络报文传输方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |