LINUX.ORG.RU
ФорумAdmin

Вопрос по настройке vlan + openvpn на роутере с OpenWRT

 , ,


1

1

Настроил 2 раздельные vlan'а на Openwrt, один из них пускает трафик через openvpn (если поднят), второй напрямую. Всё бы было хорошо, но если подключен vpn, то на втором vlan нету доступа в интернет. Как сделать так, чтоб при подключенном впн на втором vlan не пропадал интернет?


Ответ на: комментарий от Ali

Просто телепаты в отпуске.

Топологию в студию, пожалуйста.

losb
()

Таблицы маршрутизации: man iproute2

SNAT/Masquerade: man iptables

В чём конкретно загвоздка будет ясно при предоставлении ясной топологии и того, что уже сделано.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

update: тестовым путем установил что независимо от топологии сети, настроек фаервола и прочих комбинаций, когда подключен vpn (tun0), то доступа к wan (eth1) нету ни с каких интерфейсов. Определил показателями трассировки любого сетевого узла из-под веб-интерфейса, з подключеным впн и отключеным (шло через впн и напрямую через провайдера соответственно).

То есть в двух словах топология и где собственно проблема: openvpn работает через адаптер tun, занимая весь eth1 (wan), при этом блокирует любой другой трафик на этом интерфейсе. Насколько я понял это не баг, а так и должно быть в принципе. Но как мне это победить? Чтоб одновременно и на tun, и напрямую к wan можно было достучаться.

Ali
() автор топика
Ответ на: комментарий от Ali

Понятнее не стало, причём здесь тогда vlan?

Как предположение - смотрите в сторону firewall в openwrt. Там «особоая атмосфера» в конфигурационном файле, но понять не сложно, имея под рукой их wiki. В общем, вам надобно разрешить FORWARD между необходимыми интерфейсами и MASQUERADE на внешних интерфейсах, если речь о доступе в сеть интернет «изнутри». Если же речь о доступности самой железки из интернета и по туннелю, то необходимо смотреть правила firewall в в цепочках INPUT на каждом интерфейса.

По-умолчанию, openwrt разрешает маршрутизацию между интерфейсами lan-wan с маскарадингом на wan, открыт доступ на управление из lan и остальное стоит в DROP.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

vlan для того чтоб разделить клиентов на 1) трафик которых должен идти в обход впн (vlan1 -> wan), и 2) через впн (vlan2 -> tun).

Насчет forward: когда разрешаю форвард например с vlan1 на wan, то трафик идет через впн (tun), хотя не должен в этой подсети, теряется весь смысл vlan. Т.е. фактически eth1 (wan) прозрачно заменяется на tun, или как это понимать. Я думаю дело не в форварде, т.к. без этого всё по умолчанию работает (forward везде выставлено на reject, input везде accept).

Ali
() автор топика

А split tunnel оно умеет?

frob ★★★★★
()
Ответ на: комментарий от Ali

Давай разберёмся с терминами, vlan пользуют в роутерах для разделения портов на коммутаторе, поэтому никаких eth1 там быть не должно, в лучшем случае eth0.1 eth0.2 или другой тэг на единственном eth0 интерфейсе процессора. Есть некоторые SoCи, у которых под WAN с проца идёт отдельный интерфейс, тогда да, будет eth0 и eth1, но тогда каким боком тут vlan'ы.

Распиши сначала какие интерфейсы у тебя в наличии, потом, что ты хочешь сделать - это и есть схема/топология, о которой тебя просили. А с воздуха телепатией заниматься - libastral.so не завезли ещё.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

Ok, извините, возможно я и не прав. Зайдем с другой стороны. Вот какие есть интерфейсы: vpn (tun0), lan (eth0), vlan1 (eth0.1), vlan2 (eth0.2), wan pppoe (eth1).

vlan1 смотрит на wan (по настройкам фаервола), vlan2 - на vpn. Т.е. на vlan2 нету коннекта пока не поднят vpn (так и задумывалось). На vlan1 должна быть связь с wan напрямую всегда (или должен быть интернет в любом случае), но есть только при отключенном vpn - что собственно и является проблемой. Если надо будет, выложу конфиги, скриншоты. Спасибо что пытаетесь разобраться, другой бы послал уже :)

Ali
() автор топика
Ответ на: комментарий от Ali

Так-с, начну с уточнения.

VPN - это openvpn, насколько я понял, который поднимается «поверх» pppoe туннеля, который поднимается на eth1 интерфейсе (тогда wan будет представлен как ppp0 интерфейс). LAN сегмент разделён на две подсети, одну нужно пропускать в интернет в чистом виде, а вторую только через openvpn?

Уточняющий вопрос - являетесь ли вы администратором openvpn-сервера для его настройки?

В любом случае необходимо шаманство с таблицами маршрутизации. В «правильной» форме openvpn не должен трогать основную таблицу маршутизации и настраивать свои маршруты в дополнительной таблице, в которую уже правилом будут заворачиваться пакеты из второго вилана (ip rule add from <подсеть eth0.2 с маской> table <имя таблицы для openvpn>). Если же вы не администрируете сервер openvpn, тогда, подозреваю, он выдаёт свой адрес, как шлюз по-умолчанию для клиента, что после падения туннеля оставляет маршрутизатор без шлюза. Решается проблема скриптами up/down с настройкой таблиц маршрутизации.

Ну и естественно firewall должен пропускать пакеты между инетрфейсами.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

Да, Openvpn. Я админ vpn-сервера, могу внести любые изменения. Значит в конфиг прописать что-то типа этого: «ip rule add from <подсеть eth0.2 с маской> table <имя таблицы для openvpn>»?

Ali
() автор топика
24 октября 2015 г.
Ответ на: комментарий от nickleiten

Вы много говорите, но толку с этого мало, извините за правду. Не получалось настроить с вашими советами «вокруг да около» до сегодняшнего дня (забросил). Вот сегодня случайно нашёл топик на форуме openwrt и настроил за 3 минуты. Линк оставлю, может кому понадобится: https://forum.openwrt.org/viewtopic.php?id=43263

Для этого надо MultiWan, который я кстати установил изначально под эту задачу, но что-то засомневался потом что с помощью мультивана это решается.

Ali
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.