如何将特定网络路由到虚拟机?

如何将特定网络路由到虚拟机?

我有以下配置:

  • Linux 机器的 IP 为 10.0.0.99
  • 通过 IP 为 192.168.0.1 的虚拟接口进行桥接
  • 通过网桥将 linux 放置在 lxc 容器中,ip 为 192.168.0.2
  • 容器上的 vpn ip 为 172.xx.x.xxx
  • vpn 后面的机器位于网络 10.232.10.0/24 中

我想从 Linux 机器访问来自 VPN 的 IP

我为什么尝试:ip route add 192.168.0.0/24 via 192.168.0.1 dev bridge_lxc

ping/ssh 可连接到 192.168.0.2

尝试通过 192.168.0.2 路由 vpn 网络:ip route add 10.232.10.0/24 via 192.168.0.2 dev bridge_lxc RTNETLINK 答案:网络无法访问

我如何通过容器内的虚拟机路由所有 vpn 网络?

答案1

错误消息表明您尝试添加此路由的主机不知道 192.168.0.2 在哪里。您需要先提供该路由。

一般来说:如果您希望从 10.xxx 网络访问 172.xxx 网络范围,则需要以某种方式让 10.xxx 网络中的计算机知道您的主机是 172.xxx 范围的路由器。

您还需要在主机对于该范围:

ip route add 172.x.x.x/xx via 192.168.0.2

如果你有一个水平分割VPN,您还需要向您的 VPN 客户端通告 10.xxx 网络范围(可能还有 192.xxx 范围)。

为了调试网络路由,我建议您熟悉该ip route get命令。它会显示目标地址通过哪个接口看到。请记住,路由需要双向工作。返回的数据包必须找到返回的路径。

相关内容