本发明实施例涉及通信,尤其涉及一种局域网通信方法及装置。
背景技术:
1、隧道技术的实质是用一种网络层的协议来传输另一种网络层协议,其基本功能是封装和加密,主要利用网络隧道来实现。对于构建vpn(virtual private networks,虚拟专用网络)来说,隧道技术是一个关键技术。它被用于ip公网中点到点虚拟通路的建立,实现两个节点间(vpn网关之间,或vpn网关与vpn远程用户之间)的安全通信,使数据包在公共网络上的专用隧道内出传输。
2、现有的通过隧道打通两端本地网络的方案,需要逐帧的进行数据包的隧道封装和解封,此操作会带入一定的时延且消耗网络转发设备(路由器或cpe)一定的运算资源,对数据转发业务性能造成一定影响。同时,在实现过程中,建立vpn隧道的双方需要根据相对复杂的隧道协议进行链路相关参数的协商。
技术实现思路
1、本发明实施例提供一种局域网通信方法及装置,用于解决现有的通过隧道技术实现局域网之间的通信时,数据包处理时延大,运算资源消耗多,且需要进行复杂的信令交互的问题。
2、为了解决上述技术问题,本发明是这样实现的:
3、第一方面,本发明实施例提供了一种局域网通信方法,包括:
4、第一子网的第一子网网关接收所述第一子网的第一子网设备发送的第一数据包,所述第一数据包的源ip地址和源端口分别为所述第一子网设备的内网ip地址和端口,目的ip地址和目的端口分别为第二子网设备的内网ip地址和端口,所述第二子网设备为第二子网或服务器端的子网设备;
5、所述第一子网网关根据nat端口映射表,将所述第一数据包中的所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包;
6、所述第一子网网关向目的网关发送所述第二数据包,所述目的网关为所述第二子网的第二子网网关或服务器网关。
7、可选的,所述nat端口映射表中包括至少一条映射规则,所述映射规则包括:子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射,所述子网设备包括:所述第一子网、所述第二子网和/或服务器端的子网设备;
8、可选的,所述第一子网网关根据nat端口映射表,将所述第一数据包中的所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包,包括:
9、若所述第一子网网关的nat端口映射表中存在所述第一数据包对应的映射规则,所述第一子网网关根据所述第一数据包对应的映射规则,将所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包。
10、可选的,所述方法还包括:
11、所述第一子网网关将用户手动配置的或者服务器网关通过控制信道发送的预配置的包含子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则存储至所述nat端口映射表中,所述子网设备包括:所述第一子网、所述第二子网和/或服务器端的子网设备。
12、可选的,所述方法还包括:
13、若所述第一子网网关根据自身的nat端口映射表,判断出接收到的所述服务器网关预配置的所述第一子网的子网设备的内网ip地址和端口已被所述第一子网网关分配给其他公网ip地址和端口,所述第一子网网关向所述服务器网关返回配置失败信息。
14、可选的,所述第一子网网关根据nat端口映射表,将所述第一数据包中的所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包,包括:
15、若所述第一子网网关中的nat端口映射表中不存在所述第一数据包对应的映射规则,所述第一子网网关为所述第一数据包所在的数据流分配包含所述第一子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则;
16、所述第一子网网关根据自身分配的映射规则、所述第一子网设备的内网ip地址和端口以及所述第二子网设备的内网ip地址和端口,生成映射请求;
17、所述第一子网网关向所述目的网关发送所述映射请求;
18、所述第一子网网关接收所述目的网关发送的映射响应,所述映射响应中包括:所述目的网关为所述数据流分配的包含所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则;
19、所述第一子网网关将所述第一子网网关为所述数据流分配的包含所述第一子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则,以及,所述目的网关为所述数据流分配的包含所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则,存储至所述nat端口映射表;
20、所述第一子网网关根据所述nat端口映射表中的所述第一数据包对应的映射规则,将所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包。
21、可选的,所述第一子网网关根据nat端口映射表,将所述第一数据包中的所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包,包括:
22、若所述第一子网网关中的nat端口映射表中不存在所述第一数据包对应的映射规则,所述第一子网网关根据所述第一子网设备的内网ip地址和端口以及所述第二子网设备的内网ip地址和端口,生成映射请求;
23、所述第一子网网关向网络控制中心发送所述映射请求;
24、所述第一子网网关接收所述网络控制中心发送的映射响应,所述映射响应中包括:所述网络控制中心为所述第一数据包所在的数据流分配的所述第一子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射,以及,所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则;
25、所述第一子网网关将所述映射响应中携带的映射规则存储至所述nat端口映射表;
26、所述第一子网网关根据所述nat端口映射表中的所述第一数据包对应的映射规则,将所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包。
27、第二方面,本发明实施例提供了一种局域网通信方法,包括:
28、第二子网的第二子网网关接收源网关发送的第二数据包,所述第二数据包的源ip地址和源端口分别为第一子网或服务器端的第一子网设备的公网ip地址和端口,目的ip地址和目的端口分别为所述第二子网的第二子网设备的公网ip地址和端口,所述源网关为所述第一子网的第一子网网关或服务器网关;
29、所述第二子网网关根据nat端口映射表,将所述第二数据包中的所述第一子网设备和所述第二子网设备的公网ip地址和端口分别映射为对应的内网ip地址和端口,形成第一数据包;
30、所述第二子网网关向所述第二子网设备发送所述第一数据包。
31、可选的,所述nat端口映射表中包括至少一条映射规则,所述映射规则包括:子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射,所述子网设备包括:所述第一子网、所述第二子网和/或服务器端的子网设备。
32、可选的,所述方法还包括:
33、所述第二子网网关将用户手动配置的或者服务器网关通过控制信道发送的预配置的包含子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则存储至所述nat端口映射表中,所述子网设备包括:所述第一子网、所述第二子网和/或服务器端的子网设备。
34、可选的,若所述第二子网网关根据自身的nat端口映射表,判断出所述服务器网关预配置的所述第二子网的子网设备的内网ip地址和端口已被所述第二子网网关分配给其他公网ip地址和端口,所述第二子网网关向所述服务器网关返回配置失败信息。
35、可选的,所述源网关为所述第一子网网关,所述第二子网网关根据nat端口映射表,将所述第二数据包中的所述第一子网设备和所述第二子网设备的公网ip地址和端口分别映射为对应的内网ip地址和端口,形成第一数据包之前,还包括:
36、所述第二子网网关接收第一子网网关发送的映射请求,所述映射请求中包括:所述第一子网网关为数据流分配的包含所述第一子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则,所述第一子网设备的内网ip地址和端口以及所述第二子网设备的内网ip地址和端口;
37、所述第二子网网关为所述数据流分配包含所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则;
38、所述第二子网网关向所述第一子网网关发送映射响应,所述映射响应中包括:所述第二子网网关为所述数据流分配的包含所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则;
39、所述第二子网网关将所述第一子网网关为所述数据流分配的包含所述第一子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则,以及,所述第二子网网关为所述数据流分配的包含所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射的映射规则,存储至所述nat端口映射表。
40、可选的,所述源网关为所述服务器网关,所述第二子网网关根据nat端口映射表,将所述第二数据包中的所述第一子网设备和所述第二子网设备的公网ip地址和端口分别映射为对应的内网ip地址和端口,形成第一数据包之前,还包括:
41、所述第二子网网关接收所述服务器网关或网络控制中心发送的映射响应,所述映射响应中包括:所述服务器网关为数据流分配的包含所述第一子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射,以及所述第二子网设备的内网ip地址和端口至对应的公网ip地址和端口的映射;
42、所述第二子网网关将所述映射响应中携带的映射规则存储至所述nat端口映射表。
43、第三方面,本发明实施例提供了一种网关设备,包括:
44、第一接收模块,用于接收第一子网的第一子网设备发送的第一数据包,所述第一数据包的源ip地址和源端口分别为所述第一子网设备的内网ip地址和端口,目的ip地址和目的端口分别为第二子网设备的内网ip地址和端口,所述第二子网设备为第二子网或服务器端的子网设备;
45、映射模块,用于根据nat端口映射表,将所述第一数据包中的所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包;
46、第一发送模块,用于向目的网关发送所述第二数据包,所述目的网关为所述第二子网的第二子网网关或服务器网关。
47、第四方面,本发明实施例提供了一种网关设备,包括:
48、第一接收模块,用于接收源网关发送的第二数据包,所述第二数据包的源ip地址和源端口分别为第一子网或服务器端的第一子网设备的公网ip地址和端口,目的ip地址和目的端口分别为第二子网的第二子网设备的公网ip地址和端口,所述源网关为所述第一子网的第一子网网关或服务器网关;
49、映射模块,用于根据nat端口映射表,将所述第二数据包中的所述第一子网设备和所述第二子网设备的公网ip地址和端口分别映射为对应的内网ip地址和端口,形成第一数据包;
50、第一发送模块,用于向所述第二子网设备发送所述第一数据包。
51、第五方面,本发明实施例提供了一种网关设备,包括:收发机和处理器;
52、所述收发机,用于接收第一子网的第一子网设备发送的第一数据包,所述第一数据包的源ip地址和源端口分别为所述第一子网设备的内网ip地址和端口,目的ip地址和目的端口分别为第二子网设备的内网ip地址和端口,所述第二子网设备为第二子网或服务器端的子网设备;
53、所述处理器,用于根据nat端口映射表,将所述第一数据包中的所述第一子网设备和所述第二子网设备的内网ip地址和端口分别映射为对应的公网ip地址和端口,形成第二数据包;
54、所述收发机,还用接收于向目的网关发送所述第二数据包,所述目的网关为所述第二子网的第二子网网关或服务器网关。
55、第六方面,本发明实施例提供了一种网关设备,包括:收发机和处理器;
56、所述收发机,用于接收源网关发送的第二数据包,所述第二数据包的源ip地址和源端口分别为第一子网或服务器端的第一子网设备的公网ip地址和端口,目的ip地址和目的端口分别为第二子网的第二子网设备的公网ip地址和端口,所述源网关为所述第一子网的第一子网网关或服务器网关;
57、所述处理器,用于根据nat端口映射表,将所述第二数据包中的所述第一子网设备和所述第二子网设备的公网ip地址和端口分别映射为对应的内网ip地址和端口,形成第一数据包;
58、所述收发机,还用于向所述第二子网设备发送所述第一数据包。
59、第七方面,本发明实施例提供了一种网络设备,包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的程序,或者,所述程序被所述处理器执行时实现如上述第一方面或第二方面所述的局域网通信方法的步骤。
60、第八方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面或第二方面所述的局域网通信方法的步骤。
61、在本发明实施例中,可以通过nat端口映射规则和数据包非封装透传机制替代现有的隧道功能,实现局域网之间的通信,该种实现方式具有配置简单(基于现有nat功能开发扩展,nat功能其本身配置也简单)、带宽占用少(不需要复杂的信令交互)、数据包处理时延小、资源消耗少(无需进行数据包的解封装操作)等优点。