一种对虚拟网络隧道加速的方法及系统的制作方法_2

文档序号:8365331阅读:来源:国知局
隧道加速端点130、155、150位于以太网110上,隧道加速端点135、140和隧道端点145位于以太网115上,以太网110、115通过路由器120进行IP报文三层转发。
[0047]如图1所示,当隧道加速端点130、155收到指令建立一条基于UDP封装的VXLAN隧道时,它们会开始建立基于以太网封装的VXLAN隧道的过程,由于130、155位于同一个以太网广播域110,最终基于以太网封装的VXLAN隧道会建立成功用于替换基于UDP的VXLAN隧道,从而大大提升网络带宽利用率和性能,同时由于VXLAN所有的元数据也包含在以太网隧道中,基于隧道的网络解决方案不用任何的业务逻辑修改。
[0048]如图1所示,当隧道加速端点130和135收到指令建立一条基于UDP封装的VXLAN时,由于两隧道端点不在同一以太网广播域,基于以太网封装的VXLAN无法建立,还是会继续使用基于m)P封装的VXLAN隧道。
[0049]如图1所示,当隧道加速端点140和隧道端点145收到建立一条基于UDP封装的VXLAN时,由于隧道端点145不支持VXLAN隧道在以太网封装,最终还是会使用基于UDP封装的VXLAN隧道。该方法保证了很好的与非隧道加速端点的兼容性。
[0050]图2从概念上描述了根据本发明各种实施例的隧道加速端点的模块图,在隧道端点的基础上,增加了以太网封装解封装器205,以太网隧道控制器210,以及以太网隧道检测器216。各种隧道类型的解释器不用任何修改。以太网封装解封装器205用于对数据链路上的以太网封装隧道报文进行封装和解封装。以太网隧道控制器210用于发送、接收和处理以太网隧道控制报文,维护所有以太网隧道的状态,并接收用于日常维护的命令如以太网隧道重建连接,终止以太网隧道等。以太网隧道检测器216通过BFD在以太网的封装用于周期性检测隧道的连通性。
[0051]图3描述了根据本发明各种实施例的VXLAN、NVGRE, GRE以及GENEVE的以太网封装格式,其中以太网VXLAN类型305、以太网NVGRE类型310、以太网GRE类型315和以太网GENEVE类型320还未从IEEE RAC获得,建议将这些类型实现为可配置的。
[0052]在本实施例中,以太网隧道的自动建立、切换过程通过在隧道端点间交互以太网隧道控制报文实现,控制报文包括连接请求、连接确认和连接拒绝报文。
[0053]图4描述了以太网隧道控制报文格式。以太网隧道控制报文类型425还未从IEEERAC获得,建议将该类型实现为可配置的。
[0054]vers1n字段435 (2比特):版本信息。
[0055]长度字段440 (6比特):以4字节的倍数标示整个控制报文的长度,控制报文最长为256字节。该长度包含控制报文报头长度,未4字节对齐的以O补齐。
[0056]隧道类型445 (4 比特):I 为 VXLAN,2 为 NVGRE,3 为 GRE,4 为 GENEVE。
[0057]REQ位460 (I比特):标示该控制报文为连接请求报文。
[0058]ACK位455 (I比特):标示该控制报文为连接确认报文。
[0059]RST位450 (I比特):标示该控制报文为连接拒绝报文。
[0060]REQ位与ACK位可以出现在同一控制报文中,RST不能与REQ或ACK位出现在同一控制报文中。
[0061]TLV opt1ns字段465:用于携带可变长的选项。
[0062]图5描述了以太网隧道控制报文的TLV选项格式。
[0063]type字段505 (4比特):标示选项类型。
[0064]length字段510 (4比特):标示可变长value字段515的长度,最长为16字节。可变长value (可变长):包含该选项的数据。
[0065]以上描述了以太网隧道封装格式以及以太网隧道控制协议格式,接下来将描述以太网隧道创建的相关过程。
[0066]图6描述了根据本发明实施例的隧道创建流程。过程600从配置隧道端点IP(605)开始,然后开始创建隧道,指定隧道类型和对端IP (610)。VXLAN、NVGRE, GRE和GENEVE基于IP或UDP封装的隧道建立只是一个配置过程,无需隧道端点之间交换任何控制报文,所以经过步骤610,该类型基于IP或UDP的隧道实际已建立完成。接下来如果该隧道端点支持该隧道类型的以太网封装(615),则会开始对应类型的以太网隧道的创建流程(625)。如果还有多条隧道建立(620),则重复该过程回到步骤610。由此也可以看出,该流程对隧道使用者完全透明,其创建隧道的过程与无以太网加速之前完全一样。
[0067]图7、8描述了根据本发明实施例的以太网隧道控制器维护的内部状态表。
[0068]图7描述本地以太网隧道控制器支持的基于以太网封装的隧道类型。如表700所示,该隧道控制器支持VXLAN、NVGRE和GENEVE三种隧道类型基于以太网的封装,该表用于步骤615判断是否进入以太网隧道创建流程。
[0069]图8描述了以太网隧道控制器如何管理以太网隧道的状态。每一条经过步骤625的以太网隧道都会在该表中维护对应的一条记录,当隧道被删除时,该表中相应的记录也会被删除。
[0070]隧道类型(805):标示隧道类型。
[0071]对端IP (810):隧道对端IP地址。
[0072]同子网(815):标示对端是否与本端在同一子网,这是隧道控制器根据本地路由表计算得到。如果不为同一子网,则不会继续以太网隧道的创建,该记录余下的字段都为N/A,除了是否使用(850)列为否,如记录875所示。
[0073]对端MAC (820):标示对端MAC地址,隧道控制器先查询本地ARP缓存是否有对端IP地址的条目,如果没有,则会主动发出ARP请求以获得MAC地址。当网络中存在ARP proxy时,可能会存在多条记录具有相同的对端MAC,这不影响隧道控制器的正确性,因为隧道控制器不会收到含有该MAC地址为源地址的以太网隧道控制报文。
[0074]模式(825):标示隧道的工作模式,主要给管理员提供额外手段用于手动切换或重建隧道。
[0075]“强制不允许”表示该隧道不再进行以太网隧道加速,如记录865所示,该记录余下字段都为N/A,除了是否使用(850)列为否。
[0076]“强制允许”表示不经过协商过程强制建立以太网隧道,该记录余下字段都为N/A,除了链路状态(845)列会显示隧道连接检测结果,是否使用(850)列为“是”,如记录870所不O
[0077]本实施例中的“强制允许”和“强制不允许”模式给系统管理员提供了一种调试、维护手段。
[0078]“协商一次”表示会为该隧道进行一次主动隧道建立过程,如果失败不再尝试。主动建立失败的隧道还会接收对端发来的建立请求,这种情况下以太网隧道还是可能会成功建立。第一次主动建立以太网隧道失败可能是因为在隧道两端接收到创建隧道指令的异步过程造成的超时。这种模式下,尝试间隔(830)列为N/A,如记录860所示。
[0079]“周期尝试”表示如果隧道状态为CLOSED状态,在尝试间隔(830)标示的时间后会重新尝试建立以太网隧道。如记录855所示。
[0080]“协商一次”与“周期尝试”模式的选择主要取决于对物理以太网可靠性的判断。“协商一次”模式可以避免隧道加速端点重复性的尝试与非隧道加速端点建立以太网隧道,但如果正好在建立过程中以太网出现故障,以太网隧道将无法建立。采用“周期尝试”模式会导致不必要的重试,但控制报文数量非常少,对于网络的影响几乎可以忽略。
[0081]尝试周期(830):标示重新发起建立以太网隧道的时间间隔,只在模式(825)为“周期尝试”的情况下有效,如记录855所示。
[0082]握手状态(835):标示自动协商建立以太网隧道的状态,具体状态在状态机(900)中有详细描述。
[0083]切换窗口结束(840):标示从隧道状态为ESTABLISHED开始的切换窗口时间是否超时,在该切换窗口时间内,该隧道端点将同时接收IP或UDP的封装以及以太网的封装,该窗口结束后,只接收以太网的封装,如果还收到IP或UDP的封装,视为两隧道端点状态不同步,开始新一轮以太网隧道创建过程。
[0084]链路状态(845):显示以太网隧道链路检测器返回的结果。
[0085]是否使用(850):用于表明该隧道是否可用,“强制允许”模式的隧道该字段一直为“是”,“周期尝试”和“协商一次”模式的隧道,只有当握手状态(835)为ESTABLISHED时,该字段才为“是”。
[0086
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1