我有以下配置:
- 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
命令。它会显示目标地址通过哪个接口看到。请记住,路由需要双向工作。返回的数据包必须找到返回的路径。