IPsec 连接已建立,但客户端无法访问主机,直到主机 ping 客户端

IPsec 连接已建立,但客户端无法访问主机,直到主机 ping 客户端

我正在尝试在位于同一 VPC 但不同子网中的两台 Linux 机器之间建立 IPsec 连接。在两台机器上我都有以下配置:

主机:

conn hostConn
    left=%any
    right=172.31.48.11
    authby=secret
    auto=start
    leftid=@client
    rightid=@host
    type=transport
    ikev2=insist
    keyexchange=ike
    ike=aes256-sha2_384;dh20
    esp=aes_gcm_c256

客户端配置:

conn clientConn
    left=%defaultroute
    right=172.31.48.11
    authby=secret
    auto=start
    leftid=@client
    rightid=@host
    type=transport
    ikev2=insist
    keyexchange=ike
    ike=aes256-sha2_384;dh20
    esp=aes_gcm_c256

当我从客户端机器 ping 时,它失败了,但是一旦我从主机 ping 到客户端,则双方 ping 都会成功。

两台机器上的 IPsec 日志显示连接已建立,但需要先从主机 ping 到客户端,才能通过 IPsec 连接开始它们之间的通信。

我是不是漏掉了什么?关于如何调试这个问题有什么建议吗?

答案1

您的配置中我没有看到两件事。

  • 在 VPN 设备上为要访问的网络添加默认路由。如果没有主机特定子网的路由,VPN 设备将通过默认网关转发所有流量,而默认网关会流向 Internet。创建 VPN 连接也不会在路由表中生成路由。

  • 寻找允许广播流量通过 VPN 的选项。您的客户端在收到第一条消息之前不知道主机在哪里。广播流量可以解决此问题,但在速度慢或费用昂贵的连接上转发广播流量是不好的,这就是为什么这是一个选项。

我已经很久没有遇到过这个与 IPsec 相关的问题了,但这两个问题却是我最关心的问题。

相关内容