不确定它是在路由器到路由器隧道的后面还是在 Centos 7 中的不同。但是我在远程位置有 30 台机器我正在使用从本地办公室到远程办公室的站点到站点隧道。现在所有 Cent OS 6.2 系统都很好,您可以通过隧道 ping 它们,通过隧道连接到它们没有任何问题。我后来安装了一台 CentOS 7 机器,无法通过隧道连接到它,并且所有其他 ping 请求都超时。
没有 ip_forward=1:
Pinging 172.16.0.8 with 32 bytes of data:
Reply from 172.16.0.8: bytes=32 time=93ms TTL=62
Request timed out.
Reply from 172.16.0.8: bytes=32 time=94ms TTL=62
Request timed out.
Reply from 172.16.0.8: bytes=32 time=97ms TTL=62
Request timed out.
ip_forward=1
Pinging 172.16.0.8 with 32 bytes of data:
Reply from 172.16.0.8: bytes=32 time=92ms TTL=62
Reply from 172.16.0.8: bytes=32 time=92ms TTL=62
Reply from 172.16.0.8: bytes=32 time=93ms TTL=62
Reply from 172.16.0.8: bytes=32 time=92ms TTL=62
Ping statistics for 172.16.0.8:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 92ms, Maximum = 93ms, Average = 92ms
如果没有通过 sysctl.conf 打开 ip 转发,我无法 ping 或 ssh 到通过 vpn 隧道连接的远程办公室中的 centos 7。我可以连接到任何 6.2 机器并很好地 ping 它们,所以我知道隧道不是问题,它只有 CentOS 版本 7 才有问题,我什至可以 RDP 到 Windows 2008 和 2012 服务器以及 rdp 到 Windows 10 机器。正如我所说,这似乎只适用于 CentOS 7。我可以保留 ip 转发,我想这没什么大不了的
我对 Cent OS7 做错了吗?他们在 CentOS7 中改变了什么吗?或者这只是正常行为。
现在,当我从 CentOS7 ping 到本地办公室的机器时,我确实收到了这些奇怪的回复:
PING 172.16.1.100 (172.16.1.100) 56(84) 个字节的数据。从 172.16.0.254:icmp_seq=1 重定向主机(新下一跳:172.16.1.100)
不确定这个 icmp 重定向意味着 172.16.0.254 是它连接到的远程路由器我得到 icp 重定向无论 ip forward 是打开还是关闭。
两个边缘路由器都运行 PFSense IPSec 站点到站点隧道。
好的,我在 pfsense 论坛上发现了这个问题,所以如果其他人有这个奇怪的问题,它是 PFSense 的 IPSec 路由中的一个错误。PFsense 将隧道的另一端视为同一 lan 网段上的第二个路由器,所以它会发送一个 icmp 重定向,认为另一个路由器是更好的路由,而这粗略失败,因为另一个路由器只能通过隧道,它不能直接访问。它很容易通过进入 PFsense 管理站点进入 Advanced 然后 System tuneables 并将 icmp 重定向设置为 0 来修复。此时,远程站点的机器将数据包发送到其路由器,然后通过隧道将数据包发送到远程路由器然后将其发送到它必须去的地方。为什么在 CentOS 7 上启用 ip_forward 可以绕过这个我仍然不知道的错误。
但这就是为什么无法访问机器的原因,它试图使用 icmp 重定向将数据包发送到它无法到达的目的地。