前面测试WireGuard的时候(使用8条命令即可完成的VPN配置!CentOS快速配置WireGuard全互联组网),记得官网有材料介绍说WireGuard性能比IPsec提升了很多,介绍如下:
从转发速率上看,使用WireGuard比使用传统IPsec性能高出15%-23%;从时延上看,使用WireGuard比使用传统IPsec时延降低20%左右。
那这个数据到底准确不准确呢?今天来简单测试一下。测试使用的两台虚拟机的系统分别是常用的Windows7(8核CPU、8 GB内存)和Windows10(8核CPU、16 GB内存),测速工具使用iperf3。
不使用任何加密
首先测试一下在不使用任何加密时的转发速率。
可以看到,Windows7作为客户端时测得速率为2.53 Gbps,Windows7作为服务器端时的速率为2.7 Gbps,这将是本次测试的基准速率。
使用主机IPsec加密
在Windows上配置IPsec保护数据传输的方法之前已经介绍过了(使用MMC和netsh两种方式配置Windows Server传输模式IPsec),今天直接上配置。
创建策略,主要是指定策略名称name为“ipsec10”,安全方法mmsecmethods的加密算法为3DES、完整性算法为SHA1,配置命令:
netsh ipsec staticadd policy ipsec10 mmsec=”3DES-SHA1-2”
创建筛选器操作,筛选器名称name为“ipsec10”,操作action为“negotiate”协商安全,安全方法qmsecmethods中AH的完整性算法为SHA1、ESP的完整性算法为SHA1、加密算法为3DES,配置命令:
netsh ipsec staticadd filteraction name= ipsec10 action=negotiate qmsec=”AH[SHA1]+ESP[SHA1,3DES] “
创建筛选器列表,主要配置是名称name,配置命令:
netsh ipsec staticadd filterlist ipsec10
创建筛选器,主要配置是添加到对应的筛选器列表ipsec10,并配置源IP地址为192.168.1.106,目的IP地址为192.168.1.108,协议、源端口和目的端口均不指定,包含所有。配置如下:
netsh ipsec static add filter filterlist= ipsec10 192.168.1.106192.168.1.108
创建规则,主要配置是将前面的策略ipsec10、筛选器列表ipsec10、筛选器操作ipsec10关联起来,并创建规则名称name和预共享密钥psk,配置如下:
netsh ipsec staticadd rule name=ipsec policy=ipsec10 filterlist= ipsec10 filteraction= ipsec10 psk=”tietouge”
在netsh命令中配置的IPsec,默认是没有激活的,通过将IPsec策略的assign属性配置为y,来实现激活策略。配置如下:
netsh ipsec static setpolicyname=ipsec10 assign=y
使用命令netsh ipsec static show all查看所有策略的详细信息及相关信息。
PS C:\Windows\system32> netsh ipsec static show all
策略名称 : ipsec10
描述 : 无
存储 : 本地存储
上次修改时间 : 2022/3/16 20:24:55
GUID : {C14D4A08-6F68-4D0B-AE06-DFD60C2ADC95}
已分配 : 是
轮询间隔 : 180 分钟
主模式生存时间 : 480 分钟 / 0 快速模式会话
主PFS : 否
主模式安全方法顺序
加密集成 DH 组
——————- ——–
3DESSHA1 中(2)
规则数目 : 2
规则详细信息
规则ID : 1, GUID = {3A9923B2-6426-46E7-AD82-09AA37EC4705}
规则名称 : ipsec
描述 : 无
上次修改时间 : 2022/3/16 20:24:39
已激活 : 是
连接类型 : 全部
身份验证方法(1)
预共享密钥 : tietouge
筛选器列表详细信息
筛选器列表名称 : ipsec10
描述 : 无
存储 : 本地存储
上次修改时间 : 2022/3/16 20:23:06
GUID : {9EBAF843-BC37-4D49-BD0B-02FE068424B4}
筛选器数目 : 1
筛选器
描述 : 无
已镜像 : 是
源IP 地址 : 192.168.1.106
源掩码 : 255.255.255.255
源DNS 名称 :
目标IP 地址 : 192.168.1.108
目标掩码 : 255.255.255.255
目标DNS 名称 :
协议 : ANY
源端口 : 任何
目标端口 : 任何
筛选器操作详细信息
筛选器操作名称 : ipsec10
描述 : 无
存储 : 本地存储
操作 : 协商安全
AllowUnsecure(Fallback): 否
入站通过 : 否
QMPFS : 否
上次修改时间 : 2022/3/16 20:19:44
GUID : {AF5831F7-27BA-455B-8D38-D88DD180FC20}
安全方法
AHESP 秒 千字节
—– ——- ——
[SHA1][SHA1 , 3DES] 0 0
规则 ID : 2, GUID = {2CA2F00A-12EB-4CBC-805F-6AB9984FB31C}
规则名称 : 无
描述 : 无
上次修改时间 : 2022/3/16 19:55:48
已激活 : 否
连接类型 : 全部
身份验证方法(1)
KERBEROS
在默认响应规则中没有筛选器列表
筛选器操作详细信息
筛选器操作名称 : 无
描述 : 无
存储 : 本地存储
AllowUnsecure(Fallback): 否
入站通过 : 否
QMPFS : 否
上次修改时间 : 2022/3/16 19:55:48
GUID : {874049F9-CC1E-4FA2-871D-FBAA9A8D7923}
安全方法
AHESP 秒 千字节
—– ——- ——
[无][SHA1 , 3DES] 0 0
[SHA1][无 , 无] 0 0
策略数目 : 1
同样的,在Windows7上配置相同的IPSec配置。
netshipsec static add policy ipsec10 mmsec=”3DES-SHA1-2”
netshipsec static add filteraction name= ipsec10 action=negotiate qmsec=”AH[SHA1]+ESP[SHA1,3DES] “
netshipsec static add filterlist ipsec10
netshipsec static add filter filterlist= ipsec10 192.168.1.108 192.168.1.106
netshipsec static add rule name=ipsec policy=ipsec10 filterlist= ipsec10 filteraction= ipsec10 psk=”tietouge”
netshipsec static set policy name=ipsec10 assign=y
用一个ping包触发IPsec隧道建立。
此时我们再测试一下转发速率。
不测不知道,一测吓一跳。Windows10作为服务器端时的速率为68.8 Mbps,转发速率只有不加密情况(2.53 Gbps)下的2.7 %;Windows10作为客户端时测得速率为52.2Mbps,转发速率只有不加密情况(2.7 Gbps)下的1.9 %。可谓是打骨折了!
然后我们将主机的IPsec策略去激活。
netsh ipsec static setpolicyname=ipsec10 assign=n
使用WireGuard进行加密
在Windows7主机上导入以下配置:
[Interface]
PrivateKey = yPygjt1feJcwHxwzLuT0QrCClsmsPcJgGo/y6SXh1Fs=
ListenPort = 10000
Address = 10.1.1.2/24
[Peer]
PublicKey = 69Kz5pQzp2za6eJf2JyLqiN8kL6O8HdKg2XHxD8CpXo=
AllowedIPs = 10.1.1.1/32
Endpoint = 192.168.1.106:10000
在Windows10主机上导入以下配置:
[Interface]
PrivateKey = aLpI3Eyy9dcIAb1ZWJNCyO1TUz7B5R7Qfg4r4l/pEkA=
ListenPort = 10000
Address = 10.1.1.1/24
[Peer]
PublicKey = qz7IHHX4f7WtCp7uyZv/Z9WivOCIFwJr8nbgmt5Bdjo=
AllowedIPs = 10.1.1.2/32
Endpoint = 192.168.1.108:10000
此时我们再测试一下转发速率。
可谓是大有改观,Windows10作为服务器端时的速率为516 Mbps,转发速率是不加密情况(2.53 Gbps)下的20 %,是使用主机IPsec加密情况下(68.8 Mbps)的7.5倍;Windows10作为客户端时测得速率为714 Mbps,转发速率是不加密情况(2.7 Gbps)下的26 %,是使用主机IPsec加密情况下(52.2Mbps)的13.6 倍。
简单总结一下:
可以看到,转发速率高低和谁是服务器关系不大。因为主机IPsec支持的加密算法有限,无法测得WireGuard官方宣称的速率,但是和主机IPSec加密的差距还是巨大的!
声明:来自铁军哥,仅代表创作者观点。链接:https://eyangzhen.com/2099.html