Thesaurus Posted 5 hours ago Share Posted 5 hours ago Добрый день! Происходят чудеса, в которых я уже несколько дней не могу разобраться. Прошу помощи. Есть Keenetic'и (причём несколько штук разных и на разных прошивках - 2-я и 4-я версии). На них настроен l2tp/ipsec клиент, который подключается к openbsd'шному npppd в режиме l2tp + ipsec. Поведение, о котором дальше будет написано, одинаковое. С подключением всё отлично, но проблема в том, что маршрутизация получается несимметричной - как будто в одну сторону на стороне кинетика для интерфейса ppp0 работает NAT. Если пакеты идут из сети, которую обслуживает кинетик, в сеть, которую обслуживает openbsd, то соединения устанавливаются, однако IP адрес отправителя в туннельном интерфейсе подменяется на IP адрес кинетика с его стороны туннеля (и видно это tcpdump'ом на кинетике). Для примера, пусть будет ppp0 192.168.20.1 <-> 192.168.20.2. В этом случае все устройства сети openbsd, которые будут получать трафик от устройств из сети кинетика, будут думать, что весь он отправлен с адреса 192.168.20.1, т.е. с кинетика, соответственно и отвечать будут этому адресу, который на стороне кинетика в обратном порядке будет заменён на настоящий и отправлен к себе в сеть нужному устройству. В обратном направлении (сеть openbsd -> сеть кинетика) трафик идёт с корректным адресом отправителя, доходит до устройства, устройство отвечает, ответ приходит на кинетик и "застревает" в ppp0, не возвращаясь в pppx0 openbsd, хотя адрес получателя стоит корректный. При этом обе стороны туннеля по туннельным адресам могут "пинговать друг друга" без проблем. Я настраивал правила файрволла на кинетике для пропуска всего во все стороны, отключал isolate-private, меня security-level, пытался отключить NAT, который и так не был включен, убирал ALG из компонентов - ничего не помогает. В итоге для эксперимента я поднял поверх этого l2tp/ipsec туннеля туннель GRE и настроил маршрутизацию через него. Опять трафик сначала пошёл только в одном направлении (но в обе стороны, т.е. если TCP соединение инициировала сторона кинетика, то пакеты в рамках этого соединения назад тоже ходят). После того, как я выставил secure-level private для интерфейса Gre0, всё на вид заработало как надо - пошёл трафик, инициированный с обоих сторон. Пользоваться стало можно, но, к сожалению, проблема с односторонней трансляцией IP адресов проявилась также и для Gre0 интерфейса. Кинетик и для Gre0, как и для ppp0, переделывает адреса отправителя в адрес своей строны GRE туннеля. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.