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

Исходное сообщение
"FreeBSD v7.0 - IPSec не работает"

Отправлено belkin , 23-Апр-08 10:20 
После перехода на FreeBSD v7.0 Release перестал работать IPSec.
Две машины i386 (FreeBSD v6.2 и FreeBSD v5.4) обеспечивали шлюзы IPSec ESP в туннельном режиме для связи других двух машин. Без всякой детской плесени с gif из Handbook.

Попробовал заменить одну из них на FreeBSD v7.0 Realease

Ядро собирал с
---------------------
options        IPSEC
options        IPSEC_FILTERTUNNEL
device         crypto

/etc/ipsec.conf:
---------------------
flush;

add a.a.a.a b.b.b.b esp 257 -m tunnel -f zero-pad
        -E rijndael-cbc "****************" ;
add b.b.b.b a.a.a.a esp 256 -m tunnel -f zero-pad
        -E rijndael-cbc "****************" ;

spdflush;

spdadd x.x.x.x/32[any] y.y.y.y/32[any] any -P in ipsec
        esp/tunnel/a.a.a.a-b.b.b.b/require ;
spdadd y.y.y.y/32[any] x.x.x.x/32[any] any -P out ipsec
        esp/tunnel/b.b.b.b-a.a.a.a/require ;


ipsec.conf рабочий со старой машины.
Команды "setkey -D" и "setkey -DP" показывают, что и политики и SA загружены,
команда "setkey -D" ещё показывает увеличивающийся счётчик пропущенных через SA пакетов,
команда "tcpdump -sp ipsec" показывает исходящие и приходящие IPSec ESP как и должно быть,
а команда "netstat -sp ipsec" всегда показывает нули в статистике за исключением увеличивающегося "mbufs inserted during makespace". Никаких ошибок netstat не показывает - сплошные нули, как будто ipsec ничего не формирует и не принимает. Трафик внутри туннели не ходит.

Вопрос: они там сломали чтоо-то в v7.0? У кого-нибудь работает IPSec в это версии FreeBSD?


Содержание

Сообщения в этом обсуждении
"FreeBSD v7.0 - IPSec не работает"
Отправлено Dorlas , 23-Апр-08 12:05 
>Вопрос: они там сломали чтоо-то в v7.0? У кого-нибудь работает IPSec в
>это версии FreeBSD?

Делали такое :)

Разрешите в IPFW прохождение пакетов ipencap.


"FreeBSD v7.0 - IPSec не работает"
Отправлено belkin , 24-Апр-08 20:32 
>>Вопрос: они там сломали чтоо-то в v7.0? У кого-нибудь работает IPSec в
>>это версии FreeBSD?
>
>Делали такое :)
>
>Разрешите в IPFW прохождение пакетов ipencap.

ipencap это при том самом детском способе с использованием gif: ip over ip over ipsec. Какой-то дятел лет десять назад в Handbook написал этe муть и с тех пор никто переписать по-нормальному не хочет. Всё нормально работает при простом использовании политик IPSec: ip инкапсулируется в IPSec-ESP и выходит в сеть, так же приходящие пакеты декапсулируются согласно политике и всё работает у меня в FreeBSD v4.11, v5.4 и v6.2. А вот в FreeBSD v7.0 почему-то приходящие пакеты IPSec в статистике IPSec видны а потом куда-то пропадают и netstat -sp esp их не показывает, как будто и не было.

Чувствую что, как всегда, только сам себе помошник.


"FreeBSD v7.0 - IPSec не работает"
Отправлено butcher , 25-Апр-08 13:19 
>Чувствую что, как всегда, только сам себе помошник.

Обновите систему до RELENG_7, после релиза было много фиксов к ipsec. Посмотрите мартовские архивы cvs-src.


"FreeBSD v7.0 - IPSec не работает"
Отправлено belkin , 25-Апр-08 15:45 
Нашёл: глючит из-за директивы в описании SA "-f zero-pad" (см. первое сообщение). Удалил её на обоих концах туннеля и всё заработало. FreeBSD v6.2 <-> FreeBSD v7.0.

Плюс заодно выяснил, что сборка ядра без "options  IPSEC_FILTERTUNNEL" избавляет от необходимости обрабатывать в IP-фильтрах протокол IPENCAP. Это функция и представлена для расширения возможности фильтровать туннелируемые пакеты. Для транспортных режимов не необходима, бесполезна и не действует.