CN105991387A - 虚拟扩展局域网的报文传输方法和装置 - Google Patents
虚拟扩展局域网的报文传输方法和装置 Download PDFInfo
- Publication number
- CN105991387A CN105991387A CN201510046196.2A CN201510046196A CN105991387A CN 105991387 A CN105991387 A CN 105991387A CN 201510046196 A CN201510046196 A CN 201510046196A CN 105991387 A CN105991387 A CN 105991387A
- Authority
- CN
- China
- Prior art keywords
- message
- vxlan
- vtep
- pmtu
- source
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3072—Packet splitting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种VXLAN报文传输方法,应用在SDN控制器上,包括:接收源VXLAN隧道终点VTEP上传的业务报文;获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的路径最大传输单元PMTU;向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。通过本申请的技术方案,避免了VXLAN报文在转发过程中因超长被丢弃,提高了网络的可靠性。
Description
技术领域
本申请涉及网络通信技术领域,尤其涉及一种VXLAN(Virtual eXtensibleLocal Area Network,虚拟扩展局域网)的报文传输方法和装置。
背景技术
云计算已经成为当前企业信息技术建设的常规形态,而在云计算中大量采用和部署的虚拟化几乎成为一个基本的技术模式。SDN(Software DefinedNetworking,软件定义网络)是当前盛行的一种虚拟化解决方案,其核心理念是将网络的控制平面和转发平面相分离,把网络的控制平面,如所有转发行为的决策都迁移到集中式的控制器(Controller)上,转发设备采用控制器下发的流表进行转发。
SDN总体上有三种类型的实现方案:基于专用接口的方案、基于Overlay(叠加)网络的方案和基于开放协议的方案。其中,Overlay指的是一种网络架构上叠加的虚拟化技术模式,采用将一个报文(或数据帧)封装在另一个报文内的方式,来实现网络的虚拟化。
VXLAN是目前获得较多支持的Overlay协议,VXLAN网络成为构建大二层的数据中心的一种选择。鉴于数据中心往往承担着重要的业务功能,VXLAN网络的可靠性成为影响业务的关键因素。
发明内容
有鉴于此,本申请提供了一种VXLAN的报文传输方法,应用在SDN控制器上,包括:
接收源VXLAN隧道终点VTEP上传的业务报文;
获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的路径最大传输单元PMTU;
向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
本申请提供的另一种VXLAN的报文传输方法,应用在VTEP上,包括:
接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到目的VTEP的VXLAN隧道的路径最大传输单元PMTU;
依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
本申请还提供了一种VXLAN的报文传输装置,应用在SDN控制器上,包括:
业务报文接收单元,用于接收源VTEP上传的业务报文;
PMTU获取单元,用于获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的PMTU;
指令下发单元,用于向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
本申请提供的另一种VXLAN的报文传输装置,应用在VTEP上,包括:
控制表项接收单元,用于接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到目的VTEP的VXLAN隧道的路径最大传输单元PMTU;
控制表项执行单元,用于依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
由以上技术方案可见,本申请的实施例中在转发VXLAN的流量前,先获取VXLAN通道的PMTU,将可能超过传输路径允许的最大长度的报文分片,从而避免VXLAN报文在转发过程中因超长被丢弃,提高了网络的可靠性。
附图说明
图1是一个例子中VXLAN网络的组网结构图;
图2是一个例子中一种应用在SDN控制器上VXLAN的报文传输方法的流程图;
图3是一个例子中一种应用在VTEP上VXLAN的报文传输方法的流程图;
图4是图1所示的网络中VTEP和SDN控制器上对VXLAN报文传输的处理流程图;
图5是一个例子中一种应用在SDN控制器上的VXLAN的报文传输装置的逻辑结构图;
图6是一个例子中一种应用在VTEP上的VXLAN的报文传输装置的逻辑结构图;
图7是一个例子中VXLAN的报文传输装置的硬件架构示意图。
具体实施方式
VXLAN是基于三层IP网络组建大二层网络的Overlay网络技术,采用24位的网络标识,使用户可以创建16M相互隔离的虚拟网络。VXLAN技术可以良好的利用现有的三层IP网络技术,例如利用等价路由进行负荷分担、利用IP组播进行以太报文的广播和多播发送等。VXLAN使用MAC(MediaAccess Control,媒体接入控制)in UDP(User Datagram Protocol,用户数据报协议)的方法将二层报文进行封装为VXLAN业务报文,其格式如表1所示:
表1
其中,外层MAC头(Outer MAC Header)最大14字节,外层IP头(OuterIP Header)20字节,外层UDP头(Outer UDP Header)8字节,VXLAN头(VXLAN Header)8字节。这样,VXLAN报文通常比封装在内部的原始二层报文(Original L2Frame)长50字节。
主机通过VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)接入VXLAN网络,主机可以是VM(Virtual Machine,虚拟机),可以是其他逻辑主机,也可以是物理主机。属于同一个VXLAN的VTEP之间以逻辑隧道相连接,称为VXLAN隧道,用来通过Underlay(底层)网络传输VXLAN报文。作为VXLAN网络的边缘设备,VTEP将来自源主机的二层报文封装为VXLAN报文后通过VXLAN隧道发送给远端的VTEP,由远端VTEP解封装后转发给目的主机。VTEP可以在服务器上或网络设备上实现;可以是一***立的物理设备(如具有VTEP功能的交换机),也可以与其接入的虚拟机在同一个服务器上。
图1所示为一种VXLAN网络可能的组网结构,服务器120上运行VM(Virtual Machine,虚拟机)1、VM2和VTEP 121,其中VTEP 121为vSwitch(Virtual Switch,虚拟交换机);VTEP 121作为VM1和VM2的接入设备将VM1和VM2连接到VXLAN网络;服务器130上运行VM3、VM4和VTEP131,VTEP 131作为VM3和VM4的接入设备将VM3和VM4连接到VXLAN网络。VM1和VM3接入VXLAN 10,VM2和VM4接入VXLAN 20。接入同一个VXLAN的VM属于同一个逻辑二层网络,彼此之间二层互通;接入不同VXLAN的VM之间二层转发相互隔离,彼此间的通信需要进行VXLANIP GW(Gateway,网关)进行三层转发,即图中的VXLAN IP GW 140。VXLANIP GW 140还可以连接非VXLAN网络(图1中未示出),在VXLAN网络和非VXLAN网络之间进行报文转发。可见,VXLAN IP GW是一种具有三层转发功能的VTEP。运行在物理设备110上的SDN控制器111与上述各个设备间分别建立安全通道,通过安全通道与各个设备进行消息交互,实现流表表项下发、查询以及状态上报等功能。
VTEP 121和131之间的VXLAN隧道穿越Underlay网络,经过VXLAN隧道发送的报文由Underlay网络中的网络设备进行转发。网络设备的接口对通过报文的长度有一定的限制,允许通过的报文长度的最大值与接口的硬件配置、所采用的传输协议等因素有关。在一些网络设备中,当报文的长度超过该网络设备的接口上允许通过的最大值时,将被分割为几个片段,分别封装为长度不超过该最大值的几个报文传输到目的节点,再由目的节点进行重组;这一过程称为分片(fragmentation),分割后的报文称为分片报文。而在另一些网络设备中,对长度超过该网络设备的接口上允许通过的最大值的报文,如果该报文要上送到网络设备的CPU(Central Process Unit,中央处理器)处理,则由CPU将报文分片,并将分片报文发送往目的节点;如果该报文将按照MAC地址表项转发而不上送CPU,则会因超长而被丢弃。
一般而言,为了更高效的传输数据,报文的长度应该尽可能的大。但如果报文因超过接口允许的最大值导致报文被丢弃,则会降低网络的可靠性。对于VXLAN报文而言,由于50字节的封装报头增加了报文的长度,报文超过接口允许最大长度的概率大大增加,使得报文转发更加不可靠。
在本申请的一个例子中,一种VXLAN网络的报文传输方法能够减少因VXLAN报文超过网络设备接口允许通过的最大长度而导致的丢包,从而提高网络的可靠性。该方法在SDN控制器上的运行流程如图2所示。
步骤210,接收源VXLAN隧道终点VTEP上传的业务报文。
本申请的例子中,业务报文是指区别于网络控制协议报文(用来传递网络本身的参数、状态等信息)的其它报文。将业务报文源节点接入VXLAN网络的VTEP为该业务报文的源VTEP,将业务报文目的节点接入VXLAN网络的VTEP为该业务报文的目的VTEP。
当VTEP收到来自源节点的业务报文时,如果在流表中未能找到匹配该报文的表项,则将业务报文上传到SDN控制器。
步骤220,获取上传该业务报文的源VTEP到该业务报文的目的VTEP的VXLAN隧道的PMTU(Path maximum transmission unit,路径最大传输单元)。
SDN控制器上通常保存有其管理域内各个VM、VTEP、VXLAN IP GW、以及其他被管理设备的信息,如VM的IP地址、MAC地址、所连接的VTEP、所在的VXLAN等信息,VTEP的MAC地址、IP地址、所加入的VXLAN等。这些信息也可以保存在SDN控制器能够访问的云平台上。根据这些信息,SDN控制器可以得知接入该业务报文目的节点的VTEP,即目的VTEP。
网络设备在不分割报文的前提下允许通过的最大链路层载荷(或者称为三层数据报),被称为最大传输单元(MTU,maximum transmission unit)。能够从源节点无分割的传输到目的节点的最大链路层载荷,被称为PMTU,PMTU数值上等于沿途经过的所有设备接口中最小的MTU。
本申请的各个例子中,报文指的是链路层报文,报文长度和报文长度值均指的是链路层报文的长度。例如,PMTU对应的报文长度值为(PMTU+链路层封装的长度);对以太网报文,是(PMTU+14字节),其中不包括链路层尾部的校验字段。再如,VXLAN报文的长度是指将业务报文作为UDP载荷封装了VXLAN头、外层UDP头、外层IP头和外层MAC头之后的字节数。
SDN控制器可以采用多种方式来获得源VTEP到目的VTEP的VXLAN隧道的PMTU。例如,SDN控制器可以向源VTEP下发至少一条PMTU探测流表,该PMTU探测流表用来指令源VTEP:以目的VTEP的地址为目的地址发送不可分片的探测报文,来进行到目的VTEP的PMTU探测;探测报文的长度对应于指定值或按照预定规则确定。探测报文可以是ICMP(InternetControl Message Protocol,互联网控制报文协议)报文,也可以是其他类型的控制报文或数据报文。如果从源VTEP到目的VTEP的路径上所经过的某个网络设备接口的MTU对应的报文长度值小于探测报文的长度,则该网络设备会向源VTEP返回ICMP差错控制报文,来告知源VTEP其发送的探测报文未能到达目的地。源VTEP执行SDN控制器下发的流表,即,如果收到ICMP差错控制报文,则上报SDN控制器。SDN控制器据此可以获得源VTEP到目的VTEP的VXLAN隧道的PMTU,具体而言,可以采用以下两种方式:
第一种方式的流程如下:
SDN控制器向源VTEP下发控制报文上传流表,指令源VTEP将接收到的ICMP差错控制报文上传的SDN控制器;有一些vSwitch和支持SDN功能的转发设备缺省会将ICMP差错控制报文上传到SDN控制器,对这些设备,本步骤可以省略;
SDN控制器向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个MTU为指定值、且设置为不允许分片的探测报文;SDN控制器启动定时器;MTU指定值可以采用源VTEP与目的VTEP之间的网络类型所规定的MTU最大值;
如果探测报文从源VTEP到目的VTEP的路径上所经过的某个网络设备接口的MTU小于指定值,由于探测报文设置为不允许分片,该网络设备将丢弃探测报文,并向源VTEP返回ICMP差错控制报文,告知源VTEP探测报文因探测报文不允许分片导致目的地不可达,并在ICMP差错控制报文中携带本设备接口的MTU。源VTEP将收到的ICMP差错控制报文上传到SDN控制器;
在定时器到时前,如果SDN控制器收到源VTEP上传的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,则向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个MTU为该差错控制报文中所携带的MTU(新的指定值)、且设置为不允许分片的探测报文,并重置定时器。SDN控制器重复本步骤直到定时器定时到。在上述探测VXLAN隧道的PMTU的过程中,只会发生一次定时器定时到,定时到时SDN控制器认为源VTEP发送的最后一个探测报文到达目的VTEP,探测过程结束;
SDN控制器从源VTEP最后一次收到的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文中携带的MTU,即为从源VTEP到目的VTEP的VXLAN隧道的PMTU;如果SDN控制器在定时器到前没有从源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,则指定值即为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
在这种方式中,SDN控制器可以下发一条流表,指令源VTEP生成及发送探测报文,并在收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文后按照报文中的MTU(确定报文长度的指定规则)重新生成并发送探测报文。
第二种方式的流程如下:
SDN控制器向源VTEP下发控制报文上传流表,指令源VTEP将接收到的ICMP差错控制报文和对探测报文的响应报文上传SDN控制器;对于缺省将上述两种报文上传的设备,本步骤可以省略;
SDN控制器向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个MTU为指定值、且设置为不允许分片的探测报文;MTU指定值可以采用源VTEP与目的VTEP之间的网络类型所规定的MTU最大值。目的VTEP在收到探测报文后,会向源VTEP回复对探测报文的响应报文;探测报文和响应报文可以是各种协议中的请求和响应报文,也可以采用自定义的请求和响应报文交互过程。例如,探测报文可以是ICMP请求报文,其响应报文为ICMP响应报文;
如果探测报文的长度超过了从源VTEP到目的VTEP的路径上某个网络设备接口的MTU对应的报文长度值,该网络设备将丢弃不允许分片的探测报文,并向源VTEP返回ICMP差错控制报文,告知源VTEP因探测报文不允许分片导致目的地不可达,并在ICMP差错控制报文中携带本设备接口的MTU。源VTEP将收到的ICMP差错控制报文上传到SDN控制器。如果ICMP请求报文到达目的VTEP,目的VTEP将向源VTEP返回针对该探测报文的响应报文,源VTEP将收到的响应报文上传到SDN控制器。
如果SDN控制器收到源VTEP上传的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,则向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个MTU为该差错控制报文中所携带的MTU、且设置为不允许分片的探测报文。SDN控制器重复本步骤直到收到源VTEP上传的对探测报文的响应报文;
SDN控制器从源VTEP最后一次收到的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文中携带的MTU,即为从源VTEP到目的VTEP的VXLAN隧道的PMTU;如果SDN控制器在从源VTEP收到对探测报文的响应报文前没有收到因不允许分片导致目的地不可达的ICMP差错控制报文,则指定值即为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
这种方式中,SDN控制器也可以下发一条流表,指令源VTEP生成及发送探测报文,并在收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文后按照该ICMP差错控制报文中的MTU重新生成并发送探测报文,直至收到对探测报文的响应报文。
此外,SDN控制器还可以向网络管理服务器请求以源VTEP的VTEP IP地址为源地址、以目的VTEP的VTEP IP地址为目的地址的链路的PMTU,由网络管理服务器指令源VTEP所在的设备进行PMTU探测,并将结果返回给SDN控制器。
步骤230,SDN控制器向源VTEP发送控制表项,指令其将从该上传业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过PMTU对应的长度值,并将VXLAN报文通过该VXLAN隧道发送给目的VTEP。
SDN控制器可以通过下发流表的方式来指令源VTEP完成本步骤。
对进行VXLAN封装后报文长度超过PMTU对应的长度值的情况,SDN控制器可以通过分片来使得单个VXLAN报文的长度不超过PMTU对应的长度值。根据VXLAN网络所采用的协议,分片在该协议规定的7层模型的某个层次进行。对以太网而言,报文的分片在三层传输层(IP层)进行,即把三层数据报分割为至少两个部分,在三层部首中携带将这些部分重组为一个完整的三层数据报所需的信息,并分别进行链路层封装后得到对应数量的报文。
由于VXLAN报文采用的是MAC in UDP的封装方式,对VXLAN报文,既可以对VXLAN报文进行分片,即分割外层的三层数据报(在业务报文外封装了VXLAN头、外层UDP头和外层IP头后形成的三层数据报);也可以对业务报文进行分片,即分割业务报文中承载的三层数据报。在对VXLAN报文进行分片时,以PMTU为最大值来分割外层的三层数据报,即可使VXLAN报文的长度不超过PMTU对应的报文长度值;而对业务报文进行分片时,以(PMTU-VXLAN外层IP头的长度-VXLAN外层UDP头的长度-VXLAN头的长度-业务报文二层封装的长度)为最大值来分割业务报文内承载的三层数据报,可以使VXLAN报文的长度不超过PMTU对应的报文长度值。以下以对业务报文进行分片为例来说明具体的处理过程。
在一个例子中,SDN控制器通过网络管理协议向源VTEP下发与业务报文分片相关的配置,通过SDN管理通道以流表的方式指令源VTEP对业务报文进行VXLAN封装及发送。
具体而言,SDN控制器通过SDN管理协议,如OpenFlow(开放流)协议,向所述源VTEP下发VXLAN流表及其全局索引标识;VXLAN流表用来指令源VTEP:将从该上传的业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过该VXLAN隧道发送给目的VTEP。同时,SDN控制器通过网管配置协议,如OVSDB(Open vSwitch DataBase,开放式虚拟交换机数据库)的配置协议或Netconf(网络配置协议),向源VTEP下发该VXLAN流表的全局索引标识以及得到的PMTU。这个例子中,SDN控制器生成和下发VXLAN流表的方式和现有的实现一致。SDN控制器向源VTEP下发的全局索引标识和对应的PMTU用来指令源VTEP对匹配具有全局索引标识的流表的业务报文,在执行该流表前,将封装为VXLAN报文后长度超过该PMTU对应的长度值的业务报文分片,以使得将分片后的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过该PMTU对应的长度值。
SDN控制器上保存有其生成并下发、尚未老化的流表,每条流表都具有一一对应的全局索引标识。在下发流表时,SDN控制器同时下发该流表的全局索引标识,这样,在一个SDN控制器的管理域内,每个被管理对象上的每条流表都具有不同的全局索引标识。当SDN控制器通过不同的途径向源VTEP下发VXLAN流表和适用于该流表的PMTU时,源VTEP利用全局索引标识即可将两者对应起来。
源VTEP上的处理流程如图3所示:
步骤310,接收SDN控制器下发的控制表项;控制表项中包括本VTEP到目的VTEP的VXLAN隧道的PMTU。
步骤320,依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过该PMTU对应的长度值,并将VXLAN报文通过该VXLAN隧道发送给目的VTEP。
当接收到匹配与该控制表项的业务报文时,如果将业务报文封装为VXLAN报文后长度超过该PMTU对应的长度值,则对该业务报文分片,使得单个业务报文封装为VXLAN报文后,其长度不超过PMTU对应的长度值。根据该控制表项,长度不超过PMTU对应的长度值的VXLAN报文被源VTEP通过该VXLAN隧道发送到目的VTEP。
在一个例子中,SDN控制器可以通过流表和网管两个途径的结合来下发控制表项,具体而言,对源VTEP:
接收SDN控制器通过SDN管理协议下发的VXLAN流表及其全局索引标识;
接收SDN控制器通过网管配置协议下发的该VXLAN流表的全局索引标识和该VXLAN隧道的PMTU;
当接收的业务报文匹配于具有该全局索引标识的VXLAN流表时,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将分片后的报文封装为VXLAN报文后,单个VXLAN报文的长度不超过该PMTU对应的长度值。
源VTEP收到业务报文后,如果该业务报文匹配于某条VXLAN流表,并且该VXLAN流表的全局索引标识有对应的PMTU,则判断(业务报文的长度+VXLAN封装的长度)是否大于该PMTU对应的长度值,即(PMTU+链路层封装的长度)。如果是,则该业务报文封装后生成的VXLAN报文的长度超过了从源节点到目的节点的VXLAN隧道能够通过的最大长度,则由源VTEP将该业务报文分片,使得分片后的每个业务报文封装为VXLAN报文后,长度都不超过PMTU对应的长度值;源VTEP根据匹配的VXLAN流表,将每个分片后的业务报文封装为VXLAN报文后转发。如果否,则直接根据匹配的VXLAN流表对该业务报文进行VXLAN封装和转发。
源VTEP可以在本地维护VXLAN流表的全局索引标识与PMTU的对应关系。当收到SDN控制器下发全局索引标识与对应的PMTU时,保存二者的对应关系;当删除具有该全局索引标识的VXLAN流表时(如流表老化,或接到SDN控制器删除该流表的指令),也删除保存的该全局索引标识和PMTU的对应关系。这样,源VTEP对收到的业务报文进行流表匹配后,查询保存的对应关系,如果其中包括匹配流表的全局索引标识,则在封装该业务报文前要对(业务报文长度+VXLAN封装的长度)大于该PMTU对应的长度值的业务报文进行分片,之后才执行匹配的流表;如果其中不包括匹配流表的全局索引标识,则直接执行匹配的流表。
一个例子中,步骤210中SDN控制器在收到源VTEP上传的业务报文后,根据预定条件判断该业务报文是否属于重点流量;如果是,则执行步骤220和步骤230,使得重点流量的业务报文封装为VXLAN报文后在通过VXLAN隧道时不会因超长而丢包;如果否,则直接向源VTEP下发VXLAN流表;该VXLAN流表指令源VTEP将从该业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过VXLAN隧道发送给目的VTEP,减少非重点业务的流量在源VTEP上的处理工作量,降低源VTEP的负荷。
判断重点流量的预定条件可以根据实际应用的需要来设置,业务报文的各个字段所具有的特征都可以用来作为预定条件,例如,可以采用业务报文的源MAC地址、源IP地址、目的IP地址、目的MAC地址、TCP(TransmissionControl Protocol,传输控制协议)端口号中的一项到多项来作为预定条件。
在一些应用场景中,Underlay网络的组网结构可以为VXLAN通道提供多条实际转发路径,当一条转发路径发生故障时,可以自动切换为另一条转发路径继续传输VXLAN通道的流量。而PMTU是由转发路径上的设备决定的,当转发路径发生变化时,VXLAN通道的PMTU值也可能发生变化。例如图1所示的网络中,VTEP 131到VTEP121的VXLAN通道的实际转发路径建立在转发设备153、151和152上,当转发设备151发生故障时,Underlay网络将自动把VXLAN通道切换为转发设备153、154和152之间的转发路径,这时该VXLAN通道的PMTU可能会变化。SDN控制器可以得知VXLAN通道在Underlay网络中路径的变化,此时,SDN控制器可以重新执行步骤220,获取该VXLAN通道的PMTU,并指令该VXLAN通道的源VTEP将PMTU更新为新获取的值。
通过在转发VXLAN的流量前,先获取VXLAN通道的PMTU,根据PMTU将可能超过VXLAN通道的传输路径允许的最大长度的报文分片,本例避免了VXLAN报文在转发过程中因超长被丢弃,提高了网络的可靠性。
本申请的另一个例子中,在图1所示的网络中的SDN控制器111上维护一张重点流量表,用以指示重点流量的预定条件,这些重点流量在本例中将根据PMTU来提高转发可靠性。重点流量表的格式如表2所示:
表2
VM2向VM4发起通信,向VM4发送业务报文Packet1,Packet1的源IP地址为VM2的IP地址VM2-IP,目的IP地址为VM4的IP地址VM4-IP。VM2发送的Packet1将首先到达VTEP 121,VTEP 121和SDN控制器111上的处理流程如图4所示。
在VTEP 121上,接收来自VM2的业务报文Packet1。
VTEP 121查询本地保存的流表,发现没有能够匹配Packet1的表项,将Packet1上传给SDN控制器111。
SDN控制器111收到VTEP 121上传的Packet1,提取Packet1的目的IP地址,根据本地保存的信息或从云管理平台查询的信息,得知Packet1的目的节点VM4由VTEP 131接入VXLAN网络,则Packet1的源VTEP为VTEP121,目的VTEP为VTEP 131。
SDN控制器111根据Packet1生成VXLAN流表:将源IP地址为VM2-IP、目的IP地址为VM4-IP的业务报文,以IP-121为外层源IP地址、IP-131为外层目的IP地址、20为VXLAN标签封装为VXLAN报文后,发送给VTEP131。其中,IP-121为VTEP 121的VTEP IP地址,IP-131为VTEP 131的VTEP IP地址,20为VM2和VM4所在VXLAN的标签。该VXLAN流表的全局索引号为Key1。
SDN控制器111查找表2,Packet1匹配于其中的第n条表项,得知Packet1属于重点流量。对不属于重点流量的业务报文,SDN控制器111下发所生成的VXLAN流表到上传该业务报文的VTEP,由该VTEP根据流表处理和转发业务报文,流程结束。由于Packet1属于重点流量,SDN控制器111向源VTEP 121下发流表,指令VTEP 121向SDN控制器111上传目的IP地址为IP-121、ICMP TYPE(类型)为3、ICMP CODE(代码)为4的ICMP差错控制报文,即目的地址为本VTEP的因不允许分片导致目的地址不可达的ICMP差错控制报文。
SDN控制器111向源VTEP 121下发探测流表——OpenFlow协议的Send-Packet(发送报文)流表,指令VTEP 121发送源IP地址为IP-121、目的IP地址为IP-131、链路层载荷长度为1500的ICMP请求报文,并设置该ICMP请求报文为不允许分片。
SDN控制器111启动定时器。
VTEP 121执行控制器的Send-Packet流表,向VTEP 131发送不允许分片的ICMP请求报文。
如果VTEP 121收到目的地址为本VTEP的因不允许分片导致目的地址不可达的ICMP差错控制报文,说明VTEP 121到VTEP 131的转发路径上某个设备的接口MTU小于ICMP请求报文的链路层载荷长度,该设备在发送给VTEP 121的ICMP差错控制报文中携带该接口的MTU。根据SDN控制器111下发的流表,VTEP 121将ICMP差错控制报文上传至SDN控制器111。
SDN控制器111收到VTEP 121上传的ICMP差错控制报文,提取其中的接口MTU,关闭定时器。
SDN控制器111向VTEP 121下发Send-Packet(发送报文)流表,指令VTEP 121发送源IP地址为IP-121、目的IP地址为IP-131、链路层载荷长度为刚提取接口MTU的ICMP请求报文,并设置该ICMP请求报文为不允许分片。
SDN控制器111启动定时器。
SDN控制器111与VTEP 121重复上述探测过程直到定时器时间到,VTEP 121到VTEP 131的VXLAN隧道的PMTU为定时器时间到前下发的最后一个Send-Packet流表指定的链路层载荷长度。设探测得到的PMTU为MTU1。
SDN控制器111向VTEP 121下发根据Packet1生成的VXLAN流表,其中包括该VXLAN流表的全局索引号Key1。
SDN控制器111通过Netconf协议向VTEP 121下发探测得到的MTU1以及对应的VXLAN流表的全局索引号Key1。
VTEP 121上维护一张对应关系表,用来维护保存流表的全局索引号与PMTU的对应关系。VTEP 121将SDN控制器111下发的Key1与MTU1保存在该对应关系表中,如表3所示:
表3
对Packet1,VTEP 121在执行SDN控制器下发的VXLAN流表前,在表3中查找是否有包括该VXLAN流表的全局索引号Key1的表项,得到与Key1对应的PMTU——MTU1;VTEP 121判断Packet1报文的长度加上VXLAN封装的长度(本例中设VXLAN封装的长度为50字节)后是否超过MTU1对应的报文长度(MTU1+14字节),如果超过则按照(MTU1-50)字节对Packet1的链路层载荷进行分片,之后对分片报文执行该VXLAN流表;如果不超过则直接对Packet1执行该VXLAN流表。
后续VTEP 121收到其他匹配全局索引号为Key1的流表的报文,则直接执行上述步骤,根据报文长度与MTU1决定是否分片以及按照VXLAN流表进行处理及转发。该VXLAN流表老化时,也删除对应关系表中包含Key1的表项。
与上述流程实现对应,本申请还提供了一种应用在SDN控制器上的VXLAN报文传输装置和一种应用在VTEP上的VXLAN报文传输装置。
图5所示为本申请一个例子中的一种VXLAN的报文传输装置,应用于SDN控制器上,从功能上划分,包括业务报文接收单元、PMTU获取单元和指令下发单元,其中:业务报文接收单元用于接收源VTEP上传的业务报文;PMTU获取单元用于获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的PMTU;指令下发单元用于向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
一个例子中,所述指令下发单元包括VXLAN流表下发模块和网管配置下发模块,其中:VXLAN流表下发模块用于通过SDN管理协议向所述源VTEP下发VXLAN流表及其全局索引标识;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过所述VXLAN隧道发送给目的VTEP;网管配置下发模块用于通过网管配置协议向所述源VTEP下发所述VXLAN流表的全局索引标识以及所述PMTU,用来指令所述源VTEP对匹配具有所述全局索引标识的流表的业务报文,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将业务报文分片后的报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
所述PMTU获取单元获取所述源VTEP到目的VTEP的VXLAN隧道的PMTU的一种具体方式,包括:
向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接收到的ICMP差错控制报文;
向所述源VTEP下发PMTU探测流表并启动定时器,所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为指定值的不可分片探测报文;
如果在定时器到时前收到所述源VTEP上传的因所述探测报文不允许分片导致目的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表并重置定时器;所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为接收的ICMP差错控制报文中所携带的MTU的不可分片探测报文;重复本步骤直到定时器定时到;
如果定时器到时前从所述源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的VTEP的VXLAN隧道的PMTU;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
所述PMTU获取单元获取所述源VTEP到目的VTEP的VXLAN隧道的PMTU的另一种具体方式,包括:
向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接收到的ICMP差错控制报文和对探测报文的响应报文;
向所述源VTEP下发PMTU探测流表,所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为指定值且不可分片的探测报文;
如果收到所述源VTEP上传的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表;所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为接收的ICMP差错控制报文中所携带的MTU且不可分片的探测报文;
如果收到对所述探测报文的响应报文前从所述源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的VTEP的VXLAN隧道的PMTU;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
上述方式中,所述探测报文包括:ICMP请求报文;对所述探测报文的响应报文包括:ICMP响应报文。
一个例子中,所述装置还可以包括非重点流量处理单元,用于在获取所述源VTEP到所述目的VTEP的VXLAN隧道的PMTU之前,根据预定条件判断所述业务报文是否属于重点流量,如果所述业务报文不属于重点流量,向所述源VTEP下发VXLAN流表;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过VXLAN隧道发送给目的VTEP。
图6所示为本申请一个例子中的一种VXLAN的报文传输装置,应用在VXLAN隧道终点VTEP上,包括控制表项接收单元和控制表项执行单元,其中:控制表项接收单元用于接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到目的VTEP的VXLAN隧道的路径最大传输单元PMTU;控制表项执行单元用于依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
一个例子中,所述控制表项接收单元接收SDN控制器下发的控制表项,可以包括:接收SDN控制器通过SDN管理协议下发的VXLAN流表及其全局索引标识;接收SDN控制器通过网管配置协议下发的PMTU及其对应的全局索引标识;所述控制表项执行单元依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,可以包括:当接收的业务报文匹配于具有所述全局索引标识的VXLAN流表时,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将分片后的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
所述装置还可以包括探测流表接收单元和探测流表执行单元,其中:探测流表接收单元用于接收SDN控制器下发的至少一个PMTU探测流表,根据所述PMTU探测流表,向指定的目的地址发送不可分片的探测报文,来进行到所述目的地址的PMTU探测;所述探测报文的长度长度对应于指定值或按照指定规则确定;探测流表执行单元用于执行所述PMTU探测流表,如果收到互联网控制报文协议ICMP差错控制报文和/或对所述探测报文的响应报文,则上报SDN控制器。
本申请实施例的上述两种VXLAN的报文传输装置可以是软硬件结合的可编程设备,这两种VXLAN的报文传输装置的硬件架构示意图具体可以参见图7。图7为本申请实施例提供的包含VXLAN的报文传输装置的设备的硬件结构示意图。该设备包括:机器可读存储介质、CPU(Central Process Unit,中央处理器),其中:
机器可读存储介质:存储指令代码;所述指令代码被CPU执行时完成的操作主要为VXLAN的报文传输装置完成的功能。
CPU:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,完成上述VXLAN的报文传输装置完成的功能。
机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。另外,本文所描述的任一机器可读存储介质都可以是非暂时性的。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (19)
1.一种虚拟扩展局域网VXLAN报文传输方法,应用在软件定义网络SDN控制器上,其特征在于,所述方法包括:
接收源VXLAN隧道终点VTEP上传的业务报文;
获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的路径最大传输单元PMTU;
向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
2.根据权利要求1所述的方法,其特征在于,所述向源VTEP发送控制表项,指令源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP,包括:
通过SDN管理协议向所述源VTEP下发VXLAN流表及其全局索引标识;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过所述VXLAN隧道发送给目的VTEP;
通过网管配置协议向所述源VTEP下发所述VXLAN流表的全局索引标识以及所述PMTU,用来指令所述源VTEP对匹配具有所述全局索引标识的流表的业务报文,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将业务报文分片后的报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
3.根据权利要求1所述的方法,其特征在于,所述获取源VTEP到所述目的VTEP的VXLAN隧道的PMTU,包括:
向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接收到的ICMP差错控制报文;
向所述源VTEP下发PMTU探测流表并启动定时器,所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为指定值的不可分片探测报文;
如果在定时器到时前收到所述源VTEP上传的因所述探测报文不允许分片导致目的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表并重置定时器;所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为该接收的ICMP差错控制报文中所携带的MTU的不可分片探测报文;重复本步骤直到定时器定时到;
如果定时器到时前从所述源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的VTEP的VXLAN隧道的PMTU;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
4.根据权利要求1所述的方法,其特征在于,所述获取源VTEP到所述目的VTEP的VXLAN隧道的PMTU,包括:
向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接收到的ICMP差错控制报文和对探测报文的响应报文;
向所述源VTEP下发PMTU探测流表,所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为指定值且不可分片的探测报文;
如果收到所述源VTEP上传的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表;所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为接收的ICMP差错控制报文中所携带的MTU且不可分片的探测报文;
如果收到对所述探测报文的响应报文前从所述源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的VTEP的VXLAN隧道的PMTU;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
5.根据权利要求4所述的方法,其特征在于,所述探测报文包括:ICMP请求报文;对所述探测报文的响应报文包括:ICMP响应报文。
6.根据权利要求1所述的方法,其特征在于,在获取所述源VTEP到所述目的VTEP的VXLAN隧道的PMTU之前,所述方法还包括:根据预定条件判断所述业务报文是否属于重点流量,如果所述业务报文不属于重点流量,向所述源VTEP下发VXLAN流表;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过VXLAN隧道发送给目的VTEP。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述VXLAN隧道在底层Underlay网络中的路径发生变化时,重新获取所述VXLAN隧道的PMTU,并指令所述源VTEP更新所述VXLAN隧道的PMTU。
8.一种虚拟扩展局域网VXLAN的报文传输方法,应用在VXLAN隧道终点VTEP上,其特征在于,所述方法包括:
接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到目的VTEP的VXLAN隧道的路径最大传输单元PMTU;
依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
9.根据权利要求8所述的方法,其特征在于,所述接收SDN控制器下发的控制表项的控制表项,包括:
接收SDN控制器通过SDN管理协议下发的VXLAN流表及其全局索引标识;
接收SDN控制器通过网管配置协议下发的所述VXLAN流表的全局索引标识以及所述PMTU;
所述依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,包括:
当接收的业务报文匹配于具有所述全局索引标识的VXLAN流表时,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将分片后的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
10.根据权利要求8所述的方法,其特征在于,所述方法还包括:
接收SDN控制器下发的至少一个PMTU探测流表,根据所述PMTU探测流表,向指定的目的地址发送不可分片的探测报文,来进行到所述目的地址的PMTU探测;所述探测报文的长度对应于指定值或按照指定规则确定;
执行所述PMTU探测流表,如果收到互联网控制报文协议ICMP差错控制报文和/或对所述探测报文的响应报文,则上报SDN控制器。
11.一种虚拟扩展局域网VXLAN的报文传输装置,应用在软件定义网络SDN控制器上,其特征在于,所述装置包括:
业务报文接收单元,用于接收源VXLAN隧道终点VTEP上传的业务报文;
路径最大传输单元PMTU获取单元,用于获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的PMTU;
指令下发单元,用于向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
12.根据权利要求11所述的装置,其特征在于,所述指令下发单元包括:
VXLAN流表下发模块,用于通过SDN管理协议向所述源VTEP下发VXLAN流表及其全局索引标识;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过所述VXLAN隧道发送给目的VTEP;
网管配置下发模块,用于通过网管配置协议向所述源VTEP下发所述VXLAN流表的全局索引标识以及所述PMTU,用来指令所述源VTEP对匹配具有所述全局索引标识的流表的业务报文,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将业务报文分片后的报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
13.根据权利要求11所述的装置,其特征在于,所述PMTU获取单元获取所述源VTEP到目的VTEP的VXLAN隧道的PMTU,包括:
向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接收到的ICMP差错控制报文;
向所述源VTEP下发PMTU探测流表并启动定时器,所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为指定值的不可分片探测报文;
如果在定时器到时前收到所述源VTEP上传的因所述探测报文不允许分片导致目的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表并重置定时器;所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为该接收的ICMP差错控制报文中所携带的MTU的不可分片探测报文;重复本步骤直到定时器定时到;
如果定时器到时前从所述源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的VTEP的VXLAN隧道的PMTU;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
14.根据权利要求11所述的装置,其特征在于,所述PMTU获取单元获取所述源VTEP到目的VTEP的VXLAN隧道的PMTU,包括:
向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接收到的ICMP差错控制报文和对探测报文的响应报文;
向所述源VTEP下发PMTU探测流表,所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为指定值且不可分片的探测报文;
如果收到所述源VTEP上传的因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表;所下发的PMTU探测流表用来指令:向目的VTEP发送MTU为接收的ICMP差错控制报文中所携带的MTU且不可分片的探测报文;
如果收到对所述探测报文的响应报文前从所述源VTEP收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的VTEP的VXLAN隧道的PMTU;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
15.根据权利要求14所述的装置,其特征在于,所述探测报文包括:ICMP请求报文;对所述探测报文的响应报文包括:ICMP响应报文。
16.根据权利要求11所述的装置,其特征在于,所述装置还包括:非重点流量处理单元,用于在获取所述源VTEP到所述目的VTEP的VXLAN隧道的PMTU之前,根据预定条件判断所述业务报文是否属于重点流量,如果所述业务报文不属于重点流量,向所述源VTEP下发VXLAN流表;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,通过VXLAN隧道发送给目的VTEP。
17.一种虚拟扩展局域网VXLAN的报文传输装置,应用在VXLAN隧道终点VTEP上,其特征在于,所述装置包括:
控制表项接收单元,用于接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到目的VTEP的VXLAN隧道的路径最大传输单元PMTU;
控制表项执行单元,用于依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
18.根据权利要求17所述的装置,其特征在于,所述控制表项接收单元接收SDN控制器下发的控制表项,包括:
接收SDN控制器通过SDN管理协议下发的VXLAN流表及其全局索引标识;
接收SDN控制器通过网管配置协议下发的所述VXLAN流表的全局索引标识以及所述PMTU;
所述控制表项执行单元依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,包括:
当接收的业务报文匹配于具有所述全局索引标识的VXLAN流表时,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将分片后的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
探测流表接收单元,用于接收SDN控制器下发的至少一个PMTU探测流表,根据所述PMTU探测流表,向指定的目的地址发送不可分片的探测报文,来进行到所述目的地址的PMTU探测;所述探测报文的长度对应于指定值或按照指定规则确定;
探测流表执行单元,用于执行所述PMTU探测流表,如果收到互联网控制报文协议ICMP差错控制报文和/或对所述探测报文的响应报文,则上报SDN控制器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510046196.2A CN105991387A (zh) | 2015-01-29 | 2015-01-29 | 虚拟扩展局域网的报文传输方法和装置 |
PCT/CN2016/072694 WO2016119733A1 (en) | 2015-01-29 | 2016-01-29 | Vxlan packet transmission |
US15/546,059 US10397126B2 (en) | 2015-01-29 | 2016-01-29 | VXLAN packet transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510046196.2A CN105991387A (zh) | 2015-01-29 | 2015-01-29 | 虚拟扩展局域网的报文传输方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105991387A true CN105991387A (zh) | 2016-10-05 |
Family
ID=56542458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510046196.2A Pending CN105991387A (zh) | 2015-01-29 | 2015-01-29 | 虚拟扩展局域网的报文传输方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10397126B2 (zh) |
CN (1) | CN105991387A (zh) |
WO (1) | WO2016119733A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899478A (zh) * | 2017-03-23 | 2017-06-27 | 国网浙江省电力公司 | 电力测试业务通过云平台实现资源弹性扩展的方法 |
CN106911532A (zh) * | 2017-02-07 | 2017-06-30 | 佛山易识科技有限公司 | 基于虚拟可扩展局域网的多虚拟通道智能选路方法 |
CN106998285A (zh) * | 2017-04-28 | 2017-08-01 | 烽火通信科技股份有限公司 | 一种基于sdn实现静态路由隧道的***及方法 |
CN107147555A (zh) * | 2017-06-30 | 2017-09-08 | 联想(北京)有限公司 | 一种vxlan网络的切换方法及设备、存储介质 |
CN108075936A (zh) * | 2016-11-16 | 2018-05-25 | ***通信有限公司研究院 | VxLAN探测方法及装置 |
CN108282391A (zh) * | 2018-01-11 | 2018-07-13 | 新华三技术有限公司 | 一种vxlan报文分片方法和装置 |
CN109495366A (zh) * | 2017-09-11 | 2019-03-19 | 中兴通讯股份有限公司 | 一种vxlan报文处理方法、装置及存储介质 |
CN109768938A (zh) * | 2019-03-14 | 2019-05-17 | 黄淮学院 | 一种异构网络及其数据流导引方法和交换机 |
CN112822085A (zh) * | 2019-11-18 | 2021-05-18 | 华为技术有限公司 | 网络部署的方法及*** |
CN113890858A (zh) * | 2021-09-29 | 2022-01-04 | 杭州迪普科技股份有限公司 | Pmtu的探测方法及装置 |
CN113992521A (zh) * | 2021-09-17 | 2022-01-28 | 新华三信息安全技术有限公司 | 一种数据处理方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967182B2 (en) | 2015-07-31 | 2018-05-08 | Nicira, Inc. | Enabling hardware switches to perform logical routing functionalities |
US9998375B2 (en) * | 2015-12-15 | 2018-06-12 | Nicira, Inc. | Transactional controls for supplying control plane data to managed hardware forwarding elements |
CN107733799B (zh) * | 2016-08-11 | 2021-09-21 | 新华三技术有限公司 | 一种报文传输方法和装置 |
US11252192B1 (en) * | 2018-09-28 | 2022-02-15 | Palo Alto Networks, Inc. | Dynamic security scaling |
US11102080B2 (en) | 2019-07-18 | 2021-08-24 | International Business Machines Corporation | Network layer method of configuration of a bare-metal server in a virtual network |
US11178041B1 (en) * | 2020-07-07 | 2021-11-16 | Juniper Networks, Inc. | Service chaining with physical network functions and virtualized network functions |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532672A (zh) * | 2013-10-22 | 2014-01-22 | 芮雄丽 | 一种sdn网络中分片报文乱序的处理方法及应用 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1992638A (zh) * | 2005-12-26 | 2007-07-04 | 华为技术有限公司 | 在网络中获取路径最大传输单元的方法及*** |
US8379638B2 (en) * | 2006-09-25 | 2013-02-19 | Certes Networks, Inc. | Security encapsulation of ethernet frames |
US8687653B2 (en) * | 2009-10-30 | 2014-04-01 | Brocade Communications Systems, Inc. | Tunnel path MTU discovery |
US8934501B2 (en) * | 2012-06-11 | 2015-01-13 | Avaya Inc. | Bidirectional translation of network edge virtualization encapsulation to core network virtualization encapsulation |
CN102970227B (zh) | 2012-11-12 | 2016-03-02 | 盛科网络(苏州)有限公司 | 在asic中实现vxlan报文转发的方法和装置 |
US9413652B2 (en) * | 2013-02-19 | 2016-08-09 | Dell Products L.P. | Systems and methods for path maximum transmission unit discovery |
US9088515B2 (en) * | 2013-03-15 | 2015-07-21 | International Business Machines Corporation | Dynamic maximum transmission unit size adaption |
US9461914B2 (en) * | 2014-04-07 | 2016-10-04 | Cisco Technology, Inc. | Path maximum transmission unit handling for virtual private networks |
-
2015
- 2015-01-29 CN CN201510046196.2A patent/CN105991387A/zh active Pending
-
2016
- 2016-01-29 US US15/546,059 patent/US10397126B2/en active Active
- 2016-01-29 WO PCT/CN2016/072694 patent/WO2016119733A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103532672A (zh) * | 2013-10-22 | 2014-01-22 | 芮雄丽 | 一种sdn网络中分片报文乱序的处理方法及应用 |
Non-Patent Citations (2)
Title |
---|
J. MOGUL等: "Path MTU Discovery", 《NETWORK WORKING GROUP REQUEST FOR COMMENTS: 1191 OBSOLETES: RFC 1063》 * |
REYK FLOETER: "VXLAN and Cloud-based networking with OpenBSD", 《ASIABSDCON 2014 PROCEEDINGS》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108075936A (zh) * | 2016-11-16 | 2018-05-25 | ***通信有限公司研究院 | VxLAN探测方法及装置 |
CN106911532A (zh) * | 2017-02-07 | 2017-06-30 | 佛山易识科技有限公司 | 基于虚拟可扩展局域网的多虚拟通道智能选路方法 |
CN106911532B (zh) * | 2017-02-07 | 2020-04-10 | 佛山易识科技有限公司 | 基于虚拟可扩展局域网的多虚拟通道智能选路方法 |
CN106899478A (zh) * | 2017-03-23 | 2017-06-27 | 国网浙江省电力公司 | 电力测试业务通过云平台实现资源弹性扩展的方法 |
CN106899478B (zh) * | 2017-03-23 | 2023-09-01 | 国网浙江省电力公司 | 电力测试业务通过云平台实现资源弹性扩展的方法 |
CN106998285A (zh) * | 2017-04-28 | 2017-08-01 | 烽火通信科技股份有限公司 | 一种基于sdn实现静态路由隧道的***及方法 |
WO2018196349A1 (zh) * | 2017-04-28 | 2018-11-01 | 烽火通信科技股份有限公司 | 一种基于sdn实现静态路由隧道的***及方法 |
CN107147555A (zh) * | 2017-06-30 | 2017-09-08 | 联想(北京)有限公司 | 一种vxlan网络的切换方法及设备、存储介质 |
CN107147555B (zh) * | 2017-06-30 | 2020-06-23 | 联想(北京)有限公司 | 一种vxlan网络的切换方法及设备、存储介质 |
CN109495366A (zh) * | 2017-09-11 | 2019-03-19 | 中兴通讯股份有限公司 | 一种vxlan报文处理方法、装置及存储介质 |
CN108282391B (zh) * | 2018-01-11 | 2022-01-25 | 新华三技术有限公司 | 一种vxlan报文分片方法和装置 |
CN108282391A (zh) * | 2018-01-11 | 2018-07-13 | 新华三技术有限公司 | 一种vxlan报文分片方法和装置 |
CN109768938A (zh) * | 2019-03-14 | 2019-05-17 | 黄淮学院 | 一种异构网络及其数据流导引方法和交换机 |
CN112822085B (zh) * | 2019-11-18 | 2022-12-13 | 华为云计算技术有限公司 | 网络部署的方法及*** |
CN112822085A (zh) * | 2019-11-18 | 2021-05-18 | 华为技术有限公司 | 网络部署的方法及*** |
CN113992521A (zh) * | 2021-09-17 | 2022-01-28 | 新华三信息安全技术有限公司 | 一种数据处理方法及装置 |
CN113992521B (zh) * | 2021-09-17 | 2023-11-03 | 新华三信息安全技术有限公司 | 一种数据处理方法及装置 |
CN113890858A (zh) * | 2021-09-29 | 2022-01-04 | 杭州迪普科技股份有限公司 | Pmtu的探测方法及装置 |
CN113890858B (zh) * | 2021-09-29 | 2023-10-20 | 杭州迪普科技股份有限公司 | Pmtu的探测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US10397126B2 (en) | 2019-08-27 |
US20180013687A1 (en) | 2018-01-11 |
WO2016119733A1 (en) | 2016-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105991387A (zh) | 虚拟扩展局域网的报文传输方法和装置 | |
US10063470B2 (en) | Data center network system based on software-defined network and packet forwarding method, address resolution method, routing controller thereof | |
CN106452857B (zh) | 生成配置信息的方法和网络控制单元 | |
US10237230B2 (en) | Method and system for inspecting network traffic between end points of a zone | |
US10193707B2 (en) | Packet transmission method and apparatus | |
US11245631B2 (en) | Bum traffic control method, related apparatus, and system | |
US10992590B2 (en) | Path maximum transmission unit (PMTU) discovery in software-defined networking (SDN) environments | |
CN105657081B (zh) | 提供dhcp服务的方法、装置及*** | |
JP5991424B2 (ja) | パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム | |
CN104937885B (zh) | 用于结构交换机的全局vlan | |
CN103200069B (zh) | 一种报文处理的方法和设备 | |
US20170353572A1 (en) | Flow Transmission | |
US10798048B2 (en) | Address resolution protocol suppression using a flow-based forwarding element | |
CN106254256B (zh) | 基于三层vxlan网关的数据报文转发方法和设备 | |
US10079694B2 (en) | Scalable virtual networks in SDN-based ethernet networks using VLANs | |
US11128489B2 (en) | Maintaining data-plane connectivity between hosts | |
CN106712988B (zh) | 一种虚拟网络管理方法及装置 | |
CN104580024A (zh) | 扩展的以太网互联结构交换机 | |
CN105051688A (zh) | 经扩展的标记联网 | |
WO2017113300A1 (zh) | 路由确定方法、网络配置方法以及相关装置 | |
US20170288998A1 (en) | Apparatus for processing network packet using service function chaining and method for controlling the same | |
JP2019521619A (ja) | パケット転送 | |
CN104135446A (zh) | 基于SDN实现IPv4向IPv6过渡的***及方法 | |
CN110311860A (zh) | Vxlan下多链路负载均衡方法及装置 | |
CN107733765B (zh) | 映射方法、***和相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20161005 |
|
RJ01 | Rejection of invention patent application after publication |