Как правильно построить туннель GRE+IPSEC от Linux к Cisco?

Здравствуйте, Уважаемые пользователи!
Уже достаточно долгое время, не могу правильно построить шифрование между сервером Linux (Debian 7) и Cisco, с использованием GRE туннеля и IPSEC.
Пробовал просто поднять GRE туннель, всё работает отлично, как часы. Но как только на стороне Cisco включают шифрование, то тут же начинаются танцы с бубном и шаманство.
Для подключения используется сервер (Debian 7) racoon+ipsec-tools
Привожу конфиги:
racoon.conf
log debug2;
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
padding
{
    maximum_length 20;    # maximum padding length.
    randomize off;        # enable randomize length.
    strict_check off;    # enable strict check.
    exclusive_tail off;    # extract last one octet.
}
listen
{
    #isakmp ::1 [7000];
    isakmp Белый IP основного сервера [500];
    #admin [7002];        # administrative port for racoonctl.
    #strict_address;     # requires that all addresses must be bound.
}

remote Белый IP удаленного Cisco
{
    exchange_mode main, aggressive;
    my_identifier address Белый IP основного сервера;
    lifetime time 3600 sec;
    generate_policy on;
    snat_traversal on;
    proposal {
        encryption_algorithm aes 128;
        hash_algorithm sha1;
        authentication_method pre_shared_key;
        dh_group 2;
    }
}
sainfo address Белый IP удаленного Cisco any address Белый IP основного сервера any 
{
      pfs_group 2;
      lifetime time 3600 sec;
      encryption_algorithm aes 128;
      authentication_algorithm hmac_sha1;
      compression_algorithm deflate;
  }
}

ipsec-tools.conf
flush;
spdflush;
spdadd 10.0.66.33 10.0.66.34 any -P out ipsec esp/tunnel/Белый IP основного сервера- Белый IP удаленного Cisco/use;
spdadd 10.0.66.34 10.0.66.33 any -P in ipsec esp/tunnel/ Белый IP удаленного Cisco-Белый IP основного сервера/use;

Внутри туннеля мой сервер обозначен IP: 10.0.66.33, а Cisco: 10.0.66.34
Проблема начинается на 2-й фазе согласования, то есть цисководы видят, что туннель поднялся, однако не согласована вторая фаза, вот ее лог:
217afaec f6baddd8 5b97ea43 20e1059f 0e8ba4fb
2016-03-08 11:16:24: DEBUG: getsainfo params: loc='IP server' rmt='IP cisco' peer='IP cisco' client='IP cisco' id=0
2016-03-08 11:16:24: DEBUG: evaluating sainfo: loc='IP cisco', rmt='IP server', peer='ANY', id=0
2016-03-08 11:16:24: DEBUG: check and compare ids : proto_id mismatch 0 != 47
2016-03-08 11:16:24: ERROR: failed to get sainfo.
2016-03-08 11:16:24: ERROR: failed to get sainfo.
2016-03-08 11:16:24: [IP cisco] ERROR: failed to pre-process ph2 packet (side: 1, status: 1).
2016-03-08 11:16:24: DEBUG: IV freed

Вывод setkey -DP
(per-socket policy)
        out(socket) none
        created: Mar  8 11:17:45 2016  lastused: Mar  8 11:18:55 2016
        lifetime: 0(s) validtime: 0(s)
        spid=11532 seq=1 pid=21344
        refcnt=1
(per-socket policy)
        in(socket) none
        created: Mar  8 11:17:45 2016  lastused: Mar  8 11:18:55 2016
        lifetime: 0(s) validtime: 0(s)
        spid=11523 seq=2 pid=21344
        refcnt=1
10.0.66.34[any] 10.0.66.33[any] 255
        fwd prio def ipsec
        esp/tunnel/IP cisco-IP-server/use
        created: Mar  8 11:15:01 2016  lastused:
        lifetime: 0(s) validtime: 0(s)
        spid=11498 seq=3 pid=21344
        refcnt=1
10.0.66.34[any] 10.0.66.33[any] 255
        in prio def ipsec
        esp/tunnel/IP cisco-IP server/use
        created: Mar  8 11:15:01 2016  lastused:
        lifetime: 0(s) validtime: 0(s)
        spid=11488 seq=4 pid=21344
        refcnt=1
10.0.66.33[any] 10.0.66.34[any] 255
        out prio def ipsec
        esp/tunnel/IP server-IP cisco/use
        created: Mar  8 11:15:01 2016  lastused: Mar  8 11:18:57 2016
        lifetime: 0(s) validtime: 0(s)
        spid=11481 seq=0 pid=21344
        refcnt=4

setkey -D
No SAD entries.
Подскажите, пожалуйста, в какую сторону копать? На стороне Cisco всё настроено корректно, так как проверяло 3 разных специалиста. Уже кучу сайтов и манов перекурил, но всё никак не могу понять.
Заранее благодарю!
P.S GRE туннель поднимаю вот таким скриптом:
#!/bin/sh
#   insmod ip_gre
    tnl=tnl0
    remote=IP Cisco
    local=IP server
    ip=10.0.66.33
    range=10.0.66.32/30
#   ip tunnel del $tnl
    ip tunnel add $tnl mode gre local $local remote $remote ttl 255
    ip addr add $ip dev $tnl
    ip link set $tnl up
    ip route add $range dev $tnl
  • Вопрос задан
  • 1858 просмотров
Решения вопроса 1
@Art1000 Автор вопроса
Данный вопрос решен! Если кому-то понадобится ответ, то на стороне Cisco отсутствовала запись о pfs_group 2.
После ее добавления, всё благополучно завелось.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы