URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 74846
[ Назад ]

Исходное сообщение
"IPsec + FreeBSD + NAT + racoon"

Отправлено Junk , 25-Июн-07 00:35 
не могу понять, почему не работает IPSEC туннель. ситуация такая:

FreeBSD1 :
rl0 : 192.168.1.254
fxp0: 172.16.2.2
fxp0 смотрит на ADSL роутер 172.16.2.1 у которого есть реальный внешний IP x.x.x.x

FreeBSD2:
rl0  :192.168.4.254
fxp1 :реальный внешний IP y.y.y.y

надо соединить через туннель 192.168.1.х и 192.168.4.x с помощью IPSec на Фрях.
NAT Traversal в ядре установлен везде. ipsec-tools скомпилен с поддержкой NAT-T. всё настроено вроде как по докам.
остается вопрос - какие policy для ipsec писать. ракуны с обеих сторон говорят в логи, что туннели установлены, однако ничего в туннелях не ходит. проблема видимо именно в policy. Подскажите, что указывать?



Содержание

Сообщения в этом обсуждении
"IPsec + FreeBSD + NAT + racoon"
Отправлено Fagor , 25-Июн-07 06:59 
>не могу понять, почему не работает IPSEC туннель. ситуация такая:
>
>FreeBSD1 :
>rl0 : 192.168.1.254
>fxp0: 172.16.2.2
>fxp0 смотрит на ADSL роутер 172.16.2.1 у которого есть реальный внешний IP
>x.x.x.x
>
>FreeBSD2:
>rl0  :192.168.4.254
>fxp1 :реальный внешний IP y.y.y.y
>
>надо соединить через туннель 192.168.1.х и 192.168.4.x с помощью IPSec на Фрях.
>
>NAT Traversal в ядре установлен везде. ipsec-tools скомпилен с поддержкой NAT-T. всё
>настроено вроде как по докам.
>остается вопрос - какие policy для ipsec писать. ракуны с обеих сторон
>говорят в логи, что туннели установлены, однако ничего в туннелях не
>ходит. проблема видимо именно в policy. Подскажите, что указывать?

Примерно так
#На 192.168.1.254
#=====================================
flush;
spdflush;
spdadd 192.168.1.0/24 192.168.4.0/24 any -P out ipsec esp/tunnel/x.x.x.x-y.y.y.y/require;
spdadd 192.168.4.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;

#На 192.168.4.254
#=====================================
flush;
spdflush;
spdadd 192.168.4.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;
spdadd 192.168.1.0/24 192.168.4.0/24 any -P in ipsec esp/tunnel/x.x.x.xy.y.y.y/require;

Но для выяснения почему не пашет туннель, необходимо посмотреть конфиги
rc.conf
ipsec.conf
racoon.conf
А также правила firewall'а на предмет разрешены ли соединения на 500 порту udp + esp


"IPsec + FreeBSD + NAT + racoon"
Отправлено Junk , 25-Июн-07 10:29 
>>не могу понять, почему не работает IPSEC туннель. ситуация такая:
>>
>
>Примерно так
>#На 192.168.1.254
>#=====================================
>flush;
>spdflush;
>spdadd 192.168.1.0/24 192.168.4.0/24 any -P out ipsec esp/tunnel/x.x.x.x-y.y.y.y/require;
>spdadd 192.168.4.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;
>
>#На 192.168.4.254
>#=====================================
>flush;
>spdflush;
>spdadd 192.168.4.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;
>spdadd 192.168.1.0/24 192.168.4.0/24 any -P in ipsec esp/tunnel/x.x.x.x-y.y.y.y/require;
>
>Но для выяснения почему не пашет туннель, необходимо посмотреть конфиги
>rc.conf
>ipsec.conf
>racoon.conf
>А также правила firewall'а на предмет разрешены ли соединения на 500 порту
>udp + esp

в ipfw с обеих сторон указано allow esp from any to any, allow udp from any to any

rc.conf на FreeBSD1
gif_interfaces="gif0"
gifconfig_gif0="172.16.2.2 y.y.y.y"
ifconfig_gif0="inet 192.168.1.254 192.168.4.254 netmask 255.255.255.255"
на FreeBSD2:
gif_interfaces="gif0"
gifconfig_gif0="y.y.y.y x.x.x.x"
ifconfig_gif0="inet 192.168.4.254 192.168.1.254 netmask 255.255.255.255"

что именно из racoon.conf интересует? они большие, полностью тут приводить смысла не вижу.
раздел listen у них такой:
FreeBSD1:
listen
{
        isakmp 172.16.2.2 [500];
        isakmp 192.168.1.114 [500];
        isakmp_natt 172.16.2.2 [4500];
}

FreeBSD2:
listen
{
    isakmp y.y.y.y [500];
    isakmp_natt y.y.y.y [4500];
}

при указанных выше правилах ракун на FreeBSD1 пишет в лог:
2007-06-25 10:20:36: DEBUG: get pfkey ACQUIRE message
2007-06-25 10:20:36: DEBUG: ignore because do not listen on source address : х.х.х.х.

если попытаться что-то сделать с другой стороны по туннелю, то оба ракуна в лог пишут, что туннель организовался, но пакеты ходят только в одну сторону.
вот что говорит ракун на фрибсд1
2007-06-25 10:10:56: INFO: IPsec-SA established: ESP/Tunnel у.у.у.у[4500]->172.16.2.2[4500] spi=89327110(0x5530606)
2007-06-25 10:10:56: DEBUG: ===
2007-06-25 10:10:56: DEBUG: get pfkey ADD message
2007-06-25 10:10:56: INFO: IPsec-SA established: ESP/Tunnel 172.16.2.2[4500]->у.у.у.у[4500] spi=54046056(0x338ad68)


вот такие дела :(


"IPsec + FreeBSD + NAT + racoon"
Отправлено Junk , 26-Июн-07 14:28 
в итоге туннель поднялся вот с такими политиками:
FreeBSD1:
spdflush;
spdadd 192.168.1.0/24 192.168.4.0/24 any -P out ipsec esp/tunnel/172.16.2.2-y.y.y.y/require;
spdadd 192.168.4.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/y.y.y.y-172.16.2.2/require;

FreeBSD2:
spdflush;
spdadd 192.168.4.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/y.y.y.y-x.x.x.x/require;
spdadd 192.168.1.0/24 192.168.4.0/24 any -P in ipsec esp/tunnel/172.16.2.2-y.y.y.y/require;

остался вопрос только с MTU.
на FreeBSD2 установлен еще и нат. правила немного переписаны, чтобы не затрагивались пакеты туннеля.


"IPsec + FreeBSD + NAT + racoon"
Отправлено YuryD , 26-Июн-07 14:38 
>остался вопрос только с MTU.

А что не нравится в MTU ? при mtu на gif0 1280 отлично ходят пакеты разумного размера,
и локальные сети под win отлично видят друг-друга ?


"IPsec + FreeBSD + NAT + racoon"
Отправлено Junk , 27-Июн-07 09:58 
>>остался вопрос только с MTU.
>
> А что не нравится в MTU ? при mtu на gif0
>1280 отлично ходят пакеты разумного размера,
>и локальные сети под win отлично видят друг-друга ?


в том-то и дело, что пинги ходят отлично. а вот tcp соединения не работают. уже понял, что проблема в фрагментации UDP пакетов. хочу от нее избавиться.