Ipsec

IpSec/Racoon:數據包進入錯誤的隧道

  • February 6, 2017

我使用 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 中的協商策略不匹配。該數據包將其目的地指定為REMOTE_INNER_HOST_PRIVATE_IP_2,將其源指定為 MY_INNER_HOST_PRIVATE_IP ,並將其協議指定為 icmp。SA 將其本地代理指定為 REMOTE_INNER_HOST_PRIVATE_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

$$ any $$MY_INNER_HOST_NETWORK$$ any $$255 REMOTE_INNER_HOST_PRIVATE_IP_2$$ any $$MY_INNER_HOST_NETWORK$$ any $$第255章$$ any $$REMOTE_INNER_HOST_PRIVATE_IP_2$$ any $$255 REMOTE_INNER_HOST_PRIVATE_IP_1$$ any $$MY_INNER_HOST_NETWORK$$ any $$255 REMOTE_INNER_HOST_PRIVATE_IP_1$$ any $$MY_INNER_HOST_NETWORK$$ any $$第255章$$ any $$REMOTE_INNER_HOST_PRIVATE_IP_1$$ any $$255

在我看來,這表明 /etc/ipsec-tools.conf 文件已成功讀入。這是此文件的相關部分:

spdadd MY_INNER_HOST_NETWORK/24 REMOTE_INNER_HOST_PRIVATE_IP_1/32 any -P out 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 any -P in 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 any -P out 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 any -P in 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; 
}

是否存在標識符衝突?我能做些什麼來解決這種情況?非常感謝!

我知道我需要使用

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

注意:“唯一”而不是“要求”。

引用自:https://serverfault.com/questions/620218