如何通过以太网和WIFI/VPN连接3个网络?

如何通过以太网和WIFI/VPN连接3个网络?

我的机器人上有两台计算机,它们通过以太网直接连接。被称为“麦格尼”和“杰森”。 Magni 已连接至无线网络。在此无线网络上,有第三台计算机“PC”通过 Wireguard VPN 连接到 Magni。我的机器人上有两台计算机,它们通过以太网直接连接。被称为“麦格尼”和“杰森”。 Magni 已连接至无线网络。在此无线网络上,有第三台计算机“PC”通过 Wireguard VPN 连接到 Magni。

网络设置图片

目标是能够从系统的所有组件相互发送和接收消息。 Magni - Jetson 和 Magni - PC 对可以互相 ping、发现和发布。我遇到的问题是我的电脑和 Jetson 之间的通信。我尝试做一些IP转发。首先,我在 jetson 上添加了一条从静态 192.168.131.1 IP 到 Magni 的 VPN 10.0.0.161 的路由。完成此操作后,我可以从 jetson ping 通 Magni 的 VPN 地址 10.0.0.161。

sudo route add -net 10.0.0.0  netmask 255.255.255.0 gw 192.168.131.1

然后在我的电脑上,我尝试添加类似的路线......

sudo route add -net 192.168.131.0  netmask 255.255.255.0 gw 10.0.0.161

然后我尝试从我的电脑与 jetson 进行通信(通过 ping)。但是,我无法与 Jetson 成功通信。当我尝试从 PC 上 ping Jetson 时,我当前的设置出现此错误。

PING 192.168.131.2 (10.0.0.66) 56(84) bytes of data.
From 10.0.0.66 icmp_seq=1 Destination Host Unreachable
ping: sendmsg: Required key not available

我也尝试过其他路线,但没有成功。我想知道是否有人可以为我指明如何解决此问题的正确方向,因为我在网络方面经验不足。

PC 的内核 IP 路由表

Destination   Gateway     Genmask       Flags Metric Ref    Use Iface

0.0.0.0           10.147.x.x      0.0.0.0         UG   600    0        0  wlp2s0

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 wg0

10.147.x.x      0.0.0.0         255.255.0.0     U     600    0        0 wlp2s0

169.xxx.x.x     0.0.0.0         255.255.0.0     U     1000   0        0 wlp2s0

192.168.131.0   10.0.0.161      255.255.255.0   UG    0      0        0 wg0

Magni 的内核 IP 路由表

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0         10.147.x.x      0.0.0.0         UG    600    0        0 wlan0

10.0.0.0        0.0.0.0         255.255.255.0   U     0      0        0 wg0

10.19.xxx.xxx   10.147.x.x      255.255.255.255 UGH   600    0        0 wlan0

10.147.x.x      0.0.0.0         255.255.0.0     U     600    0        0 wlan0

192.168.131.0   0.0.0.0         255.255.255.0   U     0      0        0 enxb827eb452fa3

Jetson的内核IP路由表

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

10.0.0.0           192.168.131.1   255.255.255.0   UG    0      0        0 eth0

169.xxx.x.x       0.0.0.0         255.255.0.0     U     1000   0        0 eth0

192.168.131.0   0.0.0.0         255.255.255.0   U     100    0        0 eth0

答案1

ping: sendmsg: Required key not available意味着它是 WireGuard密钥路由问题。在 WireGuard 中,密钥与路由关联,反之亦然。这是除标准布线之外的内部 WireGuard 布线:

WireGuard 的核心是一个称为加密密钥路由的概念,它的工作原理是将公钥与隧道内允许的隧道 IP 地址列表相关联。

这意味着您没有添加所需的AllowedIPs( wg-quick) / allowed-ips(直接wg命令)参数。

当 WG 接口即将发送数据包时,它会将目标 IP 与公钥进行匹配,AllowedIPs以便使用此密钥对其进行加密。当 WG 接口收到数据包时,它会使用对等方的公钥来验证源 IP AllowedIPs:此值双向使用。

要解决此问题,请在 PC 上的 wg-quick 配置中的相关 Magni Peer 公钥条目下添加配置并重新启动隧道:

AllowedIPs = 192.168.131.0/24

实际上对于这个具体情况AllowedIPs = 192.168.131.1,192.168.131.2就足够了。

如果您已经可以从 PC ping Magni (192.168.131.1),则应该足够了,假设 Magni 已设置为路由器。


另外,在另一个 WireGuard 对等点 Magni 上也可以执行相同的操作。在 PC 的对等公钥条目下执行等效操作以匹配 PC:

AllowedIPs = 10.0.0.0/24

同样,AllowedIPs = 10.0.0.66仅连接到此处的 PC 就足够了。

可以直接使用wg命令来完成,而不是立即(而不是保存)效果(例如,ukFU7nbX5NoEJTLb5rizqcfB093fv8VfuLFA57q3oG4=这里使用随机生成的 Peer 公钥值,请将其更改为 PC 的公钥):

wg set wg0 peer ukFU7nbX5NoEJTLb5rizqcfB093fv8VfuLFA57q3oG4= allowed-ips 10.0.0.0/24

相关内容