一种跨虚拟可扩展局域网的数据报文转发方法和装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,特别涉及一种跨虚拟可扩展局域网的数据报文转发方 法和装置。
【背景技术】
[0002] 在软件定义网络(Software Defined Network,SDN)中使用虚拟可扩展局域网 (Virtual extensible Local Area Network,VXLAN)隧道技术来进行私网数据报文的封装 以及转发,然后通过VXLAN IP网关与外界的传统网络进行通信。
[0003] 目前,在SDN网络中如果涉及跨VXLAN转发或者涉及虚拟机(VM)与外界传统网络 进行通信,都需要转发到VXLAN IP网关上进行转发,这样的实现方式给网关带来很大的转 发压力。
【发明内容】
[0004] 有鉴于此,本申请提供一种跨虚拟可扩展局域网的数据报文转发方法和装置,以 解决网关转发数据报文时压力大的问题。
[0005] 为解决上述技术问题,本申请的技术方案是这样实现的:
[0006] 由上面的技术方案可知,本申请中在同一 SDN网络中,当有跨VXLAN的VM进行通 信时,VTEP设备直接行使VXLAN IP网关的功能,直接上送三层,再通过查找主机路由,根据 ARP表项进行二层转发,减轻了 SDN网络中VXLAN IP网关转发数据报文的压力。
【附图说明】
[0007] 图1为本申请实施例中跨VXLAN的数据报文转发流程示意图;
[0008] 图2为跨VXLAN网络的组网示意图;
[0009] 图3为本申请实施例中应用于上述技术的装置结构示意图。
【具体实施方式】
[0010] 为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例, 对本发明的技术方案进行详细说明。
[0011] 本申请实施例中提出一种跨虚拟可扩展局域网的数据报文转发方法,应用于虚拟 可扩展局域网隧道端点(VXLAN Tunnel End Point,VTEP)设备上,在同一 SDN网络中,当有 跨VXLAN的VM进行通信时,VTEP设备直接行使VXLAN IP网关的功能,直接上送三层,再通 过查找主机路由,根据ARP表项进行二层转发,从而分担VXLAN IP网关转发跨VXLAN的数 据报文的压力。
[0012] VTEP设备使能本地网关功能并配置网关虚接口的地址网段;生成所述地址网段 对应的路由表项,以使VTEP设备确定接收到的数据报文的目的IP地址是否为本机路由。
[0013] 下面结合附图,详细说明本申请实施例中实现跨VXLAN转发数据报文的过程。
[0014] 参见图1,图1为本申请实施例中跨VXLAN的数据报文转发流程示意图。具体步骤 为:
[0015] 步骤101,VTEP设备通过私网接口接收到数据报文时,若确定该数据报文需跨 VXLAN转发,且确定所述数据报文的目的IP地址为本机路由,则根据所述目的IP地址查找 对应的ARP表项。
[0016] 具体实现时,VTEP设备确定数据报文是否需跨VXLAN转发的方法,具体为:
[0017] 确定该数据报文的目的MAC地址是否为本VTEP设备对应的网关虚接口的MAC地 址,如果是,确定该数据报文需跨VXLAN转发;否则,确定该数据报文不需跨VXLAN转发。
[0018] VTEP设备确定数据报文的目的IP地址是否为本机路由的方法,具体为:
[0019] 根据该数据报文的目的IP地址查找路由表项,当查找到的路由表项中对应的下 一跳地址为本VTEP设备的虚接口地址,则确定所述数据报文的目的IP地址为本机路由;否 贝IJ,确定所述数据报文的目的IP地址不为本机路由。
[0020] 步骤102,该VTEP设备若未查找到对应的ARP表项,则向SDN控制器发送流表请 求。
[0021] SDN控制器接收到VTEP设备发送的流表请求时,根据网络拓扑信息下发转发所述 数据报文的流表。
[0022] 该流表中包括:匹配信息(数据报文的目的IP地址)、封装信息(VXLAN封装的目 的IP地址(对端VTEP设备的IP地址)、目的MAC地址为下一跳设备的MAC地址、数据报文 的目的IP地址对应的VXLAN ID)、生成ARP表项和转发信息表(FIB)表项的信息(数据报 文的目的IP地址对应的MAC地址、数据报文的目的IP地址对应的下一跳地址和出接口)。
[0023] 步骤103,该VTEP设备接收到所述SDN控制器下发的流表时,根据所述流表生成所 述数据报文的目的IP地址对应的FIB表项和ARP表项和封装信息。
[0024] 该VTEP设备接收到流表时,根据流表内容生成的数据报文的目的IP地址对应的 FIB表项和ARP表项包含的内容,同传统FIB表项和ARP表项。
[0025] FIB表项包括目的IP地址,以及目的IP地址对应的下一跳和出接口;
[0026] ARP表项包括目的IP地址,以及目的IP地址对应的MAC地址和下一跳。
[0027] 封装信息为用于进行VXLAN封装的信息。
[0028] 步骤104,该VTEP设备若确定所述FIB表项中的下一跳为本VTEP设备的网关虚接 口地址,则将所述数据报文的目的MAC地址替换为ARP表项中的MAC地址,并使用所述封装 信息进行VXLAN封装,通过所述FIB表项中的出接口发送。
[0029] 本步骤中将所述数据报文的目的MAC地址替换为ARP表项中的MAC地址,即将数 据报文的目的MAC地址替换为目的IP地址真正对应的MAC地址,即同现有实现中网关设备 执行的操作。
[0030] 该VTEP设备将替换目的MAC地址的数据报文根据对应的封装信息进行VXLAN封 装,封装的目的IP地址为对端VTEP设备的IP地址(对端VTEP设备为下挂所述数据报文 的目的IP地址对应的虚拟机的VTEP设备)、目的MAC地址为下一跳设备的MAC地址,源IP 地址为本VTEP设备的IP地址,源MAC地址为本VTEP设备的MAC地址。VXLAN ID为数据 报文的目的IP地址对应的VXLAN ID,即该数据报文的目的IP地址对应的VM所在的VXLAN ID。
[0031] 当在步骤101中查找对应ARP表项时,若查找到对应的ARP表项,且所述数据报文 的目的IP地址在FIB表项中对应的下一跳为本VTEP设备对应的网关虚接口地址,则将所 述数据报文的目的MAC地址替换为查找到的对应ARP表项中的MAC地址,并使用所述数据 报文的目的IP地址对应的封装信息进行VXLAN封装,通过所述FIB表项中的出接口发送。
[0032] VTEP设备通过公网接收到VXLAN报文时,若确定该VXLAN报文的目的IP地址为 本VTEP设备的IP地址,则将所述数据报文解封装并转发,转发过程同现有实现,若未能查 找到对应的转发表项,则向SDN控制器进行请求。
[0033] 下面结合具体的网络图,详细说明本申请实现跨VXLAN的数据报文的转发过程。
[0034] 参见图2,图2为跨VXLAN网络的组网示意图。图2中,VTEP设备1和VTEP 设备2上使能VXLAN IP网关的功能,并配置网关虚接口的地址网段10.1 . 1. 1/24和 11. I. 1. 1/24,生成网段的对应路由表项,以11. I. 1. 1/24对应的路由表项具体包括的内容 为:11. I. L 1/24,下一跳(11. I. L 1/24),出接口(配置的网关虚接口)。
[0035] 图2中Pl和P2为图2所示网络中VTEP设备1和VTEP设备2之间的中转设备, 在VTEP设备1向VTEP设备2发送报文时,Pl为VTEP设备1的下一跳设备;P2为Pl的下 一跳设备,VTEP设备2为P2的下一跳设备。
[0036] VMl在VXLAN 100中,VM2在VXLAN 200中,VMl向VM2发送报文时,目的IP地址 为VM2的IP地址11. I. 1. 2,目的MAC地址为VXLAN IP网关的MAC地址1-1-1。
[0037] VTEP设备1接收到VMl发送给VM2的数据报文时,根据目的MAC地址1-1-1确定 该数据报文需跨VXLAN转发,根据该数据报文的目的IP地址查找路由表项确定目的IP地 址11. I. 1. 2对应的下一跳(11. I. 1. 2)为本VTEP设备1上的网关虚接口的IP地址,因此, 确定目的IP地址11. I. 1. 2为本机路由,则根据所述目的IP地址11. I. 1. 2查找对应的ARP 表项。
[0038] 若未查找到对应的ARP表项,则向SDN控制器发送转发所述数据报文的流表请求。
[0039] SDN控制器接收到流表请求时,根据网络拓扑信息生成流表并下发给VTEP设备 1,所述流表包括:匹配信息(11. I. 1. 2)、封装信息(目的IP地址:VTEP设备2的IP地址 110.1 . 1. 1、目的MAC地址:Pl的MAC地址,VXLAN 200)、生成ARP表项和FIB表项的信息 (VM2的MAC地址、下一跳地址(Pl的IP地址)和出接口(接口 1))。
[0040] VTEP设备1接收到所述流表时,根据所述流表生成ARP表项和FIB表项,并存储对 应的封装信息。
[0041] 参见表1,表1为IP地址11. I.