IPSEC туннель — почему ходит только ICMP?

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Zarom
рядовой
Сообщения: 23
Зарегистрирован: 2013-11-17 19:41:37

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение Zarom » 2016-06-01 10:52:50

Добрый день!

Помогите, пожалуйста, разобраться с проблемой.

Есть FreeBSD и Mikrotik с белыми IP 1.1.1.1 и 2.2.2.2 соответственно и с локальными подсетями 192.168.1.0/24 и 192.168.2.0/24. Фаерволл для тестирования пропускает всё.
Я настроил между ними GRE-туннель:
FreeBSD

Код: Выделить всё

ifconfig_gre0="10.100.200.1 10.100.200.2 netmask 255.255.255.252 tunnel 1.1.1.1 2.2.2.2
route_gre="192.168.1.0/24 10.100.200.2"
Mikrotik

Код: Выделить всё

/interface gre print 
 0  R name="gre" mtu=1400 actual-mtu=1400 local-address=2.2.2.2 
      remote-address=1.1.1.1 dscp=inherit clamp-tcp-mss=yes 
      dont-fragment=no allow-fast-path=yes

/ip address print 
 #   ADDRESS            NETWORK         INTERFACE                                                                 
 2   10.100.200.2/30    10.100.200.0    gre

/ip route print 
 #      DST-ADDRESS        PREF-SRC        GATEWAY            DISTANCE
 1 A S  192.168.1.0/24                      10.100.200.1              1
 2 ADC  10.100.200.0/30    10.100.200.2    gre                0

В результате, туннель поднимается, пинги ходят между подсетями, ресурсы(SMB) доступны из любой подсети.

Далее, приступаю к конфигурированию IPSEC (ESP).
На FreeBSD получаю следующий spd.conf:

Код: Выделить всё

spdadd 1.1.1.1/32 2.2.2.2/32 gre -P out ipsec esp/transport/1.1.1.1-2.2.2.2/require;
spdadd 2.2.2.2/32 1.1.1.1/32 gre -P in ipsec esp/transport/2.2.2.2-1.1.1.1/require;

raccoon.conf:

Код: Выделить всё

path pre_shared_key "./psk.txt";
#log debug;
path certificate "./racoon";

padding
{
        maximum_length 20;
        randomize off;
        strict_check off;
        exclusive_tail off;
}

listen
{
        isakmp 1.1.1.1 [500];
        isakmp_natt 1.1.1.1 [4500];
}


remote 2.2.2.2
{
        exchange_mode main,aggressive;
        my_identifier address 1.1.1.1;
        peers_identifier address 2.2.2.2;
        proposal_check claim;
        ike_frag on;
        generate_policy off;

        proposal
        {
                authentication_method pre_shared_key;
                encryption_algorithm aes;
                hash_algorithm sha1;
                dh_group 5;
                lifetime time 86400 secs;
        }
}

sainfo address 1.1.1.1/32 47 address 2.2.2.2/32 47
{
        pfs_group 5;
        encryption_algorithm aes;
        authentication_algorithm hmac_sha1;
        lifetime time 28800 secs;
        compression_algorithm deflate;
}

И на Микроте:

Код: Выделить всё

/ip ipsec proposal print

 1    name="gre" auth-algorithms=sha1 enc-algorithms=aes-128-cbc lifetime=8h 
      pfs-group=modp1536

/ip ipsec peer print 
 0    address=1.1.1.1/32 local-address=:: passive=no port=500 
      auth-method=pre-shared-key 
      secret="123" 
      generate-policy=no policy-template-group=default exchange-mode=main 
      send-initial-contact=yes nat-traversal=no proposal-check=obey 
      hash-algorithm=sha1 enc-algorithm=aes-128 dh-group=modp1536 lifetime=1d 
      lifebytes=0 dpd-interval=disable-dpd dpd-maximum-failures=5 

/ip ipsec policy print 
 1  XI  src-address=2.2.2.2/32 src-port=any dst-address=1.1.1.1/32 
       dst-port=any protocol=gre action=encrypt level=require 
       ipsec-protocols=esp tunnel=no sa-src-address=2.2.2.2
       sa-dst-address=1.1.1.1 proposal=gre priority=0

Туннель поднимается. Пинги между подсетями ходят в обе стороны, но ресурсы не доступны.

Пакеты приходят из подсети Микротика, однако ответный пакет из подсети FreeBSD приходит на локальный интерфейс шлюза, но в gre-туннеле уже не наблюдается. На интерфейсе enc0 так же отсутствует.
При установлении соединения со стороны FreeBSD, трафик идёт в обе стороны.

Код: Выделить всё

# setkey -DP
2.2.2.2[any] 1.1.1.1[any] gre
        in ipsec
        esp/transport/2.2.2.2-1.1.1.1/require
        spid=88 seq=1 pid=51446
        refcnt=1
1.1.1.1[any] 2.2.2.2[any] gre
        out ipsec
        esp/transport/1.1.1.1-2.2.2.2/require
        spid=87 seq=0 pid=51446
        refcnt=1
# setkey -D
1.1.1.1 2.2.2.2
        esp mode=transport spi=38329021(0x0248dabd) reqid=0(0x00000000)
        E: rijndael-cbc  fa0343f1 e8f8bcce 0d6141c9 7992ce27
        A: hmac-sha1  d643cc10 26e73073 1a141d81 883947f0 fe4f2581
        seq=0x00000001 replay=4 flags=0x00000000 state=mature
        created: May 27 11:33:56 2016   current: May 27 11:34:07 2016
        diff: 11(s)     hard: 28800(s)  soft: 23040(s)
        last: May 27 11:33:56 2016      hard: 0(s)      soft: 0(s)
        current: 200(bytes)     hard: 0(bytes)  soft: 0(bytes)
        allocated: 1    hard: 0 soft: 0
        sadb_seq=1 pid=51447 refcnt=2
2.2.2.2 1.1.1.1
        esp mode=transport spi=265913213(0x0fd9837d) reqid=0(0x00000000)
        E: rijndael-cbc  4acd0fa5 22ace24d 4d210063 dbd9f1cb
        A: hmac-sha1  bd0077ee d8ca81e4 ee9edd64 e1f97f0b e7672de8
        seq=0x0000000b replay=4 flags=0x00000000 state=mature
        created: May 27 11:33:56 2016   current: May 27 11:34:07 2016
        diff: 11(s)     hard: 28800(s)  soft: 23040(s)
        last: May 27 11:34:07 2016      hard: 0(s)      soft: 0(s)
        current: 796(bytes)     hard: 0(bytes)  soft: 0(bytes)
        allocated: 11   hard: 0 soft: 0
        sadb_seq=0 pid=51447 refcnt=1

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35480
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение Alex Keda » 2016-06-01 23:53:58

mtu одинаковый?
файрволл?
Убей их всех! Бог потом рассортирует...

Zarom
рядовой
Сообщения: 23
Зарегистрирован: 2013-11-17 19:41:37

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение Zarom » 2016-06-02 7:58:57

Alex Keda писал(а):mtu одинаковый?
файрволл?
Mtu одинаковый, пробовал выставлять разные значения.
Файрволл pass all quick.

snorlov
подполковник
Сообщения: 3929
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение snorlov » 2016-06-02 9:47:06

А handbook читать не пробовали? вы какой протокол в шифрованный тоннель засовываете...

Zarom
рядовой
Сообщения: 23
Зарегистрирован: 2013-11-17 19:41:37

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение Zarom » 2016-06-02 10:25:00

snorlov писал(а):А handbook читать не пробовали? вы какой протокол в шифрованный тоннель засовываете...
Режим не туннельный, а транспортный. Инкапсулируется в моём случае GRE.

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение BlitzKrieg » 2016-06-03 11:57:14

Ну самая очевидная проблема с MTU. Ищется просто ping с опцией -M и указанием размера пакета. Таким образом найдете, какой размер пролазит, а какой уже нет.

Zarom
рядовой
Сообщения: 23
Зарегистрирован: 2013-11-17 19:41:37

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение Zarom » 2016-06-03 12:24:05

BlitzKrieg писал(а):Ну самая очевидная проблема с MTU. Ищется просто ping с опцией -M и указанием размера пакета. Таким образом найдете, какой размер пролазит, а какой уже нет.
Нет, проблема не с MTU. Даже не знаю в чём она. У меня тут PF. Осталось грешить на его неадекватное поведение, возможно в NAT. Полностью пока отключить NAT нет возможности для проверок. На другом шлюзе c ipfw заработало без проблем с этими же параметрами.

Всё равно планирую миграцию на ipfw, почти переписана вся логика работы. PF разочаровал во многом...

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение BlitzKrieg » 2016-06-03 12:47:02

Так вы пробовали то, о чем я писал?

Zarom
рядовой
Сообщения: 23
Зарегистрирован: 2013-11-17 19:41:37

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение Zarom » 2016-06-03 13:13:49

BlitzKrieg писал(а):Так вы пробовали то, о чем я писал?
Если вы про ping -D (опция -M -это в linux), то конечно пробовал.
ping -v -D -s 1348 - это максимальный размер, который проходит.
1348+28=1376

FreeBSD: gre0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1376
1376 и на микротике.

Аватара пользователя
gumeniuc
ст. сержант
Сообщения: 343
Зарегистрирован: 2009-11-08 15:46:05
Откуда: md
Контактная информация:

IPSEC туннель — почему ходит только ICMP?

Непрочитанное сообщение gumeniuc » 2016-06-05 18:55:37

trace не смотрели ?
Да шо ему сделается...