我确信我在这里遗漏了一些非常基本的东西,但我迷路了。
我们的设置非常简单:三台服务器,每台都有 2 个 NIC(每台有一张公共网卡和一张 LAN 卡,LAN 连接两台服务器,如下所示
158.xxx.xxx.xxx(wan1)<->10.14.18.11<--LAN-->10.14.18.12<->208.xxx.xxx.xxx(WAN2)<---IPSEC VPN--->207.xxx.xxx.xxx(WAN3)<->172.24.16.200
158.xxx.xxx.xxx 是 Ubuntu 14 网络服务器 208.xxx.xxx.xxx 是 Sophos UTM,正在创建到 207.xxx.xxx.xxx 的 IPsec VPN
VPN 在 sophos 和远端 172.24.16.200 之间完美地建立了通信流。即使从这个地址,它也能毫无问题地到达 Web 服务器。
问题是,我们无法从网络服务器到达远端 172.24.16.200
我们已经排除了 VPN 或 sophos 的问题,所有问题都指向了在前往远端 Web 服务器时缺少路由
我们尝试添加这样的静态路由:
ip 路由从 10.14.18.0/24 dev eth1 src 10.14.18.11 表 rt2 添加 ip 路由默认通过 10.14.18.1 dev eth1 表 rt2 添加
ip 规则从 10.14.18.11/32 表 rt2 添加 ip 规则添加到 10.14.18.11/32 表 rt2
但是我们得到了 RTNETLINK 答案:第二条命令中存在文件。
有什么想法吗?谢谢!Nathan
答案1
这可能是一个令人困惑的情况。既然我们知道通信涉及成功发送双向流量,那么为什么你可以从一端通信到另一端,而不能从另一端通信呢?但这是我花了几个小时帮助另一个人解决的问题。
这个问题的答案其实很简单。Sophos 单元正在对流量进行 NAT。当来自远端 172 VPN 的流量到达您的内部网络时,Sophos 单元会将源地址更改为自己的地址 (10.14.18.12) 以进行 NAT。Web 服务器接收来自 Sophos 的流量并回复 Sophos,然后 Sophos 对流量进行非 NAT 处理并将其发送回隧道的远端。一切正常。
但是,当 Web 服务器尝试启动与远程 VPN 隧道端点 (172) 的连接时,它没有到 172.xxx 的路由,并将流量发送出默认网关 (WAN)。
问题有两个方面。在大多数情况下,Sophos 单元不应该在两个私有网络之间对流量进行 NAT。并且 10.14 网络上的系统必须具有静态分配的到 (172.xxx) 网络的路由(或通过 DHCP 选项 121 或 249)。
此外,您给出的设置静态路由的示例看起来不正确。您使用之前未提及的 IP 地址 10.14.18.1 作为网关,并且未提及您要访问的远程网络。正确的路由命令应为:
ip route add 172.16.0.0/12 via 10.14.18.12
注意:此命令只是临时的。
因此,关闭 NATing 并在 Web 服务器上指定适当的静态路由。