一种跨软件定义网络的数据报文转发方法和装置与流程

文档序号:12623109阅读:247来源:国知局
一种跨软件定义网络的数据报文转发方法和装置与流程
本发明涉及通信
技术领域
,特别涉及一种跨软件定义网络的数据报文转发方法和装置。
背景技术
:在软件定义网络(SoftwareDefinedNetwork,SDN)中使用虚拟可扩展局域网(VirtualeXtensibleLocalAreaNetwork,VXLAN)隧道技术来进行私网数据报文的封装以及转发,然后通过VXLANIP网关与外界的传统网络进行通信。对跨SDN进行虚拟机(VM)通信的时候,需要进行如下的过程,虚拟可扩展局域网隧道端点(VXLANTunnelEndPoint,VTEP)设备接收到VM发送的数据报文时,进行VXLAN封装;并通过VXLAN隧道转发给VXLANIPGW;VXLANIPGW接收到VTEP设备发送的VXLAN封装后的数据报文时,进行网络地址转换(NetworkAddressTranslation,NAT)转换,然后再通过IP转发到对端的SDN的VXLANIPGW设备;对端SDN的VXLANIPGW设备进行NAT转换,将进VXLANIPGW的报文的源IP地址NAT转换成VM的IP地址;然后根据再进行VXLAN报文的封装,向VTEP设备进行转发。到了与对端服务器相连的VTEP设备之后,再进行VXLAN报文的解分装。上述完成跨SDNVM之间的通信的方式中,VXLAN封装/解封装的过程过于繁琐,需要多次的封装/解封装的操作。技术实现要素:有鉴于此,本申请提供一种跨软件定义网络的数据报文转发方法和装置,以解决跨SDN转发时,多次封装/解封装过程过于繁琐的问题。为解决上述技术问题,本申请的技术方案是这样实现的:一种跨软件定义网络SDN的数据报文转发方法,应用于SDN控制器上,该方法包括:该SDN控制器获取并存储各SDN中的主机的私网地址和公网地址的网络地址转换NAT映射关系;接收到虚拟可扩展局域网隧道端点VTEP设备针对通过私网接口接收到的数据报文而发送的流表请求,且确定为跨SDN转发时,根据所述数据报文的目的因特网协议IP地址查找NAT映射关系;根据查找到的NAT映射关系,以及网络拓扑信息生成转发所述数据报文的流表并下发给所述VTEP设备,使所述VTEP设备对所述数据报文进行源IP地址的NAT处理后,使用所述流表中封装信息对进行NAT处理后的数据报文进行虚拟可扩展局域网VXLAN封装,并通过所述流表中的出接口发送;其中,所述封装信息中的目的IP地址为查找到的NAT映射关系中的公网地址。一种跨软件定义网络SDN的数据报文转发方法,应用于虚拟可扩展局域网隧道端点VTEP设备上,该方法包括:该VTEP设备通过私网接口接收到数据报文时,根据所述数据报文的目的IP地址进行流表匹配;当未匹配到转发所述数据报文的流表时,向SDN控制器发送流表请求,使所述SDN控制器根据存储的各SDN中的主机的私网地址和公网地址的网络地址转换NAT映射关系,以及网络拓扑信息下发流表;接收到所述SDN控制器下发的流表时,根据所述流表将所述数据报文的源IP地址进行NAT处理,并根据所述流表中的封装信息对进行NAT处理后的数据报文进行VXLAN封装;再通过所述流表中的出接口发送给对端VTEP设备; 其中,所述封装信息中的目的IP地址为接收到的数据报文的目的IP地址对应的公网地址。一种跨软件定义网络SDN的数据报文转发装置,应用于SDN控制器上,该装置包括:获取单元,接收单元、处理单元和发送单元;所述获取单元,用于获取并存储各SDN中的主机的私网地址和公网地址的网络地址转换NAT映射关系;所述接收单元,用于接收流表请求;所述处理单元,用于当所述接收单元接收到虚拟可扩展局域网隧道端点VTEP设备针对通过私网接口接收到的数据报文而发送的流表请求,且确定为跨SDN转发时,根据所述数据报文的目的因特网协议IP地址在所述获取单元中查找NAT映射关系;并根据查找到的NAT映射关系,以及网络拓扑信息生成转发所述数据报文的流表;所述发送单元,用于将所述处理单元生成的流表下发给所述VTEP设备,使所述VTEP设备对所述数据报文进行源IP地址的NAT处理后,使用所述流表中封装信息对进行NAT处理后的数据报文进行虚拟可扩展局域网VXLAN封装,并通过所述流表中的出接口发送;其中,所述封装信息中的目的IP地址为查找到的NAT映射关系中的公网地址。一种跨软件定义网络SDN的数据报文转发装置,应用于SDN控制器上,该装置包括:接收单元、处理单元和发送单元;所述接收单元,用于接收数据报文;接收流表;所述处理单元,用于当所述接收单元通过私网接口接收到数据报文时,根据所述数据报文的目的IP地址进行流表匹配;当所述接收单元接收到所述SDN控制器下发的流表时,根据所述流表将所述数据报文的源IP地址进行NAT处理,并根据所述流表中的封装信息对进行NAT处理后的数据报文进行VXLAN封装;其中,所述封装信息中的目的IP地址为接收到的数据报文的目的IP地址对应的公网地址;所述发送单元,用于当所述处理单元未匹配到转发所述数据报文的流表时, 向SDN控制器发送流表请求,使所述SDN控制器根据存储的各SDN中的主机的私网地址和公网地址的网络地址转换NAT映射关系,以及网络拓扑信息下发流表;将所述处理单元进行VXLAN封装后的报文通过所述流表中的出接口发送给对端VTEP设备。由上面的技术方案可知,本申请中SDN控制器获取各SDN中的主机的私网地址和公网地址的NAT映射关系;在数据报文需跨SDN转发时,为具有NAT功能和网关功能的VTEP设备下发包括NAT处理和VXLAN封装的流表,使VTEP设备根据流表对数据报文处理后直接发送给对端VTEP设备。通过上述方案,在跨SDN转发时,只进行一次VXLAN封装/解封装,能够避免多次进行VXLAN封装/解封装的繁琐过程。附图说明图1为本申请实施例中的VXLAN组网示意图;图2为本申请实施例中VTEP设备转发VM侧发来的数据报文的流程示意图;图3为本申请实施例中VTEP设备向VM侧发送数据报文的流程示意图;图4为本申请实施例中SDN控制设备转发VM侧来的数据报文的流程示意图;图5为本申请实施例中SDN控制设备向VM侧发送数据报文的流程示意图;图6为本申请实施例中应用于SDN控制器上的装置的结构示意图;图7为本申请实施例中应用于VTEP设备上的装置的结构示意图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。本申请实施例中提供一种跨软件定义网络的数据报文转发方法,用于实现数 据报文在跨SDN中的传输。为了实现本申请实施例中提供的跨SDN传输数据报文的技术方案,各SDN中的SDN控制器之间需要建立连接用于通信。具体实现时,可以建立BGP连接,但不限于BGP连接的实现方式。VTEP设备上,在VXLAN下配置NAT功能,用于进行NAT处理,并配置下挂的服务器上的主机的私网地址和公网地址的NAT映射关系。本申请实施例中的主机可以是一台物理设备,也可以一个VM,下文均以VM为例进行实施例说明。VTEP设备配置使能VXLAN本地网关功能,VTEP设备将配置的NAT映射关系上报给SDN控制器。任一SDN控制器接收自身管理的SDN中的VTEP设备上报的NAT映射关系时,进行存储,并同步给其它SDN中的SDN控制器;所述NAT映射关系为所述VTEP设备配置的其下挂的服务器中的VM的私网地址和公网地址的NAT映射关系。该SDN控制器接收到其它SDN中的SDN控制器同步的NAT映射关系时,进行存储。通过上述处理过程,每个SDN控制器均获取并存储各SDN中的VM的私网地址和公网地址的NAT映射关系。参见图1,图1为本申请实施例中的VXLAN组网示意图。针对SDN1,VTEP设备1配置NAT功能,并配置使能本地网关功能。VTEP设备1配置VM1的私网地址100.1.1.1/24和公网地址11.1.1.1的NAT映射关系,并上报给SDN控制器1。SDN控制器1接收到VTEP设备1上报的NAT映射关系进行存储,并同步给SDN2中的SDN控制器2。SDN控制器2接收到SDN控制器1同步的上述NAT映射关系后,在本地进行存储。针对SDN2,VTEP设备2配置NAT功能,并配置使能本地网关功能。VTEP设备2配置VM2的私网地址110.1.1.1/24和公网地址12.1.1.1的NAT映射关系,并上报给SDN控制器2。SDN控制器2接收到VTEP设备2上报的NAT映射关系进行存储,并同步给SDN1中的SDN控制器1。SDN控制器1接收到SDN控制器2同步的上述NAT映射关系后,在本地进行存储。SDN控制器1和SDN控制器2上都存储了VM1和VM2的NAT映射关系。参见表1,表1为SDN控制器1和SDN控制器2上包含的NAT映射关系。私网地址公网地址110.1.1.112.1.1.1100.1.1.111.1.1.1表1表1中第二行内容为VM2的私网地址和公网地址的NAT映射关系;第三行内容为VM1的私网地址和公网地址的NAT映射关系。通过上述操作VTEP设备1和VTEP设备2之间建立了VXLAN隧道。下面结合附图,详细说明本申请实施例中实现虚拟可扩展局域网中数据报文转发过程。参见图2,图2为本申请实施例中VTEP设备转发VM侧发来的数据报文的流程示意图。具体步骤为:步骤201,VTEP设备通过私网接口接收到数据报文时,根据所述数据报文的目的IP地址进行流表匹配。该VTEP设备匹配到转发所述数据报文的流表时,根据所述数据报文的流表处理并转发所述数据报文。步骤202,该VTEP当未匹配到转发所述数据报文的流表时,向SDN控制器发送流表请求,使所述SDN控制器若确定为跨SDN转发,则根据存储的各 SDN中的VM的私网地址和公网地址的NAT映射关系,以及网络拓扑信息下发流表。SDN控制器接收到VTEP设备上报的流表请求时,确定该数据报文为需跨SDN转发的数据报文,根据所述数据报文的目的IP地址在本地查找对应的NAT映射关系,即查找所述数据报文的目的IP地址对应的公网地址。该SDN控制器根据查找到的NAT映射关系,以及网络拓扑信息生成转发所述数据报文的流表。所述流表包括:匹配信息(所述数据报文的目的IP地址)、针对源IP地址进行NAT处理、封装信息(数据报文的目的IP地址对应的NAT映射关系、目的MAC地址为下一跳设备的MAC地址和所述公网地址对应的VXLAN标识)和出接口。步骤203,该VTEP设备接收到所述SDN控制器下发的流表时,根据所述流表将所述数据报文的源IP地址进行NAT处理,并根据所述流表中的封装信息对进行NAT处理后的数据报文进行VXLAN封装;再通过所述流表中的出接口发送给对端VTEP设备。其中,步骤203中的封装信息中的目的IP地址为接收到的数据报文的目的IP地址对应的公网地址。在具体实现时,在流表中仅包括对源IP地址进行NAT处理的动作,也可以既包括该动作,又包括将源IP地址进行NAT处理后的IP地址。当仅包括对源IP地址进行NAT处理的动作时,根据本地配置的VM的NAT映射关系进行NAT处理。该VTEP设备将进行NAT处理后的数据报文根据所述流表中的封装信息进行VXLAN封装。在进行VXLAN封装时,封装的目的IP地址为封装信息中的公网地址、目的MAC地址为封装信息中的MAC地址,源IP地址为本VTEP设备的IP地址,源MAC地址为本VTEP设备的MAC地址;VXLANID为封装信息中的VXLAN标识。该VTEP设备将进行VXLAN封装的报文通过流表中的出接口转发后,该 VXLAN报文在本VTEP设备与对端VTEP设备之间通过建立的VXLAN隧道进行转发,直到目的IP地址对应的VTEP设备。参见图3,图3为本申请实施例中VTEP设备向VM侧发送数据报文的流程示意图。具体步骤为:步骤301,VTEP设备通过公网接口接收到目的IP地址为本VTEP设备的IP地址的VXLAN报文时,进行解封装后获得数据报文;并根据所述数据报文的目的IP地址进行流表匹配。该VTEP设备匹配到转发所述数据报文的流表时,根据所述数据报文的流表处理并转发所述数据报文。步骤302,该VTEP设备当未匹配到转发所述数据报文的流表时,向SDN控制器发送流表请求,使所述SDN控制器根据存储的各SDN中的VM的私网地址和公网地址的NAT映射关系,以及网络拓扑信息下发流表。SDN控制器接收到VTEP设备通过公网接口接收到的报文而进行流表请求时,SDN控制器根据本地存储的NAT映射关系和网络拓扑信息生成流表并下发给所述VTEP设备。生成的流表包括:匹配信息(数据报文的IP地址)、源IP地址对应的NAT映射关系(将数据报文的源IP地址替换为NAT映射关系中的私网地址)和出接口。步骤303,该VTEP设备接收到所述SDN控制器下发的流表时,根据流表中的源IP地址对应的NAT映射关系对数据报文的源IP地址进行NAT处理,并通过所述流表中的出接口转发进行NAT处理后的数据报文。VTEP设备进行的NAT处理为,将数据报文的源IP地址替换为NAT映射关系中的私网地址。参见图4,图4为本申请实施例中SDN控制设备转发VM侧来的数据报文的流程示意图。具体步骤为:步骤401,SDN控制器接收到VTEP设备针对通过私网接口接收到的数据报文而发送的流表请求,且确定为跨SDN转发时,根据所述数据报文的目的IP 地址查找NAT映射关系。步骤402,该SDN控制器根据查找到的NAT映射关系,以及网络拓扑信息生成转发所述数据报文的流表并下发给所述VTEP设备,使所述VTEP设备对所述数据报文进行源IP地址的NAT处理后,使用所述流表中封装信息对进行NAT处理后的数据报文进行VXLAN封装,并通过所述流表中的出接口发送。其中,本步骤中的封装信息中的目的IP地址为查找到的NAT映射关系中的公网地址。具体实现时,流表包括详细内容为:匹配信息(所述数据报文的目的IP地址)、针对源IP地址进行NAT处理、封装信息(数据报文的目的IP地址对应的NAT映射关系、目的MAC地址为下一跳设备的MAC地址和所述公网地址对应的VXLAN标识)和出接口。VTEP设备接收到该SDN控制器下发的上述流表后,将所述数据报文的源IP地址进行NAT处理,并将进行NAT处理后的数据报文进行VXLAN封装,在进行VXLAN封装时,封装的目的IP地址为封装信息中的公网地址、目的MAC地址为封装信息中的MAC地址,源IP地址为本VTEP设备的IP地址,源MAC地址为本VTEP设备的MAC地址;VXLANID为封装信息中的VXLAN标识。VTEP设备将进行VXLAN封装后的报文通过流表中的出接口发送。参见图5,图5为本申请实施例中SDN控制设备向VM侧发送数据报文的流程示意图。具体步骤为:步骤501,SDN控制器接收到VTEP设备针对通过公网接口接收到并解封装后的数据报文而发送的流表请求时,根据所述数据报文的源IP地址查找NAT映射关系。生成的流表包括:匹配信息(数据报文的IP地址)、源IP地址对应的NAT映射关系(将数据报文的源IP地址替换为NAT映射关系中的私网地址)和出接口。步骤502,该SDN控制器根据查找到的NAT映射关系,以及网络拓扑关系 生成流表并下发给所述VTEP设备,使所述VTEP设备使用所述流表中的源IP地址对应的NAT映射关系对所述数据报文的源IP地址进行NAT处理,并通过所述流表中的出接口发送。该VTEP设备接收到所述SDN控制器下发的流表时,根据流表中的NAT映射关系对数据报文的源IP地址进行NAT处理,并通过所述流表中的出接口转发进行NAT处理后的数据报文。其中,VTEP设备进行的NAT处理为,将数据报文的源IP地址替换为NAT映射关系中的私网地址。下面结合网络附图,详细说明跨SDN的数据报文转发的过程。仍然以图1为例,当VM1和VM2之间需要通信,VM1构造源IP地址为100.1.1.1,目的IP地址为110.1.1.1的数据报文,并发送给VTEP设备1。VTEP设备1接收到上述数据报文时,根据数据报文的目的IP地址110.1.1.1匹配流表。假设未匹配到对应的流表,则向SDN控制器1发送流表请求,并在发送的流表请求中携带接收数据报文的接口1,使SDN控制器获知该数据报文为从VM侧发来的数据报文。SDN控制器接收到流表请求后,根据所述数据报文的目的IP地址确定需跨SDN转发所述数据报文时,查找到目的IP地址110.1.1.1对应的NAT映射关系,见表1中的第二行(110.1.1.1:12.1.1.1)。然后查找拓扑信息确定下一跳对应的MAC地址(VXLANIP网关的MAC地址)和出接口(接口2),则生成转发所述数据报文的流表。流表的具体内容为:匹配信息(110.1.1.1)、针对源IP地址进行NAT处理(可以包括NAT映射关系,也可以不包括NAT映射关系);封装信息(12.1.1.1)、目的MAC地址为下一跳设备的MAC地址(VXLANIP网关1的MAC地址)和所述公网地址对应的VXLAN标识和出接口(接口1)。VTEP设备1接收到上述流表时,首先针对数据报文的源IP地址进行NAT处理,即将数据报文的源IP地址100.1.1.1进行NAT处理后,转换为IP地址11.1.1.1;其次,对进行NAT处理的数据报文进行VXLAN封装,封 装的目的IP地址为12.1.1.1,源IP地址为VTEP1的IP地址11.1.1.1;目的MAC地址为VXLANIP网关1的MAC地址,源NAC地址为VTEP设备1的MAC地址。VTEP设备1将进行VXLAN封装的报文通过流表中的出接口转发。进行VXLAN封装的报文在VTEP设备1和VTEP设备2之间通过VXLAN隧道转发,途中经过各设备时,根据VXLAN报文的目的IP地址进行转发,直到报文备传输到VTEP设备2。VTEP设备接收到VXLAN报文时,确定目的IP地址为本VTEP设备的IP地址时,解封装所述VXLAN报文,获得数据报文。VTEP设备2根据该数据报文的目的IP地址查找对应的流表,若未查找到对应的流表,则向SDN控制器2发送流表请求,并携带接口3的信息,使SDN控制器2获知通过公网侧接收到的VXLAN报文并解封装后的数据报文。VTEP设备2根据所述数据报文的源IP地址11.1.1.1查找对应的NAT映射关系,根据查找到NAT映射关系,以及网络拓扑信息生成流表并下发给VTEP设备2。流表包括:匹配信息(110.10.1.1)、源IP地址对应的NAT映射关系(将数据报文的源IP地址替换为NAT映射关系中的私网地址)和出接口(出接口4)。VTEP设备2接收到上述流表后,针对所述数据报文的源IP地址进行NAT处理,即将源IP地址11.1.1.1进行NAT处理为100.1.1.1,并通过流表中的出接口发送给VM2。至此,数据报文由VM1跨SDN传输到VM2的过程结束。基于同样的发明构思,本申请还提出一种跨软件定义网络的数据报文转发装置,应用于SDN控制器上。参见图6,图6为本申请实施例中应用于SDN控制器上的装置的结构示意图。该装置包括:获取单元601,接收单元602、处理单元603和发送单元604;获取单元601,用于获取并存储各SDN中的主机的私网地址和公网地址的 网络地址转换NAT映射关系;接收单元602,用于接收流表请求;处理单元603,用于当接收单元602接收到虚拟可扩展局域网隧道端点VTEP设备针对通过私网接口接收到的数据报文而发送的流表请求,且确定为跨SDN转发时,根据所述数据报文的目的因特网协议IP地址在获取单元601中查找NAT映射关系;并根据查找到的NAT映射关系,以及网络拓扑信息生成转发所述数据报文的流表;发送单元604,用于将处理单元603生成的流表下发给所述VTEP设备,使所述VTEP设备对所述数据报文进行源IP地址的NAT处理后,使用所述流表中封装信息对进行NAT处理后的数据报文进行虚拟可扩展局域网VXLAN封装,并通过所述流表中的出接口发送;其中,所述封装信息中的目的IP地址为查找到的NAT映射关系中的公网地址。较佳地,处理单元603,进一步用于当接收单元602接收到VTEP设备针对通过公网接口接收到并解封装后的数据报文而发送的流表请求时,根据所述数据报文的源IP地址查找NAT映射关系;并根据查找到的NAT映射关系,以及网络拓扑关系生成流表;发送单元604,进一步用于将处理单元603生成的流表下发给所述VTEP设备,使所述VTEP设备使用所述流表中源IP地址对应的NAT映射关系对所述数据报文的源IP地址进行NAT处理,并通过所述流表中的出接口发送。较佳地,获取单元601,具体用于接收自身管理的SDN中的VTEP设备上报的NAT映射关系时,进行存储,并同步给其它SDN中的SDN控制器;所述NAT映射关系为所述VTEP设备配置的其下挂的服务器中的主机的私网地址和公网地址的NAT映射关系;接收到其它SDN中的SDN控制器同步的NAT映射关系时,进行存储。较佳地,获取单元601,具体用于通过与其它SDN中的SDN控制器建立的BGP连接,将获取的NAT映射关系发送给所述其它SDN中的SDN控制器。基于同样的发明构思,本申请还提出一种跨软件定义网络的数据报文转发装置,应用于VTEP设备上。参见图7,图7为本申请实施例中应用于VTEP设备上的装置的结构示意图。该装置包括:接收单元701、处理单元702和发送单元703;接收单元701,用于接收数据报文;接收流表;处理单元702,用于当接收单元701通过私网接口接收到数据报文时,根据所述数据报文的目的IP地址进行流表匹配;当接收单元701接收到所述SDN控制器下发的流表时,根据所述流表将所述数据报文的源IP地址进行NAT处理,并根据所述流表中的封装信息对进行NAT处理后的数据报文进行VXLAN封装;其中,所述封装信息中的目的IP地址为接收到的数据报文的目的IP地址对应的公网地址;发送单元703,用于当处理单元702未匹配到转发所述数据报文的流表时,向SDN控制器发送流表请求,使所述SDN控制器根据存储的各SDN中的主机的私网地址和公网地址的网络地址转换NAT映射关系,以及网络拓扑信息下发流表;将处理单元702进行VXLAN封装后的报文通过所述流表中的出接口发送给对端VTEP设备。较佳地,处理单元702,进一步用于当接收单元701通过公网接口接收到目的IP地址为本VTEP设备的IP地址的VXLAN报文时,进行解封装后获得数据报文;并根据所述数据报文的目的IP地址进行流表匹配;当接收单元701接收到SDN控制器下发的流表时,根据流表中的源IP地址对应的NAT映射关系对数据报文的源IP地址进行NAT处理;发送单元703,进一步用于当处理单元702未匹配到转发所述数据报文的流表时,向SDN控制器发送流表请求,使所述SDN控制器根据存储的各SDN中的主机的私网地址和公网地址的NAT映射关系,以及网络拓扑信息下发流表; 将处理单元702进行NAT处理后的数据报文通过所述流表中的出接口转发进行NAT处理后的数据报文。较佳地,该装置进一步包括:配置单元704;配置单元704,用于配置下挂服务器上的主机的私网地址和公网地址的NAT映射关系;发送单元703,用于将所述配置单元配置的NAT映射关系上报给SDN控制器,使所述SDN控制器存储并同步给其它SDN中的SDN控制器。上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。综上所述,本申请通过将VXLANIP网关上的二三层转发功能和NAT功能同时下放到VTEP设备上,让两个SDN网络的SDN控制器建立BGP连接,用于同步对端SDN网络中VM的私网地址与公网地址的NAT映射关系,从而为VTEP设备直接下发包括NAT处理和VXLAN封装信息,以使VTEP设备根据流表对数据报文进行NAT操作,然后再进行VXLAN报文的封装操作后,通过与对端VTEP设备建立的VXLAN隧道发送给对端VTEP设备,上述方案中提供的跨SDN转发只进行一次VXLAN封装和解封装的操作,从而避免了跨SDN通信的繁琐过程。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1