我需要一些关于这个问题的帮助。基本上,我有一台安装了 openvpn 的服务器。它运行良好,我可以 ping 我所连接的服务器,也可以 ping 回去。我想做的是能够访问在其自己的专用网络上连接到它的其他服务器。
目前我的 VPN 设置为 10.8.0.0/24,服务器设置为 10.0.0.0/24。连接的计算机可以 ping 通 10.8.0.1(VPN 服务器)和 10.0.0.1(安装 VPN 的服务器的私有 IP),但无法 ping 通 10.0.0.2。当我执行 tcpdump 时,我可以看到请求到达了 10.0.0.2 服务器,但它不知道之后如何处理该请求,因为它找不到原始的 10.8.0.10(作为客户端连接到 VPN 的计算机),因为它是另一台服务器上 VPN 上的 IP。有没有办法告诉 10.0.0.0/24 将流量发送到哪里?如果可以,怎么做。我尝试了很多不同的方法,从修改 iptables 和路由,但似乎都没有用。
这是从我的 10.8.0.10 客户端发送的来自 10.0.0.2 服务器的 tcp 请求:
IP 10.8.0.10 > 10.0.0.2: ICMP echo request, id 1
IP 10.0.0.2 > 10.8.0.10: ICMP echo reply, id 1
IP 10.8.0.10 > 10.0.0.2: ICMP net 10.8.0.10 unreachable - unknown
备注:
是的,所有服务器都启用了 IP 转发。
10.0.0.0/24 服务器没有 DHCP 服务器,因为它们都是静态的
需要帮助请叫我。
编辑
因此,正如有人建议我应该提供更多信息一样,我也会这样做。
所有涉及的服务器都运行的是 Server Ubuntu 12.04 或 14.04,并且所有软件都是最新的。10.0.0.2 服务器将以下设置为我认为可以正常工作的路由之一,但当我尝试 ping 10.8.0.1 时,我收到错误。这些服务器由我的主机在网络中配置,因此我无法完全控制它。
10.0.0.2 的路由表,其中服务器 IP 被删除
Destination Gateway Genmask Flags Metric Ref Use Iface
default -.-.-.- 0.0.0.0 UG 100 0 0 eth0
10.0.0.0 * 255.255.0.0 U 0 0 0 tun1
10.8.0.0 10.0.0.1 255.255.255.0 UG 0 0 0 tun1
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
From 10.8.0.1 icmp_seq=1 Destination Net Unknown
From 10.8.0.1 icmp_seq=2 Destination Net Unknown
10.0.0.1 的路由表,其中我的服务器 IP 被删除
Destination Gateway Genmask Flags Metric Ref Use Iface
default -.-.-.- 0.0.0.0 UG 0 0 0 eth0
10.0.0.0 * 255.255.0.0 U 0 0 0 tun1
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.2 * 255.255.255.255 UH 0 0 0 tun0
答案1
When I do a tcpdump I can see that the request is getting to the 10.0.0.2 server, but it does not know what to do with the request after that as it can not find the original 10.8.0.10
您在 10.0.0.0/24 网关上设置了一条路由。例如,如果您的路由器是 10.0.0.0/24 上的网关。您通过 VPN 主机 IP(10.0.0.0/24 范围)设置到 10.8.0.0/24 的静态路由。当您的服务器 10.0.0.2 看到数据包传入但不知道将其发送到哪里时,它会查询网关。然后网关需要知道将数据包发回的路由。
答案2
好吧,经过很长一段时间,我终于弄清楚了问题所在。结果发现,我的 vpn 配置始终都是正确的。lbanz 关于网关不知道去哪里的说法部分正确。发生的事情是 10.8.0.0/24 请求进入辅助网络并丢失,因为它是一个 10.0.0.0/24 网络,它不知道如何处理它。
我所要做的就是联系我的主机,让他们将 10.8.0.0/24 的 IP 范围分配给我的 10.0.0.1 服务器,现在一切都运行正常。感谢大家的意见,真的帮助我缩小了问题范围。
答案3
- 您不需要在所有服务器上启用 IP 转发。只有在执行多个网络之间路由的服务器(即您的 OpenVPN 服务器)上才需要启用。
- 似乎运行在 10.0.0.2 上的机器不知道如何将源自 10.8.0.0/24 的流量路由回去。您需要设置正确的路由:要么直接在此主机上设置,要么在默认网关上设置(如果存在的话),如果涉及更多机器,则可能更聪明。[此步骤告诉您的设备如何到达 10.8.0.0/24。] 如何执行此操作取决于您的操作系统和所涉及的设备。(也许分享更多细节会更好。)