一种引导、转发数据报文的方法及接入点设备、网络设备转让专利

申请号 : CN201610931373.X

文献号 : CN108011986B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王海洋刘怀毅

申请人 : 华为技术有限公司

摘要 :

公开了一种引导、转发数据报文的方法及接入点设备、网络设备。该引导数据报文方法包括接入点设备确定终端的NAT会话表项,在确定了终端的NAT会话表项之后向网络设备发送NAT会话通告报文,以使网络设备用接收该NAT会话通告报文的物理端口转发发往中的目的端口号为该NAT会话表项中的NAT后的传输层端口号的数据报文,使得网络设备将发往终端的数据报文直接发送给该终端接入的接入点设备,无需再将该发往终端的数据报文通过该终端归属的接入点设备转发至该终端接入的接入点设备,避免出现流量迂回的问题,减少了该终端归属的接入点设备的流量开销。

权利要求 :

1.一种引导数据报文的方法,其特征在于,包括:

接入点设备确定终端的网络地址转换NAT会话表项,所述终端的NAT会话表项包括NAT后的传输层端口号;

所述接入点设备向网络设备发送NAT会话通告报文,所述NAT会话通告报文包括所述NAT后的传输层端口号,所述NAT会话通告报文指示所述网络设备用接收所述NAT会话通告报文的物理端口转发发往所述终端的目的端口号为所述NAT后的传输层端口号的数据报文。

2.如权利要求1所述的方法,其特征在于,所述接入点设备在所述终端连接所述接入点设备,且所述终端为漫游终端时向所述网络设备发送所述NAT会话通告报文。

3.如权利要求1或2所述的方法,其特征在于,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表,所述NAT会话表包括所述终端的NAT会话表项。

4.如权利要求3所述的方法,其特征在于,所述NAT虚拟设备组包括主设备和从设备,所述NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号由所述主设备分配;其中,接入点设备确定终端的NAT会话表项,包括:

所述接入点设备为所述NAT虚拟设备组中的主设备时,所述接入点设备确定所述接入点设备的NAT会话表中终端的NAT会话表项;

所述接入点设备为NAT虚拟设备组中的从设备时,所述接入点设备向所述NAT虚拟设备组中的主设备发送NAT会话表项请求报文,并接收所述主设备发送的NAT会话表项响应报文,根据所述NAT会话表项响应报文中NAT后的传输层端口号生成所述终端的NAT会话表项。

5.如权利要求1所述的方法,其特征在于,所述接入点设备在接收到来自所述终端的待转发报文,且所述接入点设备的NAT会话表中缺乏所述待转发报文的NAT会话表项时,为所述待转发报文生成所述待转发报文的NAT会话表项,并向所述网络设备发送所述NAT会话通告报文,其中所述NAT后的传输层端口号为所述待转发报文的NAT会话表项中的NAT后的传输层端口号。

6.如权利要求5所述的方法,其特征在于,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表,所述NAT会话表包括所述终端的NAT会话表项。

7.如权利要求6所述的方法,其特征在于,所述NAT虚拟设备组包括主设备和从设备,所述NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号由所述主设备分配;其中,为所述待转发报文生成所述待转发报文的NAT会话表项,包括:

所述接入点设备为所述NAT虚拟设备组中的主设备时,所述接入点设备生成并存储所述待转发报文的NAT会话表项;

所述接入点设备为NAT虚拟设备组中的从设备时,所述接入点设备向所述NAT虚拟设备组中的主设备发送NAT会话表项请求报文,并接收所述主设备发送的NAT会话表项响应报文,根据所述NAT会话表项响应报文中NAT后的传输层端口号生成所述待转发报文的NAT会话表项。

8.一种转发数据报文的方法,其特征在于,包括:

网络设备接收接入点设备发送的网络地址转换NAT会话通告报文,所述NAT会话通告报文包括NAT后的传输层端口号;所述网络设备生成所述NAT后的传输层端口号与接收所述NAT会话通告报文的物理端口的对应关系;

所述网络设备接收数据报文,所述数据报文的目的端口号为所述NAT后的传输层端口号;

所述网络设备根据所述对应关系用所述物理端口转发所述数据报文。

9.如权利要求8所述的方法,其特征在于,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表。

10.如权利要求9所述的方法,其特征在于,在所述网络设备根据所述对应关系用所述物理端口转发所述数据报文之前,还包括:所述网络设备根据所述数据报文的目的地址确定所述数据报文的下一跳指向所述网络设备的NAT端口组。

11.一种接入点设备,其特征在于,包括:

处理单元,用于确定终端的网络地址转换NAT会话表项,所述终端的NAT会话表项包括NAT后的传输层端口号;

收发单元,用于向网络设备发送所述处理单元确定的NAT会话通告报文,所述NAT会话通告报文包括所述NAT后的传输层端口号,所述NAT会话通告报文指示所述网络设备用接收所述NAT会话通告报文的物理端口转发发往所述终端的目的端口号为所述NAT后的传输层端口号的数据报文。

12.如权利要求11所述的接入点设备,其特征在于,所述收发单元还用于:

在所述终端连接所述接入点设备,且所述终端为漫游终端时向所述网络设备发送所述NAT会话通告报文。

13.如权利要求11或12所述的接入点设备,其特征在于,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表,所述NAT会话表包括所述终端的NAT会话表项。

14.如权利要求13所述的接入点设备,其特征在于,所述NAT虚拟设备组包括主设备和从设备,所述NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号由所述主设备分配;其中,所述处理单元具体用于:

所述接入点设备为所述NAT虚拟设备组中的主设备时,确定所述接入点设备的NAT会话表中终端的NAT会话表项;

所述接入点设备为NAT虚拟设备组中的从设备时,通过所述收发单元向所述NAT虚拟设备组中的主设备发送NAT会话表项请求报文,并通过所述收发单元接收所述主设备发送的NAT会话表项响应报文,根据所述NAT会话表项响应报文中NAT后的传输层端口号生成所述终端的NAT会话表项。

15.如权利要求11所述的接入点设备,其特征在于,所述处理单元还用于:

在接收到来自所述终端的待转发报文,且所述NAT会话表中缺乏所述待转发报文的NAT会话表项时,为所述待转发报文生成所述待转发报文的NAT会话表项,并通过所述收发单元向所述网络设备发送所述NAT会话通告报文,其中所述NAT后的传输层端口号为所述待转发报文的NAT会话表项中的NAT后的传输层端口号。

16.如权利要求15所述的接入点设备,其特征在于,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表,所述NAT会话表包括所述终端的NAT会话表项。

17.如权利要求16所述的接入点设备,其特征在于,所述NAT虚拟设备组包括主设备和从设备,所述NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号由所述主设备分配;其中,所述处理单元具体用于:

所述接入点设备为所述NAT虚拟设备组中的主设备时,生成并存储所述待转发报文的NAT会话表项;

所述接入点设备为NAT虚拟设备组中的从设备时,通过所述收发单元向所述NAT虚拟设备组中的主设备发送NAT会话表项请求报文,并通过所述收发单元接收所述主设备发送的NAT会话表项响应报文,根据所述NAT会话表项响应报文中NAT后的传输层端口号生成所述待转发报文的NAT会话表项。

18.一种网络设备,其特征在于,包括:

收发单元,用于接收接入点设备发送的网络地址转换NAT会话通告报文,所述NAT会话通告报文包括NAT后的传输层端口号;

处理单元,用于生成所述NAT后的传输层端口号与接收所述NAT会话通告报文的物理端口的对应关系;

所述收发单元还用于接收数据报文,所述数据报文的目的端口号为所述NAT后的传输层端口号;并根据所述对应关系用所述物理端口转发所述数据报文。

19.如权利要求18所述的网络设备,其特征在于,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表。

20.如权利要求19所述的网络设备,其特征在于,所述处理单元还用于:

在所述收发单元根据所述对应关系用所述物理端口转发所述数据报文之前,根据所述数据报文的目的地址确定所述数据报文的下一跳指向所述网络设备的NAT端口组。

说明书 :

一种引导、转发数据报文的方法及接入点设备、网络设备

技术领域

[0001] 本申请涉及无线通信技术领域,尤其涉及一种引导、转发数据报文的方法及接入点设备、网络设备。

背景技术

[0002] 无线局域网(英文:wireless local area networks,WLAN)可以包括多个接入点(英文:access point,AP)。这些AP可以使用相同的服务集标识(英文:service set identifier,SSID)以提供扩展服务集(英文:extended service set,ESS)网络。当站点(英文:station,STA)移动时,STA在AP间切换。切换后,STA关联新的AP,以通过新的AP接收和发送数据。
[0003] 如图1所示,AP1和AP2之间建立隧道,STA由AP1切换到AP2(也可以说STA由AP1漫游到AP2)时,AP2接收STA访问互联网的报文。如果AP2发现该STA是从AP1漫游的STA,将该STA的访问互联网的报文发送到AP1。AP1将该STA的访问互联网的报文发送到网络设备。网络设备转发该修改后的报文。
[0004] 当有来自互联网的报文需要转发到STA时,网络设备将来自互联网的报文发送到AP1。AP1将来自互联网的报文发送到AP2。AP2再将该来自互联网的报文发送到STA,从而实现了来自互联网的报文的转发。
[0005] 上述方案中STA的访问互联网的报文和从互联网发向STA的报文都需要迂回到AP1进行转发,也就是迂回到该STA的归属AP进行转发,增加了AP1负担,也增加了AP1拥塞的可能性。

发明内容

[0006] 本申请提供一种引导、转发数据报文的方法及接入点设备、网络设备,用以解决漫游场景中流量迂回的问题。
[0007] 第一方面,提供一种引导数据报文的方法,包括:
[0008] 接入点设备确定终端的网络地址转换(英文:network address translation,NAT)会话表项,所述终端的NAT会话表项包括NAT后的传输层端口号。之后该接入点设备向网络设备发送NAT会话通告报文,所述NAT会话通告报文包括所述NAT后的传输层端口号,所述NAT会话通告报文指示所述网络设备用接收所述NAT会话通告报文的物理端口转发发往所述终端的目的端口号为所述NAT后的传输层端口号的数据报文。
[0009] 网络设备接收NAT会话通告报文的物理端口和接入点设备相连。因此网络设备用该物理端口转发的数据报文可以被发送到发送NAT会话通告报文的接入点设备,避免流量迂回的问题。接入点设备将发往终端的数据报文引导到该网络设备的时已经确定该终端的NAT会话表项,可以根据该终端的NAT会话表项将发往终端的数据报文中目的IP地址字段的NAT后的IP地址和目的端口号字段的NAT后的传输层端口号转换为NAT转换前的地址和端口号。因此,入点设备将发往终端的数据报文引导到该网络设备的时可以正确执行NAT。此外,以数据报文的目的端口号为粒度区分发往终端的数据报文,可以让不同的终端共享相同的NAT后的IP地址,提高漫游的灵活性。
[0010] 结合第一方面,在第一方面的第一种可能的实现方式中,所述接入点设备在所述终端连接所述接入点设备,且所述终端为漫游终端时向所述网络设备发送所述NAT会话通告报文。
[0011] 接入点设备在接入漫游终端时,就将该漫游终端的NAT会话通告报文发送给网络设备,以便网络设备在向该漫游终端转发数据报文时,可以及时感知该漫游终端的NAT后的传输层端口号,使用接收到该漫游终端的NAT会话通告报文的物理端口转发数据报文,提高了网关设备的转发数据报文的效率。
[0012] 结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表,所述NAT会话表包括所述终端的NAT会话表项。
[0013] 结合第一方面以及第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述NAT虚拟设备组包括主设备和从设备,所述NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号由所述主设备分配。其中,接入点设备确定终端的NAT会话表项,包括:
[0014] 所述接入点设备为所述NAT虚拟设备组中的主设备时,所述接入点设备确定所述接入点设备的NAT会话表中终端的NAT会话表项。所述接入点设备为NAT虚拟设备组中的从设备时,所述接入点设备向所述NAT虚拟设备组中的主设备发送NAT会话表项请求报文,并接收所述主设备发送的NAT会话表项响应报文,根据所述NAT会话表项响应报文中的传输层端口号生成所述终端的NAT会话表项。
[0015] 接入点设备可以直接从自己的NAT会话表中查询到终端的NAT会话表项,也可以是向主设备请求已在主设备上存储的终端的NAT会话表项,可以快速将该终端的NAT会话表项中的NAT后的传输层端口号发送给网络设备,以使网络设备用接收该终端的NAT后的传输层端口号的物理端口转发的数据报文可以被发送到发送NAT会话通告报文的接入点设备,避免流量迂回的问题。
[0016] 结合第一方面,在第一方面的第四种可能的实现方式中,所述接入点设备在接收到来自所述终端的待转发报文,且所述接入点设备的NAT会话表中缺乏所述待转发报文的NAT会话表项时,为所述待转发报文生成所述待转发报文的NAT会话表项,并向所述网络设备发送所述NAT会话通告报文,其中所述NAT后的传输层端口号为所述待转发报文的NAT会话表项中的NAT后的传输层端口号。
[0017] 接入点设备在收到来自终端的待转发报文时没有查询到关于该待转发报文的NAT会话表项,需要新生成该待转发报文的NAT会话表项,以便接入点设备及时的将该终端的待转发报文依据该待转发报文的NAT会话表项转发至网络设备,避免出现流量迂回的问题。
[0018] 结合第一方面或第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表,所述NAT会话表包括所述终端的NAT会话表项。
[0019] 结合第一方面以及第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述NAT虚拟设备组包括主设备和从设备,所述NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号由所述主设备分配。其中,为所述待转发报文生成所述待转发报文的NAT会话表项,包括:
[0020] 所述接入点设备为所述NAT虚拟设备组中的主设备时,所述接入点设备生成并存储所述待转发数据报文的NAT会话表项。所述接入点设备为NAT虚拟设备组中的从设备时,所述接入点设备向所述NAT虚拟设备组中的主设备发送NAT会话表项请求报文,并接收所述主设备发送的NAT会话表项响应报文,根据所述NAT会话表项响应报文中的传输层端口号生成所述待转发数据报文的NAT会话表项。
[0021] 结合第一方面以及第一方面的第一种可能的实现方式至第六种可能的实现方式中任一实现方式,在第一方面的第七种可能的实现方式中,所述NAT虚拟设备组中任意两个设备之间建立了无线接入点控制与配置协议(英文:Control and Provisioning of Wireless Access Points,CAPWAP)隧道。
[0022] 第二方面,提供了一种转发数据报文的方法,包括:
[0023] 网络设备获取接入点设备发送的NAT会话通告报文,所述NAT会话通告报文包括NAT后的传输层端口号。所述网络设备生成所述NAT后的传输层端口号与接收所述NAT会话通告报文的物理端口的对应关系。所述网络设备接收数据报文,所述数据报文的目的端口号为所述NAT后的传输层端口号。所述网络设备根据所述对应关系用所述物理端口转发所述数据报文。
[0024] 网络设备在接收到接入点设备发送的NAT会话通告报文中NAT后的传输层端口号之后,生成所述NAT后的传输层端口号与接收所述NAT会话通告报文的物理端口的对应关系,然后根据该对应关系用该接收到NAT会话通告报文的物理端口转发目的端口号为NAT后的传输层端口号的数据报文,可以使得网络设备在转发发往终端的报文时,直接向该接入该终端的接入点设备转发,无需再经过该终端归属的接入点设备转发给接入该终端的接入点设备,从而避免出现流量迂回的问题。
[0025] 结合第二方面,在第二方面的第一种可能的实现方式中,所述接入点设备为NAT虚拟设备组中的任一设备,所述接入点设备与所述NAT虚拟设备组中除所述接入点设备之外的设备使用同步的NAT会话表。
[0026] 结合第二方面以及第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,在所述网络设备根据所述对应关系用所述物理端口转发所述数据报文之前,还包括:
[0027] 所述网络设备根据所述数据报文的目的地址确定所述数据报文的下一跳指向所述网络设备的NAT端口组。
[0028] 网络设备依据数据报文的目的地址查找到该数据报文的下一跳指向网络设备的NAT端口组,可以直接到该NAT端口组中查询出该数据报文的目的端口号字段的NAT后的传输层端口号所对应的物理端口,通过该物理端口将发往终端的数据报文转发,可以避免再经过该终端归属的接入点设备转发给接入该终端的接入点设备,从而避免出现流量迂回的问题。
[0029] 第三方面,提供一种接入点设备。该接入点设备包括执行第一方面或其任意实现方式的方法的模块。
[0030] 第四方面,提供一种网络设备。该网络设备包括执行第二方面或其任意实现方式的方法的模块。
[0031] 第五方面,提供一种接入点设备,包括:收发器和处理器。处理器用于执行第一方面或第一方面任意的实现方式提供的方法。
[0032] 第六方面,提供一种网络设备,包括:收发器和处理器。处理器用于执行第二方面或第二方面任意的实现方式提供的方法。
[0033] 第七方面,提供一种计算机存储介质,用于存储用于第五方面提供的处理器执行的计算机软件指令,以用于执行第一方面以及第一方面可能的实现方式提供的方法。
[0034] 第八方面,提供一种计算机存储介质,用于存储用于第六方面提供的处理器执行的计算机软件指令,以用于执行第二方面以及第二方面可能的实现方式提供的方法。

附图说明

[0035] 为了更清楚地说明本申请中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍。
[0036] 图1为一种流量转发的示意图;
[0037] 图2为本申请提供的一种系统架构的示意图;
[0038] 图3为本申请提供的一种更新NAT会话表项的方法的流程示意图;
[0039] 图4为本申请提供的一种接入点设备与主设备交互的示意图;
[0040] 图5为本申请提供的一种接入点设备与主设备交互的示意图;
[0041] 图6为本申请提供的一种系统架构的示意图;
[0042] 图7为本申请提供的一种接入点设备的结构示意图;
[0043] 图8为本申请提供的一种网络设备的结构示意图;
[0044] 图9为本申请提供的一种接入点设备的结构示意图;
[0045] 图10为本申请提供的一种网络设备的结构示意图。

具体实施方式

[0046] 为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图及实施例对本申请作进一步地详细描述。
[0047] 图2示出了本申请所适用的一种系统架构,基于该系统架构可实现对更新网络地址转换(英文:network address translation,NAT)会话表项的控制,本申请提供的更新NAT会话表项的系统架构中包括网络设备、NAT虚拟设备组以及多个STA。
[0048] 如图2所示,该NAT虚拟设备组中包括AP1和AP2。网络设备与NAT虚拟设备组相连接的物理端口配置了NAT端口组。网络设备的NAT端口组中设置有STA的NAT后的传输层端口号与物理端口的对应关系,以使网络设备在向STA转发数据报文时使用在NAT端口组中依据该对应关系得到数据报文的目的端口号为NAT后的传输层端口号所对应的物理端口转发。NAT虚拟设备组中的AP1和AP2之间建立了CAPWAP隧道,AP1和AP2可以用该CAPWAP隧道通信,该AP1和AP2为具有的WLAN服务能力的AP。
[0049] 在使用NAT虚拟设备组时,需要提前对该NAT虚拟设备组进行配置,具体配置方法如下。
[0050] 如图2所示,AP1和AP2被指定为一个NAT虚拟设备组。通过配置或者竞选的方式选举出来该NAT虚拟设备组内的主设备,具有高优先级的设备会成为NAT虚拟设备组的主设备,剩余设备为从设备。该主设备用于分配NAT虚拟设备组内NAT会话表中各个NAT会话表项的NAT后的传输层端口号。例如,AP1被配置成了NAT主设备,AP1可以为AP2分配NAT会话表中各个NAT会话表项的NAT后的传输层端口号。将NAT虚拟设备组中AP连接网络设备的物理端口加入到NAT端口组中。
[0051] 基于上述描述,图3示出了本申请提供的一种引导、转发数据报文的方法的流程,如图3所示,该方法流程具体包括:
[0052] 步骤301,接入点设备确定终端的NAT会话表项。
[0053] 在本申请中,终端为WLAN设备。例如,终端可以是装有无线网卡的计算机,也可以是有WLAN模块的手机。
[0054] 该终端的NAT会话表项包括NAT后的传输层端口号,接入点设备在接收到来自终端的待转发数据报文时,根据NAT会话表项将该来自终端的待转发数据报文的源地址和源端口号转换为NAT后的源地址和源端口号。上述端口号为传输层端口号,例如用户数据报协议(英文:User Datagram Protocol,UDP)端口号或传输控制协议(英文:Transmission Control Protocol,TCP)端口号。该来自终端的待转发数据报文的源端口号是该待转发数据报文中的一个字段。该NAT会话表项包括源互联网协议(英文:Internet Protocol,IP)地址、源端口号、NAT后的IP地址、NAT后的传输层端口号。可选地,该NAT会话表项进一步包括目的IP地址和目的端口号等。该NAT会话表项可以如表1所示。
[0055] 表1
[0056] 源IP地址 源端口号 NAT后的IP地址 NAT后的传输层端口号10.1.1.1 1025 1.1.1.1 19286
10.1.1.2 1001 1.1.1.1 19287
[0057] 在本申请中,接入点设备为NAT虚拟设备组中的任一设备,该接入点设备与NAT虚拟设备组中出该接入点设备之外的设备使用同步的NAT会话表,该NAT会话表包括终端的NAT会话表项。
[0058] 该接入点设备与NAT虚拟设备组中出该接入点设备之外的设备使用同步的NAT会话表,存在下面几种情况:
[0059] 第一种情况,该NAT虚拟设备组中所有设备使用的NAT会话表相同。其中一个设备上的NAT会话表项有变化时,可以主动同步NAT会话表。或者,定期同步各个设备上的NAT会话表。该NAT虚拟设备组中所有设备都能使用同步后的NAT会话表。
[0060] 第二种情况,当终端漫游到接入点设备上时,该接入点设备向该终端的归属的设备发送NAT会话表项请求报文,获取该终端的归属的设备上关于该终端的所有NAT会话表项,从而使得该接入点设备与该终端的归属的设备使用同步的NAT会话表项。
[0061] 第三种情况,基于上述第二种情况,接入点设备在获取到该终端的归属的设备上关于该终端的所有NAT会话表项时,该终端的归属的设备可以将关于该终端的NAT会话表项在设定时间之后删除,该设定时间可以依据经验设置。
[0062] 第四种情况,基于上述第二种情况,可以在终端漫游到接入点设备之前,预先推测该终端可能从其相邻的设备漫游到该接入点设备。接入点设备提前向该可能漫游到的终端归属的设备请求关于该终端的所有NAT会话表项。或者,控制器做出上述推测,并指令终端归属的设备向该接入点设备发送该终端的所有NAT会话表项。
[0063] 步骤302,为接入点设备向网络设备发送NAT会话通告报文。
[0064] 该NAT会话通告报文包括上述步骤301中确定的NAT后的传输层端口号,该NAT会话通告报文可以指示网络设备接收NAT会话通告报文的物理端口转发发往终端的目的端口号为NAT后的传输层端口号的数据报文。从而使得网络设备将发往终端的数据报文直接发送给该终端接入的接入点设备,无需再将该发往终端的数据报文通过该终端归属的接入点设备转发至该终端接入的接入点设备,避免出现流量迂回的问题,减少了该终端归属的接入点设备的流量开销。
[0065] 接入点设备在下面两种场景下向网络设备发送NAT会话通告报文。
[0066] 场景一
[0067] 接入点设备在终端连接到该接入点设备,且确定终端为漫游终端时,向网络设备发送NAT会话通告报文。
[0068] 当有终端接入到接入点设备时,接入点设备需要确定该终端是新的终端还是从其他设备漫游过来的漫游终端。具体的,终端接入接入点设备后,接入点设备会在终端表内生成一个标志位,通过标志位来识别该接入的终端是在新的终端还是从其他设备漫游过来的漫游终端。漫游终端归属的设备在该漫游终端向接入点设备漫游之后,向接入点设备通知该漫游设备的信息,以使接入点设备对该漫游终端进行标注,比如接入点设备可以将漫游终端标注为1,将新的终端标注为0。
[0069] 接入点设备在向网络设备发送NAT会话通告报文之前,需要先确定终端的NAT会话表项。具体的,依据该接入点设备是主设备还是从设备,将通过下述两种方式进行描述:
[0070] 方式一
[0071] 接入点设备为NAT虚拟设备组中的主设备时,该接入点设备可以直接从自身存储的NAT会话表中确定出该终端的NAT会话表项。由于主设备可以分配NAT虚拟设备组的NAT会话表中各个NAT会话表项的NAT后的传输层端口号,其存储的NAT会话表中包括所有终端的NAT会话表项,因此,接入点设备可以直接确定出该终端的NAT会话表项。
[0072] 方式二
[0073] 接入点为NAT虚拟设备组中的从设备时,如图4所示流程:
[0074] 步骤S401,该接入点设备向NAT虚拟设备组中的主设备发送NAT会话表项请求报文,该NAT会话表项请求报文中包含有该终端的源IP地址,用于请求主设备查询该终端的NAT会话表项。
[0075] 步骤S402,主设备在接收到接入点设备发送的NAT会话表项请求报文之后,根据NAT会话表项请求报文中的终端的源IP地址,从自身存储的NAT会话表中查询该终端的NAT会话表项。NAT会话表中该终端的NAT会话表项(如果存在的话)可以有一个或多个。该NAT会话表项包括该终端的NAT后的IP地址和NAT后的传输层端口号。
[0076] 步骤S403,主设备向接入点设备发送NAT会话表项响应报文,该NAT会话表项响应报文中包括该终端的NAT后的传输层端口号。由于终端的NAT后的IP地址可以为默认值,NAT会话表项响应报文可以不包括该终端的NAT后的IP地址。如果终端的NAT后的IP地址不是默认值,该NAT会话表项响应报文还包括该终端的NAT后的IP地址。
[0077] 步骤S404,接入点设备接收到主设备发送的NAT会话表项响应报文之后,根据该NAT会话表项响应报文中的NAT后的传输层端口号生成该终端的NAT会话表项,生成如表1所示格式的该终端的NAT会话表项。
[0078] 场景二
[0079] 接入点设备的NAT会话表中缺乏终端发送的待转发报文的NAT会话表项时,该接入点设备需要为该待转发报文生成新的NAT会话表项。由于该新的NAT会话表项中的NAT后的传输层端口号不同于其他已存在的NAT会话表项中的NAT后的传输层端口号,接入点设备向网络设备发送NAT会话通告报文。
[0080] 该接入点设备的NAT会话表中缺乏该待转发报文的NAT会话表项是指该接入点设备没有从NAT会话表中查询到关于与该待转发报文相匹配的NAT会话表项。此时,接入点设备需要为该待转发报文生成该待转发报文的NAT会话表项。具体的,依据该接入点设备是主设备还是从设备,将通过下述两种方式描述接入点设备为该待转发报文生成该待转发报文的NAT会话表项的流程。
[0081] 方式一
[0082] 接入点设备为NAT虚拟设备组中的主设备时,该接入点设备可以直接生成该待转发数据报文的NAT会话表项,接入点设备可以为该待转发数据报文分配NAT后的传输层端口号,然后依据NAT后的传输层端口号生成该待转发数据报文的NAT会话表项。接入点设备生成该待转发数据报文的NAT会话表项之后在自身存储该转发数据报文的NAT会话表项。
[0083] 方式二
[0084] 接入点为NAT虚拟设备组中的从设备时,如图5所示流程:
[0085] 步骤S501,该接入点设备向NAT虚拟设备组中的主设备发送NAT会话表项请求报文,该NAT会话表项请求报文中包含有该待转发数据报文的源IP地址,用于请求主设备生成该终端的NAT会话表项。
[0086] 步骤S502,主设备在接收到接入点设备发送的NAT会话表项请求报文之后,根据NAT会话表项请求报文中的该待转发数据报文的源IP地址,为该待转发数据报文分配NAT后的传输层端口号,然后依据NAT后的传输层端口号生成该待转发数据报文的NAT会话表项,并在该转发数据报文的NAT会话表项。
[0087] 步骤S503,主设备向接入点设备发送NAT会话表项响应报文,该NAT会话表项响应报文中包括该待转发数据报文的NAT后的传输层端口号。
[0088] 步骤S504,接入点设备接收到主设备发送的NAT会话表项响应报文之后,根据该NAT会话表项响应报文中的NAT后的传输层端口号生成该待转发数据报文的NAT会话表项。
[0089] 步骤303,网络设备接收接入点设备发送的NAT会话通告报文。该NAT会话通告报文包括NAT后的传输层端口号。由于终端的NAT后的IP地址可以为默认值,NAT会话通告报文可以不包括该终端的NAT后的IP地址。如果终端的NAT后的IP地址不是默认值,该NAT会话通告报文还包括该终端的还包括NAT后的IP地址。
[0090] 步骤304,网络设备生成NAT后的传输层端口号与接收该NAT会话通告报文的物理端口的对应关系。网络设备依据步骤302中接收到的NAT后的传输层端口号以及接收NAT会话通告报文的物理端口,生成NAT后的传输层端口号与接收该NAT会话通告报文的物理端口的对应关系,并存储在网络设备的NAT端口组中。NAT后的传输层端口号与接收该NAT会话通告报文的物理端口的对应关系可以如表2所示。
[0091] 表2
[0092]
[0093] 步骤305,网络设备接收数据报文。该数据报文的目的地址为终端的NAT后的IP地址。该数据报文包括的目的端口号为NAT后的传输层端口号。网络设备根据该数据报文的目的地址得到对应的NAT端口组。具体的,网络设备可以根据数据报文的目的地址确定出该数据报文的下一跳指向网络设备的NAT端口组,从而可以查询该NAT端口组中该数据报文的目的端口号为NAT后的传输层端口号为对应的物理端口。网络设备用该目的端口号查询到NAT端口组中NAT后的传输层端口号对应的用于发送数据报文的物理端口。该数据报文是来自网络发往终端的报文。网络设备在根据该数据报文的目的地址得到对应的NAT端口组时,可以是多个目的地址对应一个NAT端口组,先通过目的地址确定出NAT端口组,再根据目的端口号从确定出的NAT端口组中查询出NAT后的传输层端口号对应的用于发送数据报文的物理端口。也可以是一个目的地址对应一个NAT端口组,网络设备根据数据报文的目的地址查询到NAT端口组,直接可以查询到NAT后的传输层端口号对应的用于发送数据报文的物理端口。
[0094] 步骤306,网络设备用上述物理端口转发该数据报文。
[0095] 网络设备在查询到物理端口之后,使用该物理端口发送数据报文,就可以直接将数据报文发送至终端接入的接入点设备上,而无需再经过该终端归属的接入点设备转发给接入该终端的接入点设备,从而避免出现流量迂回的问题。
[0096] 在上述实施例中,网络设备接收NAT会话通告报文的物理端口和接入点设备相连。因此网络设备用该物理端口转发的数据报文可以被发送到发送NAT会话通告报文的接入点设备,避免流量迂回的问题。接入点设备将发往终端的数据报文引导到该网络设备的时已经确定该终端的NAT会话表项,可以根据该终端的NAT会话表项将发往终端的数据报文中目的IP地址字段的NAT后的IP地址和目的端口号字段的NAT后的传输层端口号转换为NAT转换前的地址和端口号。因此,接入点设备将发往终端的数据报文引导到该网络设备的时可以正确执行NAT。此外,以数据报文的目的端口号为粒度区分发往终端的数据报文,可以让不同的终端共享相同的NAT后的IP地址,提高漫游的灵活性。
[0097] 为了更好的解释本申请的技术方案,下面将通过具体的实施场景描述引导、转发数据报文的流程。
[0098] 场景一
[0099] 如图2所示,STA1在AP1上线后,需要访问互联网资源,需要发送访问互联网的报文,AP1查询发现无该访问互联网的报文对应的NAT会话表项,这个时候需要生成NAT会话表项,当AP1发现自己就是NAT虚拟设备组的主设备,直接分配一个NAT后的传输层端口号,如图2所示的Src:10.1.1.1:1025的访问互联网的报文被分配的NAT后的传输层端口号为19286,其中,10.1.1.1为源IP地址,1025为源端口号,1.1.1.1为NAT后的IP地址,19286为NAT后的传输层端口号,然后生成该访问互联网的报文的NAT会话表项并进行存储。AP1基于该访问互联网的报文的NAT会话表项向网络设备转发STA2的访问互联网的报文,并向该网络设备发送NAT会话通告报文。
[0100] STA2在AP2上线后,要访问互联网资源,需要发送访问互联网的报文,AP2查询发现无该访问互联网的报文对应的NAT会话表项,这个时候需要生成NAT会话表项。由于AP1是主设备,AP2向AP1发起NAT会话表项请求报文,AP1分配NAT后的传输层端口号19287给STA2的访问互联网的报文,生成该访问互联网的报文的NAT会话表项,并进行存储,发送给AP2,AP2基于该访问互联网的报文的NAT会话表项向网络设备转发STA2的访问互联网的报文,并向该网络设备发送NAT会话通告报文。
[0101] 网络设备接收到AP1和AP2发送的NAT会话通告报文时,依据该接收到的NAT会话通告报文生成NAT后的传输层端口号与接收该NAT会话通告报文的物理端口的对应关系,存储在NAT端口组中,具体如表3所示。
[0102] 表3
[0103]
[0104]
[0105] 完成如上步骤后,STA就可以正常的访问互联网网络资源了,相关的转发路径为:STA1访问互联网的报文在AP1上进行NAT转换,替换成NAT后的IP地址为1.1.1.1、NAT后的传输层端口号为19286的报文,该报文送到网络设备后进行转发。来自互联网发往STA1的报文到达网络设备后,网络设备发现下一跳指向NAT端口组,会基于来自互联网发往STA1的报文的目的端口号19286在NAT端口组中进行查询端口号为19286的NAT后的传输层端口号对应的物理端口,查询到物理端口为port1,将报文从port1发送到AP1,AP1再将报文发送到STA1。
[0106] 场景二
[0107] 如图6所示,当STA1漫游到AP2时,AP2会主动向NAT虚拟设备组的主设备AP1发送NAT会话表项请求报文,请求与STA1相关的NAT会话表项,查询到后将该与STA1相关的NAT会话表项中的NAT后的传输层端口号发送给AP2,在AP2在自身生成相同的NAT会话表项,如表4所示。AP2向网络设备发送NAT会话通告报文,通告端口号为19286的NAT后的传输层端口号的STA已经切换到了AP2设备,网络设备接收到该NAT会话通告报文后,生成新的该NAT后的传输层端口号与接收该NAT会话通告报文的物理接口的对应关系,如表5所示。
[0108] 表4
[0109]
[0110] 表5
[0111]
[0112]
[0113] 当来自互联网发往STA1的报文到达网络设备后,网络设备发现下一跳指向NAT端口组,会基于来自互联网发往STA1的报文的目的端口号19286在NAT端口组中进行查询端口号为19286的NAT后的传输层端口号对应的物理端口,查询到物理端口为port2,将报文从port2发送到AP2,AP2再将报文发送到STA1。
[0114] 图7示出了本申请提供了一种接入点设备,该接入点设备可以执行引导数据报文的流程。
[0115] 如图7所示,该接入点设备具体包括:处理单元701、收发单元702;
[0116] 处理单元701,用于确定终端的NAT会话表项,所述终端的NAT会话表项包括NAT后的传输层端口号;
[0117] 收发单元702,用于向网络设备发送所述处理单元701确定的NAT会话通告报文,所述NAT会话通告报文包括所述NAT后的传输层端口号,所述NAT会话通告报文指示所述网络设备用接收所述NAT会话通告报文的物理端口转发发往所述终端的目的端口号为所述NAT后的传输层端口号的数据报文。
[0118] 所述处理单元701与所述收发单元702所执行的具体流程已在上述实施例中具体描述,不再赘述。
[0119] 基于相同的技术构思,图8示出了本申请提供了一种网络设备,该网络设备可以执行上述转发数据报文的流程。
[0120] 如图8所示,该网络设备具体包括:收发单元801和处理单元802;
[0121] 收发单元801,用于接收接入点设备发送的NAT会话通告报文,所述NAT会话通告报文包括NAT后的传输层端口号;
[0122] 处理单元802,用于生成所述NAT后的传输层端口号与接收所述NAT会话通告报文的物理端口的对应关系;
[0123] 所述收发单元801还用于接收数据报文,所述数据报文的目的端口号为所述NAT后的传输层端口号;并根据所述对应关系用所述物理端口转发所述数据报文。
[0124] 所述处理单元802与所述收发单元801所执行的具体流程已在上述实施例中具体描述,不再赘述。
[0125] 基于相同构思,参见图9,为本申请提供的一种接入点设备900。该接入点设备900可以执行上述各实施例中接入点设备所实施的步骤或执行的功能。该接入点设备900可包括:收发器901、处理器902和存储器903。处理器902用于控制接入点设备900的操作;存储器903可以包括只读存储器和随机存取存储器,存储有处理器902可以执行的指令和数据。收发器901、处理器902和存储器903等各组件通过总线909连接,其中总线909除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线909。收发器901可以是收发机,可以包括发送机和接收机。该接入点设备900可以通过有线端口或无线端口与其他设备进行通信,如路由器、中继器等。
[0126] 本申请揭示的一种引导数据报文的方法可以应用于处理器902中,或者由处理器902实现。
[0127] 处理器902用于读取存储器903中代码,以用于执行引导数据报文的流程。
[0128] 基于相同构思,参见图10,为本申请提供的一种网络设备1000。该网络设备1000可以执行上述各实施例中接入点设备所实施的步骤或执行的功能。该网络设备1000可包括:收发器1001、处理器1002和存储器1003。处理器1002用于控制网络设备1000的操作;存储器
1003可以包括只读存储器和随机存取存储器,存储有处理器1002可以执行的指令和数据。
收发器1001、处理器1002和存储器1003等各组件通过总线1009连接,其中总线1009除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都标为总线1009。收发器1001可以是收发机,可以包括发送机和接收机。
该网络设备1000可以通过有线端口或无线端口与其他设备进行通信,如路由器、中继器等。
该网络设备1000可以通过处理器1002实现从NAT端口组中查询表的过程,也可以通过一个查询设备,从NAT端口组中查询表的过程。
[0129] 本申请揭示的一种转发数据报文的方法可以应用于处理器1002中,或者由处理器1002实现。
[0130] 处理器1002用于读取存储器1003中代码,以用于执行转发数据报文的流程。
[0131] 本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0132] 尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0133] 显然,本领域的技术人员可以对本申请各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。