一种控制会话的处理方法和路由设备与流程

文档序号:37278277发布日期:2024-03-12 21:14阅读:27来源:国知局
一种控制会话的处理方法和路由设备与流程

本说明书涉及通信,尤其涉及一种控制会话的处理方法和路由设备。


背景技术:

1、npu:network processing unit,网络处理单元;

2、nat:network address translation网络地址转换;

3、alg:application level gateway应用层网关;

4、nat hairpin:nat hairpin功能用于满足位于内网侧的用户之间或内网侧的用户与服务器之间通过nat地址进行访问的需求。

5、alg(application level gateway,应用层网关)主要完成对应用层报文的处理。通常情况下,nat只对报文头中的ip地址和端口信息进行转换,不对应用层数据载荷中的字段进行分析。然而一些特殊协议,它们报文的数据载荷中可能包含ip地址或端口信息,这些内容不能被nat进行有效的转换,就可能导致问题。例如,ftp应用就由数据会话和控制会话共同完成,而且数据会话的建立动态地由控制会话中的载荷字段信息决定,这就需要alg来完成载荷字段信息的转换,以保证后续数据会话的正确建立。

6、nat hairpin功能用于满足位于内网侧的用户之间或内网侧的用户与服务器之间通过nat地址进行访问的需求。开启nat hairpin的内网侧接口上会对报文同时进行源地址和目的地址的转换。它支持两种组网模式:

7、p2p:位于内网侧的用户之间通过动态分配的nat地址互访。内网各主机首先向外网服务器注册自己的外网地址信息,该地址信息为外网侧出方向地址转换的nat地址,然后内网主机之间通过使用彼此向外网服务器注册的外网地址进行互访。

8、c/s:位于内网侧的用户使用nat地址访问内网服务器。nat在内网接口上同时转换访问内网服务器的报文的源和目的ip地址,其中,目的ip地址转换通过匹配某外网接口上的内部服务器配置来完成,源地址转换通过匹配内部服务器所在接口上的出方向动态地址转换或出方向静态地址转换来完成。

9、目前常用的alg nat hairpin的处理方式较为简单,设备硬件转发过程中报文目的ip地址命中设备接口配置的nat server地址池路由后直接将报文上送至cpu用户态进行处理,用户态对报文三层头及数据载荷中可能包含的ip地址(包括源ip及目的ip)进行转换后生成控制会话表项,之后报文下发到硬件,设备按其对应的下一跳出口转发出去。

10、目前nat alg hairpin所有的数据会话报文及控制会话报文通常都在cpu进行处理,受限于cpu性能,实际的nat alg业务转发能力有限不能满足用户需求,会话在npu进行处理则受限于npu硬件的处理逻辑,每次流程处理仅可以对ip地址进行一次转换处理,无法对nat hairpin场景涉及的两次nat转换进行适当的处理。


技术实现思路

1、为克服相关技术中存在的问题,本说明书提供了一种控制会话的处理方法和路由设备。

2、根据本说明书实施例的第一方面,提供控制会话的处理方法,所述方法包括:

3、网络处理单元npu接收携带第一控制报文,将所述第一控制报文中的第一源地址根据网络地址转换nat规则转换为的第二源地址;

4、npu将所述第一控制报文和第二源地址上送cpu内核态;

5、npu接收cpu内核态发送的第二控制报文,将第二控制报文中的第一目的地址根据nat规则转换为第二目的地址,其中,所述第二控制报文为源地址为第二源地址的第一控制报文;

6、npu将第二控制报文和第二目的地址上送cpu内核态,以及cpu内核态将第一控制报文和第二源地址上送cpu用户态,使cpu用户态建立会话表;

7、npu接收cpu内核态发送的接管通知和用户态转换的控制报文进行会话处理,其中所述接管通知为cpu用户态在建立会话表后向cpu内核态发送的。

8、其中,在将所述第一控制报文中的第一源地址根据网络地址转换nat规则转换为的第二源地址之前,所述方法还包括:

9、根据用户预先下发的nat规则,判断是否需要对第一控制报文进行地址转换,若需要则执行将所述第一控制报文中的第一源地址根据网络地址转换nat规则转换为的第二源地址。

10、其中,所述将所述第一控制报文中的第一源地址根据网络地址转换nat规则转换为的第二源地址,包括:

11、npu分配地址资源,建立第一控制会话硬件表,将第一源地址根据nat规则转换为第二源地址,同时将第一控制会话硬件表中的第一标识位置位,其中,所述第一标识位用于表示该第一控制会话硬件表需要进行两次nat地址转换。

12、其中,所述npu将所述第一控制报文和第二源地址上送cpu内核态,包括:

13、npu封装第一消息上送cpu内核态,所述第一消息中携带第一控制报文、第二源地址和置位后的第一标识位,所述第一标识位用于表示该第一控制会话硬件表需要进行两次nat地址转换。

14、可选的,所述方法还包括:

15、cpu内核态在接收到npu发送的第一控制报文和第二源地址后,建立会话表,所述会话表包括:第一内核态软件表和第二内核态软件表,其中,所述第一内核态软件表用于存储第一控制报文和第二源地址,所述第二内核态软件表用于存储第二控制报文和第一源地址。

16、其中,所述npu接收cpu内核态发送的第二控制报文,包括:

17、npu根据第二控制报文建立第二控制会话硬件表。

18、其中,所述npu将第二控制报文和第二目的地址上送cpu内核态,包括:

19、npu封装第二消息,所述第二消息中携带第二控制报文和第二目的地址。

20、其中,所述cpu内核态接收到第二消息后,所述方法还包括:

21、cpu内核态根据第二消息查询第二内核态软件表,获得第一源地址,根据第一源地址和第二消息中的第二控制报文获得第一控制报文;

22、cpu内核态将第一控制报文和第二源地址上送cpu用户态;

23、cpu用户态获取第一控制报文,根据入接口对第一控制报文中的第一目的地址进行转换获得第二目的地址,将第一控制报文中的第一源地址进行转换获第二源地址,并建立会话表。

24、可选的,在npu接收cpu内核态发送的接管通知后,所述方法还包括:

25、npu接收cpu内核态发送的第三消息,根据第三消息从控制会话硬件表中确定目标控制会话硬件表,删除所述目标控制会话硬件表并向cpu内核态发送第四消息,所述第四消息用于表示目标控制会话硬件表已删除;

26、cpu内核态根据第四消息向cpu用户态发送第五消息,用户指示cpu用户态删除与第五消息对应的会话表;

27、cpu用户态根据第五消息删除对应的会话表,并向cpu内核态发送第六消息,用于指示cpu内核态删除与第六消息对应的会话表;

28、其中,第三消息、第四消息、第五消息和第六消息具有相同的源地址和目的地址。

29、通过上述各实施例可以看出,在npu、cpu内核态和cpu用户态分别建立了会话表(用户态软件表、内核态软件表和控制会话硬件表),实现了用户侧观察nat会话为一个会话,同原先纯cpu实现的alg nat hairpin的会话显示保持一致,同时也解决了受限于npu硬件的处理逻辑,每次流程处理仅可以对ip进行一次转换处理,无法实现nat hairpin场景中的两次nat转换的技术问题。

30、根据本说明书实施例的第二方面,提供一种路由设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如下方法:

31、网络处理单元npu接收携带第一控制报文,将所述第一控制报文中的第一源地址根据网络地址转换nat规则转换为的第二源地址;

32、npu将所述第一控制报文和第二源地址上送cpu内核态;

33、npu接收cpu内核态发送的第二控制报文,将第二控制报文中的第一目的地址根据nat规则转换为第二目的地址,其中,所述第二控制报文为源地址为第二源地址的第一控制报文;

34、npu将第二控制报文和第二目的地址上送cpu内核态,以及cpu内核态将第一控制报文和第二源地址上送cpu用户态,使cpu用户态建立会话表;

35、npu接收cpu内核态发送的接管通知和用户态转换的控制报文进行会话处理,其中所述接管通知为cpu用户态在建立会话表后向cpu内核态发送的。

36、根据本说明书实施例的第二方面,提供一种路由设备,所述路由设备包括:npu和cpu,所述cpu包括:cpu内核态和cpu用户态,所述npu包括:

37、接收模块,用于接收携带第一控制报文,将所述第一控制报文中的第一源地址根据网络地址转换nat规则转换为的第二源地址;

38、发送模块,用于将所述第一控制报文和第二源地址上送cpu内核态;

39、所述接收模块,还用于接收cpu内核态发送的第二控制报文,将第二控制报文中的第一目的地址根据nat规则转换为第二目的地址,其中,所述第二控制报文为源地址为第二源地址的第一控制报文;

40、所述发送模块,还用于将第二控制报文和第二目的地址上送cpu内核态,以及cpu内核态将第一控制报文和第二源地址上送cpu用户态,使cpu用户态建立会话表;

41、所述接收模块,还用于接收cpu内核态发送的接管通知进行会话处理,其中所述接管通知为cpu用户态在建立会话表后向cpu内核态发送的。

42、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1