正文共:888 字 13 图,预估阅读时间:1 分钟
通过前面几次的巩固(Wireguard配置文件详解、配置Wireguard的几个进阶玩法),我们现在已经数量掌握了Wireguard的配置要领,那么我们就来更新一下Wireguard的组网案例。
首先介绍一下HUB-SPOKE组网模型,分别用3台主机代表3个站点,PCA为HUB角色,PCB和PCC为SPOKE角色,配置PCB和PCC需要穿越NAT设备来访问PCA。每个主机配置一个虚拟接口veth,模拟本地网络。组网示意图如下:
首先使用3条命令完成标准内核下的Wireguard安装,即使用ELRepo的预构建模块进行安装。具体操作过程请参考(使用8条命令即可完成的VPN配置!CentOS快速配置WireGuard全互联组网),文章同时介绍了3种部署方式。
yum install -y epel-release elrepo-release
yum install -y yum-plugin-elrepo
yum install -y kmod-wireguard wireguard-tools
安装完Wireguard之后,我们先来配置HUB设备PCA。首先为PCA创建一个虚拟接口,并配置IP地址110.1.1.1/24。
ip link add loop1 type veth
ip address add dev loop1 110.1.1.1/24
ip link set up dev loop1
作为HUB设备,配置时无需指定对端的IP地址和端口信息,但需要保证对端的公钥信息正确;再加上两端的私网信息,PCA的配置如下:
[Interface]
PrivateKey = 2DOnuYIGbLMplHdd3TjwUjbZGQfPC6kxbp+XE+Z1FlM=
Address = 10.1.1.1/24
ListenPort = 10086
[Peer]
PublicKey = Qldp06YMySdq77rT+JboZAAicv0JZtuMxCl2Eb79yj8=
AllowedIPs = 10.1.1.2/32,120.1.1.0/24
[Peer]
PublicKey = /F826MtOhPCmyqxnT0LoTMDErbCE/oBfXW0stbnXojE=
AllowedIPs = 10.1.1.3/32,130.1.1.0/24
然后使能Wireguard接口配置。
wg-quick up /root/wg0.conf
同理,我们再来配置SPOKE设备,和HUB设备不同的是,SPOKE设备需要明确指定对端的IP地址和端口信息,不能留空;再加上去往HUB和另一个SPOKE的私网信息,PCB的配置如下:
[Interface]
PrivateKey = uMTJJ6LZKwHGfdUUtQdGt5d/qCey5xRZi2MFG27HQ0E=
Address = 10.1.1.2/24
ListenPort = 10086
[Peer]
PublicKey = reMkRBC1wrBqPOrqDRYVNGx4RBLwM2iYCKYzvC7lbCg=
Endpoint = 11.1.1.2:10086
AllowedIPs = 10.1.1.0/24,110.1.1.0/24,130.1.1.0/24
PersistentKeepalive = 10
记得为PCB创建一个虚拟接口,并配置IP地址120.1.1.1/24。
ip link add loop1 type veth
ip address add dev loop1 120.1.1.1/24
ip link set up dev loop1
然后使能Wireguard接口配置。
wg-quick up /root/wg0.conf
同理,我们为PCC创建一个虚拟接口,并配置IP地址130.1.1.1/24。
ip link add loop1 type veth
ip address add dev loop1 130.1.1.1/24
ip link set up dev loop1
再配置PCC,同样是明确指定HUB的IP地址和端口信息,再加上去往HUB和PCB的私网信息,PCC的配置如下:
[Interface]
PrivateKey = uJyPyJ5/WtiPi8S3dSHBzHT4ObPq9e7aZY0WnbLis0Q=
Address = 10.1.1.3/24
ListenPort = 10086
[Peer]
PublicKey = reMkRBC1wrBqPOrqDRYVNGx4RBLwM2iYCKYzvC7lbCg=
Endpoint = 11.1.1.2:10086
AllowedIPs = 10.1.1.0/24,110.1.1.0/24,120.1.1.0/24
PersistentKeepalive = 10
然后使能Wireguard接口配置。
wg-quick up /root/wg0.conf
到这里,我们可以看到隧道基本上都连接成功了,我们来看一下HUB设备的状态。
可以看到,两个SPOKE设备都和HUB设备成功连接,再测试一下联通性。
访问正常,为了使SPOKE设备之间能够互访,我们必须要开启HUB设备的转发功能。
echo 1 > /proc/sys/net/ipv4/ip_forward
然后我们再从SPOKE设备PCB上看一下联通性。
可以看到,一切访问正常,HUB-SPOKE组网成功。
最后简单总结一下:从配置过程来看,配置一点都不复杂,最主要是保证公钥和私钥完全配置正确,就这么几行配置,我反反复复查了4天;再就是开启HUB设备的本地转发功能,不然无法经过HUB设备进行互通。
长按二维码
关注我们吧