使用 iptables 在子网之间路由流量

使用 iptables 在子网之间路由流量

我有一台 KVM 虚拟机,它充当其他虚拟(最终是物理)机器网络的 VPN 网关。我已为虚拟机管理程序设置了分接头,并为每台机器设置了连接它们的桥,以便它们都共享同一子网并可以相互通信。现在,我需要 VPN 网关将数据包从其分接头接口转发到网络的其余部分。为了举例说明,假设 VPN 子网为192.168.15.0/24,虚拟机子网为192.168.10.0/24。VPN 网关位于192.168.15.1,示例远程计算机的地址为192.168.15.5。我认为在远程计算机上设置静态路由ip route add 192.168.10.0/24 via 192.168.15.1 dev <tap device>会将数据包重定向到 VPN 网关,然后iptables -A FORWARD -s 192.168.15.0/24 -d 192.168.10.0/24 -j ACCEPT在 VPN 网关上设置 iptables 规则(只要启用 )即可允许数据包到达目的地ip_forward。我可以显示数据包从远程计算机到达网关,但从ping 192.168.10.5远程计算机返回:From 192.168.10.5 icmp_seq=1 Destination Net Unknown.

关于如何解决这个问题您有什么想法吗?

编辑1:远程计算机具有通过 VPN 到网关的适当路由。

答案1

我明白了!问题出在 VPN 路由上。VPN 未设置为交换机模式,因此无法路由需要通过网关转发的数据包。我使用 tinc vpn,因此在网关和客户端上添加一个即可解决Mode = switch问题tinc.conf

相关内容