LINUX.ORG.RU
решено ФорумAdmin

Статичные маршруты

 , , ,


0

3

Привет,

В связи с последними событиями вна Украине, возник вопрос обхода всяких блокировок. Хотелось бы сделать это один раз на роутере (OpenWRT based) и забыть.

Итак, картина такая:

* VPN server:
- eth0 в мир
- ppp0 c 10.33.33.1 внутрь

* Router
- eth5 в мир, default gateway
- br0 локальная сеть, 172.16.0.1
- ppp0 c 10.33.33.2 завернут на VPN соответственно

* Юзеры
- 172.16.0.1/24 соответственно

Далее есть список заблокированных сетей, например 178.248.233.1/24.

Вопрос: какие маршруты нужно прописать на роутере что бы заблокированные ресурсы работали у пользователей ?

Что пробовал:
ip r a 178.248.233.6 dev ppp0 на роутере. Соответственно доступ к данному ресурсу с роутера был восстановлен, но у пользователей нет. Что еще нужно дописать ? И как можно указать сразу диапазон ? т.к:

root@localhost:~# ip r a 178.248.233.1/24 dev ppp0
RTNETLINK answers: Invalid argument

Спасибо.

★★★★★

Так и не понял какого результата ты хочешь добится.. но маршруты задаются с шлюзом Например:

ip r a 178.248.233.1/24 via <шлюз> dev ppp0

anonymous
()

ip r a 178.248.233.6 dev ppp0 на роутере. Соответственно доступ к данному ресурсу с роутера был восстановлен, но у пользователей нет.

Проверь наличие правил iptables с SNAT/MASQUERADE. И FORWARD заодно, везде ли пропускает

root@localhost:~# ip r a 178.248.233.1/24 dev ppp0
RTNETLINK answers: Invalid argument

178.248.233.0/24 ?

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Deleted

178.248.233.0/24

Таки да! Ноль в конце важен :)
Осталось решить другие вопросы.
Спасибо!

joy4eg ★★★★★
() автор топика
Ответ на: комментарий от post-factum

Судя по похожим темам, Я подумал, что ты может быть в курсе :)
Собственно, есть роутер, на нем есть пачка статичных маршрутов до нужных ресурсов через VPN (pptp), и есть локальная же сеть на нем (бридж) и NAT.
Вопрос: каким образом можно зароутить трафик от юзера до ресурса Х (маршрут к которому прописан через VPN) ?
Текущие состояние.
Такое чувство, что упускаю что-то банальное и очевидное.
Спасибо!

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

Если дефолт роут — твой маршрутизатор, то на самом маршрутизаторе достаточно прописать, к каким подсетям через что ходит трафик, а локалке будет пофиг.

В простыню не вникал, схему рисуй.

post-factum ★★★★★
()

Таки реально затупил на ровном месте :))
Решение: на роутере выполнить:

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -o ppp0 -j SNAT --to-source <VPN IP>

joy4eg ★★★★★
() автор топика
Ответ на: комментарий от post-factum

Если дефолт роут — твой маршрутизатор

Нет, не мой, это провайдер.

См выше, все оказалось довольно банально.

joy4eg ★★★★★
() автор топика
Ответ на: комментарий от post-factum

Почему весь ? И это ведь не заворачивает трафик, а лишь фиксит адреса.
Трафик пойдет через ppp0 только в том случае если маршрут до узла явно указан через vpn, см таблицу роутов выше. Проверял так: открыл два ресурса в браузере, на одной страничке был ИП от провайдера, а на второй от vpn :)

joy4eg ★★★★★
() автор топика
Ответ на: комментарий от post-factum

правило будет работать только для пакетов, которые уйдут через ppp0. А уйдут туда они в соответствии с routing table.

Можно было тупо сделать одно правило -j MASQUERADE и не указывать исходящий интерфейс (-o). Тогда сразу бы все работало. Но SNAT быстрее.

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

Как раз это имел ввиду. Что можно просто сказать

iptables -t nat -A POSTROUTING -s 172.16.0.0/24 -j MASQUERADE
и далее рулить все маршрутами

Но лично мне больше нравится «только там где надо», т.е. использовать -o out_interface

samson ★★
()
Последнее исправление: samson (всего исправлений: 2)
Ответ на: комментарий от samson

Вы тут так мило пообщались, даже похоже друг друга поняли. А для обычных смертных в паре слов на пальцах не расскажите как на опенврт заставить часть трафика ходить через ВПН? Если это будет в виде разукрасок (для тех кто 192.168.1.1 считают достойным айпи для лана) то потоки благодарностей затопят сей форум.

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

Ну, если сам не осилишь, то пиши в job :)
А вообще, это не трудно:


  • Нужно настроить VPN клиент на роутере, любой на выбор. (pptp, openvpn, ipsec, etc). Но НЕ прописывать его как default route.
  • Прописать статичные маршруты к заблокированным ресурсам, см IPv4 Routes. У меня не голый OpenWRT, и табличка выглядит так. Больше IP адресов можешь взять тут.
  • Добавить еще одно правило в iptables, для оранизации еще одного NAT'a, если его нет. (через SNAT или MASQUERADE, как хочешь). Если у тебя NAT настроен per interface, то соответственно в правиле указать out interface имя VPN интерфейса.


И все, должно работать.

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