一种路由追踪方法以及设备

文档序号:1508525 发布日期:2020-02-07 浏览:30次 >En<

阅读说明:本技术 一种路由追踪方法以及设备 (Route tracking method and equipment ) 是由 陈焕银 赵海峰 于 2019-10-25 设计创作,主要内容包括:本发明提供了一种路由追踪方法和设备,该设备确定对收到的ICMP回应请求报文进行三层转发;将收到的ICMP回应请求报文的生存时间减1;当收到的第二收到的ICMP回应请求报文修改后的生存时间不等于0,为第一收到的ICMP回应请求报文重新封装以太网以及VXLAN封装;收到的ICMP回应请求报文修改后的生存时间复制到其VXLAN封装的生存时间用以指示通过VXLAN隧道转发ICMP回应请求报文的路由转发跳数。(The invention provides a route tracking method and a device, wherein the device determines to carry out three-layer forwarding on a received ICMP response request message; subtracting 1 from the survival time of the received ICMP response request message; when the modified survival time of the second received ICMP response request message is not equal to 0, the Ethernet and VXLAN encapsulation is encapsulated again for the first received ICMP response request message; the modified survival time of the received ICMP echo request message is copied to the survival time encapsulated by the VXLAN so as to indicate the route forwarding hop number for forwarding the ICMP echo request message through the VXLAN tunnel.)

一种路由追踪方法以及设备

技术领域

本发明涉及技术,具体地讲是一种路由追踪方法以及设备。

背景技术

VXLAN(虚拟可扩展局域网,Virtual Extensible Local Area Network)技术将已有的三层物理网络作为Underlay(下层)网络,在其上构建出虚拟的二层网络,即Overlay(上层)网络。Overlay网络通过封装技术、利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,Underlay网络是透明的,同一租户的不同站点就像工作在一个局域网中。

在VXLAN EVPN(以太网虚拟专用网,Ethernet Virtual Private Network)分布式网关组网中,各站点的VTEP(虚拟隧道终结点,Virtual Tunnel End Point)作为网关(GW,Gateway)且配置VSI(虚拟交换实例,Virtual Switch Instance)虚接口;每个VSI虚接口的IP地址和MAC地址是该VSI的网关的IP地址和MAC地址。在VXLAN EVPN中,不同网关上相同VSI虚接口的必须配置相同的IP地址和MAC地址。在VXLAN EVPN的分布式网关架构中,当用户终端需要检测同一VSI的到达不同站的相同VSI。

目前,VXLAN EVPN内还未提供有效的机制用以实现源用户终端通过路由跟踪来检测到达目的用户终端之间的路由路径。原因是,网关收到本地源用户终端的ICMP(InternetControl Message Protocol)Echo Request(回应请求)报文,根据公共VSI的VXLAN隧道进行封装后发往目的用户终端的网关。但是,VXLAN隧道上的中间设备依据VXLAN协议,会查找到达外层目的IP地址的下一跳来修改VXLAN头外的外层以太网头,而不会解析内层的ICMPEcho Request。这样VXLAN隧道上的中间设备以及用户终端的网关无法获取内层ICMP EchoRequest请求报文的TTL(生存时间)而无法反馈用于路由追踪的ICMP超时报文;并且用户终端的网关解除VXLAN封装后的ICMP Echo Request报文的TTL由于未经修改,目的终端也无法反馈ICMP Echo Reply(响应)执行路由跟踪。

发明内容

本发明的目的在于提供一种路由追踪方法以及设备,用以指示路由追踪协议报文在虚拟可扩展局域网络VXLAN隧道上被转发的路由跳数,以实现VXLAN隧道两端的用户终端之间的路由追踪。

为实现上述目的,本发明提供了一种路由追踪方法,其该方法包括:

确定对第一收到的ICMP回应请求报文进行三层转发;

将第一收到的ICMP回应请求报文的生存时间减1;

当第一收到的ICMP回应请求报文修改后的生存时间等于0,生成第一ICMP超时报文,其中,源IP地址为网关IP地址,目的IP地址为ICMP回应请求报文的源IP地址;源MAC地址为网关MAC地址,目的MAC地址为ICMP超时报文的目的IP地址对应的MAC地址;通过第一生成的ICMP超时报文的目的MAC地址对应的出端口转发;

当第一收到的ICMP回应请求报文修改后的生存时间不等于0,为第一收到的ICMP回应请求报文重新封装以太网头;其中,第一收到的ICMP回应请求报文的重新封装以太网头的源MAC地址和目的MAC地址分别是公共交换实例中本地MAC地址和目的端网关MAC地址;以本地IP地址和目的端网关的IP地址为重新封装的第一收到的ICMP回应请求报文进行第一VXLAN封装;其中,第一VXLAN封装中的外层源IP是本地IP地址;外层目的IP地址是目的端网关IP地址;将第一收到的ICMP回应请求报文修改后的生存时间复制到第一VXLAN封装的生存时间用以指示通过VXLAN隧道转发ICMP回应请求报文的路由转发跳数;通过第一VXLAN封装的ICMP回应请求报文的隧道出端口转发。

为实现上述目的,本发明还提供了一种路由追踪设备,包括交换芯片,处理器、存储有计算机指令的存储器以及多个接口,其中,交换芯片,确定对第一收到的ICMP回应请求报文进行三层转发,将第一收到的ICMP回应请求报文送往处理器;

处理器执行存储器中存储的计算机指令,将第一收到的ICMP回应请求报文的生存时间减1;当第一收到的ICMP回应请求报文修改后的生存时间等于0,生成第一ICMP超时报文,其中,源IP地址为网关IP地址,目的IP地址为ICMP回应请求报文的源IP地址;源MAC地址为网关MAC地址,目的MAC地址为ICMP超时报文的目的IP地址对应的MAC地址;将第一生成的ICMP超时报文送往交换芯片;当第一收到的ICMP回应请求报文修改后的生存时间不等于0时,为第一收到的ICMP回应请求报文重新封装以太网头;其中,第一收到的ICMP回应请求报文的重新封装以太网头的源MAC地址和目的MAC地址分别是公共交换实例中本地MAC地址和目的端网关MAC地址;以本地IP地址和目的端网关的IP地址为重新封装的第一收到的ICMP回应请求报文进行第一VXLAN封装;其中,第一VXLAN封装中的外层源IP是本地IP地址;外层目的IP地址是目的端网关IP地址;将第一收到的ICMP回应请求报文修改后的生存时间复制到第一VXLAN封装的生存时间用以指示通过VXLAN隧道转发ICMP回应请求报文的路由转发跳数;将第一VXLAN封装的ICMP回应请求报文发往交换芯片;

交换芯片,通过第一生成的ICMP超时报文的目的MAC地址对应的出端口转发以及通过第一VXLAN封装的ICMP回应请求报文的隧道出端口转发。

本发明的有益效果在于,VXLAN隧道上的中间设备以及目的端网关能够获取和修改ICMP回应请求报文在VXLAN隧道上的转发跳数,从而能够使中间设备以及目的端网关能够在ICMP回应请求报文在VXLAN隧道的正确路由跳数而反馈ICMP回应响应报文,并且目的端网关能够根据ICMP回应请求报文在VXLAN隧道上被转发的正确路由跳数更正发往目的用户终端的ICMP回应请求报文的生存时间,从而实现VXLAN隧道两端的用户终端之间的路由追踪。

附图说明

图1为本发明实施例提供的路由追踪方法的流程示意图;

图2为本发明应用的网络架构示意图;

图3A-3B为本发明实施例提供的路由追踪的报文转发第一示意图;

图4A-4B为本发明实施例提供的路由追踪的报文转发第二示意图;

图5为本发明实施例提供的路由追踪的报文转发第三示意图;

图6为实施例提供路由追踪设备的架构示意图。

具体实施方式

将以多个附图所示的多个例子进行详细说明。在以下详细描述中,多个具体细节用于提供对本公开的全面理解。实例中没有详细地描述已知的方法、步骤、组件以及电路,以免使这些例子的难于理解。

使用的术语中,术语“包括”表示包括但不限于;术语“含有”表示包括但不限于;术语“以上”、“以内”以及“以下”包含本数;术语“大于”、“小于”表示不包含本数。术语“基于”表示至少基于其中一部分。

图1所示,本发明提供的路由追踪方法包括以下步骤:

步骤101,确定对收到的ICMP回应请求报文进行三层转发;

步骤102,将收到的ICMP回应请求报文的生存时间减1;

步骤103,判断收到的ICMP回应请求报文修改后的生存时间是否等于0,是,执行步骤104;否,执行步骤106;

步骤104,生成ICMP超时报文。

生成的ICMP超时报文中,源IP地址为网关IP地址,目的IP地址为ICMP回应请求报文的源IP地址;源MAC地址为网关MAC地址,目的MAC地址为ICMP超时报文的目的IP地址对应的MAC地址;

步骤105,通过ICMP超时报文的目的MAC地址对应的出端口转发;

步骤106,为ICMP回应请求报文重新封装以太网头。

ICMP回应请求报文的重新封装以太网头的源MAC地址和目的MAC地址分别是公共交换实例中本地MAC地址和目的端网关MAC地址;

步骤107,为重新封装的ICMP回应请求报文进行VXLAN封装。

其中,重新封装的ICMP回应请求报文的VXLAN封装中,外层源IP是本地IP地址;外层目的IP地址是目的端网关IP地址;VNI标识为公共交换实例的标识。

步骤108,将ICMP回应请求报文修改后的生存时间复制到VXLAN封装的外层生存时间。

步骤109,通过ICMP回应请求报文的隧道出端口转发。

图1方法的有益效果在于,VXLAN隧道上的中间设备以及目的端网关能够获取和修改ICMP回应请求报文在VXLAN隧道上的转发跳数,从而能够使中间设备以及目的端网关能够在ICMP回应请求报文在VXLAN隧道的正确路由跳数而反馈ICMP回应响应报文,并且目的端网关能够根据ICMP回应请求报文在VXLAN隧道上被转发的正确路由跳数更正发往目的用户终端的ICMP回应请求报文的生存时间,从而实现VXLAN隧道两端的用户终端之间的路由追踪。

图2为本发明应用的VXLAN的EVPN网络架构示意图,如图所示VTEP21、23以及24是各自站点的网关。VTEP21和VETP23是VSI11的分布式网关,配置的VSI 11虚接口具有相同网关IP地址IP11和网关MAC地址MAC12。VTEP21和VETP23上的公共交换实例VSI12关联了VSI11,VTEP21的VSI 12的VSI虚接口的IP地址和MAC地址分别为IP121和MAC121,VTEP23的VSI12的VSI虚接口的IP地址和MAC地址分别为IP122和MAC122。

VTEP21和VETP23作为能够执行三层转发的交换机或路由器,配置的IP地址分别是1.1.1.1以及3.3.3.3,路由器22的IP地址为2.2.2.2。

图2所示的EVPN网络的分布式网关通常启用ARP(地址解析协议AddressResolution Protocol)代答机制,即使用户终端请求同一VSI的相同网段终端的地址,网关将该VSI虚接口的MAC地址响应给用户。这样,用户终端与VSI内相同或不同网段的其他终端进行通行时,以太网报文将被发往网关进行三层转发,然后再通过网关之间的公用VSI发往目的终端网关。

用户终端T1需要检测到达用户终端T2之间的路径时,生成TTL=1的ICMP回应请求报文;该ICMP回应请求报文的源IP和目的IP地址分别是IP1以及IP2;源MAC地址和目的MAC地址分别是MAC1以及MAC11。用户终端T1将TTL=1的ICMP回应请求报文发送到VTEP21。

VTEP21确定对收到的TTL=1的ICMP回应请求报文进行三层转发,将收到的TTL=1的ICMP回应请求报文的生存时间减1。

VTEP21确定收到的ICMP回应请求报文修改后的TTL=0,生成ICMP超时报文,其中,源IP地址为网关IP地址IP11,目的IP地址为收到的ICMP回应请求报文的源IP地址IP 1;源MAC地址为网关MAC地址MAC11,目的MAC地址为ICMP超时报文的目的IP地址IP1对应的MAC地址MAC1;通过目的MAC地址MAC11对应的出端口转发到用户终端T1。

用户终端T1将收到的ICMP超时报文,打印源IP地址IP11。

如图3A所示,用户终端T1生成TTL=2的ICMP回应请求报文311;该ICMP回应请求报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址与之前发送TTL=1的ICMP回应请求报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址相同。

VTEP21确定对收到的TTL=2的ICMP回应请求报文311进行三层转发,将收到的TTL=2的ICMP回应请求报文的生存时间减1,以MAC121为源MAC地址、MAC122为目的MAC地址为收到的ICMP回应请求报文311重新封装以太网头。

VTEP21以本地IP地址1.1.1.1和VTEP的IP地址3.3.3.3,将重新封装以太网头的ICMP回应请求报文311进行VXLAN封装,将ICMP回应请求报文311修改后的TTL=1复制到外层VXLAN封装的TTL。VTEP21将TTL=1VXLAN封装的ICMP回应请求报文312通过隧道出端口发送到直连路由器22。

如图3B所示,路由器22收到外层TTL=1的VXLAN封装的ICMP回应请求报文312,根据外层以太网头确定根据外层IP头执行三层转发。需要说明的是,本发明实施例中,各设备按照VXLAN协议根据VXLAN封装的外层IP头封装以太网头以及收到VXLAN报文剥掉外层以太网头后,再根据外层IP头执行三层转发。以下各图不再赘述。

路由器22确定收到的VXLAN封装的ICMP回应请求报文312的外层目的IP地址不是本地IP地址2.2.2.2,将VXLAN封装的ICMP回应请求报文312外层TTL减1。

如图3B所示,路由器22确定VXLAN封装的ICMP回应请求报文312外层TTL=0,生成ICMP超时报文313;其中,ICMP超时报文313的源IP和目的IP地址分别是VXLAN封装ICMP回应请求报文312的外层源地址1.1.1.1和本地IP地址2.2.2.2。

路由器22生成的ICMP超时报文313的载荷封装有收到的VXLAN封装的ICMP回应请求312。路由器22以ICMP超时报文的目的IP地址1.1.1.1的下一跳的MAC地址(1.1.1.1)为目的MAC地址封装以太网头,通过ICMP超时报文312的目的IP地址1.1.1.1的下一跳的MAC地址的出端口转发。

本实施例为了简要说明方案的实施例,路由器22直连VTEP21,因此该下一跳MAC地址就是VTEP21的IP地址1.1.1.1的MAC地址。如果两者设备之间还有多跳路由设备,则按照普通的三层转发即可。

VTEP21收到ICMP超时报文313,根据作为目的MAC为自身IP地址3.3.3.3对应的MAC地址,确定对ICMP超时报文313进行三层转发。VETP21生成代理ICMP超时报文314;其中,源IP地址为收到的ICMP超时报文的源IP地址2.2.2.2;目的IP地址为内层载荷中VXLAN封装的ICMP回应请求报文312的内层源IP地址IP1;源MAC地址是网关MAC地址MAC11;目的MAC地址是代理ICMP超时报文314的目的IP地址IP1对应的MAC地址MAC1。VTEP21通过代理ICMP超时报文314的目的MAC地址MAC2对应的出端口转发。

用户终端T1收到的代理ICMP超时报文314,打印源IP地址IP2.2.2.2。

如图4A所示,用户终端T1生成TTL=3的ICMP回应请求报文315;该ICMP回应请求报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址与之前发送TTL=1的ICMP回应请求报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址相同。

VTEP21确定对收到的TTL=3的ICMP回应请求报文311进行三层转发,将收到的TTL=3的ICMP回应请求报文的TTL减1,以MAC121为源MAC地址、MAC122为目的MAC地址为收到的ICMP回应请求报文315重新封装以太网头。

VTEP21以本地IP地址1.1.1.1和VTEP的IP地址3.3.3.3,将重新封装以太网头的ICMP回应请求报文315进行VXLAN封装,将ICMP回应请求报文315修改后的TTL=2复制到外层VXLAN封装的TTL。VTEP21将TTL=2的VXLAN封装的ICMP回应请求报文316通过隧道出端口发送。

路由器22收到外层TTL=2的VXLAN封装的ICMP回应请求报文316,根据外层以太网头确定根据外层IP头执行三层转发。

路由器22确定收到的VXLAN封装的ICMP回应请求报文312的外层目的IP地址不是本地IP地址2.2.2.2,将VXLAN封装的ICMP回应请求报文312外层TTL减1。

路由器22确定VXLAN封装的ICMP回应请求报文312外层TTL=1,根据外层IP头目的IP地址3.3.3.3修改外层以太网头。路由器22将TTL=1的VXLAN封装的ICMP回应请求报文317发送VTEP23。

VETP23根据外层以太网头确定对VXLAN封装的ICMP回应请求报文317执行三层转发。VTEP23确定到的VXLAN封装的ICMP回应请求报文317的外层目的IP地址是本地IP地址3.3.3.3,将所述收到的VXLAN封装的ICMP回应请求报文317外层TTL=减1。

如图4B所示,VETP23确定VXLAN封装的ICMP回应请求报文317的外层TTL修改后等于0,生成ICMP超时报文318,并进行VXLAN封装。如图4B所示,ICMP超时报文318的VXLAN封装中,源IP和目的IP地址分别是VXLAN封装ICMP回应请求报文的外层源地址1.1.1.1和本地IP地址3.3.3.3;ICMP回应请求报文318的源IP地址和目的IP地址分别是IP1和IP3.3.3.3。

VTEP23通过VXLAN封装ICMP超时报文318的目的IP地址1.1.1.1的下一跳的MAC地址封装外层以太网头。

图4B中,VTEP3直连路由器22,路由器22收到VXLAN封装ICMP超时报文318,确定外层以太网头本地MAC剥掉以太网头,根据外层目的IP1.1.1.1的下一跳IP3.3.3.的MAC地址封装外层以太网头,将VXLAN封装ICMP超时报文318发送到VTEP21。

VTEP21从直连路由器22收到接收VXLAN封装的ICMP超时报文318,确定外层的目的MAC地址为本地MAC地址,剥掉外层以太网头;根据作为外层目的IP地址的本地IP地址,确定为接收的VXLAN封装的ICMP超时报文318执行VXLAN解封装。

VTEP21确定VXLAN解封装后的ICMP超时报文318的目的MAC为VSI12的本地MAC,执行三层转发。

VTEP21为VXLAN解封装后的ICMP超时报文318重新封装以太网头;其中,源MAC地址和目的MAC地址分别是VSI11的网关MAC地址MAC11和ICMP超时报文的目的IP地址IP1对应的MAC地址MAC1。VTEP21将重新封装后的ICMP超时报文319通过MAC1对应的出端口发送到用户终端T1。

用户终端T1收到的ICMP超时报文319,打印源IP地址IP2.2.2.2。

如图5所示,用户终端T1生成TTL=的ICMP回应请求报文320;该ICMP回应请求报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址与之前发送TTL=1的ICMP回应请求报文的源IP地址、目的IP地址、源MAC地址、目的MAC地址相同。

VTEP21确定对收到的TTL=4的ICMP回应请求报文311进行三层转发,将收到的TTL=4的ICMP回应请求报文的生存时间减1,以MAC121为源MAC地址、MAC122为目的MAC地址为收到的ICMP回应请求报文320重新封装以太网头。

VTEP21以本地IP地址1.1.1.1和VTEP的IP地址3.3.3.3,将重新封装以太网头的ICMP回应请求报文320进行VXLAN封装,将ICMP回应请求报文320修改后的TTL=3复制到外层VXLAN封装的TTL。VTEP21将TTL=3的VXLAN封装的ICMP回应请求报文321发送直连的路由器22。

路由器22收到外层TTL=3的VXLAN封装的ICMP回应请求报文321,根据外层以太网头确定根据外层IP头执行三层转发。

路由器22确定收到的VXLAN封装的ICMP回应请求报文321的外层目的IP地址不是本地IP地址2.2.2.2,将VXLAN封装的ICMP回应请求报文312外层TTL减1。

路由器22确定VXLAN封装的ICMP回应请求报文321外层TTL=2,根据外层IP头目的IP地址3.3.3.3修改外层以太网头。路由器22将TTL=2的VXLAN封装的ICMP回应请求报文321发送到直连的VTEP23。

VETP23根据外层以太网头的目的MAC地址为IP3.3.3.3对应的本地MAC地址,确定VXLAN封装的ICMP回应请求报文321执行三层转发。

VTEP23确定到的VXLAN封装的ICMP回应请求报文321的外层目的IP地址是本地IP地址3.3.3.3,将所述收到的VXLAN封装的ICMP回应请求报文317外层TTL减1。

VETP23确定VXLAN封装的ICMP回应请求报文321的外层TTL修改后不等于0,剥掉VXLAN封装。

VTEP23根据解封装后的ICMP回应报文321的目的MAC地址122确定进行三层转发。为解封装后的ICMP回应请求报文321重新封装以太网头;其中,源MAC地址是VIS11网关MAC地址MAC11;目的MAC地址是ICMP回应请求报文321的内层目的IP地址IP2对应的MAC地址MAC2。

VTEP23将ICMP回应请求报文322发送到用户终端22。

用户终端T2收到ICMP回应请求报文322,则生成ICMP回应响应报文,其中,源IP地址和目的IP地址分别是IP2和IP1;源MAC地址和目的MAC地址分别是MAC2和MAC11。用户终端将ICMP回应响应报文发送到VTEP23。

VTEP23确定执行三层转发,重新封装以太网头;其中源MAC地址和目的MAC地址分别是MAC122和MAC121。VTEP23以IP1.1.1.1为目的IP地址,以IP3.3.3.3为源IP地址封装VNI12的VXLAN封装。

VTEP23根据到达IP3.3.3.3的下一跳路由器22的MAC地址封装外城以太网头,将VXLAN封装的ICMP回应响应报文发送到路由器22。

路由器22收到VXLAN封装的ICMP回应响应报文,修改外层头,发往VTEP21。

VTEP21从直连路由器22收到接收VXLAN封装的ICMP回应响应报文,确定外层的目的MAC地址为本地MAC地址,剥掉外层以太网头头;确定外层目的IP地址为本地IP地址,执行VXLAN解封装。

VTEP21根据ICMP回应响应报文的目的MAC地址MAC121,确定执行三层转发。

VTEP21为ICMP回应响应报文重新封装以太网头;其中,源MAC地址是VSI11的网关MAC地址MAC11,目的MAC地址是ICMP回应响应报文的目的IP地址IP1对应的MAC地址MAC1。VTEP21将重新封装后的ICMP响应请求报文通过MAC1对应的出端口发送到用户终端T1。

用户终端T1收到的ICMP回应响应报文,打印源IP地址IP2。

这样,用户终端T1到达用户终端T2的各跳的IP地址,完成T1至T2之间路由设备的路由跟踪。

当用户终端T2需要到达用户终端T1之间的路由设备的路由跟踪时,VTEP23则按照VTEP21在图3A-3B、图4A-4B、图5中的方案执行;VTEP21则按照VTEP23在图3A-3B、图4A-4B、图5中的方案执行。当VTEP21和23作为其他VXLAN隧道的中间设备时,可按照路由器22在图3A-3B、图4A-4B、图5中的方案执行。

图6所示为本发明实施例提供的路由追踪设备600,该设备600可以但不限于是三层交换机或路由器,其包括交换芯片610、处理器(Central Processing Unit,CPU)620及存储器630。

交换芯片610与网络设备600的接口611相连,以基于ASIC(Application SpecificIntegrated Circuit,专用集成电路)或FPGA(Field-Programmable Gate Array,现场可编程门阵列等芯片实现。存储器630存储的指令由处理器620执行。

交换芯片610,确定对第一收到的ICMP回应请求报文进行三层转发,将所述第一收到的ICMP回应请求报文送往处理器620;

处理器620执行存储器630中存储的计算机指令,将所述第一收到的ICMP回应请求报文的生存时间减1;当所述第一收到的ICMP回应请求报文修改后的生存时间等于0,生成第一ICMP超时报文,其中,源IP地址为网关IP地址,目的IP地址为所述ICMP回应请求报文的源IP地址;源MAC地址为网关MAC地址,目的MAC地址为所述ICMP超时报文的目的IP地址对应的MAC地址;将所述第一生成的ICMP超时报文送往交换芯片610;当所述第一收到的ICMP回应请求报文修改后的生存时间不等于0时,为所述第一收到的ICMP回应请求报文重新封装以太网头;其中,所述第一收到的ICMP回应请求报文的重新封装以太网头的源MAC地址和目的MAC地址分别是公共交换实例中本地MAC地址和目的端网关MAC地址;以本地IP地址和所述目的端网关的IP地址为重新封装的所述第一收到的ICMP回应请求报文进行第一VXLAN封装;其中,所述第一VXLAN封装中的外层源IP是本地IP地址;外层目的IP地址是所述目的端网关IP地址;将所述第一收到的ICMP回应请求报文修改后的生存时间复制到所述第一VXLAN封装的生存时间用以指示通过所述VXLAN隧道转发所述ICMP回应请求报文的路由转发跳数;将所述第一VXLAN封装的ICMP回应请求报文发往交换芯片;

交换芯片610,通过所述第一生成的ICMP超时报文的目的MAC地址对应的出端口转发以及通过所述第一VXLAN封装的ICMP回应请求报文的隧道出端口转发。

交换芯片610,确定对第一收到的ICMP超时报文进行三层转发,将所述第一收到的ICMP超时报文送往处理器620;

处理器620执行存储器630中存储的计算机指令,确定所述第一收到的ICMP超时报文的目的IP地址是本地IP地址;确定所述第一收到的ICMP超时报文的IP载荷部分为所述第一VXLAN封装的ICMP回应请求报文;生成代理ICMP超时报文;其中,所述代理ICMP超时报文的源IP地址为所述第一收到的ICMP超时报文的源IP地址;所述代理ICMP超时报文的目的IP地址为所述第一VXLAN封装的ICMP回应请求报文的内层源IP地址;所述代理ICMP超时报文的源MAC地址是网关MAC地址;所述代理ICMP超时报文的目的MAC地址是所述代理ICMP超时报文的目的IP地址对应的MAC地址;将所述代理ICMP超时报文送往交换芯片;

交换芯片610,通过所述代理ICMP超时报文的目的MAC地址对应的出端口转发。

交换芯片610,接收VXLAN封装的ICMP超时报文;对接收的VXLAN封装的ICMP超时报文执行VXLAN解封装;确定对VXLAN解封装后的ICMP超时报文进行三层转发;将VXLAN解封装后的ICMP超时报文发往处理器620;

处理器620执行存储器630中存储的计算机指令,为VXLAN解封装后的ICMP超时报文重新封装以太网头,并送往交换芯片610;其中,VXLAN解封装后的ICMP超时报文的重新封装的以太网头的源MAC地址和目的MAC地址分别是所述网关MAC地址和VXLAN封装后的ICMP超时报文的目的IP地址对应的MAC地址;

交换芯片610,通过所述VXLAN解封装后的ICMP超时报文的重新封装的以太网头的目的MAC地址对应的出端口转发。

交换芯片610,接收并确定对收到的第二VXLAN封装的ICMP回应请求报文执行三层转发,将所述收到的第二VXLAN封装的ICMP回应请求发往处理器620;

处理器620执行存储器630中存储的计算机指令,确定所述收到的第二VXLAN封装的ICMP回应请求报文外层目的IP地址不是所述本地IP地址,将所述收到的第一VXLAN封装的ICMP回应请求报文外层生存时间减1;当所述收到的第一VXLAN封装的ICMP回应请求报文的修改后外层生存时间等于0,生成第二ICMP超时报文;其中,所述第二生成的ICMP超时报文的源IP和目的IP地址分别是所述收到的第二VXLAN封装ICMP回应请求的外层源地址和所述本地IP地址;所述第二生成的ICMP超时报文的载荷封装有所述收到的第二VXLAN封装的ICMP回应请求;以所述第二生成的ICMP超时报文的目的IP地址的下一跳的MAC地址为目的MAC地址封装以太网头并发往交换芯片610;

交换芯片610通过所述第二生成的ICMP超时报文的目的IP地址的下一跳的MAC地址的出端口转发。

交换芯片610,接收并确定对收到的第三VXLAN封装的ICMP回应请求报文执行三层转发,将收到的第三VXLAN封装的ICMP回应请求报文发往处理器620;

处理器620执行存储器630中存储的计算机指令,确定所述收到的第二VXLAN封装的ICMP回应请求报文的外层目的IP地址是本地IP地址,将所述收到的第二VXLAN封装的ICMP回应请求报文的修改后外层生存时间减1;当所述收到的第二VXLAN封装的ICMP回应请求报文的修改后外层生存时间等于0,生成第三ICMP超时报文;其中,所述第三生成的ICMP超时报文的源IP和目的IP地址分别是本地IP地址以及所述收到的第三VXLAN封装ICMP回应请求的内层源地址;为所述第三生成的ICMP超时报文进行VXLAN封装,其中,所述第三生成的ICMP超时报文的VXLAN封装的外层源IP地址和外层目的IP地址分别是本地IP地址以及收到的第三VXLAN封装的ICMP回应请求报文的外层源IP地址;根据所述第三生成的ICMP超时报文的VXLAN封装的外层目的IP地址的下一跳的MAC地址封装外层以太网头并发往交换芯片610转发;

当所述收到的第三VXLAN封装的ICMP回应请求报文的修改后外层生存时间不等于0,对所述第三VXLAN封装的ICMP超时报文执行解封装;确定对所述第三解封装后的ICMP超时报文进行三层转发;为所述第三解封装后的ICMP超时报文重新封装以太网头并发往交换芯片610;其中,第三解封装后的ICMP超时报文的重新封装的以太网的源MAC地址和目的MAC地址分别是所述网关MAC地址和所述收到的第三VXLAN封装的ICMP回应请求报文的内层目的IP地址对应的MAC地址;

交换芯片610,根据所述第三生成的ICMP超时报文的VXLAN封装的外层目的IP地址的下一跳的MAC地址的对应的出端口转发;通过所述第三解封装后的ICMP超时报文的重新封装的目的MAC地址对应的出端口转发。

本发明的有益效果在于,VXLAN隧道上的中间设备以及目的端网关能够获取和修改ICMP回应请求报文在VXLAN隧道上的转发跳数,从而能够使中间设备以及目的端网关能够在ICMP回应请求报文在VXLAN隧道的正确路由跳数而反馈ICMP回应响应报文,并且目的端网关能够根据ICMP回应请求报文在VXLAN隧道上被转发的正确路由跳数更正发往目的用户终端的ICMP回应请求报文的生存时间,从而实现VXLAN隧道两端的用户终端之间的路由追踪。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种面向SDN网络基于Q学习的节能路由方法

网友询问留言

已有0条留言

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

精彩留言,会给你点赞!