IpSec/Racoon:数据包进入错误的隧道

IpSec/Racoon:数据包进入错误的隧道

我使用 Debian 和 Racoon 连接到 Cisco VPN 网关。我们在相同的端点之间建立了两条隧道。不知何故,数据包有时会进入错误的隧道。

这是来自远程 Cisco 系统的日志消息:

8 月 13 日 17:55:01 XXXXX %ASA-4-402116:IPSEC:从 MY_PUBLIC_IP_ADDRESS(用户 = MY_PUBLIC_IP_ADDRESS)到 REMOTE_PUBLIC_IP_ADDRESS 收到 ESP 数据包(SPI= 0x5CAAB58E,序列号= 0x6)。解封装的内部数据包与 SA 中协商的策略不匹配。数据包将其目的地指定为远程内部主机私有 IP_2,其源为 MY_INNER_HOST_PRIVATE_IP,其协议为 icmp。SA 将其本地代理指定为 远程内部主机私有 IP_1/255.255.255.255/ip/0 及其 remote_proxy 作为 MY_INNER_HOST_NETWORK/255.255.255.0/ip/0。

当我尝试从 MY_INNER_HOST_PRIVATE_IP ping REMOTE_INNER_HOST_PRIVATE_IP_2 时,出现了该消息。(我替换了 IP 地址。)

这是 setkey -D -P | grep REMOTE_INNER_HOST_PRIVATE_IP_1|2 的输出:

REMOTE_INNER_HOST_PRIVATE_IP_2 [任意] MY_INNER_HOST_NETWORK [任意] 255 REMOTE_INNER_HOST_PRIVATE_IP_2 [任意] MY_INNER_HOST_NETWORK [任意] 255 MY_INNER_HOST_NETWORK [任意] REMOTE_INNER_HOST_PRIVATE_IP_2 [任意] 255 REMOTE_INNER_HOST_PRIVATE_IP_1 [任意] MY_INNER_HOST_NETWORK [任意] 255 REMOTE_INNER_HOST_PRIVATE_IP_1 [任意] MY_INNER_HOST_NETWORK [任意] 255 MY_INNER_HOST_NETWORK [任意] REMOTE_INNER_HOST_PRIVATE_IP_1 [任意] MY_INNER_HOST_NETWORK [任意] 255

在我看来,这表明 /etc/ipsec-tools.conf 文件已成功读取。以下是此文件的相关部分:

spdadd MY_INNER_HOST_NETWORK/24 REMOTE_INNER_HOST_PRIVATE_IP_1/32 任何 -P 出 ipsec esp/tunnel/MY_PUBLIC_IP_ADDRESS-REMOTE_PUBLIC_IP_ADDRESS/require;

spdadd REMOTE_INNER_HOST_PRIVATE_IP_1/32 MY_INNER_HOST_NETWORK/24 任何 -P 在 ipsec esp/tunnel/REMOTE_PUBLIC_IP_ADDRESS-MY_PUBLIC_IP_ADDRESS/require 中;

spdadd MY_INNER_HOST_NETWORK/24 REMOTE_INNER_HOST_PRIVATE_IP_2/32 任何 -P 出 ipsec esp/tunnel/MY_PUBLIC_IP_ADDRESS-REMOTE_PUBLIC_IP_ADDRESS/require;

spdadd REMOTE_INNER_HOST_PRIVATE_IP_2/32 MY_INNER_HOST_NETWORK/24 任何 -P 在 ipsec esp/tunnel/REMOTE_PUBLIC_IP_ADDRESS-MY_PUBLIC_IP_ADDRESS/require 中;

最后,这是 /etc/racoon/racoon.conf 中的相关部分(/var/log/racoon.log 中没有可疑的日志行):

remote REMOTE_PUBLIC_IP_ADDRESS 
{
        exchange_mode main;
        proposal_check obey;
        my_identifier address MY_PUBLIC_IP_ADDRESS;
        lifetime time 86400 sec;

        proposal 
        {
                encryption_algorithm aes 256;
                hash_algorithm sha1;
                authentication_method pre_shared_key;
                dh_group 2;
                lifetime time 86400 sec;
        } 
}

sainfo address MY_INNER_HOST_NETWORK/24 any address REMOTE_INNER_HOST_PRIVATE_IP_1/32 any 
{
        pfs_group 2;
        lifetime time 3600 sec;
        encryption_algorithm aes 256;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate; 
}

sainfo address MY_INNER_HOST_NETWORK/24 any address REMOTE_INNER_HOST_PRIVATE_IP_2/32 any {
        pfs_group 2;
        lifetime time 3600 sec;
        encryption_algorithm aes 256;
        authentication_algorithm hmac_sha1;
        compression_algorithm deflate; 
}

是否存在标识符冲突?我该怎么做才能解决这种情况?非常感谢!

答案1

我了解到我需要使用

spdadd xxxx/32 yyyy/32 any -P out ipsec
esp/tunnel/aaaa-bbbb/unique;

注意:“unique”而不是“require”。

相关内容