Nothing Special   »   [go: up one dir, main page]

CN116233071A - 一种客户端访问内网资源的方法和可读存储介质 - Google Patents

一种客户端访问内网资源的方法和可读存储介质 Download PDF

Info

Publication number
CN116233071A
CN116233071A CN202211455418.2A CN202211455418A CN116233071A CN 116233071 A CN116233071 A CN 116233071A CN 202211455418 A CN202211455418 A CN 202211455418A CN 116233071 A CN116233071 A CN 116233071A
Authority
CN
China
Prior art keywords
client
message
cloud server
information
intranet
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211455418.2A
Other languages
English (en)
Inventor
龙赛杰
周红叶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tenda Technology Co Ltd
Original Assignee
Shenzhen Tenda Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Tenda Technology Co Ltd filed Critical Shenzhen Tenda Technology Co Ltd
Priority to CN202211455418.2A priority Critical patent/CN116233071A/zh
Publication of CN116233071A publication Critical patent/CN116233071A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及通信技术领域,特别涉及一种客户端访问内网资源的方法和可读存储介质。其方法包括步骤S1.客户端通过与云服务器进行nat检测,确定nat类型;S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道;S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,添加对应路由表选项;S4.客户端向主节点请求其他节点信息,与其他节点建立内网隧道和心跳联系;S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。用户只需要登录客户端,就可以自动组成sd‑wan虚拟网络,整个虚拟网络中的用户都可相互访问。

Description

一种客户端访问内网资源的方法和可读存储介质
技术领域
本发明涉及通信技术领域,特别涉及一种客户端访问内网资源的方法和可读存储介质。
背景技术
当前IPv4地址逐渐枯竭,运营商必须使用nat转换技术给更多的用户提供上网机会,但这样也会导致这些用户之间是无法相互访问的,虽然可以向运营商申请专线业务如MPLS、T1等用来提供特定内网用户之间的互访,但这样就会带来如下的显而易见的问题:
第一,专线价格不菲,往往一年下来需要支付不少费用;
第二,专线维护麻烦,后期出现问题时排查困难。
发明内容
本发明提供一种客户端访问内网资源的方法和可读存储介质,旨在解决现有技术中的问题。
本发明提供一种客户端访问内网资源的方法,包括以下步骤:
S1.客户端通过与云服务器进行nat检测,确定客户端自身的nat类型;
S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道;
S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,并且添加对应路由表选项;
S4.客户端向主节点请求其他节点信息,并与其他节点建立内网隧道和心跳联系;
S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。
作为本发明的进一步改进,所述步骤S1中,当客户端和云服务器无法通信时,则nat检测失败,并终止后续流程。
作为本发明的进一步改进,所述步骤S1中,当客户端和云服务器建立通信后,则执行nat检测流程,确定nat类型:云服务器绑定两个公网IP地址和各两个端口号,及IP1、IP2和Port1、Port2,具体流程包括:
S11.客户端将自身IP地址信息发送给云服务器IP1、Port1,由云服务器判断报文源地址和报文中携带的IP地址信息是否一致,并将结果告知客户端;客户端收到云服务器回包,获取检测结果,如果地址一致,则客户端为公网IP地址,终止继续检测;
S12.客户端继续发送信息给云服务器IP1、Port1,告知云服务器使用IP2、Port1回复该报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为全锥型,终止继续检测;
S13.客户端继续发送信息给云服务器IP2、Port1,由云服务器判断报文来源端口是否和之前一致,并将结果返回给客户端;客户端收到报文后,如果端口不一致,则说明客户端nat为对称型,终止继续检测;
S14.客户端继续发送信息给云服务器IP2、Port1,告知云服务器使用IP2、Port2回复报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为IP受限型;如果客户端收不到云服务器回复的报文,则说明客户端nat为IP端口受限型。
作为本发明的进一步改进,执行所述步骤S2时,包括以下情形:
S21.位于nat内网的客户端A,具有公网IP的主机客户端B之间相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器返回可直接连接的信息后,客户端A直接连接客户端B的公网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求;
客户端B向云服务器发出连接客户端A的请求,云服务器向客户端A请求反向连接客户端B,客户端A反向连接客户端B成功后,客户端B返回响应信息,客户端A接收到响应信息后向云服务器发出反向连接客户端B成功的信息,云服务器将连接成功信号传输到客户端B后,客户端B开始向客户端A发出注册节点信息请求。
作为本发明的进一步改进,执行所述步骤S2时,包括以下情形:
S22.位于同一个nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器返回同一nat下可直接连接的信息后,客户端A直接连接客户端B的内网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求。
作为本发明的进一步改进,执行所述步骤S2时,包括以下情形:
S23.分别位于不同nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的公网地址信息,客户端A主动连接客户端B的公网地址,若nat为非完全锥形时则连接失败,客户端A向云服务器反馈连接失败的信息;云服务器向客户端B返回客户端A的公网地址信息,客户端B反向请求连接客户端A,由于之前客户端A与客户端B之间建立过连接而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
作为本发明的进一步改进,执行所述步骤S2时,包括以下情形:
S24.分别位于多层nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的内网地址信息,客户端A主动连接客户端B的内网地址,若请求直接连接失败,则客户端A向云服务器反馈连接失败的信息;云服务器向客户端A响应客户端B的外网地址信息,客户端A再次请求连接客户端B的外网地址,中转nat支持回环转发数据并连接失败,客户端A向云服务器反馈请求连接失败的信息,云服务器向客户端B请求反向连接客户端A的公网地址,客户端B反向请求连接客户端A公网地址信息,由于之前客户端A请求过客户端B公网地址而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
作为本发明的进一步改进,所述步骤S4中,当客户端双方的nat类型为不可穿透型时,客户端请求主节点中转双方的数据信息,达到内网互访;当客户端双方的nat类型为可穿透型时,双方客户端进行隧道打洞后,直接进行通信。
作为本发明的进一步改进,所述步骤S5具体包括步骤:
S51.客户端会将虚拟网卡发出的报文截获,校验合法性后,取出其单播报文,放到发包队列中,在发包队列中判断其是否为IP/ARP报文,查询发送节点信息并判断数据是否需要加密,若客户端与客户端通信则不需要加密,直接在原始报文数据前加上sd-wan头信息,重新封装成UDP报文进行发送;若客户端与主节点及其下挂的内网服务器通信则需要加密,客户端先和主节点协商出一个秘钥,并在后续全部使用此秘钥对原始报文进行aes加密,再加上sd-wan头并重新封装UDP后发送;
S52.客户端收到报文后,校验合法性,之后判断是否需要解密,若接受到报文为其他客户端用户发出则不需要解密,直接放到发包队列后,通过发送给虚拟网卡以使本客户端用户接收;若接受到报文为主节点及其下挂的内网服务器发出则需要对报文进行解包,取出原始数据报文,进行aes解密操作后,放到发包队列,通过发送给虚拟网卡以使本客户端用户接收。
本发明还提供一种可读存储介质,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现所述客户端访问内网资源的方法。
本发明的有益效果是:通过本客户端访问内网资源的方法,用户只需要登录客户端,就可以自动组成sd-wan虚拟网络,整个虚拟网络中的用户都可相互访问,大大的提升了产品的易用性。
附图说明
图1是本发明中客户端访问内网资源方法的流程图;
图2是本发明中客户端与云服务器进行nat检测流程的流程图;
图3是本发明中基于客户端A位于nat内网,客户端B是具有公网IP的主机而相互打洞的流程图;
图4是本发明中基于客户端A和客户端B位于同一个nat后面而相互打洞的流程图;
图5是本发明中基于客户端A和客户端B分别位于不同的nat后面而相互打洞的流程图;
图6是本发明中基于客户端A和客户端B分别位于多层nat后面而相互打洞的流程图;
图7是本发明中基于虚拟网卡重新封包并转发的流程图;
图8是本发明中基于物理网卡重新解包并转发的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
本发明提供一种客户端访问内网资源的方法,客户端将自动完成与主节点和其他用户的内网穿透和数据互通。在用户登录过程中,客户端在云服务器进行nat类型检测,并根据nat类型检测结果,选择不同的打洞方法与主节点服务器进行连接,随后在主节点的控制下,依次与其他客户端进行连接。
如图1所示,具体的流程包括以下步骤:
S1.客户端通过与云服务器进行nat检测,确定客户端自身的nat类型。
在步骤S1中,当客户端和云服务器无法通信时,提示用户nat检测失败,并终止后续流程。
如图2所示,在步骤S1中,当客户端和云服务器建立通信后,则执行基于云服务器的客户端nat类型检测方法:云服务器绑定两个公网IP地址和各两个端口号,及IP1、IP2和Port1、Port2,具体流程包括:
S11.客户端将自身IP地址信息发送给云服务器IP1、Port1,由云服务器判断报文源地址和报文中携带的IP地址信息是否一致,并将结果告知客户端;客户端收到云服务器回包,获取检测结果,如果地址一致,则客户端为公网IP地址,终止继续检测;
S12.客户端继续发送信息给云服务器IP1、Port1,告知云服务器使用IP2、Port1回复该报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为全锥型,终止继续检测;
S13.客户端继续发送信息给云服务器IP2、Port1,由云服务器判断报文来源端口是否和之前一致,并将结果返回给客户端;客户端收到报文后,如果端口不一致,则说明客户端nat为对称型,终止继续检测;
S14.客户端继续发送信息给云服务器IP2、Port1,告知云服务器使用IP2、Port2回复报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为IP受限型;如果客户端收不到云服务器回复的报文,则说明客户端nat为IP端口受限型。
S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道。
在步骤S2中,当客户端和主节点双方的nat类型为无法进行穿透的类型时,提示用户登录失败,并终止后续流程。
如图3至图6所示,在步骤S2中,为客户端进行nat检测之后,按照不同的实际情况下,选择一种进行用户间打洞的流程,具体包括以下几种情形。
如图3所示,步骤S21.位于nat内网的客户端A,具有公网IP的主机客户端B之间相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器返回可直接连接的信息后,客户端A直接连接客户端B的公网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求;
客户端B向云服务器发出连接客户端A的请求,云服务器向客户端A请求反向连接客户端B,客户端A反向连接客户端B成功后,客户端B返回响应信息,客户端A接收到响应信息后向云服务器发出反向连接客户端B成功的信息,云服务器将连接成功信号传输到客户端B后,客户端B开始向客户端A发出注册节点信息请求。
如图4所示,步骤S22.位于同一个nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器返回同一nat下可直接连接的信息后,客户端A直接连接客户端B的内网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求。
如图5所示,步骤S23.分别位于不同nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的公网地址信息,客户端A主动连接客户端B的公网地址,若nat为非完全锥形时则连接失败,客户端A向云服务器反馈连接失败的信息;云服务器向客户端B返回客户端A的公网地址信息,客户端B反向请求连接客户端A,由于之前客户端A与客户端B之间建立过连接而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
如图6所示,步骤S24.分别位于多层nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的内网地址信息,客户端A主动连接客户端B的内网地址,若请求直接连接失败,则客户端A向云服务器反馈连接失败的信息;云服务器向客户端A响应客户端B的外网地址信息,客户端A再次请求连接客户端B的外网地址,中转nat支持回环转发数据并连接失败,客户端A向云服务器反馈请求连接失败的信息,云服务器向客户端B请求反向连接客户端A的公网地址,客户端B反向请求连接客户端A公网地址信息,由于之前客户端A请求过客户端B公网地址而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,并且添加对应路由表选项。
S4.客户端向主节点请求其他节点信息,并与其他节点建立内网隧道和心跳联系。
步骤S4中,当客户端双方的nat类型为不可穿透型时,客户端请求主节点中转双方的数据信息,达到内网互访;当客户端双方的nat类型为可穿透型时,双方客户端进行隧道打洞后,直接进行通信。
S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。
在步骤S5中,发送的报文,会经过aes加密,同时在报文前会加上sd-wan头信息,表明这是sd-wan报文,再将报文重新封装成UDP报文发送。
步骤S5具体包括步骤:
S51.客户端会将虚拟网卡发出的报文截获,校验合法性后,取出其单播报文,放到发包队列中,在发包队列中判断其是否为IP/ARP报文,查询发送节点信息并判断数据是否需要加密,若客户端与客户端通信则不需要加密,直接在原始报文数据前加上sd-wan头信息,重新封装成UDP报文进行发送;若客户端与主节点及其下挂的内网服务器通信则需要加密,客户端先和主节点协商出一个秘钥,并在后续全部使用此秘钥对原始报文进行aes加密,再加上sd-wan头并重新封装UDP后发送。
如图7所示,该过程具体还包括:
客户端监听虚拟网卡,并捕捉发往虚拟地址的数据包,检验其合法性,若校验不通过则丢弃报文,若检验通过则继续判断是否为组播地址,若是则丢弃报文,若否则继续判断是否为虚拟网卡发起的报文,若否则丢弃报文,若是则加入发包队列,并判断发包函数是否为IP/ARP包,若否则丢弃报文,若是则查询发送节点信息,增加sd-wan头信息,并判断数据是否需要加密,判断是否需要主节点中转,若需要主节点中转则sendto函数往主节点数据端口发包,若不需要主节点中转则sendto函数往对应节点数据端口发包。
S52.客户端收到报文后,校验合法性,之后判断是否需要解密,若接受到报文为其他客户端用户发出则不需要解密,直接放到发包队列后,通过发送给虚拟网卡以使本客户端用户接收;若接受到报文为主节点及其下挂的内网服务器发出则需要对报文进行解包,取出原始数据报文,进行aes解密操作后,放到发包队列,通过发送给虚拟网卡以使本客户端用户接收。
如图8所示,该过程具体还包括:
客户端监听物理网卡,并抓取隧道报文,检验报文数据,若检验不通过则丢弃报文,若检验通过则获取sd-wan头信息,并判断数据是否需要解密,若需要解密则进行数据包解密后加入发包队列,若不需要解密则直接加入发包队列,最后将报文发送至虚拟网卡。
本发明还提供一种可读存储介质,可读存储介质中存储有执行指令,执行指令被处理器执行时用于实现上述客户端访问内网资源的方法。
本发明提供了一种通过sd-wan客户端、云服务器、主节点与其他客户端用户组成一个跨网段的虚拟局域网的方法。sd-wan客户端在云服务器进行注册,之后进行nat类型检测,并根据nat类型检测结果,选择不同nat打洞方法与主节点服务器进行连接,随后在主节点的控制下,依次与其他客户端进行连接。用户只需要登录sd-wan客户端,就可以和主节点控制下的sd-wan分组网络组成一个跨网段的虚拟局域网,并方便的访问和共享sd-wan中的内网资源。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (10)

1.一种客户端访问内网资源的方法,其特征在于,包括以下步骤:
S1.客户端通过与云服务器进行nat检测,确定客户端自身的nat类型;
S2.客户端根据自身和主节点双方的nat类型,选择对应的穿透流程进行内网穿透,穿透成功后,使用心跳包维持内网隧道;
S3.客户端创建虚拟网卡,并向主节点请求DHCP地址,并且添加对应路由表选项;
S4.客户端向主节点请求其他节点信息,并与其他节点建立内网隧道和心跳联系;
S5.客户端将虚拟网卡发出的报文,对照节点信息表,通过对应内网隧道,发送给其他客户端,对端隧道收到报文并解密后发送给虚拟网卡,完成整个内网互访。
2.根据权利要求1所述客户端访问内网资源的方法,其特征在于,所述步骤S1中,当客户端和云服务器无法通信时,则nat检测失败,并终止后续流程。
3.根据权利要求1所述客户端访问内网资源的方法,其特征在于,所述步骤S1中,当客户端和云服务器建立通信后,则执行nat检测流程,确定nat类型:云服务器绑定两个公网IP地址和各两个端口号,及IP1、IP2和Port1、Port2,具体流程包括:
S11.客户端将自身IP地址信息发送给云服务器IP1、Port1,由云服务器判断报文源地址和报文中携带的IP地址信息是否一致,并将结果告知客户端;客户端收到云服务器回包,获取检测结果,如果地址一致,则客户端为公网IP地址,终止继续检测;
S12.客户端继续发送信息给云服务器IP1、Port1,告知云服务器使用IP2、Port1回复该报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为全锥型,终止继续检测;
S13.客户端继续发送信息给云服务器IP2、Port1,由云服务器判断报文来源端口是否和之前一致,并将结果返回给客户端;客户端收到报文后,如果端口不一致,则说明客户端nat为对称型,终止继续检测;
S14.客户端继续发送信息给云服务器IP2、Port1,告知云服务器使用IP2、Port2回复报文,如果客户端能收到云服务器回复的报文,则说明客户端nat为IP受限型;如果客户端收不到云服务器回复的报文,则说明客户端nat为IP端口受限型。
4.根据权利要求1所述客户端访问内网资源的方法,其特征在于,执行所述步骤S2时,包括以下情形:
S21.位于nat内网的客户端A,具有公网IP的主机客户端B之间相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器返回可直接连接的信息后,客户端A直接连接客户端B的公网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求;
客户端B向云服务器发出连接客户端A的请求,云服务器向客户端A请求反向连接客户端B,客户端A反向连接客户端B成功后,客户端B返回响应信息,客户端A接收到响应信息后向云服务器发出反向连接客户端B成功的信息,云服务器将连接成功信号传输到客户端B后,客户端B开始向客户端A发出注册节点信息请求。
5.根据权利要求1所述客户端访问内网资源的方法,其特征在于,执行所述步骤S2时,包括以下情形:
S22.位于同一个nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器返回同一nat下可直接连接的信息后,客户端A直接连接客户端B的内网地址,连接成功后客户端B返回响应信息,客户端A接收到响应信息后开始向客户端B发出注册节点信息请求。
6.根据权利要求1所述客户端访问内网资源的方法,其特征在于,执行所述步骤S2时,包括以下情形:
S23.分别位于不同nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的公网地址信息,客户端A主动连接客户端B的公网地址,若nat为非完全锥形时则连接失败,客户端A向云服务器反馈连接失败的信息;云服务器向客户端B返回客户端A的公网地址信息,客户端B反向请求连接客户端A,由于之前客户端A与客户端B之间建立过连接而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
7.根据权利要求1所述客户端访问内网资源的方法,其特征在于,执行所述步骤S2时,包括以下情形:
S24.分别位于多层nat后面的客户端A和客户端B相互打洞流程:
客户端A向云服务器发出连接客户端B的请求,云服务器向客户端A响应客户端B的内网地址信息,客户端A主动连接客户端B的内网地址,若请求直接连接失败,则客户端A向云服务器反馈连接失败的信息;云服务器向客户端A响应客户端B的外网地址信息,客户端A再次请求连接客户端B的外网地址,中转nat支持回环转发数据并连接失败,客户端A向云服务器反馈请求连接失败的信息,云服务器向客户端B请求反向连接客户端A的公网地址,客户端B反向请求连接客户端A公网地址信息,由于之前客户端A请求过客户端B公网地址而连接成功,连接成功后客户端A响应给对端的客户端B,客户端B向云服务器发出反向连接成功的信息,云服务器将连接成功信号传输到客户端A后,客户端A开始向客户端B发出注册节点信息请求。
8.根据权利要求1所述客户端访问内网资源的方法,其特征在于,所述步骤S4中,当客户端双方的nat类型为不可穿透型时,客户端请求主节点中转双方的数据信息,达到内网互访;当客户端双方的nat类型为可穿透型时,双方客户端进行隧道打洞后,直接进行通信。
9.根据权利要求1所述客户端访问内网资源的方法,其特征在于,所述步骤S5具体包括步骤:
S51.客户端会将虚拟网卡发出的报文截获,校验合法性后,取出其单播报文,放到发包队列中,在发包队列中判断其是否为IP/ARP报文,查询发送节点信息并判断数据是否需要加密,若客户端与客户端通信则不需要加密,直接在原始报文数据前加上sd-wan头信息,重新封装成UDP报文进行发送;若客户端与主节点及其下挂的内网服务器通信则需要加密,客户端先和主节点协商出一个秘钥,并在后续全部使用此秘钥对原始报文进行aes加密,再加上sd-wan头并重新封装UDP后发送;
S52.客户端收到报文后,校验合法性,之后判断是否需要解密,若接受到报文为其他客户端用户发出则不需要解密,直接放到发包队列后,通过发送给虚拟网卡以使本客户端用户接收;若接受到报文为主节点及其下挂的内网服务器发出则需要对报文进行解包,取出原始数据报文,进行aes解密操作后,放到发包队列,通过发送给虚拟网卡以使本客户端用户接收。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有执行指令,所述执行指令被处理器执行时用于实现如权利要求1至9中任一项所述客户端访问内网资源的方法。
CN202211455418.2A 2022-11-21 2022-11-21 一种客户端访问内网资源的方法和可读存储介质 Pending CN116233071A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211455418.2A CN116233071A (zh) 2022-11-21 2022-11-21 一种客户端访问内网资源的方法和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211455418.2A CN116233071A (zh) 2022-11-21 2022-11-21 一种客户端访问内网资源的方法和可读存储介质

Publications (1)

Publication Number Publication Date
CN116233071A true CN116233071A (zh) 2023-06-06

Family

ID=86586097

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211455418.2A Pending CN116233071A (zh) 2022-11-21 2022-11-21 一种客户端访问内网资源的方法和可读存储介质

Country Status (1)

Country Link
CN (1) CN116233071A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116436731A (zh) * 2023-06-15 2023-07-14 众信方智(苏州)智能技术有限公司 一种多内网二层数据流通信方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116436731A (zh) * 2023-06-15 2023-07-14 众信方智(苏州)智能技术有限公司 一种多内网二层数据流通信方法
CN116436731B (zh) * 2023-06-15 2023-09-05 众信方智(苏州)智能技术有限公司 一种多内网二层数据流通信方法

Similar Documents

Publication Publication Date Title
US20220407948A1 (en) Load Balancing and Session Persistence in Packet Networks
US8296437B2 (en) Server-mediated setup and maintenance of peer-to-peer client computer communications
US7827313B2 (en) Addressing method and method and apparatus for establishing host identity protocol (HIP) connections between legacy and HIP nodes
US7949785B2 (en) Secure virtual community network system
WO2017124837A1 (zh) 一种sslvpn的代理方法、服务器以及客户端及其处理方法
US6662223B1 (en) Protocol to coordinate network end points to measure network latency
CN104270379B (zh) 基于传输控制协议的https 代理转发方法及装置
US8549286B2 (en) Method and system for forwarding data between private networks
US6101543A (en) Pseudo network adapter for frame capture, encapsulation and encryption
US6822955B1 (en) Proxy server for TCP/IP network address portability
US9350711B2 (en) Data transmission method, system, and apparatus
US7480794B2 (en) System and methods for transparent encryption
US20020124090A1 (en) Method and apparatus for data communication between a plurality of parties
US20040249974A1 (en) Secure virtual address realm
US20170034174A1 (en) Method for providing access to a web server
US20040249973A1 (en) Group agent
US20110231651A1 (en) Strong ssl proxy authentication with forced ssl renegotiation against a target server
CA2419853A1 (en) Location-independent packet routing and secure access in a short-range wireless networking environment
US9619662B1 (en) Virtual network pairs
US6829709B1 (en) Validation of network communication tunnels
WO2002017558A2 (en) Method and apparatus for data communication between a plurality of parties
CN116233071A (zh) 一种客户端访问内网资源的方法和可读存储介质
CN104735050B (zh) 一种融合mac认证和web认证的认证方法
US20210314357A1 (en) Secure traffic optimization in an edge network
JP3575369B2 (ja) アクセスルーティング方法及びアクセス提供システム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination