我有两个网络,我想通过 openvpn 隧道(每个 tun 设备)连接。
服务器端网络为10.10.7.0/24,VPN
网关运行在IP为10.10.7.12的VM上,
VPN网关端的VPN隧道IP为10.10.9.1(tun0)
路由器是IP为有线的路由器10.10.7.1。
路由器有一个路由条目 10.10.10.0/24 到 10.10.7.12
路由器进行从 1194 到 10.10.7.12:1194 的端口转发
客户端网络为10.10.10.0/24。
客户端路由器是一个 debian raspberry,IP 为 10.10.10.1
它使用池中的 IP (192.168.0.xx) 连接到外部 wlan (wlan0)
客户端(尚未)通过以太网 (eth0)
连接VPN 隧道的 IP 为 10.10.9.2
我建立了 VPN 连接,现在想在网络之间路由。
在客户端我通过“route add -net 10.10.7.0/24 tun0”添加了一条路由
在服务器端我通过“route add -net 10.10.10.0/24 tun0”添加了一条路由
服务器端的防火墙都是设置为接受。
我没有配置伪装或 snat,并且我不想这样做,因为我运行的服务在 TCP 数据包中的发件人 IP 与其在有效负载中获取的发件人 IP 不同时会感到困惑。
其他互联网连接不应通过隧道进行路由。
现在我可以从客户端网关 ping 到服务器并进入其他网络。 http 也可以工作。但是,我无法从服务器 ping 到客户端网关,也无法访问任何服务(例如[电子邮件受保护])。我缺少什么?
感谢您的帮助。
答案1
“route add -net 10.10.10.0/24 tun0”将流量发送到 openvpn,但您尚未告诉 openvpn 服务器将其发送到哪个客户端。
为此,我们需要使用 iroute 指令
iroute 10.10.10.0 255.255.255.0
这应该放在服务器上的 /etc/openvpn/ccd/<cn> 中(将 <cn> 替换为客户端证书上的通用名称)