一种mtu配置方法和装置

文档序号:1538027 发布日期:2020-02-14 浏览:11次 >En<

阅读说明:本技术 一种mtu配置方法和装置 (MTU configuration method and device ) 是由 温曙光 于 2018-08-01 设计创作,主要内容包括:本申请提出一种MTU配置方法和装置,所述方法包括:根据网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值;如果确定所述网络数据包的数据量小于或者等于所述MTU阈值,向所述目的主机发送所述网络数据包。本申请利用SDN(Software Defined Network,软件定义网络)技术进行流级的MTU优化,可以使得主机在访问公网等网络较复杂的环境中,使用较小的相对安全的MTU,比如1500;主机在访问内部网络时,使用较大的MTU,优化内部传输优化,实现动态MTU优化,是一种实时的调整策略,可以随时根据主机的需要进行调整。有广泛的适用性。(The application provides a method and a device for configuring an MTU (maximum Transmission Unit), wherein the method comprises the following steps: determining an MTU threshold value of a link between the access network equipment and a target host according to the attribute information of the network data packet; and if the data volume of the network data packet is determined to be less than or equal to the MTU threshold value, sending the network data packet to the destination host. The method and the device perform flow-level MTU optimization by using an SDN (Software Defined Network) technology, so that a host can use a smaller and relatively safe MTU (maximum transmission unit), such as 1500, in an environment with more complex Network such as a public Network; when the host accesses the internal network, the large MTU is used, the internal transmission optimization is optimized, the dynamic MTU optimization is realized, and the method is a real-time adjustment strategy and can be adjusted at any time according to the requirements of the host. Has wide applicability.)

一种MTU配置方法和装置

技术领域

本发明涉及通信技术领域,具体涉及一种MTU配置方法和装置。

背景技术

MTU(Maximum Transmission Unit,最大传输单元)是指一次报文传输过程中能够传输的最大的IP(Internet Protocol,网络互连协议)报文长度。在IP网络中,每一跳之间的物理链路,根据其特性具有不同的MTU大小。常见物理链路的MTU,以太网的典型值为1500,PPPOE(Point to Point Protocol over Ethernet,基于以太网的点对点通讯协议)的典型值为1492;还有各种隧道链路的MTU,需要在底层的物理承载链路的MTU上再减去各种隧道头部的大小。

在网络中的主机,它只能感知到下一跳的链路(直连链路)的物理特性,从而自动配置该链路出口的MTU。IP报文在网络中转发时,如果到达下一跳的链路的MTU变小,则路由器需要执行IP分片的操作,把当前的IP报文分成多个IP报文进行传输,使得每个报文的长度都小于或者等于下一跳的链路的MTU。IP报文重组只在目的节点执行。

MTU对网络的性能具有重要影响,MTU越大表明一个IP报文除了头部之外能携带的数据越大,效率越高。因此,网络设备产商一直在致力于提高物理网络的MTU;MTU大于1500的帧,被称为Jumbo frame(巨帧)。常见的巨帧的MTU为9000,也存在其它大小的MTU配置。鉴于网络的复杂性,各种MTU并存是网络发展的现实。

因此,发现从主机到目的主机的链路上的MTU,变成了一件重要的事情。如果MTU配置不合适会浪费网络的性能。如果主机直连链路的MTU设置过小,则不能充分发挥网络的性能和效率;如果主机直连链路的MTU设置过大,则IP报文在转发过程中需要分片和重组,同样耗费网络节点的性能。另外,IP报文的分片会产生更多的数据包,数据包处理速度(packet per second)是目前很多网络设备很敏感的性能指标。

针对该问题,IETF(The Internet Engineering Task Force,国际互联网工程任务组)定义了路径MTU发现(PMTUD,Path MTU Discovery)过程:在IP报文中设置DF(Don’tFragment,不允许分段)位,当路由器转发该报文时,如果该报文大于到下一跳链路的MTU时,则不执行分片操作,丢弃该报文并给源节点发送ICMP fragmentation needed消息(Internet Control Message Protocol,网络控制报文协议)。

但是由于ICMP fragmentation needed经常会被中间的防火墙丢弃,从而破坏了PMTUD,导致PMTUD并不能保证一定成功。

现有技术中,主机的MTU有下面两种方式动态配置方法:

A、静态配置

部分主机的操作系统,可以根据目的地址设置到达该地址的MTU值。比如linux里面可以在配置路由时加上mtu参数:

ip route add 192.168.1.0/24mtu 8000

ip route add default via 192.168.1.254mtu 1500

以上配置了两条路由:当该主机访问192.168.1.0/24网段时,MTU是8000,当访问其它网段时,MTU是1500。这些配置可以写成脚本或者配置文件,放在系统启动时执行。

这种方式比较简单,其弊端在于:

1)需要根据操作系统修改,以适配各种操作系统;

2)需要在每一个主机上配置,比较繁琐;

3)本身是静态的,只能在启动时执行,难以根据环境动态调整。

B、DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)

DHCP协议在下发路由配置时,可以给主机下发路由配置,路由配置可以携带对应路由的MTU参数,达到跟“静态配置”类似的效果。

DHCP是标准的协议,只需要配置相应的协议就可以动态获得。这种方法的弊端在于:

1)路由配置和MTU配置是扩展配置:不是所有的实现(包括服务端和客户端)都支持在静态路由中配置MTU;需要DHCP客户端请求时才会下发;

2)DHCP方法本身是半动态的,只有在DHCP协议启动时才会配置。

发明内容

本申请提供一种MTU配置方法和装置,实现根据主机的需要对MTU进行动态调整。

采取的技术方案如下:

第一方面,本发明提供一种MTU配置方法,包括:

根据网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值;

如果确定所述网络数据包的数据量小于或者等于所述MTU阈值,向所述目的主机发送所述网络数据包。

优选地,所述的方法还包括:

如果确定所述网络数据包的数据量大于所述MTU阈值,丢弃所述网络数据包,并向所述主机反馈网络控制报文分片消息。

优选地,所述方法应用于接入网络设备,所述接入网络设备包括为多个网络节点之间进行网络数据包转发的设备。

优选地,根据网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括:

当根据所述网络数据包的属性确定所述主机访问网络环境大于或者等于预设复杂度的网络时,确定接入网络设备与目的主机链路的MTU为预设缺省值。

优选地,根据网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括:

当根据所述网络数据包的属性确定所述主机访问网络环境小于预设复杂度的网络时,将主机网卡的MTU值设置为主机与接入网络设备链路支持的最大的MTU值;

按照主机与所述接入网络设备链路支持的最大的MTU值接收主机发送的网络数据包。

优选地,所述属性信息包括:所述网络数据包对应的目的地址、所述网络数据包使用的通信协议。

优选地,所述方法还包括:

通过SDN控制器获取主机与接入网络设备链路支持的最大的MTU值。

优选地,根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括以下至少之一:

将与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU缺省值设置为所述MTU阈值;

根据获取的与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU值设置为所述MTU阈值。

第二方面,本发明提供一种MTU配置装置,包括:

确定模块,设置为根据网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值;

发送模块,设置为如果确定所述网络数据包的数据量小于或者等于所述MTU阈值,将向所述目的主机发送所述网络数据包。

优选地,所述的装置还包括:

反馈模块,设置为如果确定所述网络数据包的数据量大于所述MTU阈值,丢弃所述网络数据包,并向所述主机反馈网络控制报文分片消息。

优选地,所述确定模块根据网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括:

当根据所述网络数据包的属性确定所述主机访问网络环境大于或者等于预设复杂度的网络时,确定接入网络设备与目的主机链路的MTU为预设缺省值。

优选地,所述的装置还包括:

配置模块,设置为将主机网卡的MTU值设置为主机与接入网络设备链路支持的最大的MTU值;

接收模块,设置为按照主机与接入网络设备链路支持的最大的MTU值接收主机发送的网络数据包。

优选地,所述配置模块还设置为:

通过SDN控制器获取主机与接入网络设备链路支持的最大的MTU值。

优选地,所述确定模块根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括以下至少之一:

将与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU缺省值设置为所述MTU阈值;

根据获取的与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU值设置为所述MTU阈值。

本申请和现有技术相比,具有如下有益效果:

本申请利用SDN(Software Defined Network,软件定义网络)技术进行流级的MTU优化,可以使得主机在访问公网等网络较复杂的环境中,使用较小的相对安全的MTU,比如1500;主机在访问内部网络时,使用较大的MTU,优化内部传输优化,实现动态MTU优化,是一种实时的调整策略,可以随时根据主机的需要进行调整。有广泛的适用性。

附图说明

图1为本发明实施例的MTU配置方法的流程图;

图2为本发明实施例的确定候选物理机的流程图;

图3为本发明实施例的MTU配置装置的结构示意图。

具体实施方式

下面将结合附图及实施例对本申请的技术方案进行更详细的说明。

需要说明的是,如果不冲突,本申请实施例以及实施例中的各个特征可以相互结合,均在本申请的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

在一种配置中,进行MTU配置的计算设备可包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存(memory)。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。内存可能包括一个或多个模块。

计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM),快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

实施例一

如图1所示,本实施例提供一种MTU配置方法,包括:

S101、根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值;

S102、如果确定所述网络数据包的数据量小于或者等于所述MTU阈值,将向所述目的主机发送所述网络数据包。

本实施例中,S103、如果确定所述网络数据包的数据量大于所述MTU阈值,丢弃所述网络数据包,并向所述主机反馈网络控制报文分片消息。

本实施例描述的方法,利用SDN技术进行流级的MTU优化,当根据所述网络数据包的属性确定所述主机访问网络环境满足预设复杂度的网络时,确定接入网络设备与目的主机链路的MTU为预设缺省值,当根据所述网络数据包的属性确定所述主机访问网络环境小于预设复杂度的网络时,将主机网卡的MTU值设置为主机与接入网络设备链路支持的最大的MTU值;按照主机与所述接入网络设备链路支持的最大的MTU值接收主机发送的网络数据包。

其中,网络环境的复杂程度,可以定性划分,例如公网的网络环境复杂度为满足预设复杂度,内部网络的网络环境复杂度小于预设复杂度,实现在主机访问公网等网络较复杂的环境中,使用较小的相对安全的MTU,比如1500;在主机访问内部网络时,使用较大的MTU,优化内部传输优化;

网络环境的复杂程度,也可以定量划分,例如根据网络环境的节点数和路径数,将网络环境划分为5个复杂程度等级,最复杂的两级,使用较小的相对安全的MTU;其余的网络,使用较大的MTU。

本发明可以实现动态MTU优化,是一种实时的调整策略,可以根据主机的需要进行调整。有更广泛的适用性。

本发明描述了一种动态的MTU的配置方法,允许主机的MTU自适应地调整主机与接入网络设备链路的MTU,这种自适应可以考虑的因素包括但不限于:

1.当前的接入环境;

2.访问的目的地址。

所述方法应用于接入网络设备,所述接入网络设备为两个或者多个网络节点之间进行网络数据包转发的设备。

本实施例中,接入网络设备可以是接入交换机等设备。

所述属性信息包括:所述网络数据包对应的目的地址、所述网络数据包使用的通信协议。

所述方法之前还包括:

通过SDN控制器获取主机与接入网络设备链路支持的最大的MTU值。

将主机网卡的MTU值设置为主机与接入网络设备链路支持的最大的MTU值。

按照主机与接入网络设备链路支持的最大的MTU值接收主机发送的网络数据包。

本实施例的实施主要依赖于一下机制:

1、借助静态配置或者DHCP配置,将网卡的MTU设置为从主机到接入网络设备这一段链路能支持的最大的MTU。

2、在主机的接入网络设备上,根据数据包的属性信息(比如目的地址,协议等)确定MTU的阈值,如果数据包的数据量小于或等于该阈值则直接转发出去;否则向主机发送网络控制报文分片(ICMP MTU fragmentation needed)消息。

如图2所示,典型地动态的MTU配置系统结构示意图,主机通过物理链路连接到接入网络设备接入网络,在网络中存在DHCP服务器协助主机进行网络配置,在步骤S101中,可以利用SDN控制器辅助DHCP服务器、接入网络设备进行相应的决策:

其中,“通过SDN控制器获取主机与接入网络设备链路支持的最大的MTU值”,所述最大的MTU值可以从SDN控制器获得。“根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值”,该步骤可以由SDN控制器辅助执行。

本实施例步骤S101根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括以下至少之一:

将与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU缺省值设置为所述MTU阈值;

根据获取的与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU值设置为所述MTU阈值。

本实施例中,当根据所述网络数据包的属性信息能够确定对应的接入网络设备与目的主机链路的MTU值时,将所述MTU阈值设置为获取的MTU值,当根据所述网络数据包的属性信息无法确定对应的接入网络设备与目的主机链路的MTU值时,将所述MTU阈值设置为缺省值,缺省值一般为1500。

实施例二

如图3所示,本实施例提供一种MTU配置装置,包括:

确定模块,设置为根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值;

发送模块,设置为如果确定所述网络数据包的数据量小于或者等于所述MTU阈值,将向所述目的主机发送所述网络数据包。

本实施例中,所述的装置还包括:

反馈模块,设置为如果确定所述网络数据包的数据量大于所述MTU阈值,向所述主机反馈网络控制报文分片消息。

本实施例中,所述的装置还包括:

配置模块,设置为将主机网卡的MTU值设置为主机与接入网络设备链路支持的最大的MTU值;

接收模块,设置为按照主机与接入网络设备链路支持的最大的MTU值接收主机发送的网络数据包。

本实施例中,所述配置模块还设置为:

通过SDN控制器获取主机与接入网络设备链路支持的最大的MTU值。

本实施例中,所述确定模块根据所述网络数据包的属性信息确定接入网络设备与目的主机链路的MTU阈值包括以下至少之一:

将与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU缺省值设置为所述MTU阈值;

根据获取的与所述网络数据包的属性信息对应的接入网络设备与目的主机链路的MTU值设置为所述MTU阈值。

实施例三

本实施例说明在虚拟网络中,动态的MTU配置的过程:

虚拟机通过VirtualSwitch接入虚拟网络,主机是一台虚拟机,network link是虚拟机与hypervisor(运行虚拟机的服务器)之间的网络IO通路,网络接入设备则是VirtualSwitch。

在考虑到主机迁移等动态场景,如ECS vm,或者docker的热迁移场景下,比如vm从一个大MTU的集群迁移到了另外一个小MTU的集群,那么背景技术中的静态或者半动态的配置方式,存在以下问题:

a.需要适配操作系统

b.不能支持动态场景:一种是虚拟机迁移;另外,如果虚拟机接入的网络的环境发生变化,静态配置需要重新修改系统配置。

通过本发明的动态的MTU配置:

1.主机在访问公网等网络较复杂的环境中,使用较小的相对安全的MTU,比如1500。

2.主机在访问内部网络时,使用较大的MTU,优化内部传输优化。

当主机去访问不同的服务时,其网络能提供的MTU存在如下的优化方案:

访问公网时,虚拟机应该使用较保守的MTU,比如1500等。

访问同虚拟网络的其它虚拟机时,由于使用的是数据中心的内部网络,虚拟机在访问这些服务时,使用能支持的最大的MTU。

同样在,访问云计算中的某些云服务时,如果这些服务跟虚拟机在一个比较近的网络中(比如同一个机房),由于现在机房一般支持较大的MTU(比如2000,甚至9000),虚拟机在访问这些服务时,使用能支持的最大的MTU。

而访问另外一些云服务时,可能这些云服务是在别的数据中心或者通过互联网访问,使用其他的MTU。

因此,可以如下实施本发明:

a.虚拟机启动时,通过DHCP学习到主机与接入网络设备链路能支持的最大MTU(这一步也可以使用静态配置);

b.在VirtualSwitch上,增加如下过程:

在收到数据包时,根据IP报文中的目的地址和虚拟机的网络配置,在VirtualSwitch中维护一张目的地址与最大数据包大小的关系表,如果数据包的大小超过了其目的地址配置的最大数据包,发送ICMP fragmentation needed消息并丢弃数据包。

满足描述的功能,该表可以如下构造:

Figure BDA0001751030990000111

应用本发明实施例的方法,将实际MTU的系统配置,利用TCP/IP协议中标准的PMTUD的机制,将其从操作系统内部配置移出到外部的接入网络设备上,从而增加了配置的动态性、中心化、标准化:

允许主机给接入网络设备发送更大的数据包。

允许网络动态控制主机到其它的IP主机的MTU。

进一步地,该方法不是在网络的主机上实施的,而是在主机的接入网络设备(物理的或者虚拟的)、或者网关是实施的。特别地,在云计算环境中,在主机接入的虚拟交换机上实施该方法,该策略100%地在主机的流量上执行,从而保证其可靠性。

可以保证普适性和兼容性:本发明实施例的方法利用标准的IP协议,不需要改动主机上的软件,因此具有普适性。另外,由于利用的是标准协议,该方法具有良好的兼容性,可以跟其它的方法共存。

本发明实施例的方法调整的是从某个出口链路到达某个地址的流量(网络流)的MTU,相对其它方法,本发明揭露的方法控制的粒度要更精细。

本发明实施例的方法可以利用SDN的方法来控制MTU:它联合了DHCP、接入设备的控制、控制系统共同执行。另外,由于SDN控制系统有主机所在网络的全貌信息,允许SDN控制系统做最优的决策。

虽然本发明所揭示的实施方式如上,但其内容只是为了便于理解本发明的技术方案而采用的实施方式,并非用于限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭示的核心技术方案的前提下,可以在实施的形式和细节上做任何修改与变化,但本发明所限定的保护范围,仍须以所附的权利要求书限定的范围为准。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种报文传输方法及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!