如何在两个接口之间路由?

如何在两个接口之间路由?

我用的是wireguard(VPN)连接到服务器。该服务器有两个接口(我感兴趣的是 - 所有其他接口都是用于连接到容器的虚拟以太网链路,这些接口没有问题):

root@srv ~# ip a
(...)
6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 12:5b:d3:1d:51:cf brd ff:ff:ff:ff:ff:ff
    inet 192.168.10.2/24 brd 192.168.10.255 scope global dynamic br0
       valid_lft 60366sec preferred_lft 60366sec
(...)
25: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none
    inet 192.168.20.1/32 scope global wg0
       valid_lft forever preferred_lft forever

路由是

root@srv ~# ip r
default via 192.168.10.1 dev br0 proto dhcp metric 1024
192.168.10.0/24 dev br0 proto kernel scope link src 192.168.10.2
192.168.20.0/24 via 192.168.20.1 dev wg0 proto static
192.168.20.0/24 via 192.168.10.2 dev br0 proto dhcp metric 1024

通过 VPN 连接时,以下场景好的

  • ssh到 wireguard IP192.168.20.1
  • ssh到任何其他 wireguard 网络设备192.168.20.0/24
  • ssh到任何其他设备192.168.10.0/24(服务器本身除外,见下文)

一个是击倒

  • sshto 192.168.10.2-br0安装 wireguard 的服务器上的接口

sshd正在监听*.22,我可以ssh 192.168.10.2从其他地方(访问桥上的 IP)(因此是sshd可以运行的)。

我认为,这留给我接口之间的路由。当发送到192.168.10.2(桥接接口)的数据包通过 wireguard 时,将在路由表中查找其下一跳,并与以下行匹配

192.168.10.0/24 dev br0 proto kernel scope link src 192.168.10.2

这或许不太好。

另一方面,我本来希望内核能够处理这个数据包,并理解它是用于本地接口的。或者我可能错了。

我的问题是:应该如何设置网络以便通过 wireguard 接口的数据包可以到达本地网桥?

相关内容