不确定这是因为 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 转发是打开还是关闭。
两个边缘路由器都在运行 PFSense IPSec 站点到站点隧道。
答案1
好的,我在 pfsense 论坛上发现了这个问题,所以如果其他人也遇到这个奇怪的问题,那么这就是 PFSense 的 IPSec 路由中的一个错误。PFsense 将隧道的另一端视为同一 LAN 段上的第二个路由器,因此它会发送一个 icmp 重定向,认为另一个路由器是更好的路由,而这当然会失败,因为另一个路由器只能通过隧道访问,而不能直接访问。这个问题很容易解决,只需进入 PFsense 管理站点,转到高级,然后系统可调参数,将 icmp 重定向设置为 0。此时,远程站点的机器将数据包发送到其路由器,然后路由器通过隧道将数据包发送到远程路由器,然后远程路由器将其发送到要去的地方。我仍然不知道为什么在 CentOS 7 上启用 ip_forward 可以解决这个错误。
但这就是无法访问机器的原因,它试图使用 icmp 重定向将数据包发送到无法到达的目的地。