一种mtu探测方法及装置的制造方法

文档序号:8285091阅读:257来源:国知局
一种mtu探测方法及装置的制造方法
【技术领域】
[0001 ] 本发明涉及通信技术领域,尤其涉及一种MTU探测方法及装置。
【背景技术】
[0002]在VXLAN(Virtual Extensible Local Area Network,虚拟扩展局域网)中,源主机和目标主机可利用由两端的虚拟转发设备搭建的隧道进行数据报文交互,该隧道中存在中间转发设备。由于VXLAN协议不允许将数据报文分片,因此当源主机向目标主机发送数据报文时,若该数据报文的长度大于中间转发设备的MTU (Maximum Transmiss1n Unit,最大传输单元)值,则会导致该数据报文被中间转发设备丢弃。因此源主机在发送数据报文前需要探测中间转发设备的MTU值,再根据该MTU值调整发送数据报文的长度,以使该数据报文能够顺利通过中间转发设备。
[0003]然而在现有技术中,源端虚拟转发设备在转发源主机的MTU探测报文时,会对该MTU探测报文添加VXLAN类型的封装字段,将MTU探测报文的源地址改为源端虚拟转发设备的地址,因此当中间转发设备反馈携带自身MTU值的差错报文时,该差错报文会被转发到源端虚拟转发设备,而非源端虚拟机。因此导致源端虚拟机无法获取到中间转发设备的MTU值,从而影响源虚拟机上数据报文的正常发送。

【发明内容】

[0004]有鉴于此,本发明提供一种MTU探测方法及装置来解决VXLAN中的源端虚拟机无法获取中间转发设备MTU值的问题。
[0005]具体地,本发明是通过如下技术方案实现的:
[0006]一种最大传输单元MTU探测方法,所述方法应用于VXLAN中的SDN控制器,所述SDN控制器分别与源端虚拟转发设备、目的端虚拟转发设备相连,所述方法包括:
[0007]接收所述源端虚拟转发设备上送的,由下挂于该源端虚拟转发设备的虚拟机发送的第一 MTU探测报文;
[0008]对所述第一 MTU探测报文添加封装字段,并将封装后的第一 MTU探测报文发送至所述源端虚拟转发设备,以使所述源端虚拟转发设备将所述封装后的第一 MTU探测报文发送至所述目的端虚拟转发设备;
[0009]向所述源端虚拟转发设备下发控制策略,以使所述源端虚拟转发设备在收到所述中间转发设备根据封装后的第一 MTU探测报文反馈的第一差错报文时,将所述第一差错报文上送到所述SDN控制器;
[0010]当收到所述第一差错报文时,根据所述第一差错报文计算所述中间转发设备的实际MTU值;
[0011]将所述实际MTU值发送至所述虚拟机。
[0012]进一步的,所述向所述源端虚拟转发设备下发控制策略,包括:
[0013]向所述源端虚拟转发设备下发包含匹配字段的第一流表,以使所述源端虚拟转发设备将符合所述匹配字段的所述第一差错报文上送到所述SDN控制器。
[0014]进一步的,在接收所述源端虚拟转发设备上送的所述第一 MTU探测报文后,所述方法还包括:
[0015]提取所述第一 MTU探测报文的报文信息;
[0016]根据所述报文信息生成第二流表;
[0017]所述向所述源端虚拟转发设备下发控制策略,还包括:
[0018]向所述源端虚拟转发设备下发所述第二流表,以使所述源端虚拟转发设备在收到所述虚拟机发送的携带所述报文信息的第二 MTU探测报文时,根据所述第二流表将所述第二 MTU探测报文转发至所述目的端虚拟转发设备。
[0019]进一步的,所述将所述实际MTU值发送至所述虚拟机,包括:
[0020]控制所述源端虚拟转发设备删除所述第二流表,以使所述源端虚拟转发设备在收到所述虚拟机发送的携带所述报文信息的第三MTU探测报文时,将所述第三MTU探测报文上送到所述SDN控制器;
[0021]获取所述第三MTU探测报文中的指定字段;
[0022]将所述指定字段与所述实际MTU值添加至第二差错报文后,将所述第二差错报文发送至所述虚拟机。
[0023]进一步的,所述根据所述第一差错报文计算所述实际MTU值,包括:
[0024]获取所述第一差错报文中携带的所述中间转发设备的原始MTU值;
[0025]用所述原始MTU值减去所述封装字段的大小得到所述实际MTU值。
[0026]基于相同的构思,本发明还提供一种MTU探测装置,所述装置应用于VXLAN中的SDN控制器,所述SDN控制器连接多个虚拟转发设备,所述SDN控制器分别与源端虚拟转发设备、目的端虚拟转发设备相连,所述装置包括:
[0027]报文接收单元,用于接收所述源端虚拟转发设备上送的,由下挂于该源端虚拟转发设备的虚拟机发送的第一 MTU探测报文;
[0028]第一发送单元,用于对所述第一 MTU探测报文添加封装字段,并将封装后的第一MTU探测报文发送至所述源端虚拟转发设备,以使所述源端虚拟转发设备将所述封装后的第一 MTU探测报文发送至所述目的端虚拟转发设备;
[0029]策略下发单元,用于向所述源端虚拟转发设备下发控制策略,以使所述源端虚拟转发设备在收到所述中间转发设备根据封装后的第一 MTU探测报文反馈的第一差错报文时,将所述第一差错报文上送到所述SDN控制器;
[0030]MTU计算单元,用于在收到所述第一差错报文时,根据所述第一差错报文计算所述中间转发设备的实际MTU值;
[0031]第二发送单元,用于将所述实际MTU值发送至所述虚拟机。
[0032]进一步的,所述策略下发单元,具体用于向所述源端虚拟转发设备下发包含匹配字段的第一流表,以使所述源端虚拟转发设备将符合所述匹配字段的所述第一差错报文上送到所述SDN控制器。
[0033]进一步的,所述装置还包括:
[0034]信息提取单元,用于在接收所述源端虚拟转发设备上送的所述第一 MTU探测报文后,提取所述第一 MTU探测报文的报文信息;
[0035]信息添加单元,用于根据所述报文信息生成第二流表;
[0036]所述策略下发单元,还用于向所述源端虚拟转发设备下发所述第二流表,以使所述源端虚拟转发设备在收到所述虚拟机发送的携带所述报文信息的第二 MTU探测报文时,根据所述第二流表将所述第二 MTU探测报文转发至所述目的端虚拟转发设备。
[0037]进一步的,所述第二发送单元,包括:
[0038]流表删除子单元,用于控制所述源端虚拟转发设备删除所述第二流表,以使所述源端虚拟转发设备在收到所述虚拟机发送的携带所述报文信息的第三MTU探测报文时,将所述第三MTU探测报文上送到所述SDN控制器;
[0039]字段获取子单元,用于获取所述第三MTU探测报文中的指定字段;
[0040]报文发送子单元,用于将所述指定字段与所述实际MTU值添加至第二差错报文后,将所述第二差错报文发送至所述虚拟机。
[0041]进一步的,所述MTU计算单元,具体用于获取所述第一差错报文中携带的所述中间转发设备的原始MTU值;用所述原始MTU值减去所述封装字段的大小得到所述实际MTU值。
[0042]由此可见,本发明可以通过SDN控制器向源端虚拟转发设备下发控制策略,使源端虚拟转发设备在收到中间转发设备反馈的第一差错报文时,将第一差错报文上送到SDN控制器,以使SDN控制器根据第一差错报文计算中间转发设备的实际MTU值,并将实际MTU值发送至源端虚拟机。因此,源端虚拟机可以获取所述中间转发设备的实际MTU值,从而保证数据报文的正常发送。
【附图说明】
[0043]图1是本发明一种示例性实施方式中的VXLAN架构图;
[0044]图2是本发明一种示例性实施方式中的MTU探测方法的处理流程图;
[0045]图3是本发明一种示例性实施方式中的MTU探测方法的交互流程图;
[0046]图4是本发明一种示例性实施方式中的差错报文格式示意图;
[0047]图5是本发明一种示例性实施方式中的MTU探测装置所在的SDN控制器的硬件结构图;
[0048]图6是本发明一种示例性实施方式中的MTU探测装置的逻辑结构图。
【具体实施方式】
[0049]请参见图1,是本发明一种示例性实施方式中的VXLAN架构图,VXLAN中包括虚拟机VMl和VM2,以及分别位于主机两端的虚拟转发设备VSwitch (Virtual Switch,虚拟交换机)I和VSwitch2。VSwitchl跨过中间转发设备与VSwitch2架设隧道(如图1中虚线所示),从而实现VMl和VM2的远距离通信。上述VXLAN中还设置有SDN(Software DefinedNetwork,软件定义网络)架构,其
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1