CN105991387A - 虚拟扩展局域网的报文传输方法和装置 - Google Patents

虚拟扩展局域网的报文传输方法和装置 Download PDF

Info

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
Application number
CN201510046196.2A
Other languages
English (en)
Inventor
金小艇
王伟
Original Assignee
杭州华三通信技术有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 杭州华三通信技术有限公司 filed Critical 杭州华三通信技术有限公司
Priority to CN201510046196.2A priority Critical patent/CN105991387A/zh
Publication of CN105991387A publication Critical patent/CN105991387A/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic regulation in packet switching networks
    • H04L47/10Flow control or congestion control
    • H04L47/36Evaluation of the packet size, e.g. maximum transfer unit [MTU]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. local area networks [LAN], wide area networks [WAN]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3072Packet splitting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

Abstract

本申请提供一种VXLAN报文传输方法,应用在SDN控制器上,包括:接收源VXLAN隧道终点VTEP上传的业务报文;获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的路径最大传输单元PMTU;向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。通过本申请的技术方案,避免了VXLAN报文在转发过程中因超长被丢弃,提高了网络的可靠性。

Description

虚拟扩展局域网的报文传输方法和装置
技术领域
[0001] 本申请涉及网络通信技术领域,尤其涉及一种VXLAN(Virtual extensible Local Area Network,虚拟扩展局域网)的报文传输方法和装置。
背景技术
[0002] 云计算已经成为当前企业信息技术建设的常规形态,而在云计算中大量采用和部 署的虚拟化几乎成为一个基本的技术模式。SDN(Software Defined Networking,软件定义 网络)是当前盛行的一种虚拟化解决方案,其核心理念是将网络的控制平面和转发平面相 分离,把网络的控制平面,如所有转发行为的决策都迀移到集中式的控制器(Controller) 上,转发设备采用控制器下发的流表进行转发。
[0003] SDN总体上有三种类型的实现方案:基于专用接口的方案、基于Overlay (叠加) 网络的方案和基于开放协议的方案。其中,Over lay指的是一种网络架构上叠加的虚拟化技 术模式,采用将一个报文(或数据帧)封装在另一个报文内的方式,来实现网络的虚拟化。
[0004] VXLAN是目前获得较多支持的Overlay协议,VXLAN网络成为构建大二层的数据中 心的一种选择。鉴于数据中心往往承担着重要的业务功能,VXLAN网络的可靠性成为影响 业务的关键因素。
发明内容
[0005] 有鉴于此,本申请提供了一种VXLAN的报文传输方法,应用在SDN控制器上,包 括:
[0006] 接收源VXLAN隧道终点VTEP上传的业务报文;
[0007] 获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道的路径最大传输单元 PMTU ;
[0008] 向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文的源节点发送到目 的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长 度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
[0009] 本申请提供的另一种VXLAN的报文传输方法,应用在VTEP上,包括:
[0010] 接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到 目的VTEP的VXLAN隧道的路径最大传输单元PMTU ;
[0011] 依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个 VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发 送给目的VTEP。
[0012] 本申请还提供了一种VXLAN的报文传输装置,应用在SDN控制器上,包括:
[0013] 业务报文接收单元,用于接收源VTEP上传的业务报文;
[0014] PMTU获取单元,用于获取所述源VTEP到所述业务报文的目的VTEP的VXLAN隧道 的 PMTU ;
[0015] 指令下发单元,用于向源VTEP发送控制表项,指令所述源VTEP将从所述业务报文 的源节点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过 所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
[0016] 本申请提供的另一种VXLAN的报文传输装置,应用在VTEP上,包括:
[0017] 控制表项接收单元,用于接收软件定义网络SDN控制器下发的控制表项;所述控 制表项中包括所述VTEP到目的VTEP的VXLAN隧道的路径最大传输单元PMTU ;
[0018] 控制表项执行单元,用于依据控制表项,将接收的该控制表项对应的业务报文封 装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报 文通过所述VXLAN隧道发送给目的VTEP。
[0019] 由以上技术方案可见,本申请的实施例中在转发VXLAN的流量前,先获取VXLAN通 道的PMTU,将可能超过传输路径允许的最大长度的报文分片,从而避免VXLAN报文在转发 过程中因超长被丢弃,提高了网络的可靠性。
附图说明
[0020] 图1是一个例子中VXLAN网络的组网结构图;
[0021] 图2是一个例子中一种应用在SDN控制器上VXLAN的报文传输方法的流程图;
[0022] 图3是一个例子中一种应用在VTEP上VXLAN的报文传输方法的流程图;
[0023] 图4是图1所示的网络中VTEP和SDN控制器上对VXLAN报文传输的处理流程图;
[0024] 图5是一个例子中一种应用在SDN控制器上的VXLAN的报文传输装置的逻辑结构 图;
[0025] 图6是一个例子中一种应用在VTEP上的VXLAN的报文传输装置的逻辑结构图;
[0026] 图7是一个例子中VXLAN的报文传输装置的硬件架构示意图。
具体实施方式
[0027] VXLAN是基于三层IP网络组建大二层网络的Overlay网络技术,采用24位的网 络标识,使用户可以创建16M相互隔离的虚拟网络。VXLAN技术可以良好的利用现有的三 层IP网络技术,例如利用等价路由进行负荷分担、利用IP组播进行以太报文的广播和多播 发送等。VXLAN使用 MAC(Media Access Control,媒体接入控制)in UDP(User Datagram Protocol,用户数据报协议)的方法将二层报文进行封装为VXLAN业务报文,其格式如表1 所示:
Figure CN105991387AD00071
[0029] 表 1
[0030] 其中,外层 MAC 头(Outer MAC Header)最大 14 字节,外层 IP 头(Outer IP Header) 20 字节,外层 UDP 头(Outer UDP Header) 8 字节,VXLAN 头(VXLAN Header) 8 字节。 这样,VXLAN报文通常比封装在内部的原始二层报文(Original L2Frame)长50字节。
[0031] 主机通过 VTEP (VXLAN Tunnel End Point,VXLAN 隧道端点)接入 VXLAN 网络,主 机可以是VM(Virtual Machine,虚拟机),可以是其他逻辑主机,也可以是物理主机。属于 同一个VXLAN的VTEP之间以逻辑隧道相连接,称为VXLAN隧道,用来通过Underlay (底层) 网络传输VXLAN报文。作为VXLAN网络的边缘设备,VTEP将来自源主机的二层报文封装为 VXLAN报文后通过VXLAN隧道发送给远端的VTEP,由远端VTEP解封装后转发给目的主机。 VTEP可以在服务器上或网络设备上实现;可以是一台独立的物理设备(如具有VTEP功能 的交换机),也可以与其接入的虚拟机在同一个服务器上。
[0032] 图1所示为一种VXLAN网络可能的组网结构,服务器120上运行VM (Virtual Machine,虚拟机)1、VM2 和 VTEP 121,其中 VTEP 121 为 vSwitch (Virtual Switch,虚拟交 换机);VTEP 121作为VMl和VM2的接入设备将VMl和VM2连接到VXLAN网络;服务器130 上运行VM3、VM4和VTEP131,VTEP 131作为VM3和VM4的接入设备将VM3和VM4连接到 VXLAN 网络。VMl 和 VM3 接入 VXLAN 10, VM2 和 VM4 接入 VXLAN 20〇 接入同一个 VXLAN 的 VM属于同一个逻辑二层网络,彼此之间二层互通;接入不同VXLAN的VM之间二层转发相互 隔离,彼此间的通信需要进行VXLAN IP GW(Gateway,网关)进行三层转发,即图中的VXLAN IP GW 140。VXLAN IP GW 140还可以连接非VXLAN网络(图1中未示出),在VXLAN网络 和非VXLAN网络之间进行报文转发。可见,VXLAN IP GW是一种具有三层转发功能的VTEP。 运行在物理设备110上的SDN控制器111与上述各个设备间分别建立安全通道,通过安全 通道与各个设备进行消息交互,实现流表表项下发、查询以及状态上报等功能。
[0033] VTEP 121和131之间的VXLAN隧道穿越Underlay网络,经过VXLAN隧道发送的报 文由Underlay网络中的网络设备进行转发。网络设备的接口对通过报文的长度有一定的 限制,允许通过的报文长度的最大值与接口的硬件配置、所采用的传输协议等因素有关。在 一些网络设备中,当报文的长度超过该网络设备的接口上允许通过的最大值时,将被分割 为几个片段,分别封装为长度不超过该最大值的几个报文传输到目的节点,再由目的节点 进行重组;这一过程称为分片(fragmentation),分割后的报文称为分片报文。而在另一些 网络设备中,对长度超过该网络设备的接口上允许通过的最大值的报文,如果该报文要上 送到网络设备的CPU (Central Process Unit,中央处理器)处理,则由CPU将报文分片,并 将分片报文发送往目的节点;如果该报文将按照MAC地址表项转发而不上送CPU,则会因超 长而被丢弃。
[0034] -般而言,为了更高效的传输数据,报文的长度应该尽可能的大。但如果报文因超 过接口允许的最大值导致报文被丢弃,则会降低网络的可靠性。对于VXLAN报文而言,由于 50字节的封装报头增加了报文的长度,报文超过接口允许最大长度的概率大大增加,使得 报文转发更加不可靠。
[0035] 在本申请的一个例子中,一种VXLAN网络的报文传输方法能够减少因 VXLAN报文 超过网络设备接口允许通过的最大长度而导致的丢包,从而提高网络的可靠性。该方法在 SDN控制器上的运行流程如图2所示。
[0036] 步骤210,接收源VXLAN隧道终点VTEP上传的业务报文。
[0037] 本申请的例子中,业务报文是指区别于网络控制协议报文(用来传递网络本身的 参数、状态等信息)的其它报文。将业务报文源节点接入VXLAN网络的VTEP为该业务报文 的源VTEP,将业务报文目的节点接入VXLAN网络的VTEP为该业务报文的目的VTEP。
[0038] 当VTEP收到来自源节点的业务报文时,如果在流表中未能找到匹配该报文的表 项,则将业务报文上传到SDN控制器。
[0039] 步骤220,获取上传该业务报文的源VTEP到该业务报文的目的VTEP的VXLAN隧道 的 PMTU (Path maximum transmission unit,路径最大传输单元)。
[0040] SDN控制器上通常保存有其管理域内各个VM、VTEP、VXLAN IP GW、以及其他被管理 设备的信息,如VM的IP地址、MAC地址、所连接的VTEP、所在的VXLAN等信息,VTEP的MAC 地址、IP地址、所加入的VXLAN等。这些信息也可以保存在SDN控制器能够访问的云平台 上。根据这些信息,SDN控制器可以得知接入该业务报文目的节点的VTEP,即目的VTEP。
[0041] 网络设备在不分割报文的前提下允许通过的最大链路层载荷(或者称为三层数 据报),被称为最大传输单元(MTU,maximum transmission unit)。能够从源节点无分割的 传输到目的节点的最大链路层载荷,被称为PMTU,PMTU数值上等于沿途经过的所有设备接 口中最小的MTU。
[0042] 本申请的各个例子中,报文指的是链路层报文,报文长度和报文长度值均指的是 链路层报文的长度。例如,PMTU对应的报文长度值为(PMTU+链路层封装的长度);对以太 网报文,是(PMTU+14字节),其中不包括链路层尾部的校验字段。再如,VXLAN报文的长度 是指将业务报文作为UDP载荷封装了 VXLAN头、外层UDP头、外层IP头和外层MAC头之后 的字节数。
[0043] SDN控制器可以采用多种方式来获得源VTEP到目的VTEP的VXLAN隧道的PMTU。 例如,SDN控制器可以向源VTEP下发至少一条PMTU探测流表,该PMTU探测流表用来指 令源VTEP :以目的VTEP的地址为目的地址发送不可分片的探测报文,来进行到目的VTEP 的PMTU探测;探测报文的长度对应于指定值或按照预定规则确定。探测报文可以是 ICMP(Internet Control Message Protocol,互联网控制报文协议)报文,也可以是其他类 型的控制报文或数据报文。如果从源VTEP到目的VTEP的路径上所经过的某个网络设备接 口的MTU对应的报文长度值小于探测报文的长度,则该网络设备会向源VTEP返回ICMP差 错控制报文,来告知源VTEP其发送的探测报文未能到达目的地。源VTEP执行SDN控制器 下发的流表,即,如果收到ICMP差错控制报文,则上报SDN控制器。SDN控制器据此可以获 得源VTEP到目的VTEP的VXLAN隧道的PMTU,具体而言,可以采用以下两种方式:
[0044] 第一种方式的流程如下:
[0045] SDN控制器向源VTEP下发控制报文上传流表,指令源VTEP将接收到的ICMP差错 控制报文上传的SDN控制器;有一些vSwitch和支持SDN功能的转发设备缺省会将ICMP差 错控制报文上传到SDN控制器,对这些设备,本步骤可以省略;
[0046] SDN控制器向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个MTU 为指定值、且设置为不允许分片的探测报文;SDN控制器启动定时器;MTU指定值可以采用 源VTEP与目的VTEP之间的网络类型所规定的MTU最大值;
[0047] 如果探测报文从源VTEP到目的VTEP的路径上所经过的某个网络设备接口的MTU 小于指定值,由于探测报文设置为不允许分片,该网络设备将丢弃探测报文,并向源VTEP 返回ICMP差错控制报文,告知源VTEP探测报文因探测报文不允许分片导致目的地不可达, 并在ICMP差错控制报文中携带本设备接口的MTU。源VTEP将收到的ICMP差错控制报文上 传到SDN控制器;
[0048] 在定时器到时前,如果SDN控制器收到源VTEP上传的因探测报文不允许分片导致 目的地不可达的ICMP差错控制报文,则向源VTEP下发PMTU探测流表,指令源VTEP向目的 VTEP发送一个MTU为该差错控制报文中所携带的MTU (新的指定值)、且设置为不允许分片 的探测报文,并重置定时器。SDN控制器重复本步骤直到定时器定时到。在上述探测VXLAN 隧道的PMTU的过程中,只会发生一次定时器定时到,定时到时SDN控制器认为源VTEP发送 的最后一个探测报文到达目的VTEP,探测过程结束;
[0049] SDN控制器从源VTEP最后一次收到的因探测报文不允许分片导致目的地不可达 的ICMP差错控制报文中携带的MTU,即为从源VTEP到目的VTEP的VXLAN隧道的PMTU ;如 果SDN控制器在定时器到前没有从源VTEP收到因探测报文不允许分片导致目的地不可达 的ICMP差错控制报文,则指定值即为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
[0050] 在这种方式中,SDN控制器可以下发一条流表,指令源VTEP生成及发送探测报文, 并在收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文后按照报文中的 MTU(确定报文长度的指定规则)重新生成并发送探测报文。
[0051] 第二种方式的流程如下:
[0052] SDN控制器向源VTEP下发控制报文上传流表,指令源VTEP将接收到的ICMP差 错控制报文和对探测报文的响应报文上传 SDN控制器;对于缺省将上述两种报文上传的设 备,本步骤可以省略;
[0053] SDN控制器向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个MTU 为指定值、且设置为不允许分片的探测报文;MTU指定值可以采用源VTEP与目的VTEP之间 的网络类型所规定的MTU最大值。目的VTEP在收到探测报文后,会向源VTEP回复对探测 报文的响应报文;探测报文和响应报文可以是各种协议中的请求和响应报文,也可以采用 自定义的请求和响应报文交互过程。例如,探测报文可以是ICMP请求报文,其响应报文为 ICMP响应报文;
[0054] 如果探测报文的长度超过了从源VTEP到目的VTEP的路径上某个网络设备接口的 MTU对应的报文长度值,该网络设备将丢弃不允许分片的探测报文,并向源VTEP返回ICMP 差错控制报文,告知源VTEP因探测报文不允许分片导致目的地不可达,并在ICMP差错控制 报文中携带本设备接口的MTU。源VTEP将收到的ICMP差错控制报文上传到SDN控制器。 如果ICMP请求报文到达目的VTEP,目的VTEP将向源VTEP返回针对该探测报文的响应报 文,源VTEP将收到的响应报文上传到SDN控制器。
[0055] 如果SDN控制器收到源VTEP上传的因探测报文不允许分片导致目的地不可达的 ICMP差错控制报文,则向源VTEP下发PMTU探测流表,指令源VTEP向目的VTEP发送一个 MTU为该差错控制报文中所携带的MTU、且设置为不允许分片的探测报文。SDN控制器重复 本步骤直到收到源VTEP上传的对探测报文的响应报文;
[0056] SDN控制器从源VTEP最后一次收到的因探测报文不允许分片导致目的地不可达 的ICMP差错控制报文中携带的MTU,即为从源VTEP到目的VTEP的VXLAN隧道的PMTU ;如 果SDN控制器在从源VTEP收到对探测报文的响应报文前没有收到因不允许分片导致目的 地不可达的ICMP差错控制报文,则指定值即为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
[0057] 这种方式中,SDN控制器也可以下发一条流表,指令源VTEP生成及发送探测报文, 并在收到因探测报文不允许分片导致目的地不可达的ICMP差错控制报文后按照该ICMP差 错控制报文中的MTU重新生成并发送探测报文,直至收到对探测报文的响应报文。
[0058] 此外,SDN控制器还可以向网络管理服务器请求以源VTEP的VTEP IP地址为源地 址、以目的VTEP的VTEP IP地址为目的地址的链路的PMTU,由网络管理服务器指令源VTEP 所在的设备进行PMTU探测,并将结果返回给SDN控制器。
[0059] 步骤230, SDN控制器向源VTEP发送控制表项,指令其将从该上传业务报文的源节 点发送到目的节点的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过PMTU对 应的长度值,并将VXLAN报文通过该VXLAN隧道发送给目的VTEP。
[0060] SDN控制器可以通过下发流表的方式来指令源VTEP完成本步骤。
[0061 ] 对进行VXLAN封装后报文长度超过PMTU对应的长度值的情况,SDN控制器可以通 过分片来使得单个VXLAN报文的长度不超过PMTU对应的长度值。根据VXLAN网络所采用的 协议,分片在该协议规定的7层模型的某个层次进行。对以太网而言,报文的分片在三层传 输层(IP层)进行,即把三层数据报分割为至少两个部分,在三层部首中携带将这些部分重 组为一个完整的三层数据报所需的信息,并分别进行链路层封装后得到对应数量的报文。
[0062] 由于VXLAN报文采用的是MAC in UDP的封装方式,对VXLAN报文,既可以对VXLAN 报文进行分片,即分割外层的三层数据报(在业务报文外封装了 VXLAN头、外层UDP头和 外层IP头后形成的三层数据报);也可以对业务报文进行分片,即分割业务报文中承载的 三层数据报。在对VXLAN报文进行分片时,以PMTU为最大值来分割外层的三层数据报, 即可使VXLAN报文的长度不超过PMTU对应的报文长度值;而对业务报文进行分片时,以 (PMTU-VXLAN外层IP头的长度-VXLAN外层UDP头的长度-VXLAN头的长度-业务报文二层 封装的长度)为最大值来分割业务报文内承载的三层数据报,可以使VXLAN报文的长度不 超过PMTU对应的报文长度值。以下以对业务报文进行分片为例来说明具体的处理过程。
[0063] 在一个例子中,SDN控制器通过网络管理协议向源VTEP下发与业务报文分片相关 的配置,通过SDN管理通道以流表的方式指令源VTEP对业务报文进行VXLAN封装及发送。
[0064] 具体而言,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对应的长度值。
[0065] SDN控制器上保存有其生成并下发、尚未老化的流表,每条流表都具有一一对应的 全局索引标识。在下发流表时,SDN控制器同时下发该流表的全局索引标识,这样,在一个 SDN控制器的管理域内,每个被管理对象上的每条流表都具有不同的全局索引标识。当SDN 控制器通过不同的途径向源VTEP下发VXLAN流表和适用于该流表的PMTU时,源VTEP利用 全局索引标识即可将两者对应起来。
[0066] 源VTEP上的处理流程如图3所示:
[0067] 步骤310,接收SDN控制器下发的控制表项;控制表项中包括本VTEP到目的VTEP 的VXLAN隧道的PMTU。
[0068] 步骤320,依据控制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文 后,单个VXLAN报文的长度不超过该PMTU对应的长度值,并将VXLAN报文通过该VXLAN隧 道发送给目的VTEP。
[0069] 当接收到匹配与该控制表项的业务报文时,如果将业务报文封装为VXLAN报文后 长度超过该PMTU对应的长度值,则对该业务报文分片,使得单个业务报文封装为VXLAN报 文后,其长度不超过PMTU对应的长度值。根据该控制表项,长度不超过PMTU对应的长度值 的VXLAN报文被源VTEP通过该VXLAN隧道发送到目的VTEP。
[0070] 在一个例子中,SDN控制器可以通过流表和网管两个途径的结合来下发控制表项, 具体而言,对源VTEP :
[0071] 接收SDN控制器通过SDN管理协议下发的VXLAN流表及其全局索引标识;
[0072] 接收SDN控制器通过网管配置协议下发的该VXLAN流表的全局索引标识和该 VXLAN 隧道的 PMTU ;
[0073] 当接收的业务报文匹配于具有该全局索引标识的VXLAN流表时,在执行所述流表 前,将封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将分片 后的报文封装为VXLAN报文后,单个VXLAN报文的长度不超过该PMTU对应的长度值。
[0074] 源VTEP收到业务报文后,如果该业务报文匹配于某条VXLAN流表,并且该VXLAN 流表的全局索引标识有对应的PMTU,则判断(业务报文的长度+VXLAN封装的长度)是否 大于该PMTU对应的长度值,即(PMTU+链路层封装的长度)。如果是,则该业务报文封装后 生成的VXLAN报文的长度超过了从源节点到目的节点的VXLAN隧道能够通过的最大长度, 则由源VTEP将该业务报文分片,使得分片后的每个业务报文封装为VXLAN报文后,长度都 不超过PMTU对应的长度值;源VTEP根据匹配的VXLAN流表,将每个分片后的业务报文封装 为VXLAN报文后转发。如果否,则直接根据匹配的VXLAN流表对该业务报文进行VXLAN封 装和转发。
[0075] 源VTEP可以在本地维护VXLAN流表的全局索引标识与PMTU的对应关系。当收 到SDN控制器下发全局索引标识与对应的PMTU时,保存二者的对应关系;当删除具有该全 局索引标识的VXLAN流表时(如流表老化,或接到SDN控制器删除该流表的指令),也删除 保存的该全局索引标识和PMTU的对应关系。这样,源VTEP对收到的业务报文进行流表匹 配后,查询保存的对应关系,如果其中包括匹配流表的全局索引标识,则在封装该业务报文 前要对(业务报文长度+VXLAN封装的长度)大于该PMTU对应的长度值的业务报文进行分 片,之后才执行匹配的流表;如果其中不包括匹配流表的全局索引标识,则直接执行匹配的 流表。
[0076] -个例子中,步骤210中SDN控制器在收到源VTEP上传的业务报文后,根据预定 条件判断该业务报文是否属于重点流量;如果是,则执行步骤220和步骤230,使得重点流 量的业务报文封装为VXLAN报文后在通过VXLAN隧道时不会因超长而丢包;如果否,则直接 向源VTEP下发VXLAN流表;该VXLAN流表指令源VTEP将从该业务报文的源节点发送到目 的节点的业务报文封装为VXLAN报文后,通过VXLAN隧道发送给目的VTEP,减少非重点业务 的流量在源VTEP上的处理工作量,降低源VTEP的负荷。
[0077] 判断重点流量的预定条件可以根据实际应用的需要来设置,业务报文的各个字段 所具有的特征都可以用来作为预定条件,例如,可以采用业务报文的源MAC地址、源IP地 址、目的IP地址、目的MAC地址、TCP (Transmission Control Protocol,传输控制协议)端 口号中的一项到多项来作为预定条件。
[0078] 在一些应用场景中,Underlay网络的组网结构可以为VXLAN通道提供多条实际转 发路径,当一条转发路径发生故障时,可以自动切换为另一条转发路径继续传输VXLAN通 道的流量。而PMTU是由转发路径上的设备决定的,当转发路径发生变化时,VXLAN通道的 PMTU值也可能发生变化。例如图1所示的网络中,VTEP 131到VTEP121的VXLAN通道的实 际转发路径建立在转发设备153、151和152上,当转发设备151发生故障时,Underlay网 络将自动把VXLAN通道切换为转发设备153、154和152之间的转发路径,这时该VXLAN通 道的PMTU可能会变化。SDN控制器可以得知VXLAN通道在Under I ay网络中路径的变化,此 时,SDN控制器可以重新执行步骤220,获取该VXLAN通道的PMTU,并指令该VXLAN通道的 源VTEP将PMTU更新为新获取的值。
[0079] 通过在转发VXLAN的流量前,先获取VXLAN通道的PMTU,根据PMTU将可能超过 VXLAN通道的传输路径允许的最大长度的报文分片,本例避免了 VXLAN报文在转发过程中 因超长被丢弃,提尚了网络的可靠性。
[0080] 本申请的另一个例子中,在图1所示的网络中的SDN控制器111上维护一张重点 流量表,用以指示重点流量的预定条件,这些重点流量在本例中将根据PMTU来提高转发可 靠性。重点流量表的格式如表2所示:
Figure CN105991387AD00131
[0082] 表 2
[0083] VM2向VM4发起通信,向VM4发送业务报文Packetl,Packetl的源IP地址为VM2 的IP地址VM2-IP,目的IP地址为VM4的IP地址VM4-IP。VM2发送的Packetl将首先到达 VTEP 121,VTEP 121和SDN控制器111上的处理流程如图4所示。
[0084] 在VTEP 121上,接收来自VM2的业务报文Packetl。
[0085] VTEP 121查询本地保存的流表,发现没有能够匹配Packetl的表项,将Packetl上 传给SDN控制器111。
[0086] SDN控制器111收到VTEP 121上传的Packetl,提取Packetl的目的IP地址,根 据本地保存的信息或从云管理平台查询的信息,得知Packetl的目的节点VM4由VTEP 131 接入 VXLAN 网络,则 Packetl 的源 VTEP 为 VTEP121,目的 VTEP 为 VTEP 131。
[0087] SDN控制器111根据Packetl生成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流 表的全局索引号为Keyl。
[0088] SDN控制器111查找表2,Packetl匹配于其中的第η条表项,得知Packetl属于 重点流量。对不属于重点流量的业务报文,SDN控制器111下发所生成的VXLAN流表到上 传该业务报文的VTEP,由该VTEP根据流表处理和转发业务报文,流程结束。由于Packetl 属于重点流量,SDN控制器111向源VTEP 121下发流表,指令VTEP 121向SDN控制器111 上传目的IP地址为IP-121、ICMP TYPE (类型)为3、ICMP CODE (代码)为4的ICMP差错 控制报文,即目的地址为本VTEP的因不允许分片导致目的地址不可达的ICMP差错控制报 文。
[0089] SDN控制器111向源VTEP 121下发探测流表--OpenFlow协议的 Send-Packet (发送报文)流表,指令VTEP 121发送源IP地址为IP-121、目的IP地址为 IP-131、链路层载荷长度为1500的ICMP请求报文,并设置该ICMP请求报文为不允许分片。
[0090] SDN控制器111启动定时器。
[0091] VTEP 121执行控制器的Send-Packet流表,向VTEP 131发送不允许分片的ICMP 请求报文。
[0092] 如果VTEP 121收到目的地址为本VTEP的因不允许分片导致目的地址不可达的 ICMP差错控制报文,说明VTEP 121到VTEP 131的转发路径上某个设备的接口 MTU小于 ICMP请求报文的链路层载荷长度,该设备在发送给VTEP 121的ICMP差错控制报文中携带 该接口的MTU。根据SDN控制器111下发的流表,VTEP 121将ICMP差错控制报文上传至 SDN控制器111。
[0093] SDN控制器111收到VTEP 121上传的ICMP差错控制报文,提取其中的接口 MTU, 关闭定时器。
[0094] SDN控制器111向VTEP 121下发Send-Packet (发送报文)流表,指令VTEP 121发 送源IP地址为IP-121、目的IP地址为IP-131、链路层载荷长度为刚提取接口 MTU的ICMP 请求报文,并设置该ICMP请求报文为不允许分片。
[0095] SDN控制器111启动定时器。
[0096] SDN控制器111与VTEP 121重复上述探测过程直到定时器时间到,VTEP 121到 VTEP 131的VXLAN隧道的PMTU为定时器时间到前下发的最后一个Send-Packet流表指定 的链路层载荷长度。设探测得到的PMTU为MTUl。
[0097] SDN控制器111向VTEP 121下发根据Packetl生成的VXLAN流表,其中包括该 VXLAN流表的全局索引号Keyl。
[0098] SDN控制器111通过Netconf协议向VTEP 121下发探测得到的MTUl以及对应的 VXLAN流表的全局索引号Keyl。
[0099] VTEP 121上维护一张对应关系表,用来维护保存流表的全局索引号与PMTU的对 应关系。VTEP 121将SDN控制器111下发的Keyl与MTUl保存在该对应关系表中,如表3 所示:
[0100]
Figure CN105991387AD00151
[0101] 表 3
[0102] 对Packetl,VTEP 121在执行SDN控制器下发的VXLAN流表前,在表3中查找是否 有包括该VXLAN流表的全局索引号Keyl的表项,得到与Keyl对应的PMTU--MTUl ;VTEP 121判断Packetl报文的长度加上VXLAN封装的长度(本例中设VXLAN封装的长度为50字 节)后是否超过MTUl对应的报文长度(MTU1+14字节),如果超过则按照(MTU1-50)字节对 Packetl的链路层载荷进行分片,之后对分片报文执行该VXLAN流表;如果不超过则直接对 Packetl执行该VXLAN流表。
[0103] 后续VTEP 121收到其他匹配全局索引号为Keyl的流表的报文,则直接执行上述 步骤,根据报文长度与MTUl决定是否分片以及按照VXLAN流表进行处理及转发。该VXLAN 流表老化时,也删除对应关系表中包含Keyl的表项。
[0104] 与上述流程实现对应,本申请还提供了一种应用在SDN控制器上的VXLAN报文传 输装置和一种应用在VTEP上的VXLAN报文传输装置。
[0105] 图5所示为本申请一个例子中的一种VXLAN的报文传输装置,应用于SDN控制器 上,从功能上划分,包括业务报文接收单元、PMTU获取单元和指令下发单元,其中:业务报 文接收单元用于接收源VTEP上传的业务报文;PMTU获取单元用于获取所述源VTEP到所述 业务报文的目的VTEP的VXLAN隧道的PMTU ;指令下发单元用于向源VTEP发送控制表项,指 令所述源VTEP将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文 后,单个VXLAN报文的长度不超过所述PMTU对应的长度值,并将VXLAN报文通过所述VXLAN 隧道发送给目的VTEP。
[0106] -个例子中,所述指令下发单元包括VXLAN流表下发模块和网管配置下发模块, 其中:VXLAN流表下发模块用于通过SDN管理协议向所述源VTEP下发VXLAN流表及其全局 索引标识;所述VXLAN流表用来指令:将从所述业务报文的源节点发送到目的节点的业务 报文封装为VXLAN报文后,通过所述VXLAN隧道发送给目的VTEP ;网管配置下发模块用于 通过网管配置协议向所述源VTEP下发所述VXLAN流表的全局索引标识以及所述PMTU,用来 指令所述源VTEP对匹配具有所述全局索引标识的流表的业务报文,在执行所述流表前,将 封装为VXLAN报文后长度超过所述PMTU对应的长度值的业务报文分片,使得将业务报文分 片后的报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述PMTU对应的长度值。
[0107] 所述PMTU获取单元获取所述源VTEP到目的VTEP的VXLAN隧道的PMTU的一种具 体方式,包括:
[0108] 向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接 收到的ICMP差错控制报文;
[0109] 向所述源VTEP下发PMTU探测流表并启动定时器,所下发的PMTU探测流表用来指 令:向目的VTEP发送MTU为指定值的不可分片探测报文;
[0110] 如果在定时器到时前收到所述源VTEP上传的因所述探测报文不允许分片导致目 的地不可达的ICMP差错控制报文,向所述源VTEP下发PMTU探测流表并重置定时器;所下 发的PMTU探测流表用来指令:向目的VTEP发送MTU为接收的ICMP差错控制报文中所携带 的MTU的不可分片探测报文;重复本步骤直到定时器定时到;
[0111] 如果定时器到时前从所述源VTEP收到因探测报文不允许分片导致目的地不可达 的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU为从源VTEP到目的 VTEP的VXLAN隧道的PMTU ;否则以指定值为从源VTEP到目的VTEP的VXLAN隧道的PMTU。
[0112] 所述PMTU获取单元获取所述源VTEP到目的VTEP的VXLAN隧道的PMTU的另一种 具体方式,包括:
[0113] 向所述源VTEP下发控制报文上传流表,所述控制报文上传流表用来指令:上传接 收到的ICMP差错控制报文和对探测报文的响应报文;
[0114] 向所述源VTEP下发PMTU探测流表,所下发的PMTU探测流表用来指令:向目的 VTEP发送MTU为指定值且不可分片的探测报文;
[0115] 如果收到所述源VTEP上传的因探测报文不允许分片导致目的地不可达的ICMP差 错控制报文,向所述源VTEP下发PMTU探测流表;所下发的PMTU探测流表用来指令:向目的 VTEP发送MTU为接收的ICMP差错控制报文中所携带的MTU且不可分片的探测报文;
[0116] 如果收到对所述探测报文的响应报文前从所述源VTEP收到因探测报文不允许分 片导致目的地不可达的ICMP差错控制报文,以最后收到的ICMP差错控制报文中携带的MTU 为从源VTEP到目的VTEP的VXLAN隧道的PMTU ;否则以指定值为从源VTEP到目的VTEP的 VXLAN 隧道的 PMTU。
[0117] 上述方式中,所述探测报文包括:ICMP请求报文;对所述探测报文的响应报文包 括:ICMP响应报文。
[0118] -个例子中,所述装置还可以包括非重点流量处理单元,用于在获取所述源VTEP 到所述目的VTEP的VXLAN隧道的PMTU之前,根据预定条件判断所述业务报文是否属于重 点流量,如果所述业务报文不属于重点流量,向所述源VTEP下发VXLAN流表;所述VXLAN 流表用来指令:将从所述业务报文的源节点发送到目的节点的业务报文封装为VXLAN报文 后,通过VXLAN隧道发送给目的VTEP。
[0119] 图6所示为本申请一个例子中的一种VXLAN的报文传输装置,应用在VXLAN隧 道终点VTEP上,包括控制表项接收单元和控制表项执行单元,其中:控制表项接收单元用 于接收软件定义网络SDN控制器下发的控制表项;所述控制表项中包括所述VTEP到目的 VTEP的VXLAN隧道的路径最大传输单元PMTU ;控制表项执行单元用于依据控制表项,将接 收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度不超过所述 PMTU对应的长度值,并将VXLAN报文通过所述VXLAN隧道发送给目的VTEP。
[0120] -个例子中,所述控制表项接收单元接收SDN控制器下发的控制表项,可以包括: 接收SDN控制器通过SDN管理协议下发的VXLAN流表及其全局索引标识;接收SDN控制器 通过网管配置协议下发的PMTU及其对应的全局索引标识;所述控制表项执行单元依据控 制表项,将接收的该控制表项对应的业务报文封装为VXLAN报文后,单个VXLAN报文的长度 不超过所述PMTU对应的长度值,可以包括:当接收的业务报文匹配于具有所述全局索引标 识的VXLAN流表时,在执行所述流表前,将封装为VXLAN报文后长度超过所述PMTU对应的 长度值的业务报文分片,使得将分片后的业务报文封装为VXLAN报文后,单个VXLAN报文的 长度不超过所述PMTU对应的长度值。
[0121] 所述装置还可以包括探测流表接收单元和探测流表执行单元,其中:探测流表接 收单元用于接收SDN控制器下发的至少一个PMTU探测流表,根据所述PMTU探测流表,向指 定的目的地址发送不可分片的探测报文,来进行到所述目的地址的PMTU探测;所述探测报 文的长度长度对应于指定值或按照指定规则确定;探测流表执行单元用于执行所述PMTU 探测流表,如果收到互联网控制报文协议ICMP差错控制报文和/或对所述探测报文的响应 报文,则上报SDN控制器。
[0122] 本申请实施例的上述两种VXLAN的报文传输装置可以是软硬件结合的可编程设 备,这两种VXLAN的报文传输装置的硬件架构示意图具体可以参见图7。图7为本申请实施 例提供的包含VXLAN的报文传输装置的设备的硬件结构示意图。该设备包括:机器可读存 储介质、CPU (Central Process Unit,中央处理器),其中:
[0123] 机器可读存储介质:存储指令代码;所述指令代码被CPU执行时完成的操作主要 为VXLAN的报文传输装置完成的功能。
[0124] CPU:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令 代码,完成上述VXLAN的报文传输装置完成的功能。
[0125] 机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或 存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动 器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组 合。另外,本文所描述的任一机器可读存储介质都可以是非暂时性的。
[0126] 以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精 神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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控制器。
CN201510046196.2A 2015-01-29 2015-01-29 虚拟扩展局域网的报文传输方法和装置 CN105991387A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510046196.2A CN105991387A (zh) 2015-01-29 2015-01-29 虚拟扩展局域网的报文传输方法和装置

Applications Claiming Priority (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

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 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 (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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报文处理方法、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532672A (zh) * 2013-10-22 2014-01-22 芮雄丽 一种sdn网络中分片报文乱序的处理方法及应用

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103532672A (zh) * 2013-10-22 2014-01-22 芮雄丽 一种sdn网络中分片报文乱序的处理方法及应用

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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 (9)

* Cited by examiner, † Cited by third party
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 佛山易识科技有限公司 基于虚拟可扩展局域网的多虚拟通道智能选路方法
WO2018196349A1 (zh) * 2017-04-28 2018-11-01 烽火通信科技股份有限公司 一种基于sdn实现静态路由隧道的系统及方法
CN106998285A (zh) * 2017-04-28 2017-08-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报文处理方法、装置及存储介质
CN108282391A (zh) * 2018-01-11 2018-07-13 新华三技术有限公司 一种vxlan报文分片方法和装置

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
EP3304815B1 (en) Operations, administration and management (oam) in overlay data center environments
US9923732B2 (en) Virtual gateways and implicit routing in distributed overlay virtual environments
US9917792B2 (en) Virtualized application acceleration infrastructure
US10862732B2 (en) Enhanced network virtualization using metadata in encapsulation header
US10069646B2 (en) Distribution of tunnel endpoint mapping information
US9325615B2 (en) Method and apparatus for implementing communication between virtual machines
US10382331B1 (en) Packet segmentation offload for virtual networks
US10171357B2 (en) Techniques for managing software defined networking controller in-band communications in a data center network
US9923815B2 (en) Network based service function chaining on top of rack switches
US9858104B2 (en) Connecting fabrics via switch-to-switch tunneling transparent to network servers
US9602307B2 (en) Tagging virtual overlay packets in a virtual networking system
US9912612B2 (en) Extended ethernet fabric switches
US9602375B2 (en) Tracing host-originated logical network packets
US9590907B2 (en) Service chaining in a cloud environment using software defined networking
US9654409B2 (en) Method for scaling address lookups using synthetic addresses
US9800502B2 (en) Quantized congestion notification for computing environments
US9356866B1 (en) Receive packet steering for virtual networks
CN105706398B (zh) 重叠网络中的虚拟端口信道弹回的方法和系统
US9698995B2 (en) Systems and methods for providing multicast routing in an overlay network
US9438512B2 (en) Stacking metadata contexts for service chains
JP5913536B2 (ja) ネットワーク・スイッチを構成するための方法
JP5890595B2 (ja) 仮想クラウドインフラストラクチャへの仮想セキュリティ装置アーキテクチャの提供
US9385950B2 (en) Configurable service proxy local identifier mapping
CN105049360B (zh) 用于促进互连交换机的网络中的交换机虚拟化的方法和系统
CN104243269B (zh) 一种虚拟扩展局域网报文的处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C10 Entry into 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.

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