一种网络节点间NAT探测方法、装置及存储介质与流程
未命名
07-22
阅读:71
评论:0
一种网络节点间nat探测方法、装置及存储介质
技术领域
1.本发明涉及通信技术领域,特别涉及一种网络节点间nat探测方法、装置及存储介质。
背景技术:
2.由于internet网络设计之初,基本没有把安全设计在内,因此网络通信存在很大安全隐患;随着时间的推移,技术的发展,网络在人们的生活中随处可见,其安全隐患也暴露无遗,威胁着人们的财产、安全;在这种情况下就出现了诸如ipsec等安全通信协议,来弥补最初网络设计时没有考虑安全需求的缺陷。但是由于在internet上有网络地址转换(network address translation,简称nat)的存在,部署诸如ipsec等安全通信协议工程时又无法知道部署环境是否存在nat设备(因为是否存在nat设备决定着安全通信保障方式),所以就需要通过nat探测方法来确定诸如ipsec等安全通信协议如何保障安全通信。
3.现阶段,安全通信协议没有一个nat探测的统一解决方案,一般使用密钥管理协议进行nat探测,例如ipsec使用ike(internet key exchange)进行nat探测;但是使用ike进行nat探测还存在如下缺陷:
4.功能界定混乱,边界模糊,不利于密钥管理协议对密钥管理功能的扩展。例如,ipsec进行nat探测使用密钥管理协议ike的“通告载荷”实现,“通告载荷”是密钥管理协议的一部分,如果进行密钥管理功能的扩展(如,进一步加强密钥管理的安全性),由于受nat探测功能支持的限制,存在内部ip地址的暴露风险,反而使安全性降低。
技术实现要素:
5.本发明实施例提供一种网络节点间nat探测方法、装置及存储介质,用以解决现有技术中类似ipsec使用ike进行nat探测时,由于nat探测与密钥管理协议紧耦合而造成的密钥管理功能扩展难且引入安全漏洞问题。
6.第一方面,本发明实施例提供一种网络节点间nat探测方法,包括:
7.请求节点获取第一节点信息,并将获取的第一节点信息作为nat探测请求消息或nat探测结果请求消息的载荷数据,所述第一节点信息包括请求节点自身的ip地址,及配置的响应节点的ip地址;
8.请求节点将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,并对封装后得到的nat探测请求分组报文进行保护处理后发送至响应节点;
9.响应节点接收所述nat探测请求分组报文,并对接收的nat探测请求分组报文进行解保护处理;
10.响应节点从解保护处理后的nat探测请求分组报文中获取所述nat探测请求消息或nat探测结果请求消息,将获取的nat探测请求消息或nat探测结果请求消息中的载荷数据与所述nat探测请求分组报文的第一ip报头中的对应内容进行对比,根据对比结果确定nat探测结果;
11.响应节点从解保护处理后的nat探测请求分组报文中获取到所述nat探测请求消息时,获取第二节点信息,所述第二节点信息包括响应节点自身的ip地址,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的ip地址,并将第二节点信息作为nat探测响应消息的载荷数据,将所述nat探测响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;或者,响应节点从解保护处理后的nat探测请求分组报文中获取到所述nat探测结果请求消息时,将所述nat探测结果携带在nat探测结果响应消息,将所述nat探测结果响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;
12.请求节点接收所述nat探测响应分组报文并进行解保护处理,从解保护处理后的nat探测响应分组报文中获取到nat探测结果响应消息时,从所述nat探测结果响应消息中获取nat探测结果;或者,从解保护处理后的nat探测响应分组报文中获取到nat探测响应消息时,获取所述nat探测响应消息的载荷数据,并将获取的载荷数据与所述nat探测响应分组报文的第二ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。
13.可选地,所述第一节点信息还包括请求节点自身的端口号,及配置的响应节点的端口号;或者所述第一节点信息还包括请求节点自身的sid,及配置的响应节点的sid;
14.所述第二节点信息还包括响应节点自身的端口号,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的端口号;或者所述第二节点信息还包括响应节点自身的sid,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的sid。
15.可选地,所述请求节点将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,包括:
16.将所述第一节点信息封装到nat探测请求分组报文的第一ip报头中;
17.将所述nat探测请求消息或nat探测结果请求消息封装到nat探测请求分组报文的第一报文内容;
18.所述响应节点将所述nat探测响应消息或nat探测结果响应消息进行ip报文封装,包括:
19.将所述第二节点信息封装到nat探测响应分组报文的第二ip报头中;
20.将所述nat探测响应消息或nat探测结果响应消息封装到nat探测响应分组报文的第二报文内容。
21.可选地,所述nat探测请求消息或所述nat探测结果请求消息或所述nat探测响应消息,包括指示消息类型的标识、用于解析ip地址个数的长度信息;
22.所述nat探测结果响应消息,包括指示请求节点和响应节点间是否存在nat的标识。
23.可选地,请求节点对所述nat探测请求分组报文进行保护处理,包括:
24.请求节点对所述nat探测请求分组报文进行加密、数据混淆、完整性校验中的至少一项处理;
25.响应节点对所述nat探测请求分组报文进行解保护处理,包括:
26.响应节点对所述nat探测请求分组报文进行解密、数据还原、完整性校验中的至少一项处理。
27.可选地,响应节点对所述nat探测响应分组报文进行保护处理,包括:
28.响应节点对所述nat探测响应分组报文进行加密、数据混淆、完整性校验中的至少一项处理;
29.请求节点对所述nat探测响应分组报文进行解保护处理,包括:
30.请求节点对所述nat探测响应分组报文进行解密、数据还原、完整性校验中的至少一项处理。
31.可选地,响应节点根据对比结果确定nat探测结果,包括如下任一步骤:
32.当获取的载荷数据中的请求节点的ip地址与第一ip报头中的请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat;
33.当获取的载荷数据中的响应节点的ip地址与所述第一ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与所述第一ip报头中的响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与所述第一ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。
34.可选地,请求节点根据对比结果确定nat探测结果,包括:
35.当获取的载荷数据中的响应节点的ip地址与第二ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat;
36.当获取的载荷数据中请求节点的ip地址与所述第二ip报头中请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与所述第二ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与所述第二ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。
37.可选地,所述请求节点或响应节点根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果;
38.所述第一探测结果为指示所述请求节点和响应节点间是否存在nat的探测结果;
39.所述第二探测结果包括指示所述请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。
40.第二方面,本发明实施例还提供一种网络节点间nat探测装置,配置于请求节点,包括:
41.获取模块,用于获取第一节点信息,并将获取的第一节点信息作为nat探测请求消息或nat探测结果请求消息的载荷数据,所述第一节点信息包括请求节点自身的ip地址,及配置的响应节点的ip地址;
42.封装模块,用于将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,并对封装后得到的nat探测请求分组报文进行保护处理后发送至响应节点;
43.确定模块,用于接收nat探测响应分组报文并进行解保护处理,从解保护处理后的nat探测响应分组报文中获取到nat探测结果响应消息时,从所述nat探测结果响应消息中获取nat探测结果;或者,从解保护处理后的nat探测响应分组报文中获取到nat探测响应消息时,获取所述nat探测响应消息的载荷数据,并将获取的载荷数据与所述nat探测响应分
组报文的第二ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。
44.第三方面,本发明实施例还提供一种网络节点间nat探测装置,配置于响应节点,包括:
45.接收模块,用于接收nat探测请求分组报文,并对接收的nat探测请求分组报文进行解保护处理;
46.确定模块,用于从解保护处理后的nat探测请求分组报文中获取所述nat探测请求消息或nat探测结果请求消息,将获取的nat探测请求消息或nat探测结果请求消息中的载荷数据与所述nat探测请求分组报文的第一ip报头中的对应内容进行对比,根据对比结果确定nat探测结果;
47.获取模块,用于从解保护处理后的nat探测请求分组报文中获取到所述nat探测请求消息时,获取第二节点信息,所述第二节点信息包括响应节点自身的ip地址,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的ip地址,并将第二节点信息作为nat探测响应消息的载荷数据,将所述nat探测响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;或者,用于从解保护处理后的nat探测请求分组报文中获取到所述nat探测结果请求消息时,将所述nat探测结果携带在nat探测结果响应消息,将所述nat探测结果响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点。
48.第四方面,本发明实施例还提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面提供的网络节点间nat探测方法的步骤。
49.本发明有益效果如下:
50.本技术提供了独立于密钥管理协议而单独存在的一种nat探测方法,简单、可靠,解决了网络节点间nat探测与密钥管理协议紧耦合而造成的功能界定混乱、边界模糊所带来的密钥管理功能扩展难的问题(例如,本技术的nat探测能力由与密钥管理协议无关的携带ip地址、或ip地址和端口号、或ip地址和会话标识sid的协议完成,密钥管理由专门的密钥管理协议来完成,密钥管理安全性的加强及扩展,不会受nat探测能力的影响);此外,本技术的nat探测是由独立的协议实现,不是通过修改密钥管理协议本身实现,修改nat探测能力不会影响密钥管理协议本身的安全能力;支持nat探测方法多样性,支持仅确定是否存在nat或确定nat分布位置的不同的探测方式;在仅确定是否存在nat时,响应节点仅反馈nat探测结果,减少通信量,更适应流量敏感的网络环境;支持对nat探测过程的保护,避免内部地址泄露,避免攻击者修改探测消息导致dos攻击或网络资源浪费,加强了系统的整体安全性。
附图说明
51.图1为本发明实施例提供的一种网络节点间nat探测方法的流程示意图;
52.图2为本发明实施例提供的请求节点与响应节点间存在nat时的nat分布位置示意图;
53.图3为本发明实施例提供的一种配置于请求节点的nat探测装置的结构示意图;
54.图4为本发明实施例提供的一种配置于响应节点的nat探测装置的结构示意图。
具体实施方式
55.为使本发明的上述目的、特征和优点能够更为明显易懂,下面将结合附图和实施例对本发明做进一步说明。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明更全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。本发明中所描述的表达位置与方向的词,均是以附图为例进行的说明,但根据需要也可以做出改变,所做改变均包含在本发明保护范围内。本发明的附图仅用于示意相对位置关系不代表真实比例。
56.需要说明的是,在以下描述中阐述了具体细节以便于充分理解本发明。但是本发明能够以多种不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广。因此本发明不受下面公开的具体实施方式的限制。说明书后续描述为实施本技术的较佳实施方式,然所述描述乃以说明本技术的一般原则为目的,并非用以限定本技术的范围。本技术的保护范围当视所附权利要求所界定者为准。
57.下面结合附图,对本发明实施例提供的网络节点间nat探测方法、装置及存储介质进行具体说明。
58.本发明实施例提供了一种网络节点间nat探测方法,如图1所示,包括:
59.s101、请求节点获取第一节点信息,并将获取的第一节点信息作为nat探测请求消息或nat探测结果请求消息的载荷数据,所述第一节点信息包括请求节点自身的ip地址,及配置的响应节点的ip地址。
60.上述nat探测请求消息与nat探测结果请求消息的格式相同,属于不同消息类型,若请求节点需要确定是否存在nat,及存在nat时nat的分布位置,则需向响应节点发送nat探测请求消息,若请求节点仅需要确定与响应节点间是否存在nat时,则需向响应节点发送nat探测结果请求消息。
61.上述nat探测请求消息或nat探测结果请求消息的载荷数据相同,载荷数据内容包括:请求节点自身的ip地址,响应节点的ip地址。但是需要注意的是,响应节点的地址可由管理员配置,因为初始情况下,需要明确告知请求节点向哪个响应节点发送。
62.s102、请求节点将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,并对封装后得到的nat探测请求分组报文进行保护处理后发送至响应节点。
63.作为一种可选的实施方式,请求节点需向响应节点发送nat探测请求消息时,将所述nat探测请求消息进行ip报文封装,包括:
64.请求节点将第一节点信息封装到nat探测请求分组报文的第一ip报头中;将所述nat探测请求消息封装到nat探测请求分组报文的第一报文内容。
65.作为另一种可选的实施方式,请求节点需向响应节点发送nat探测结果请求消息时,将所述nat探测结果请求消息进行ip报文封装,包括:
66.请求节点将第一节点信息封装到nat探测请求分组报文的第一ip报头中;将所述nat探测结果请求消息封装到nat探测请求分组报文的第一报文内容。
67.需要说明的是,上述请求节点的第一节点信息,在组织nat探测请求分组报文时,既存在于第一ip报头中,也会被封装在第一报文内容中。
68.假设发起端是请求节点,接收端是响应节点,请求节点进行ip报文封装的时候,需
要首先组织形成请求节点的nat探测请求消息或nat探测结果请求消息的载荷数据,再将nat探测请求消息或nat探测结果请求消息进行ip报文封装,便形成nat探测请求分组报文。
69.需要说明的是,本技术中请求节点或响应节点自身的地址称为私有地址,将请求节点或响应节点在网络中传输报文时封装到报头中的地址称为公有地址。对于请求节点或响应节点,若经nat进行网络地址转换传输报文时,则公有地址与私有地址为不同的地址;若未经nat进行网络地址转换传输报文时,则公有地址与私有地址为相同的地址。
70.参见图2所示的请求节点与响应节点间存在nat时,nat的分布位置示意图,包括三种情况:
71.情况一,请求节点与网络间存在nat,响应节点与网络间不存在nat;
72.封装到第一ip报头中的请求节点的ip地址是私有地址,响应节点的ip地址是响应节点自身的公有地址,同时也是私有地址。上述经保护处理的nat探测请求分组报文在经过nat时,第一ip报头中的请求节点的私有ip地址会被nat更改为不同的公有地址。
73.情况二,请求节点与网络间不存在nat,响应节点与网络间存在nat;
74.封装到第一ip报头中的请求节点的ip地址是请求节点自身的私有地址,同时也是公有地址,响应节点的ip地址是公有地址,上述经保护处理的nat探测请求分组报文在经过nat时,第一ip报头中的响应节点的公有ip地址会被nat改变为不同的私有地址。
75.情况三,请求节点与网络间存在nat,响应节点与网络间存在nat;
76.封装到第一ip报头中的请求节点的ip地址是私有地址,响应节点的ip地址是公有地址。上述经保护处理的nat探测请求分组报文在经过请求节点与网络间的nat时,第一ip报头中的请求节点的私有ip地址会被nat更改为不同的公有地址,在经过响应节点与网络间的nat时,第一ip报头中的响应节点的公有ip地址会被nat改变为不同的私有地址。
77.若请求节点与响应节点间不存在nat,即请求节点与网络间不存在nat、响应节点与网络间不存在nat,则封装到第一ip报头中的请求节点的ip地址是请求节点自身的私有地址,同时也是在网络传输中使用的公有地址,响应节点的ip地址是响应节点自身的公有地址,同时也是在网络传输中使用的公有地址。
78.上面仅是示例解释了ip地址的改变情况,对于端口和sid的改变规则与ip地址相同,这里不再重述。
79.作为一种可选的实施方式,请求节点对所述nat探测请求分组报文进行保护处理,包括:
80.请求节点对nat探测请求分组报文进行加密、数据混淆、完整性校验中的至少一项处理。具体来讲,对nat探测请求分组报文进行保护处理,是对nat探测请求分组报文中的第一报文内容进行保护处理,不对nat探测请求分组报文中的第一ip报头进行保护处理。
81.需要说明的是,请求节点对nat探测请求分组报文进行保护处理,形成受保护的nat探测请求分组报文。因nat探测请求消息中可能包含敏感信息,对nat探测请求分组报文进行保护处理可以防止内部私有ip地址等敏感信息泄露,所以nat探测请求分组报文在传输过程中需要进行私密性和完整性校验处理,由此可以防止攻击者通过篡改信息而发起dos攻击(例如,ipsec没有对nat探测信息进行保护,攻击者可以通过删除或增加nat发现(nat-discovery,简称nat-d)载荷,从而发起dos攻击)的情况,解决了攻击者篡改信息而造成带宽浪费的问题(例如,在ipsec中,在没有nat的环境下,攻击者可以通过篡改nat检测报
文,造成协商双方都使用用户数据报协议(user datagram protocol,简称udp)封装模式,从而造成带宽的浪费)。
82.s103、响应节点接收所述nat探测请求分组报文,并对接收的nat探测请求分组报文进行解保护处理。
83.作为一种可选的实施方式,响应节点对经保护处理的nat探测请求分组报文进行解保护处理,包括:响应节点对经保护处理的nat探测请求分组报文相应进行解密、数据还原、完整性校验中的至少一项处理。
84.s104、响应节点从解保护处理后的nat探测请求分组报文中获取nat探测请求消息或nat探测结果请求消息,将获取的nat探测请求消息或nat探测结果请求消息中的载荷数据与所述nat探测请求分组报文的第一ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。
85.需要说明的是,响应节点通过对比第一ip报头和nat探测请求消息或nat探测结果请求消息的载荷数据中的ip地址,确定请求节点或响应节点的ip地址在网络传输时,是否经过nat进行地址转换,从而可以解析出请求节点和响应节点间的nat探测结果。
86.s105、响应节点从解保护处理后的nat探测请求分组报文中获取到所述nat探测请求消息时,获取第二节点信息,所述第二节点信息包括响应节点自身的ip地址,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的ip地址,并将第二节点信息作为nat探测响应消息的载荷数据,将所述nat探测响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点。
87.s106、响应节点从解保护处理后的nat探测请求分组报文中获取到所述nat探测结果请求消息时,将所述nat探测结果携带在nat探测结果响应消息,将所述nat探测结果响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点。
88.作为一种可选的实施方式,响应节点将所述nat探测响应消息或nat探测结果响应消息进行ip报文封装,包括:
89.响应节点将所述第二节点信息封装到nat探测响应分组报文的第二ip报头中;将所述nat探测响应消息或nat探测结果响应消息封装到nat探测响应分组报文的第二报文内容。
90.需要说明的是,上述响应节点的第二节点信息,在组织nat探测响应分组报文时,既存在于第二ip报头中,也会被封装在第二报文内容中。
91.响应节点进行ip报文封装的时候,需要首先组织形成响应节点的nat探测响应消息或nat探测结果响应消息的载荷数据,再将nat探测响应消息或nat探测结果响应消息进行ip报文封装,便形成nat探测响应分组报文。
92.需要说明的是,响应节点与请求节点间存在nat时,nat的分布位置包括三种情况,具体参见上述s102(图2)对应内容的阐述,此处不再赘述。
93.作为一种可选的实施方式,响应节点对所述nat探测响应分组报文进行保护处理,包括:
94.响应节点对nat探测响应分组报文进行加密、数据混淆、完整性校验中的至少一项处理。对nat探测响应分组报文进行保护处理,指的是对nat探测响应分组报文中的第二报
文内容进行保护处理,不对nat探测响应分组报文中的第二ip报头进行保护处理。
95.需要说明的是,保护处理的目的与上述请求节点对nat探测请求分组报文进行保护处理一致,此处不再赘述。
96.s107、请求节点接收所述nat探测响应分组报文并进行解保护处理,从解保护处理后的nat探测响应分组报文中获取到nat探测结果响应消息时,从所述nat探测结果响应消息中获取nat探测结果;或者,从解保护处理后的nat探测响应分组报文中获取到nat探测响应消息时,获取所述nat探测响应消息的载荷数据,并将获取的载荷数据与所述nat探测响应分组报文的第二ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。
97.需要说明的是,在实际应用场景中,请求节点向响应节点发送的nat探测请求分组报文中,封装的可以是nat探测请求消息,也可以是nat探测结果请求消息,因此响应节点根据实际情况只需执行s105或s106,相应的,s107中请求节点根据实际情况只需通过其中一种方式得到nat探测结果。
98.作为一种可选的实施方式,请求节点对经保护处理的nat探测响应分组报文进行解保护处理,包括:请求节点对经保护处理的nat探测响应分组报文相应进行解密、数据还原、完整性校验中的至少一项处理。
99.作为一种可选的实施方式,所述第一节点信息还包括请求节点自身的端口号,及配置的响应节点的端口号;或者所述第一节点信息还包括请求节点自身的sid,及配置的响应节点的sid。
100.作为一种可选的实施方式,相应的,所述第二节点信息还包括响应节点自身的端口号,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的端口号;或者所述第二节点信息还包括响应节点自身的sid,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的sid。
101.需要说明的是,响应节点的ip地址、端口号和sid,表示能够将数据发到响应节点的地址。nat探测除了支持带有port(端口)的协议,还支持非端口协议,有些协议没有端口,但是有sid,例如支持tue(tunnel universal encapsulating,隧道通用封装)的sid(session identifier,会话标识)探测,则响应节点可以根据第一ip报头中ip地址、端口和sid的携带情况,根据其中任一项的变化判定是否存在nat,请求节点可以根据第二ip报头中ip地址、端口和sid的携带情况,根据其中任一项的变化判定是否存在nat。
102.本技术提供了独立于密钥管理协议而单独存在的一种nat探测方法,简单、可靠,解决了网络节点间nat探测与密钥管理协议紧耦合而造成的功能界定混乱,边界模糊所带来的密钥管理功能扩展难的问题(例如,本实施例的nat探测能力由与密钥管理协议无关的携带ip地址,或ip地址和端口号,或ip地址和会话标识sid的协议完成,密钥管理由专门的密钥管理协议来完成,密钥管理安全性的加强及扩展,不会受nat探测能力的影响);此外,本实施例的nat探测是由独立的协议实现,不是通过修改密钥管理协议本身实现,修改nat探测能力不会影响密钥管理协议本身的安全能力;支持nat探测方法多样性,支持仅确定是否存在nat或确定nat分布位置的不同的探测方式,在仅确定是否存在nat时,响应节点仅反馈nat探测结果,减少通信量,更适应流量敏感的网络环境;支持对nat探测过程的保护,避免内部地址泄露,避免攻击者修改探测消息导致dos攻击或网络资源浪费,加强了系统的整体安全性。
103.作为一种可选的实施方式,所述nat探测请求消息或所述nat探测结果请求消息或所述nat探测响应消息,包括指示消息类型的标识、用于解析ip地址个数的长度信息;通过消息类型的标识可以对上述三种消息进行区分;所述nat探测结果响应消息,包括指示请求节点和响应节点间是否存在nat的标识;根据指示请求节点和响应节点间是否存在nat的标识,可以确定消息类型为nat探测结果响应消息,且可以确定是否存在nat。
104.需要说明的是,长度信息可以包括载荷数据的长度,或者载荷数据包含请求节点/响应节点地址的个数,或者消息的长度;通过不同类型的长度信息都可以解析出ip地址的个数。
105.作为一种可选的实施方式,nat探测请求消息/nat探测响应消息/nat探测结果请求消息/nat探测结果响应消息的格式包括如下字段:
106.标识字段,具有多个取值,取值定义如下表1所示:
107.表1标识字段取值定义
108.标识字段取值定义1nat探测请求消息2nat探测响应消息3nat探测结果请求消息4nat探测结果响应消息(无nat)5nat探测结果响应消息(有nat)其余保留
109.其中,nat探测请求消息中的指示消息类型的标识取值为1,nat探测响应消息中的指示消息类型的标识取值为2,nat探测结果请求消息中的指示消息类型的标识取值为3,若不存在nat时,nat探测结果响应消息中的标识取值为4,若存在nat时,nat探测结果响应消息中的标识取值为5。
110.长度信息字段,为可选字段,可以通过长度字段解析出载荷数据中ip地址个数。
111.如在多宿主的环境中,请求节点或响应节点可能同时有多个活动的可用ip地址,因此在构造nat探测请求消息或nat探测响应消息或nat探测结果请求消息时应包含这些ip地址的信息;当上述标识字段的取值为1、2、3时,用于解析ip地址个数的长度信息字段为必需字段,当上述标识字段的取值为4或5时,该长度信息字段无效。
112.载荷数据字段,为长度可变的可选字段,表示nat探测请求消息/nat探测响应消息/nat探测结果请求消息的载荷数据;当上述标识字段的取值为1、2、3时,载荷数据字段为必需字段,当上述标识字段的取值为4或5时,载荷数据字段无效。
113.示例性的,载荷数据字段作为nat探测请求消息或nat探测结果请求消息或nat探测响应消息的载荷数据,具体的格式见下表。
[0114][0115]
其中:
[0116]
dst_port(sid):表示nat探测请求消息或nat探测结果请求消息或nat探测响应消息中的对端端口号或对端sid,长度为2个八位位组的可选字段;若当前环境为i pv4,则此
字段必选;若当前环境为i pv6,则无此字段;
[0117]
dst_ip:表示nat探测请求消息或nat探测结果请求消息或nat探测响应消息中的对端ip地址,字段长度根据当前通信的ip版本而定,如果当前使用ipv4通信,则长度为4个八位位组,如果当前使用ipv6通信,则长度为16个八位位组;
[0118]
src_port(sid):表示nat探测请求消息或nat探测结果请求消息或nat探测响应消息中的源端口号或源sid,长度为2个八位位组的可选字段;若当前环境为i pv4,则此字段必选;若当前环境为i pv6,则无此字段;
[0119]
src_ip1|src_ip2|
…
|src_ipn:表示当前通信可用的本地自身ip地址,长度根据当前通信的ip版本和可用ip地址的个数(n)而定,如果当前使用ipv4通信,则长度为4*n个八位位组;如果当前使用ipv6通信,则长度为16*n个八位位组;“|”:表示连接符。
[0120]
例如,可用本地自身ip地址为1个时,n等于1;对于请求节点,src_ipn为请求节点自身的ip地址,src_port(sid)为请求节点的端口号或请求节点的sid,dst_ip为响应节点的ip地址,dst_port(sid)为响应节点的端口号或sid;对于响应节点,src_ipn为响应节点自身的ip地址,src_port(sid)为响应节点的端口号或响应节点sid,dst_ip为请求节点的ip地址,dst_port(sid)为请求节点的端口号或sid。需要说明的是,一个或多个src_ip不能存在ipv4和ipv6混淆,必须是仅ipv4或仅ipv6,具体根据当前通信的ip版本而定。一个节点可能会存在1个或多个本地自身ip地址,但是通信过程中具体使用哪个ip地址是预先不可知的,等完成通信才可知。
[0121]
下面结合nat探测请求消息中源ip地址个数不同的情况,给出对应的响应节点根据对比结果确定nat探测结果可能的实施方式。
[0122]
1、当发送端为请求节点,接收端为响应节点,所述nat探测请求消息中请求节点的ip地址个数为1,响应节点根据对比结果确定nat探测结果,包括如下任一步骤:
[0123]
步骤a:当响应节点获取的载荷数据中请求节点的ip地址与第一ip报头中请求节点的ip地址不同,或者,获取的载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同,或者,获取的载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。
[0124]
需要说明的是,请求节点组织载荷数据时,请求节点的ip地址个数为1,对于响应节点,当在对比过程中解析出满足如下任一个条件时,确定请求节点与网络间存在nat:
[0125]
1)当作为载荷数据的第一节点信息存放请求节点的ip地址,载荷数据中请求节点的ip地址与第一ip报头中请求节点的ip地址不同;
[0126]
2)当作为载荷数据的第一节点信息存放请求节点的ip地址和端口号,载荷数据中请求节点的ip地址与第一ip报头中请求节点的ip地址不同,和/或,载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同;
[0127]
3)当作为载荷数据的第一节点信息存放请求节点的ip地址和sid,载荷数据中请求节点的ip地址与第一ip报头中请求节点的ip地址不同,和/或,载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同。
[0128]
步骤b:当响应节点获取的载荷数据中响应节点的ip地址与第一ip报头中响应节点的ip地址不同,或者,获取的载荷数据中响应节点的端口号与第一ip报头中响应节点的端口号不同,或者,获取的载荷数据中响应节点的sid与第一ip报头中响应节点的sid不同
时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。
[0129]
需要说明的是,请求节点组织载荷数据时,请求节点的ip地址个数为1,对于响应节点,当在对比过程中解析出满足如下任一个条件时,确定响应节点与网络间存在nat:
[0130]
1)当作为载荷数据的第一节点信息存放响应节点的ip地址,载荷数据中响应节点的ip地址与第一ip报头中响应节点的ip地址不同;
[0131]
2)当作为载荷数据的第一节点信息存放响应节点的ip地址和端口号,载荷数据中响应节点的ip地址与第一ip报头中响应节点的ip地址不同,和/或,载荷数据中响应节点的端口号与第一ip报头中响应节点的端口号不同;
[0132]
3)当作为载荷数据的第一节点信息存放响应节点的ip地址和sid,载荷数据中响应节点的ip地址与第一ip报头中响应节点的ip地址不同,和/或,载荷数据中响应节点的sid与第一ip报头中响应节点的sid不同。
[0133]
2、当发送端为请求节点,接收端为响应节点,所述nat探测请求消息中请求节点的ip地址个数大于1,响应节点根据对比结果确定nat探测结果,包括如下任一步骤:
[0134]
步骤a,当响应节点获取的载荷数据中请求节点的所有ip地址与第一ip报头中请求节点的ip地址都不同,或者,获取的载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同,或者,获取的载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。
[0135]
其中,请求节点的所有的ip地址都封装在第一报文内容中,发送时系统在第一ip报头中只添加1个需要使用的ip地址。对于响应节点,当在对比过程中解析出满足如下任一个条件时,确定请求节点与网络间存在nat:
[0136]
1)当作为载荷数据的第一节点信息存放请求节点的所有ip地址,载荷数据中请求节点的所有ip地址与第一ip报头中请求节点的ip地址都不同;
[0137]
2)当作为载荷数据的第一节点信息存放请求节点的所有ip地址和端口号,载荷数据中请求节点的所有ip地址与第一ip报头中请求节点的ip地址都不同,和/或,载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同;
[0138]
3)当作为载荷数据的第一节点信息存放请求节点的所有ip地址和sid,载荷数据中请求节点的所有ip地址与第一ip报头中请求节点的ip地址都不同,和/或,载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同。
[0139]
步骤b,当响应节点获取的载荷数据中响应节点的ip地址与第一ip报头中响应节点的ip地址不同,或者,获取的载荷数据中响应节点的端口号与第一ip报头中响应节点的端口号不同,或者,获取的载荷数据中响应节点的sid与第一ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。
[0140]
具体解释参见上述请求节点组织载荷数据时,请求节点的ip地址个数为1时,载荷数据中响应节点信息的对比过程,此处不再赘述。
[0141]
请求节点获得最终的nat探测结果包括两种方式:方式1,当响应节点向请求节点反馈的是nat探测响应消息时,请求节点根据对比结果确定nat探测结果;方式2,如果响应节点向请求节点反馈的是nat探测结果响应消息时,请求节点直接从nat探测结果响应消息中获取nat探测结果。
[0142]
下面结合nat探测响应消息中源ip地址个数不同的情况,给出对应的请求节点根
据对比结果确定nat探测结果可能的实施方式。
[0143]
1、当发送端为响应节点,接收端为请求节点,所述nat探测响应消息中响应节点的ip地址个数为1,请求节点根据对比结果确定nat探测结果,包括:
[0144]
步骤a:当请求节点获取的载荷数据中响应节点的ip地址与第二ip报头中响应节点的ip地址不同,或者,获取的载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同,或者,获取的载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。
[0145]
需要说明的是,响应节点组织载荷数据时,响应节点的ip地址个数为1,对于请求节点,当在对比过程中解析出满足如下任一个条件时,确定响应节点与网络间存在nat:
[0146]
1)当作为载荷数据的第二节点信息存放响应节点的ip地址,载荷数据中响应节点的ip地址与第二ip报头中响应节点的ip地址不同;
[0147]
2)当作为载荷数据的第二节点信息存放响应节点的ip地址和端口号,载荷数据中响应节点的ip地址与第二ip报头中响应节点的ip地址不同,和/或,载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同;
[0148]
3)当作为载荷数据的第二节点信息存放响应节点的ip地址和sid,载荷数据中响应节点的ip地址与第二ip报头中响应节点的ip地址不同,和/或,载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同。
[0149]
步骤b:当请求节点获取的载荷数据中请求节点的ip地址与第二ip报头中请求节点的ip地址不同,或者,获取的载荷数据中请求节点的端口号与第二ip报头中请求节点的端口号不同,或者,获取的载荷数据中请求节点的sid与第二ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。
[0150]
需要说明的是,响应节点组织载荷数据时,响应节点的ip地址个数为1,对于请求节点,当在对比过程中解析出满足如下任一个条件时,确定请求节点与网络间存在nat:
[0151]
1)当作为载荷数据的第二节点信息存放请求节点的ip地址,载荷数据中请求节点的ip地址与第二ip报头中请求节点的ip地址不同;
[0152]
2)当作为载荷数据的第二节点信息存放请求节点的ip地址和端口号,载荷数据中请求节点的ip地址与第二ip报头中请求节点的ip地址不同,和/或,载荷数据中请求节点的端口号与第二ip报头中请求节点的端口号不同;
[0153]
3)当作为载荷数据的第二节点信息存放请求节点的ip地址和sid,载荷数据中请求节点的ip地址与第二ip报头中请求节点的ip地址不同,和/或,载荷数据中请求节点的sid与第二ip报头中请求节点的sid不同。
[0154]
2、当发送端为响应节点,接收端为请求节点,所述nat探测响应消息中响应节点的ip地址个数大于1,请求节点根据对比结果确定nat探测结果,包括:
[0155]
步骤a:当请求节点获取的载荷数据中响应节点的所有ip地址与第二ip报头中响应节点的ip地址都不同,或者,获取的载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同,或者,获取的载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。
[0156]
其中,响应节点的所有的ip地址都封装在第二报文内容中,发送的时候,系统在第二ip报头中只添加1个需要使用的ip地址。对于请求节点,当在对比过程中解析出满足如下
任一个条件时,确定响应节点与网络间存在nat:
[0157]
1)当作为载荷数据的第二节点信息存放响应节点的所有ip地址,载荷数据中响应节点的所有ip地址与在第二ip报头中响应节点的ip地址都不同;
[0158]
2)当作为载荷数据的第二节点信息存放响应节点的所有ip地址和端口号,载荷数据中响应节点的所有ip地址与第二ip报头中响应节点的ip地址都不同,和/或,载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同;
[0159]
3)当作为载荷数据的第二节点信息存放响应节点的所有ip地址和sid,载荷数据中响应节点的所有ip地址与第二ip报头中响应节点的ip地址都不同,和/或,载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同。
[0160]
步骤b:当请求节点获取的载荷数据中请求节点的ip地址与第二ip报头中请求节点的ip地址不同,或者,获取的载荷数据中请求节点的端口号与第二ip报头中请求节点的端口号不同,或者,获取的载荷数据中请求节点的sid与第二ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。
[0161]
具体解释参见上述响应节点组织载荷数据时,响应节点的ip地址个数为1时,载荷数据中请求节点信息的对比过程,此处不再赘述。
[0162]
需要说明的是,nat探测结果信息没有必要全部保存,但是为了接下来数据安全通道的封装以及通信,响应节点可以有选择的保存nat探测结果信息,根据选择保存的不同nat探测结果信息得到第一探测结果或第二探测结果。所述请求节点或响应节点根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果。
[0163]
其中,所述第一探测结果为指示请求节点和响应节点间是否存在nat的探测结果;所述第二探测结果为指示请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。
[0164]
作为一种可选的实施方式,对于响应节点,当获取的载荷数据中的请求节点的ip地址与第一ip报头中请求节点的ip地址不同,但载荷数据中请求节点的端口号/sid与第一ip报头中请求节点的端口号/sid相同时,对探测过程产生对应的日志信息并保存;
[0165]
或者,当获取的载荷数据中响应节点的ip地址与第一ip报头中响应节点的ip地址不同,但载荷数据中响应节点的端口号/sid与第一ip报头中响应节点的端口号/sid相同时,对探测过程产生对应的日志信息并保存。
[0166]
需要说明的是,当响应节点从nat探测请求分组报文中获取的载荷数据中请求节点的ip地址与第一ip报头中请求节点的ip地址不同,按常规来讲可以证明请求节点与网络间存在nat,但当出现载荷数据中请求节点的端口号或sid与第一ip报头中请求节点的端口号或sid相同时,则可能出现nat映射失败的情况,本技术将这种情况归为请求节点与网络间的nat不支持穿越;请求节点在向响应节点发送消息时,请求节点与网络间的nat会将请求节点自身的端口号或sid改成nat的端口号或sid,但是第一ip报头中请求节点的端口号或sid没有变,即在请求节点与网络间的nat进行地址映射时可能失败(例如,nat不支持udp穿越的情况),这时需要产生对应的日志信息并保存,以便后期管理员查看日志,排查不支持nat穿越的情况。
[0167]
基于同一发明构思,本发明实施例还提供一种网络节点间nat探测装置,配置于请
求节点,如图3所示,包括:
[0168]
获取模块301,用于获取第一节点信息,并将获取的第一节点信息作为nat探测请求消息或nat探测结果请求消息的载荷数据,所述第一节点信息包括请求节点自身的ip地址,及配置的响应节点的ip地址;
[0169]
封装模块302,用于将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,并对封装后得到的nat探测请求分组报文进行保护处理后发送至响应节点;
[0170]
确定模块303,用于接收nat探测响应分组报文并进行解保护处理,从解保护处理后的nat探测响应分组报文中获取到nat探测结果响应消息时,从所述nat探测结果响应消息中获取nat探测结果;或者,从解保护处理后的nat探测响应分组报文中获取到nat探测响应消息时,获取所述nat探测响应消息的载荷数据,并将获取的载荷数据与所述nat探测响应分组报文的第二ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。
[0171]
可选地,所述第一节点信息还包括请求节点自身的端口号,及配置的响应节点的端口号;或者所述第一节点信息还包括请求节点自身的sid,及配置的响应节点的sid。
[0172]
可选地,封装模块302将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,包括:
[0173]
将所述第一节点信息封装到nat探测请求分组报文的第一ip报头中;
[0174]
将所述nat探测请求消息或nat探测结果请求消息封装到nat探测请求分组报文的第一报文内容。
[0175]
可选地,所述nat探测请求消息或所述nat探测结果请求消息或所述nat探测响应消息,包括指示消息类型的标识、用于解析ip地址个数的长度信息;
[0176]
所述nat探测结果响应消息,包括指示请求节点和响应节点间是否存在nat的标识。
[0177]
可选地,封装模块302对所述nat探测请求分组报文进行保护处理,包括:
[0178]
封装模块302对所述nat探测请求分组报文进行加密、数据混淆、完整性校验中的至少一项处理。
[0179]
可选地,确定模块303对所述nat探测响应分组报文进行解保护处理,包括:
[0180]
确定模块303对所述nat探测响应分组报文进行解密、数据还原、完整性校验中的至少一项处理。
[0181]
可选地,确定模块303根据对比结果确定nat探测结果,包括:
[0182]
当获取的载荷数据中的响应节点的ip地址与第二ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat;
[0183]
当获取的载荷数据中请求节点的ip地址与所述第二ip报头中请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与所述第二ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与所述第二ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。
[0184]
可选地,确定模块303根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果;
[0185]
所述第一探测结果为指示所述请求节点和响应节点间是否存在nat的探测结果;
[0186]
所述第二探测结果包括指示所述请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。
[0187]
本发明实施例还提供一种网络节点间nat探测装置,配置于响应节点,如图4所示,包括:
[0188]
接收模块401,用于接收nat探测请求分组报文,并对接收的nat探测请求分组报文进行解保护处理;
[0189]
确定模块402,用于从解保护处理后的nat探测请求分组报文中获取所述nat探测请求消息或nat探测结果请求消息,将获取的nat探测请求消息或nat探测结果请求消息中的载荷数据与所述nat探测请求分组报文的第一ip报头中的对应内容进行对比,根据对比结果确定nat探测结果;
[0190]
获取模块403,用于从解保护处理后的nat探测请求分组报文中获取到所述nat探测请求消息时,获取第二节点信息,所述第二节点信息包括响应节点自身的ip地址,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的ip地址,并将第二节点信息作为nat探测响应消息的载荷数据,将所述nat探测响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;或者,用于从解保护处理后的nat探测请求分组报文中获取到所述nat探测结果请求消息时,将所述nat探测结果携带在nat探测结果响应消息,将所述nat探测结果响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点。
[0191]
可选地,所述第二节点信息还包括响应节点自身的端口号,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的端口号;或者所述第二节点信息还包括响应节点自身的sid,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的sid。
[0192]
可选地,获取模块403将所述nat探测响应消息或nat探测结果响应消息进行ip报文封装,包括:
[0193]
将所述第二节点信息封装到nat探测响应分组报文的第二ip报头中;
[0194]
将所述nat探测响应消息或nat探测结果响应消息封装到nat探测响应分组报文的第二报文内容。
[0195]
可选地,接收模块401对所述nat探测请求分组报文进行解保护处理,包括:
[0196]
接收模块401对所述nat探测请求分组报文进行解密、数据还原、完整性校验中的至少一项处理。
[0197]
可选地,获取模块403对所述nat探测响应分组报文进行保护处理,包括:
[0198]
获取模块403对所述nat探测响应分组报文进行加密、数据混淆、完整性校验中的至少一项处理。
[0199]
可选地,确定模块402根据对比结果确定nat探测结果,包括如下任一步骤:
[0200]
当获取的载荷数据中的请求节点的ip地址与第一ip报头中的请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat;
[0201]
当获取的载荷数据中的响应节点的ip地址与所述第一ip报头中的响应节点的ip
地址不同,或者,所述载荷数据中响应节点的端口号与所述第一ip报头中的响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与所述第一ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。
[0202]
可选地,确定模块402根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果;
[0203]
所述第一探测结果为指示所述请求节点和响应节点间是否存在nat的探测结果;
[0204]
所述第二探测结果包括指示所述请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。
[0205]
基于同一发明构思,本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例一中提供的网络节点间nat探测方法的步骤。
[0206]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0207]
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
[0208]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
[0209]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
[0210]
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0211]
以上对本技术所提供的技术方案进行了详细介绍,本技术中应用了具体个例对本
申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本技术的限制。
[0212]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0213]
本技术是参照根据本技术的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0214]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0215]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0216]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
技术特征:
1.一种网络节点间nat探测方法,其特征在于,所述方法包括:请求节点获取第一节点信息,并将获取的第一节点信息作为nat探测请求消息或nat探测结果请求消息的载荷数据,所述第一节点信息包括请求节点自身的ip地址,及配置的响应节点的ip地址;请求节点将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,并对封装后得到的nat探测请求分组报文进行保护处理后发送至响应节点;响应节点接收所述nat探测请求分组报文,并对接收的nat探测请求分组报文进行解保护处理;响应节点从解保护处理后的nat探测请求分组报文中获取所述nat探测请求消息或nat探测结果请求消息,将获取的nat探测请求消息或nat探测结果请求消息中的载荷数据与所述nat探测请求分组报文的第一ip报头中的对应内容进行对比,根据对比结果确定nat探测结果;响应节点从解保护处理后的nat探测请求分组报文中获取到所述nat探测请求消息时,获取第二节点信息,所述第二节点信息包括响应节点自身的ip地址,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的ip地址,并将第二节点信息作为nat探测响应消息的载荷数据,将所述nat探测响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;或者,响应节点从解保护处理后的nat探测请求分组报文中获取到所述nat探测结果请求消息时,将所述nat探测结果携带在nat探测结果响应消息,将所述nat探测结果响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;请求节点接收所述nat探测响应分组报文并进行解保护处理,从解保护处理后的nat探测响应分组报文中获取到nat探测结果响应消息时,从所述nat探测结果响应消息中获取nat探测结果;或者,从解保护处理后的nat探测响应分组报文中获取到nat探测响应消息时,获取所述nat探测响应消息的载荷数据,并将获取的载荷数据与所述nat探测响应分组报文的第二ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。2.根据权利要求1所述的方法,其特征在于,所述第一节点信息还包括请求节点自身的端口号,及配置的响应节点的端口号;或者所述第一节点信息还包括请求节点自身的sid,及配置的响应节点的sid;所述第二节点信息还包括响应节点自身的端口号,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的端口号;或者所述第二节点信息还包括响应节点自身的sid,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的sid。3.根据权利要求1或2所述的方法,其特征在于,所述请求节点将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,包括:将所述第一节点信息封装到nat探测请求分组报文的第一ip报头中;将所述nat探测请求消息或nat探测结果请求消息封装到nat探测请求分组报文的第一报文内容;所述响应节点将所述nat探测响应消息或nat探测结果响应消息进行ip报文封装,包括:将所述第二节点信息封装到nat探测响应分组报文的第二ip报头中;
将所述nat探测响应消息或nat探测结果响应消息封装到nat探测响应分组报文的第二报文内容。4.根据权利要求1所述的方法,其特征在于,所述nat探测请求消息或所述nat探测结果请求消息或所述nat探测响应消息,包括指示消息类型的标识、用于解析ip地址个数的长度信息;所述nat探测结果响应消息,包括指示请求节点和响应节点间是否存在nat的标识。5.根据权利要求1所述的方法,其特征在于,请求节点对所述nat探测请求分组报文进行保护处理,包括:请求节点对所述nat探测请求分组报文进行加密、数据混淆、完整性校验中的至少一项处理;响应节点对所述nat探测请求分组报文进行解保护处理,包括:响应节点对所述nat探测请求分组报文进行解密、数据还原、完整性校验中的至少一项处理。6.根据权利要求1所述的方法,其特征在于,响应节点对所述nat探测响应分组报文进行保护处理,包括:响应节点对所述nat探测响应分组报文进行加密、数据混淆、完整性校验中的至少一项处理;请求节点对所述nat探测响应分组报文进行解保护处理,包括:请求节点对所述nat探测响应分组报文进行解密、数据还原、完整性校验中的至少一项处理。7.根据权利要求2所述的方法,其特征在于,响应节点根据对比结果确定nat探测结果,包括如下任一步骤:当获取的载荷数据中的请求节点的ip地址与第一ip报头中的请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat;当获取的载荷数据中的响应节点的ip地址与所述第一ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与所述第一ip报头中的响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与所述第一ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。8.根据权利要求2所述的方法,其特征在于,请求节点根据对比结果确定nat探测结果,包括:当获取的载荷数据中的响应节点的ip地址与第二ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat;当获取的载荷数据中请求节点的ip地址与所述第二ip报头中请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与所述第二ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与所述第二ip报头中请求节点的sid不同时,确定请求
节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。9.根据权利要求1或4所述的方法,其特征在于,所述请求节点或响应节点根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果;所述第一探测结果为指示所述请求节点和响应节点间是否存在nat的探测结果;所述第二探测结果包括指示所述请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。10.一种网络节点间nat探测装置,配置于请求节点,其特征在于,包括:获取模块,用于获取第一节点信息,并将获取的第一节点信息作为nat探测请求消息或nat探测结果请求消息的载荷数据,所述第一节点信息包括请求节点自身的ip地址,及配置的响应节点的ip地址;封装模块,用于将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,并对封装后得到的nat探测请求分组报文进行保护处理后发送至响应节点;确定模块,用于接收nat探测响应分组报文并进行解保护处理,从解保护处理后的nat探测响应分组报文中获取到nat探测结果响应消息时,从所述nat探测结果响应消息中获取nat探测结果;或者,从解保护处理后的nat探测响应分组报文中获取到nat探测响应消息时,获取所述nat探测响应消息的载荷数据,并将获取的载荷数据与所述nat探测响应分组报文的第二ip报头中的对应内容进行对比,根据对比结果确定nat探测结果。11.根据权利要求10所述的装置,其特征在于,所述第一节点信息还包括请求节点自身的端口号,及配置的响应节点的端口号;或者所述第一节点信息还包括请求节点自身的sid,及配置的响应节点的sid。12.根据权利要求10所述的装置,其特征在于,所述封装模块将所述nat探测请求消息或nat探测结果请求消息进行ip报文封装,包括:将所述第一节点信息封装到nat探测请求分组报文的第一ip报头中;将所述nat探测请求消息或nat探测结果请求消息封装到nat探测请求分组报文的第一报文内容。13.根据权利要求10所述的装置,其特征在于,所述nat探测请求消息或所述nat探测结果请求消息或所述nat探测响应消息,包括指示消息类型的标识、用于解析ip地址个数的长度信息;所述nat探测结果响应消息,包括指示请求节点和响应节点间是否存在nat的标识。14.根据权利要求10所述的装置,其特征在于,所述封装模块对所述nat探测请求分组报文进行保护处理,包括:所述封装模块对所述nat探测请求分组报文进行加密、数据混淆、完整性校验中的至少一项处理。15.根据权利要求10所述的装置,其特征在于,所述确定模块对所述nat探测响应分组报文进行解保护处理,包括:所述确定模块对所述nat探测响应分组报文进行解密、数据还原、完整性校验中的至少一项处理。16.根据权利要求11所述的装置,其特征在于,所述确定模块根据对比结果确定nat探
测结果,包括:当获取的载荷数据中的响应节点的ip地址与第二ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与第二ip报头中响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与第二ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat;当获取的载荷数据中请求节点的ip地址与所述第二ip报头中请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与所述第二ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与所述第二ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat。17.根据权利要求10或13所述的装置,其特征在于,所述确定模块根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果;所述第一探测结果为指示所述请求节点和响应节点间是否存在nat的探测结果;所述第二探测结果包括指示所述请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。18.一种网络节点间nat探测装置,配置于响应节点,其特征在于,包括:接收模块,用于接收nat探测请求分组报文,并对接收的nat探测请求分组报文进行解保护处理;确定模块,用于从解保护处理后的nat探测请求分组报文中获取所述nat探测请求消息或nat探测结果请求消息,将获取的nat探测请求消息或nat探测结果请求消息中的载荷数据与所述nat探测请求分组报文的第一ip报头中的对应内容进行对比,根据对比结果确定nat探测结果;获取模块,用于从解保护处理后的nat探测请求分组报文中获取到所述nat探测请求消息时,获取第二节点信息,所述第二节点信息包括响应节点自身的ip地址,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的ip地址,并将第二节点信息作为nat探测响应消息的载荷数据,将所述nat探测响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点;或者,用于从解保护处理后的nat探测请求分组报文中获取到所述nat探测结果请求消息时,将所述nat探测结果携带在nat探测结果响应消息,将所述nat探测结果响应消息进行ip报文封装,并对封装后得到的nat探测响应分组报文进行保护处理后发送至请求节点。19.根据权利要求18所述的装置,其特征在于,所述第二节点信息还包括响应节点自身的端口号,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的端口号;或者所述第二节点信息还包括响应节点自身的sid,及从所述nat探测请求分组报文的第一ip报头中获取的请求节点的sid。20.根据权利要求18所述的装置,其特征在于,所述获取模块将所述nat探测响应消息或nat探测结果响应消息进行ip报文封装,包括:将所述第二节点信息封装到nat探测响应分组报文的第二ip报头中;将所述nat探测响应消息或nat探测结果响应消息封装到nat探测响应分组报文的第二报文内容。
21.根据权利要求18所述的装置,其特征在于,所述接收模块对所述nat探测请求分组报文进行解保护处理,包括:所述接收模块对所述nat探测请求分组报文进行解密、数据还原、完整性校验中的至少一项处理。22.根据权利要求18所述的装置,其特征在于,所述获取模块对所述nat探测响应分组报文进行保护处理,包括:所述获取模块对所述nat探测响应分组报文进行加密、数据混淆、完整性校验中的至少一项处理。23.根据权利要求19所述的装置,其特征在于,所述确定模块根据对比结果确定nat探测结果,包括如下任一步骤:当获取的载荷数据中的请求节点的ip地址与第一ip报头中的请求节点的ip地址不同,或者,所述载荷数据中请求节点的端口号与第一ip报头中请求节点的端口号不同,或者,所述载荷数据中请求节点的sid与第一ip报头中请求节点的sid不同时,确定请求节点与网络间存在nat;否则,确定请求节点与网络间不存在nat;当获取的载荷数据中的响应节点的ip地址与所述第一ip报头中的响应节点的ip地址不同,或者,所述载荷数据中响应节点的端口号与所述第一ip报头中的响应节点的端口号不同,或者,所述载荷数据中响应节点的sid与所述第一ip报头中响应节点的sid不同时,确定响应节点与网络间存在nat;否则,确定响应节点与网络间不存在nat。24.根据权利要求18或21所述的装置,其特征在于,所述确定模块根据对比结果确定的nat探测结果为第二探测结果,所述携带在nat探测结果响应消息中的探测结果为第一探测结果;所述第一探测结果为指示所述请求节点和响应节点间是否存在nat的探测结果;所述第二探测结果包括指示所述请求节点和响应节点间是否存在nat,及所述请求节点和响应节点之间存在nat时,所述nat的分布位置。25.一种计算机存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至9任一所述网络节点间nat探测方法的步骤。
技术总结
本申请公开了一种网络节点间NAT探测方法、装置及存储介质,包括:请求节点获取第一节点信息,并将获取的第一节点信息作为NAT探测请求消息或NAT探测结果请求消息的载荷数据,并将NAT探测请求消息或NAT探测结果请求消息进行IP报文封装,对封装后得到的NAT探测请求分组报文进行保护处理后发送至响应节点;响应节点对接收的NAT探测请求分组报文进行解保护处理后获取NAT探测请求消息或NAT探测结果请求消息的载荷数据,将获取的载荷数据与NAT探测请求分组报文的第一IP报头中的对应内容进行对比,根据对比结果确定NAT探测结果。解决了网络节点间NAT探测与密钥管理协议紧耦合而造成的密钥管理功能扩展难的问题。成的密钥管理功能扩展难的问题。成的密钥管理功能扩展难的问题。
技术研发人员:郭金发 杜明 张国强 颜湘
受保护的技术使用者:西安西电捷通无线网络通信股份有限公司
技术研发日:2022.01.05
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
