CN112565069A - wireguard网卡设备、聚合链路的方法及聚合链路选路方法 - Google Patents

wireguard网卡设备、聚合链路的方法及聚合链路选路方法 Download PDF

Info

Publication number
CN112565069A
CN112565069A CN202011375731.6A CN202011375731A CN112565069A CN 112565069 A CN112565069 A CN 112565069A CN 202011375731 A CN202011375731 A CN 202011375731A CN 112565069 A CN112565069 A CN 112565069A
Authority
CN
China
Prior art keywords
link
peer
bond
wireguard
packet
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.)
Granted
Application number
CN202011375731.6A
Other languages
English (en)
Other versions
CN112565069B (zh
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.)
Network Communication and Security Zijinshan Laboratory
Original Assignee
Network Communication and Security Zijinshan Laboratory
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 Network Communication and Security Zijinshan Laboratory filed Critical Network Communication and Security Zijinshan Laboratory
Priority to CN202011375731.6A priority Critical patent/CN112565069B/zh
Publication of CN112565069A publication Critical patent/CN112565069A/zh
Application granted granted Critical
Publication of CN112565069B publication Critical patent/CN112565069B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/124Shortest path evaluation using a combination of metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • 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 Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种wireguard网卡设备、聚合链路的方法及聚合链路选路方法,wireguard网卡设备在wireguard协议栈内配置多个bond接口,配置放通网段,每个bond接口绑定若干peer作为从接口;每条peer链路预配置peer公钥唯一标记,bond通过该字段配置子peer,协议栈内以hash表形式将这些单链路组织成聚合链路;本发明在wireguard协议层实现链路冗余备份、链路质量探测和链路自动倒换,在对传输中断高敏感的应用场合下,部署bond聚合链路,在其中一条或多条peer子链路异常时,不会导致两个站点间通信异常。在对时延高敏感性场合下部署bond,bond机制中最佳链路选举算法能进一步降低数据传输时延。与在应用层实现这些HA相比,在内核协议栈级别实现的链路捆绑、选路及倒换控制具有开销小、易维护、性能强的特点。

Description

wireguard网卡设备、聚合链路的方法及聚合链路选路方法
技术领域
本申请涉及通信技术领域,尤其是涉及一种wireguard网卡设备、聚合链路的方法及聚合链路选路方法。
背景技术
传统的IPsec协议太过复杂,太多的随机选项,灵活性也太高,包含了太多种方法去实现同一种方案,发展不可避免地受到限制。wireguard是一种结合了现代密码技术和Noise框架,简单而又性能强悍的现代VPN,比IPsec更快、更简单、更精简,比OpenVPN具有更高的性能。wireguard被设计为通用VPN,现已跨平台(Windows,macOS,BSD,iOS,Android)并可广泛部署;计划合入linux5.6内核版本,显然可以因此获得更高的性能和安全性。作为可替代传统IPsec、OPENVPN技术的新一代VPN,wireguard将X25519作为椭圆曲线Diffi-Hellman密钥交换算法,将Blake2作为哈希算法,采用ChaCha20-Poly1305为认证加密算法。
wireguard采用UDP作为隧道承载协议,在多个站点间部署wireguard时,需要其中一个站点作为服务器,监听其他站点的接入请求;其他站点作为客户端请求连接服务器。
IPsec采用的感兴趣流配置,做流量管理。wireguard也有类似的报文路由机制,采用interface-peer模型配置。Interface是本端的wireguard网卡配置,有本端私钥、网卡ip等信息,如果是作为服务器,还会配置监听端口。Peer是将对端wireagurd网卡的公钥、放通路由等信息配置在本地,显然,一个wireguard网卡会有多个peer,多个peer的放通网段信息就在VPN本端维护了一张VPN路由表。进入wireguard网卡的流量会根据这张VPN路由表,查询到对端ip和端口,采用udp协议封装,作为隧道外层头,发送给对端。
如图1,在发送数据报文到对端前,需要两端先用ECDH算法协商出共享秘钥,作为之后数据流的加密秘钥。在启动这个wireguard网卡时或者发送应用数据前,会触发这个流程。
客户端用随机数算法,生成自己的临时私钥(da),利用curve25519算法计算对应的公钥(Qa=da*G)。curve25519是目前最高水平的Diffie-Hellman函数,由DanielJ.Bernstein教授设计。在密码学中,curve25519是一个椭圆曲线提供128位安全性,设计用于椭圆曲线Diffie-Hellman(ECDH)密钥协商方案,是最快的ECC曲线之一。Qa会作为握手请求报文的wireguard协议头部,带给服务器,由于curve25519标量算法特性,即使这个秘钥在公网被截获,也不能反推出私钥。在Noise协议框架下,Qa也会参与chainkey的刷新,这个chainkey最终会用来加密发送给服务器对端的协议报文。wireguard硬编码采用curve25519计算共享秘钥。使用预配置的对端公钥(Pb)和da生成一个sharedkeyA=Pubb*da,在noise框架下,用来加密协议数据。
服务器在收到协议头带的Qa后,再用curve25519计算sharedkey=Prvb*Qa(就是sharedkeyA)。显然,curve25519的乘法交换律特性能使通信两端协商出一个相同秘钥做加解密。同样的,服务器端也会生成自己的私钥db,用标量算法得到公钥Qb,写入协议头。服务器端再用客户端的公钥(Puba)和自己的db,利用curve25519得到一个共享秘钥sharedkeyB=Puba*db,利用这个秘钥加密最终数据。所有这些信息都将由握手回应报文带给客户端。
客户端在收到服务器返回的握手回应报文后,会用报文头Qb字段和本地预配置的私钥(Prva),使用curve25519算法得到sharedkey=Prva*Qb(就是sharedkeyB)解密服务器的握手回应包。并用这个秘钥加密之后的传送数据。
这样wireguard两端就完成了握手交互,在握手期间,完成了共享秘钥的交换。之后的数据流都可以利用共享秘钥,采用对称加密算法,进行加密。每隔120s(时间可配置),链路两端就会再次协商新秘钥,原有秘钥失效;秘钥最长使用期限是180s,新秘钥和原秘钥不存在任何衍生关系,能够完美前向保密(PFS)。
现有技术的缺点
1、无法搭建备份链路
Wireguard VPN一种常见应用场景是移动办公用户访问公司内网服务器,需要在移动端和公司网关上配置wireguard网卡。移动端的wireguard网卡里的peer指向公司网关,peer的放通网段定义了哪些流量可以进入这个peer链路。不同peer的放通网段不能重叠的限制会导致即使有多台网关指向同一网络,但只能配置一个peer指向其中的一台网关。一旦这个peer链路故障,用户无法访问这个网关,并且没有备份网关链路,那就无法访问公司内网服务器。无法在wireagurd协议层部署备份链路,那在应用层使用类似浮动ip技术实现HA,就会导致部署复杂,难以维护,增加额外成本。
2、链路连接质量无法探测
Wireguard流量在传输层用UDP协议封装,相对于TCP连接可靠稳定的优点,UDP也有速度快,消耗小的优点。而针对UDP连接不可靠,概率丢包的问题,wireguard协议层并没有这样的链路质量监测机制。假设协议栈能够实现多条peer链路指向同一网络,但如果缺失了连接质量监测,那用户流量就可能由一条差质量链路承载。
发明内容
针对于上述现有技术的不足,本发明在wireguard协议层实现链路冗余备份、链路质量探测和智能选路。
本发明为一种wireguard网卡上配置bond接口,在协议栈内部可配置多个bond接口,为bond接口配置放通网段,每个bond接口绑定若干peer作为从接口,一个peer定义了一条通向对端网络设备的UDP链路;
每条peer链路预配置peer公钥唯一标记,bond通过这个字段配置从peer,协议栈内以hash表形式将这些单链路组织成聚合链路。
进一步的,在所述wireguard协议栈内以协议握手包和心跳包的RTT时间作为链路时延参考的参数,记录条peer链路的协议握手包和心跳包的RTT时间,并统计链路丢包率,衡量单条链路连接质量,作为聚合链路重新选路时的重要依据。
更进一步的,所述设备包括移动用户端以及服务器端。
基于上述wireguard网卡设备本发明提供一种聚合链路的方法,所述方法包括以下步骤:
步骤一,在wireguard协议栈内配置多个bond接口,每个bond接口绑定若干peer作为从接口;
步骤二,单条peer链路由预配置的peer公钥唯一标记,bond接口通过这个字段配置从peer,协议栈内以hash表形式将这些单链路组织成聚合链路;
步骤三,在所述wireguard协议栈内设置链路质量参数,基于所述延时、丢包率、抖动等参数对每条peer链路的连接质量进行监控,根据配置的bond模式,在当前使用peer链路异常时,重新选路。
进一步的,所述步骤三中的链路质量参数具体包括协议握手数据包和心跳包的RTT,丢包率以及时延抖动。
本发明还提供上述聚合链路的选路方法,所述选路方法包括以下步骤:
步骤一,移动用户端向不同的对端网关分别发送握手初始化包,所述握手初始化包包含sender字段,所述sender字段用于标识握手方发起方,移动端同时记录发起握手的时间点;
步骤二,对端网关在收到所述握手初始化包后,发送握手回应包,并将本机接收端识别信息写入回应包的sender字段;
步骤三,所述移动用户端在收到所述握手回应包后,根据当前时间及发送时间计算该链路RTT,该隧道建立完毕;
步骤四,所述移动用户端启动心跳包,并记录心跳包发送时间;
步骤五,网关在收到移动用户端心跳包后,立即发送心跳应答包;
步骤六,所述移动用户端在收到所述心跳应答包后,结合当前时间点和记录发送时间点,计算RTT;
步骤七,基于链路质量参数,分析得到当前统计周期内的最终链路质量,bond口基于配置的选路模式,确定发送报文的实际peer。
进一步的,所述步骤一和步骤四的握手包及心跳包循环发送,间隔可配置,RTT测量间隔可动态调整。握手及心跳包里携带的sender、receiver和counter字段用于标识发送方、接收方及报文ID;移动用户端在收到网关的握手回应包或者心跳应答包后,依据发送接收时间点计算该链路RTT。
更进一步的,所述步骤七中的链路质量参数包括RTT抖动指标、丢包率以及RTT时延,所述步骤7具体为:
步骤7.1,重复步骤四至步骤六,连续采集若干次,取均值作为本条链路的时延指标,计算平均偏差,作为RTT抖动指标;
步骤7.2,结合RTT抖动指标、丢包率以及RTT时延,每间隔数次RTT采样周期,进行一次bond链路质量分析,得出该bond下的当前链路质量排序表,在连续获得若干张该表后,计算该统计间隔内的最终链路质量排序表作为选路依据。
更进一步的,所述步骤七中:在bond口设置为主备模式时,如果当前活动peer链路质量排名靠后,启用最优链路作为当前活动链路;在采用balance-rr和balance-xor选路模式时,选用最终链路质量排序表2里排名靠前的数路peer做为实际发包peer。
本发明还提供一种计算机可读存储介质,其特征在于,所述存储介质中含有上述聚合链路选路方法。
与现有技术相比,本发明有以下有益效果:
1、低开销,高效率的内核级主动带内链路质量监测及倒换;
2、监控链路质量,降低用户访问时延。
附图说明
为了更清楚地说明本发明中的技术方案,下面将对本发明中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其它附图。
图1为现有技术中Wireguard peer链路通信两端秘钥协商及更新示意图;
图2为本发明bond聚合链路配置示意图;
图3为本发明peer链路质量监控及bond选路方法示意图;
图4为多链路RTT测量的步骤流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合说明书附图对本发明的实施方式做进一步地详细叙述。
实施例1
本发明为一种wireguard网卡设备,所述设备为配置wireguard的端口,在wireguard协议栈内配置多个bond接口,为bond接口配置放通网段,每个bond接口绑定若干peer作为从接口,一个peer定义了一条通向对端的UDP链路;
每条peer链路预配置peer公钥唯一标记,bond通过这个字段配置子peer,协议栈内以hash表形式将这些单链路组织成聚合链路。
上述放通网段以及下文中所提到的放通网段均指该网卡设备允许将通向哪个端口的流量转发出去。
进一步的,在所述wireguard协议栈内以协议握手包和心跳包的RTT时间作为链路时延参考的参数,记录条peer链路的协议握手包和心跳包的RTT时间,并统计链路丢包率,衡量单条链路连接质量,作为聚合链路重新选路时的重要依据。
更进一步的,所述设备包括移动用户端以及网关服务器端。
本发明在wireguard协议栈内,设计interface-bond-peer接口配置模型,解决多个peer无法配置同一放通网段的问题。一个wireguard网卡下可以配置多个bond接口,每个bond可以绑定一批peer作为从接口,一个peer定义了一条通向对端网关设备的UDP链路,这样多个peer绑定到同一个bond口下,形成指向同一网络的聚合链路。单个链路的断链并不会影响本端流量到达对端网络。
实施例2
UDP连接并不可靠,在一些边缘网络的转发路径上也经常针对UDP流量做限速处理。Wireguard协议栈并没有监控链路时延和丢包这两个关键指标。本发明在协议层利用协议握手包和心跳包的RTT时间做为链路时延参考,并统计链路丢包率,衡量单条链路连接质量,作为聚合链路重新选路时的重要依据。
基于上述wireguard网卡设备本发明提供一种聚合链路的方法,所述方法包括以下步骤:
步骤一,在wireguard协议栈内配置多个bond接口。每个bond接口绑定若干peer作为从接口;配置bond口模式为主备模式;配置放通网段,定义该bond口可发送的流量;本实施例中,采用如下的方式配置bond接口:
表1
配置项: 说明
[Interface] 网卡配置标识符
privateKey SAJI...znicU4= 网卡私钥
address 10.0.0.1 网卡IP
[bond] bond配置标识符
bondname bond1 bond接口名字
bondmode active-backup bond模式为主备
bestslavepeer O0Q...cuJ+orl 最优peer公钥
slavepeer xitpdp...Go31 备份peer公钥
slavepeer xox...OX8 备份peer公钥
allowedips 172.171.1.0/24,192.168.1.0/24 放通网段
[peer] peer配置标识符
endpoint 47.111.98.8:50814 对端通信端口
persistentKeepalive 10 心跳间隔
publicKey O0Q...cuJ+orl peer公钥
[peer] peer配置标识符
endpoint 111.229.198.195:50814 对端通信端口
persistentKeepalive 10 心跳间隔
publicKey xitpdp...Go31 peer公钥
[peer] peer配置标识符
endpoint 47.97.126.2:50814 对端通信端口
persistentKeepalive 10 心跳间隔
publicKey xox...OX8 peer公钥
步骤二,单条peer链路由预配置的peer公钥唯一标记,bond接口通过这个字段配置子peer,协议栈内以hash表形式将这些单链路组织成聚合链路;
步骤三,在所述wireguard协议栈内设置链路质量参数,基于所述延时、抖动、丢包等参数对每条peer链路的连接质量进行监控,实时生成该bond口的peer质量排序表1,在取得若干张排序表1后,计算各peer的排名及排名变动,生成该bond统计周期内的peer链路质量最终排序表2,作为链路倒换依据。在当前活动链路异常时,依据预配置的bond选路模式,触发选路。
一个bond接口可以配置多个子peer指向不同网关,bond口配置成主备模式时,仅会有一条活动链路,其余链路为备份链路。如图2描述,手机和PC用户都预装了wireguardapp,并预配置了bond口,放通网段指向内网网络;每个bond口配置了三条子peer链路,指向三个VPN网关A、B、C;当前活动peer链路指向网关A,另两条peer备份链路指向网关B、C。协议栈分析该bond的peer链路质量排序表2,如果当前活动peer排名过低,会触发重新选路,启用最优peer链路作为活动链路。
基于该聚合链路的方法,在多网关HA场景下,降低部署难度及网络开销。只需在本端的wireguard配置文件下配置bond接口,将指向同一对端网络的peer绑定到一个bond下,为bond配置放通网段,即可实现访问对端网络链路冗余备份。协议栈会自动探测这些带内链路质量,自动倒换链路。在网关侧,wireguard协议在内核空间实现,所有这些控制方法均在内核态实现,各种开销显著降低。
实施例3
本发明还提供上述聚合链路的选路方法,所述选路方法包括以下步骤:
步骤一,移动用户端向不同的对端网关分别发送握手初始化包,所述握手初始化包包含sender字段,所述sender字段用于标识握手方发起方,移动端同时记录发起握手的时间点;
步骤二,对端网关在收到所述握手初始化包后,先将初始化包的sender字段写入握手回应报文的receiver字段,再将本机接收端识别信息写入回应包的sender字段;
步骤三,移动用户端在收到所述握手回应包后,根据所述receiver字段识别出该握手回应包是哪个握手初始化包的回应包,再根据当前时间及发送时间计算该链路RTT;
步骤四,收到握手回应包后,该隧道建立完毕,启动心跳,记录心跳包发送时间点。心跳包中包含sender、receiver、counter字段,分别标识发送方、接收方、报文索引;
步骤五,网关在收到移动用户端心跳包后,立即发送心跳应答包;
步骤六,移动端收到心跳应答包后,根据receiver及counter字段识别出是哪个心跳包的回应包,结合当前时间点和记录的心跳发送时间点,计算RTT;
步骤七,连续采集若干次,取均值作为本条链路的时延指标,计算平均偏差,作为RTT抖动指标;
步骤八,结合RTT抖动指标、丢包率以及RTT时延,分析得到计算出在当前统计周期内的最终链路质量;
步骤九,bond选路模式有主备模式、balance-rr和balance-xor模式,基于预配置的该bond口选路模式,确定发送报文的实际peer。
上述步骤一和步骤四的握手包及心跳包循环发送,间隔可配置,RTT测量间隔可动态调整。握手及心跳包里携带的sender、receiver和counter字段用于标识发送方、接收方及报文ID;移动用户端在收到网关的握手回应包或者心跳应答包后,依据发送接收时间点计算该链路RTT。
链路质量指标主要有时延、丢包和抖动。本发明使用通信两端握手及心跳耗时RTT做时延参考。如图3,在用户wireguard app启动后会先向对端网关A、B、C分别发送握手包,包里的wireguard协议头里会有一个4字节的Sender字段标识发送方;网关在收到这个握手初始化包后,利用椭圆曲线Diffie-Hellma秘钥协商算法,会把自己的生成公钥信息写入握手回应包里,并且初始化包的sender字段重写入回应报文的Receiver字段,回应包的sender字段标识网关发送方;本端app在收到这个回应包后,可以根据Receiver字段识别出这个报文是哪个握手初始化包的回应包,再根据发包时间和当前接收时间,计算出RTT。VPN链路建立后,采样心跳RTT时间,连续采集若干次,取均值作为本条链路的时延指标;计算平均偏差,做为RTT抖动指标;生成peer链路质量排序表1;在取得若干排序表1后,综合计算各peer的排名及排名变动,生成最终peer质量排序表2,作为peer链路倒换依据;每隔一段时间,排序表2被自动刷新,实现自感知网络异常。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
上述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种wireguard网卡设备,其特征在于,所述设备为配置wireguard的端口,在wireguard协议栈内配置多个bond接口,为bond接口配置放通网段,每个bond接口绑定若干peer作为从接口,一个peer定义一条通向对端的UDP链路;
每条peer链路预配置peer公钥唯一标记,每个bond通过所述公钥配置子peer,wireguard协议栈内以hash表形式将这些单peer链路组织成聚合链路。
2.根据权利要求1所述的一种wireguard网卡设备,其特征在于,在所述wireguard协议栈内以协议握手包和心跳包的RTT时间作为链路时延参考的参数,记录条peer链路的协议握手包和心跳包的RTT时间,并统计链路丢包率,衡量单条链路连接质量,作为聚合链路重新选路时的依据。
3.根据权利要求1所述的一种wireguard网卡设备,其特征在于,所述设备包括移动用户端以及服务器端。
4.一种聚合链路的方法,其特征在于,所述方法包括以下步骤:
步骤一,在wireguard协议栈内配置多个bond接口,每个bond接口绑定若干peer作为从接口;
步骤二,单条peer链路由预配置的peer公钥唯一标记,bond接口通过所述公钥配置子peer,协议栈内以hash表形式将这些单链路组织成聚合链路;
步骤三,在所述wireguard协议栈内设置链路质量参数,基于运算后的所述链路质量参数对每条peer链路质量进行监控。
5.根据权利要求4所述的一种聚合链路的方法,其特征在于,所述步骤三中的链路质量参数具体包括协议握手数据包和心跳包的RTT时间,以及链路丢包率及时延抖动。
6.一种聚合链路选路方法,其特征在于,所述选路方法包括以下步骤:
步骤一,移动用户端向不同的对端网关分别发送握手初始化包,所述握手初始化包包含sender字段,所述sender字段用于标识握手方发起方,移动端同时记录发起握手的时间点;
步骤二,对端网关在收到所述握手初始化包后,发送握手回应包,并将本机接收端识别信息写入回应包的sender字段;
步骤三,所述移动用户端在收到所述握手回应包后,根据当前时间及发送时间计算该链路RTT,该隧道建立完毕;
步骤四,所述移动用户端启动心跳包,并记录心跳包发送时间;
步骤五,网关在收到移动用户端心跳包后,立即发送心跳应答包;
步骤六,所述移动用户端在收到所述心跳应答包后,结合当前时间点和记录发送时间点,计算RTT;
步骤七,基于链路质量参数,分析得到当前统计周期内的最终链路质量,bond口基于配置的选路模式,确定发送报文的实际peer。
7.根据权利要求6所述的一种聚合链路选路方法,其特征在于,
所述步骤一和步骤四的握手包及心跳包循环发送,间隔可配置,RTT测量间隔可动态调整;握手及心跳包里携带的sender数据、receiver和counter字段用于标识发送方、接收方及报文ID;移动用户端在收到网关的握手回应包或者心跳应答包后,依据发送接收时间点计算该链路RTT以及RTT抖动指标。
8.根据权利要求6所述的一种聚合链路选路方法,其特征在于,所述步骤七中的链路质量参数包括RTT抖动指标、丢包率以及RTT时延,所述步骤7具体为:
步骤7.1,重复步骤四至步骤六,连续采集若干次 ,取均值作为本条链路的时延指标,计算平均偏差,作为RTT抖动指标;
步骤7.2,结合RTT抖动指标、丢包率以及RTT时延,每间隔数次RTT采样周期,进行一次bond链路质量分析,得出该bond下的当前链路质量排序表,在连续获得若干张该表后,计算该统计间隔内的最终链路质量排序表作为选路依据。
9.根据权利要求6所述的一种聚合链路选路方法,其特征在于,所述步骤七具体为:在设置为主备模式时,如果当前活动peer链路质量排名靠后,启用最优链路作为当前活动链路;在采用balance-rr和balance-xor选路模式时,选用最终链路质量排序表里排名靠前的数路peer做为该bond口的实际发包peer。
10.一种计算机可读存储介质,其特征在于,所述存储介质中含有如权利要求6至9任一项所述的一种聚合链路选路方法。
CN202011375731.6A 2020-11-30 2020-11-30 wireguard网卡设备、聚合链路的方法及聚合链路选路方法 Active CN112565069B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011375731.6A CN112565069B (zh) 2020-11-30 2020-11-30 wireguard网卡设备、聚合链路的方法及聚合链路选路方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011375731.6A CN112565069B (zh) 2020-11-30 2020-11-30 wireguard网卡设备、聚合链路的方法及聚合链路选路方法

Publications (2)

Publication Number Publication Date
CN112565069A true CN112565069A (zh) 2021-03-26
CN112565069B CN112565069B (zh) 2023-04-07

Family

ID=75045485

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011375731.6A Active CN112565069B (zh) 2020-11-30 2020-11-30 wireguard网卡设备、聚合链路的方法及聚合链路选路方法

Country Status (1)

Country Link
CN (1) CN112565069B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113660198A (zh) * 2021-07-05 2021-11-16 广州鲁邦通物联网科技有限公司 一种网关安全通道自适应方法、管理单元和系统
CN114205285A (zh) * 2021-11-24 2022-03-18 中盈优创资讯科技有限公司 一种基于链路质量的ospf路由选路方法及装置
CN115190051A (zh) * 2021-04-01 2022-10-14 中国移动通信集团河南有限公司 心跳数据识别方法及电子装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916459A (zh) * 2010-08-03 2010-12-15 江苏科技大学 一种安全电子票方法
US20140189094A1 (en) * 2012-12-31 2014-07-03 Advanced Micro Devices, Inc. Resilient duplicate link aggregation emulation
US20200252201A1 (en) * 2019-02-06 2020-08-06 Adva Optical Networking Se Method And System Of Latency Assessment In A Packet Data Network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101916459A (zh) * 2010-08-03 2010-12-15 江苏科技大学 一种安全电子票方法
US20140189094A1 (en) * 2012-12-31 2014-07-03 Advanced Micro Devices, Inc. Resilient duplicate link aggregation emulation
US20200252201A1 (en) * 2019-02-06 2020-08-06 Adva Optical Networking Se Method And System Of Latency Assessment In A Packet Data Network

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115190051A (zh) * 2021-04-01 2022-10-14 中国移动通信集团河南有限公司 心跳数据识别方法及电子装置
CN115190051B (zh) * 2021-04-01 2023-09-05 中国移动通信集团河南有限公司 心跳数据识别方法及电子装置
CN113660198A (zh) * 2021-07-05 2021-11-16 广州鲁邦通物联网科技有限公司 一种网关安全通道自适应方法、管理单元和系统
CN113660198B (zh) * 2021-07-05 2023-05-16 广州鲁邦通物联网科技股份有限公司 一种网关安全通道自适应方法、管理单元和系统
CN114205285A (zh) * 2021-11-24 2022-03-18 中盈优创资讯科技有限公司 一种基于链路质量的ospf路由选路方法及装置
CN114205285B (zh) * 2021-11-24 2024-01-05 中盈优创资讯科技有限公司 一种基于链路质量的ospf路由选路方法及装置

Also Published As

Publication number Publication date
CN112565069B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN112565069B (zh) wireguard网卡设备、聚合链路的方法及聚合链路选路方法
KR100916288B1 (ko) 네트워크 토폴로지의 결정을 위한 장치 및 방법
Kothmayr et al. DTLS based security and two-way authentication for the Internet of Things
US8010643B2 (en) System and methods for simulating traffic generation
CN109309621A (zh) 基于服务级别协议选择下一跳的方法和网络设备
JP2018515974A (ja) グローバル仮想ネットワーク(gvn)において仮想インタフェースとアドバンストスマートルーティングとを提供するためのシステム及び方法
US20080189353A1 (en) Systems and methods for inferring services on a network
TW201728124A (zh) 以彈性地定義之通信網路控制器為基礎之網路控制、操作及管理
IL155356A (en) Method and device for estimating and optimizing the volume of data passing through the network
Loshin IPv6 clearly explained
Andersen Improving end-to-end availability using overlay networks
Traudt et al. Flashflow: A secure speed test for tor
Ahmad et al. Studying the effect of internet exchange points on internet link delays
WO2019165330A1 (en) System and methods for proof of network element
KR100506182B1 (ko) 멀티 터널 아이피에스이씨(ipsec)를 지원하는브이피엔(vpn) 시스템 및 운용방법
Al-Musawi et al. BGP Replay Tool (BRT) v0. 2
Tian et al. A flow-based traceback scheme on an AS-level overlay network
Kim et al. A Machine Learning Approach to Peer Connectivity Estimation for Reliable Blockchain Networking
US11936553B2 (en) Autonomous data routing in a peer-to-peer computer network
US11689456B2 (en) Autonomous data routing in a peer-to-peer computer network
Teixeira Network troubleshooting from end-hosts
US20230246961A1 (en) Methods and systems for routing network traffic among organizations using a service-oriented protocol
US11863437B2 (en) Hybrid method for node organization and data routing in a peer-to-peer computer network
Calvert et al. Scalable network management using lightweight programmable network services
Chasaki et al. Topology reconstruction via path recording in secure MANET

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
GR01 Patent grant
GR01 Patent grant