WireGuard测试报告
wireguard简介
WireGuard 是由 Jason Donenfeld 等人用 C 语言编写的一个开源 VPN 协议,被视为下一代 VPN 协议,旨在解决许多困扰 IPSec/IKEv2、OpenVPN 或 L2TP 等其他 VPN 协议的问题。它与 Tinc 和 MeshBird 等现代 VPN 产品有一些相似之处,即加密技术先进、配置简单。从 2020 年 1 月开始,它已经并入了 Linux 内核的 5.6 版本,这意味着大多数 Linux 发行版的用户将拥有一个开箱即用的 WireGuard。
一、测试环境
环境说明

1 R2跟R3之间通过R1(用武汉办华为交换机替代)跨网段互联互通,R1交换机缺省指定到武汉办出口设备NetMizer模拟运营商线路。
interface Vlanif66
ip address 192.168.66.1 255.255.255.0
ip address 22.22.22.1 255.255.255.252 sub
interface Vlanif77
ip address 22.22.23.1 255.255.255.252
ip address 192.168.77.1 255.255.255.0 sub
interface GigabitEthernet0/0/3
description LINK_TO_GEN8_SERVICE
port link-type trunk
undo port trunk allow-pass vlan 1
port trunk allow-pass vlan 66 77
ip route-static 0.0.0.0 0.0.0.0 192.168.0.254
2 PC将各自的缺省路由指定到对应的汇聚路由。
3 R4、R5缺省给R2,R6、R7缺省给R3。
4 R2 R3上面安装wireguard
Sudo apt install wireguard
5 R2 R3指定各自PC网段路由。
二、测试目的
1 测试wirguard路由能否通过脚本或配置文件自动生成。
2 测试客户路由能否通过wirguard隧道实现三层的互通。
3 测试wirguard之间能否建立双隧道。
4 测试wirguard能否实现双隧道之间的三层互通。
三、测试结论
1 路由生成
1 R2 R3之间建立wirguard隧道,R2-wg0使用隧道地址10.10.10.1/30,R3-wg0使用隧道地址10.10.10.2/30
1 生成key
Cd/etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
2 wirguard配置
R2
root@pengxiao-virtual-machine:/etc/wireguard# cat wg0.conf
[Interface]
PrivateKey = EDUMmc9hXfLJ05Cod6XgaFaKFD6TTHb2u7xILjFaC1k=
ListenPort = 56560
Address = 10.10.10.1/32
[Peer]
PublicKey = HUCKOLKXBV53bpiqGCtY61RbNrvbotYCCKcWifjjb2c=
AllowedIPs = 10.10.10.2/32
Endpoint = 22.22.23.2:56560
root@pengxiao-virtual-machine:/etc/wireguard#
R3
[Interface]
PrivateKey = eFvJdS8Tz5h05HqJLcb1mo/EKenoblEMM/BUqkL0t1k=
ListenPort = 56560
Address = 10.10.10.2/32
[Peer]
PublicKey = 94JDbWR6sj8jzZlLkWFt1bgqTn8I2Guyzbj/k01Pv20=
AllowedIPs = 10.10.10.1/32
Endpoint = 22.22.22.2:56560
3 R3 通过wg-quick的方式起隧道。
可以看见10.10.10.2 被写入系统路由
4 通过wg setconf起路由
可以看见10.10.10.2 没有被写入系统路由
结论:原生wg setconf wg0方式不会写入系统路由,wg-quick会根据脚本自动读取生成AllowedIPs里面ip段的路由,并加入系统路由。
2 路由三层互通
1 在R2上面指定目标为172.16.18.0/24网段走wirguard隧道wg0, 在R3上指定目标为172.16.16.0/24网段走wirguard隧道wg0。
R2
[Interface]
PrivateKey = EDUMmc9hXfLJ05Cod6XgaFaKFD6TTHb2u7xILjFaC1k=
ListenPort = 56560
#Address = 10.10.10.1/32
[Peer]
PublicKey = HUCKOLKXBV53bpiqGCtY61RbNrvbotYCCKcWifjjb2c=
AllowedIPs = 10.10.10.2/32,172.16.18.0/24
Endpoint = 22.22.23.2:56560
R3
[Interface]
PrivateKey = eFvJdS8Tz5h05HqJLcb1mo/EKenoblEMM/BUqkL0t1k=
ListenPort = 56560
Address = 10.10.10.2/32
[Peer]
PublicKey = 94JDbWR6sj8jzZlLkWFt1bgqTn8I2Guyzbj/k01Pv20=
AllowedIPs = 10.10.10.1/32,172.16.16.0/24
Endpoint = 22.22.22.2:56560
2 测试172.16.18.0/24网段的pc能否穿越wirguard隧道wg0 ping通172.16.16.0/24网段的pc。
PC 5 PING PC1
PING 172.16.16.2 (172.16.16.2) 56(84) bytes of data.
64 bytes from 172.16.16.2: icmp_seq=1 ttl=60 time=5.05 ms
PC5:tracepach PC1
1?: [LOCALHOST] pmtu 1500
1: _gateway 0.138ms
1: _gateway 0.111ms
2: 11.11.13.1 0.194ms
3: 11.11.13.1 0.313ms pmtu 1420
3: 10.10.10.1 0.778ms
4: no reply
5: 172.16.16.2 17.521ms reached
结论:172.16.18.0/24网段的client能够穿越wirguard隧道wg0 ping通172.16.16.0/24网段的pc。
3 双隧道建立
1 R2、R3 复制wg0配置文件,命名为wg1修改wg1 AllowedIPs,以及ListenPort。
R2-wg1
[Interface]
PrivateKey = EDUMmc9hXfLJ05Cod6XgaFaKFD6TTHb2u7xILjFaC1k=
ListenPort = 56561
Address = 10.10.11.1/32
[Peer]
PublicKey = HUCKOLKXBV53bpiqGCtY61RbNrvbotYCCKcWifjjb2c=
AllowedIPs = 10.10.11.2/32
Endpoint = 22.22.23.2:56561
R3-wg1
[Interface]
PrivateKey = eFvJdS8Tz5h05HqJLcb1mo/EKenoblEMM/BUqkL0t1k=
ListenPort = 56561
Address = 10.10.11.2/32
[Peer]
PublicKey = 94JDbWR6sj8jzZlLkWFt1bgqTn8I2Guyzbj/k01Pv20=
AllowedIPs = 10.10.11.1/32
Endpoint = 22.22.22.2:56561
2 R2 R3分别通过wg-quick建立wireguird隧道
3 测试wg1隧道地址互通性,同时确保wg0未受影响。
R3->R2 wg0
PING 10.10.10.1 (10.10.10.1) 56(84) bytes of data.
64 bytes from 10.10.10.1: icmp_seq=1 ttl=64 time=0.467 ms
R3-R2 wg1
PING 10.10.11.2 (10.10.11.2) 56(84) bytes of data.
64 bytes from 10.10.11.2: icmp_seq=1 ttl=64 time=0.018 ms
结论:wg1互通性正常,wg0也没受影响。
4 双隧道三层路由
1 在R2上面指定目标为172.16.19.0/24网段走wirguard隧道wg1, 在R3上指定目标为172.16.17.0/24网段走wirguard隧道wg1。
R2
172.16.19.0 0.0.0.0 255.255.255.0 U 0 0 0 wg1
R3
172.16.17.0 0.0.0.0 255.255.255.0 U 0 0 0 wg1
2 测试172.16.19.0/24网段的PC7能否穿越wirguard隧道wg1 ping通172.16.17.0/24网段的PC3,同时在PC5上查看之前走wg0隧道的业务是否受到影响。
PC 7-PC3-ping
PING 172.16.17.2 (172.16.17.

最低0.47元/天 解锁文章
341

被折叠的 条评论
为什么被折叠?



