我有一个 Ubuntu Server 盒 (A),其中有一个 IPSec 隧道连接到另一个数据中心 (AWS,通过 VPC VPN)。隧道正常,我可以 ping 隧道的另一端。
当我尝试与隧道另一端的任何主机通信时,出现了问题。
假设我有以下配置:
方框 A:172.31.0.5
方框 B:172.30.0.5
如果我执行以下操作:
A> ping 172.30.0.5
ICMP 数据包到达目标服务器(B),但其源地址不是源服务器(A)的 IP。
相反,它们以 169.254.248.xxx 作为源地址,这是 AWS VPC 内 IPSec 隧道的私有地址。
由于 169.254.248.xxx 在盒子 A 之外不存在,因此盒子 B 无法发送回复,数据包丢失。
我确信这是服务器 A 上的路由设置的问题,我该如何调试以找到解决方案?
答案1
ping
您可以指定用于发送数据包的接口。
在 Windows 上:
ping -S 172.31.0.5 172.30.0.5
在 Linux 上:
ping -I 172.31.0.5 172.30.0.5