System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种支持WireGuard设备的端口共用和IP绑定的系统和方法技术方案_技高网

一种支持WireGuard设备的端口共用和IP绑定的系统和方法技术方案

技术编号:40958452 阅读:2 留言:0更新日期:2024-04-18 20:36
本发明专利技术涉及计算机网络安全及网络通信技术领域,是一种支持WireGuard设备的端口共用和IP绑定的系统和方法,具体方法包括:S1:由WireGuard驱动提供Netlink接口给管理工具或应用配置IP地址和SO_REUSEPORT;根据配置的监听端口创建一个UDP socket,为WireGuard设备配置唯一标识WNI,并且将多个WireGuard设备和UDP socket相互关联;发送方通过UDP socket将加密和封装好的报文发送给对端;接收方在UDP socket接收报文时,从UDP socket获取WiregGuard设备,并将报文投递给WiregGuard设备进行解封装和解密处理。本发明专利技术解决了现有技术中,端口浪费、容易和其他应用或服务出现冲突的问题。

【技术实现步骤摘要】

本专利技术涉及计算机网络安全及网络通信,是一种支持wireguard设备的端口共用和ip绑定的系统和方法。


技术介绍

1、wireguard是一种现代、高性能、安全的vpn协议。与传统的vpn协议(如openvpn、ipsec)相比,wireguard具有以下优点:高性能:wireguard使用了最新的加密算法,采用了更轻量级的协议设计,使得它具有更高的性能和更低的延迟,这使得wireguard在高速网络和低功耗设备上都能表现出色。安全性:wireguard使用了最先进的加密算法(如chacha20、poly1305、curve25519等),同时还采用了多种安全措施(如完整性检查、密钥轮换等)来保证vpn连接的安全和可靠性;此外,wireguard协议设计简洁,避免了许多安全漏洞。简单易用:wireguard协议设计简洁,实现代码量较少,易于部署和维护。同时,wireguard还提供了一组易用的命令行工具和api,使得用户可以轻松地创建和管理vpn连接。跨平台支持:wireguard支持linux、windows、macos、ios、android等多种操作系统,并且可以运行在各种类型的设备上,包括嵌入式设备、路由器、服务器等。

2、在现有已公开的专利技术技术中,如申请公开号为cn114285697a的专利公开了一种基于wireguard和openvpn的多网络单入口vpn系统,所述系统为:用户通过openvpn进行单入口接入,通过wireguard在网络的第三层创建隧道打通不同网络,用户流量由openvpn的tun0网络接口通过ssl安全隧道传递到vpn网关,通过nftables进行数据包过滤并转发到wireguard的网络接口,通过隧道发送数据给目的网络,并通过轻型目录访问协议ldap协议对企业量级的用户进行认证和访问权限控制。

3、又如申请公开号为cn115225493a的专利公开了一种基于wireguard的组网节点的配置生成,通过wireguard网络中的ui平台端响应于维护人员在操作界面对wireguard网络中的组网节点进行的更新拓扑结构的变更操作获取变更结果并携带变更结果向中控服务器发起的变更请求;中控服务器调用与变更类型对应的目标配置生成策略并确定在wireguard网络中的、与变更结果关联的至少一个目标组网节点,并生成最新的wireguard配置信息并分别发送给至少一个目标组网节点,以使每个所述目标组网节点分别根据最新的wireguard配置信息对自身的wireguard配置信息进行更新。

4、上述专利中的wireguard协议是通过udp协议实现的端到端连接,一个wireguard设备会创建两个udp socket(ipv4和ipv6),可以指定udp socket的监听端口,也可以由内核随机选择一个可用的端口,而监听地址(ip地址)则是任意地址(即全0地址,ipv4为0.0.0.0,ipv6为::),存在
技术介绍
中描述的问题。


技术实现思路

1、本部分的目的在于概述本专利技术的实施例的一些方面以及简要介绍一些较佳实施例。在本部分以及本申请的说明书摘要和专利技术名称中可能会做些简化或省略以避免使本部分、说明书摘要和专利技术名称的目的模糊,而这种简化或省略不能用于限制本专利技术的范围。

2、当前的wireguard协议是通过udp协议实现的端到端连接,一个wireguard设备会创建两个udp socket(ipv4和ipv6),可以指定udp socket的监听端口,也可以由内核随机选择一个可用的端口,而监听地址(ip地址)则是任意地址(即全0地址,ipv4为0.0.0.0,ipv6为::)。这样会带来2个问题:

3、1.当一台服务器上wireguard设备创建的越来越多时,会占用越来越多的udp端口,由于udp可用端口最多65535个,也就限制了一台服务器最多只能创建65535个wireguard设备(不考虑network namespace的场景)。同时,由于每个wireguard设备都需要独占一个udp端口,因此需要很好管理udp端口,避免因为udp端口的冲突导致设备无法正常的工作,增加了管理面的复杂度。另一方面,端口过多,也会导致安全策略不容易设置,需要针对每个端口配置安全策略。

4、2.wireguard设备监听任意地址,且没有开启端口复用(so_reuseport),因此被wireguard设备监听的端口,其他应用就无法监听,例如wireguard设备配置的监听端口为12345,那么其他应用就无法在任何ip地址上监听udp的12345端口。这样会影响其他应用或服务的可用性。

5、本专利技术所要解决的技术问题是针对现有技术中的以下3个问题:

6、1.支持wireguard设备的端口共用,多个wireguard设备共用同一个监听端口,即支持多个wireguard设备只创建两个udp socket(ipv4和ipv6),节省端口。

7、2.支持wireguard设备的ip绑定,即支持wireguard设备监听除了任意地址外的某个具体的ip地址,例如127.0.0.1(ipv4)和2001::1(ipv6)等,避免和其他应用或服务出现冲突。

8、3.支持wireguard设备创建的udp socket开启

9、so_reuseport(端口复用),即允许wireguard设备和其他应用/服务在都开启so_reuseport的情况下,同时在相同的端口上监听,其中一方监听任意地址,一方监听具体ip地址,例如wireguard监听127.0.0.1:12345,网关服务监听0.0.0.0:12345。

10、为了达到上述目的,本专利技术一种支持wireguard设备的端口共用和ip绑定的方法的技术方案包括如下步骤:

11、s1:由wireguard驱动提供netlink接口给管理工具或应用配置ip地址和so_reuseport;

12、s2:根据配置的监听端口创建一个udp socket,为wireguard设备配置唯一标识wni,并且将多个wireguard设备和udp socket相互关联;

13、s3:发送方通过udp socket将加密和封装好的报文发送给对端;

14、s4:接收方在udp socket接收报文时,从udp socket获取wiregguard设备,并将报文投递给wiregguard设备进行解封装和解密处理。

15、具体地,s1中,所述ip地址包括:具体的ipv4和ipv6监听地址,结合端口共用,支持多个wireguard设备使用同一udp socket。

16、具体地,s1包括如下具体步骤:

17、s11:进行唯一性确认,确定相同的ip地址下的wireguard设备的wni是唯一的;

18、s12:通过wireguard驱动在创建udp socket时,使用本文档来自技高网...

【技术保护点】

1.一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于:所述方法包括如下具体步骤:

2.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S1中,所述IP地址包括:具体的IPv4和IPv6监听地址,结合端口共用。

3.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S1包括如下具体步骤:

4.根据权利要求3所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S13中,所述设备状态为DOWN状态。

5.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S13中,是否开启SO_REUSEPORT的确定包括:当WireGuard驱动在创建UDP socket时,确定SO_REUSEPORT的开启状态,若状态为开启,则调用setsockop接口设置SO_REUSEPORT。

6.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S2中,所述UDP socket可以可以绑定在具体的IPv4和IPv6地址上。

7.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S2中,所述WireGuard设备的唯一标识包括:WireGuardNetwork Identifier,WNI,其中,所述WNI的配置步骤如下:

8.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,S3中,所述发送方包括:将WNI封装在WireGuard报文的头部中,利用WireGuard协议头部的Reserved字段的低16bit位来携带WNI。

9.根据权利要求1所述的一种支持WireGuard设备的端口共用和IP绑定的方法,其特征在于,所述接收方包括:解析WireGuard协议头部的Reserved字段的低16bit位,获取到WNI,然后根据WNI获取到相应的WireGuard设备。

10.一种支持WireGuard设备的端口共用和IP绑定的系统,其基于如权利要求1-9任一项所述的一种支持WireGuard设备的端口共用和IP绑定的方法实现,其特征在于,所述系统包括以下模块:

...

【技术特征摘要】

1.一种支持wireguard设备的端口共用和ip绑定的方法,其特征在于:所述方法包括如下具体步骤:

2.根据权利要求1所述的一种支持wireguard设备的端口共用和ip绑定的方法,其特征在于,s1中,所述ip地址包括:具体的ipv4和ipv6监听地址,结合端口共用。

3.根据权利要求1所述的一种支持wireguard设备的端口共用和ip绑定的方法,其特征在于,s1包括如下具体步骤:

4.根据权利要求3所述的一种支持wireguard设备的端口共用和ip绑定的方法,其特征在于,s13中,所述设备状态为down状态。

5.根据权利要求1所述的一种支持wireguard设备的端口共用和ip绑定的方法,其特征在于,s13中,是否开启so_reuseport的确定包括:当wireguard驱动在创建udp socket时,确定so_reuseport的开启状态,若状态为开启,则调用setsockop接口设置so_reuseport。

6.根据权利要求1所述的一种支持wireguard设备的端口共用和ip绑定的方法,其特征在于,s2中,所述udp socket...

【专利技术属性】
技术研发人员:吴建国洪钧煌李永隆郑国勇卢畅
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1