Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Ответ в тот же интерфейс откуда пришел запрос  (Прочитано 4114 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн prizes

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Есть шлюз раздающий интернет. 3 интерфейса:
eth0 - провайдер 1 тут же default gateway
eth1 - локалка
vpn_tap - впн подключение с другой подсетью.
есть допустим веб сервер в локальной сети к которому проброшены порты. Проблема в том что если обращаться через eth0 то и ответ уходит на eth0 т.к. маршрут по умолчание на нем, а вот если обратиться через vpn_tap то запрос приходит tcpdump'ом видно, а вот ответ уходит снова на шлюз по умолчанию eth0 и нифига не работает.
Вот как пробовал решить проблему

Цитировать
#маркирую входящее подключение на vpn_tap
iptables -t mangle -A PREROUTING -i vpn_tap -j CONNMARK --set-mark 2
#теперь надо восстановить марки ответнх пакетов входящих в файерволл
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
#создаю таблицу маршрутизации с шлюзом в vpn сети
ip route add default via IP_VPN_GATE(тут айпишник) table 110
#заварачиваю ответные пакеты в эту таблицу
ip rule add fwmark 2 lookup 110

И все равно tcpdump ответы ловит на eth0

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Несколько более сложный сетап http://anr-daemon.livejournal.com/1655.html
Вам будет достаточно маркировать просто по входящему интерфейсу.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
А зачем там вообще iproute2? Просто добавить маршрут на подсеть за туннелем уже не модно?
А если это ещё и OVPN, то явно не правильно настроено взаимодействие участников туннеля.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Просто добавить маршрут на подсеть за туннелем уже не модно?
У меня есть предположение, что подсетей за тунелем больше одной.
Иначе бы проблемы не было.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
А это сильно влияет на метод решения проблемы?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Просто вариант с маркировкой универсальный. :)
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
Пушка-то? Ну да, часто помогает, даже против воробьёв. )))

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Ладно, чего флудить? Два варианта решения дали, выбор за ТС.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн prizes

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Цитировать
Просто добавить маршрут на подсеть за туннелем уже не модно?

Все еще модно, дело в том что шлюз находится в серой сети провайдера. Я делаю проброс порта с vpn сервера с белым айпи в серую подсеть по виртуальному каналу. Если просто маршрут проложить то исходящие подключения тоже будут ходить через vpn, что не нужно.
А до определенного хоста не прокладываю статический маршрут т.к. я должен подключать с любого кафе и прочих точек.
Итог все исходящие подключения должны идти через def gw, а вот входящие через впн должны отвечать так же через впн.

Оффлайн fisher74

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 13758
    • Просмотр профиля
В первом сообщении задача расписана несколько по иному. В таком случае, маршруты, конечно, не катят. А на пример решения задачи Вам уже уважаемый AnrDaemon указал

Оффлайн prizes

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Ответ в тот же интерфейс откуда пришел запрос
« Ответ #10 : 21 Августа 2017, 07:14:43 »
Этот вариант действительно рабочий но только для локальных пакетов, а у меня это маршрутизатор по которому идут транзитные пакеты. Т.к. маршрутизатор не конечная точка, сделав так как описанно по ссылке AnrDaemon, получается так что мой транзитный пакет влетает в файерволл метит пакет а далее на основе марки разворачивает и обратно выкидывает в виртуальный интерфейс.
tcpdump показал то что мак источника и мак получателся чередуются, а ip источника и ip получателя не изменны.
Т.е. пакет один и тот же, не ответный от компа. А до компа и запрос не долетает.
Мне нужен вариант с транзитными пакетами

Пользователь добавил сообщение 21 Августа 2017, 08:55:30:
Все замутил, все заработало. Благодаря ссылке AnrDaemon удалось додуматься что переделать в моем случае для транзитных пакетов.
Вообщем вот как заработало
Цитировать
#Маркирую входящие и установившиеся соединения кроме впн подсети 171.0/24. тут мак впн компа от которого приходит вх. запрос
iptables -t mangle -I PREROUTING ! -s 192.168.171.0/24 -m conntrack --ctstate NEW,RELATED -m mac --mac-source 00:ac:80:aa:7e:ae -j CONNMARK --set-mark 2
#теперь восстанавливаю марки всех пакетов относящиеся к каким либо соединениям
iptables -t mangle -A PREROUTING -j CONNMARK --restore-mark
#чтобы пакет не разворачивался, а именно доходил до нужного хоста, с маркой 2 маршрутов не строю, а на базе этой марки перемаркировал пакеты идущие из локально сети уже обратно в мир
iptables -t mangle -A PREROUTING -i eth1 -m connmark --mark 2 -j MARK --set-mark 3

Вот эти 3 правила необходимые для правильной маркировки в соответствующем напрвлении пакета.
Теперь можно создать таблицу маршрутизации
Цитировать
ip route add default via IP_НУЖНОГО_ШЛЮЗА_В МОЕМ СЛУЧА_192.168.171.254 table 3
Ну и конечно же последний штрих это правило заварачивающее в таблицу пакеты идущие из лок.сети с маркой 3
Цитировать
ip rule fwmark 3 lookup 3
« Последнее редактирование: 21 Августа 2017, 08:55:30 от prizes »

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Ответ в тот же интерфейс откуда пришел запрос
« Ответ #11 : 21 Августа 2017, 14:21:47 »
Самый первый комментарий к статье http://anr-daemon.livejournal.com/1655.html?thread=2679#t2679 как раз ответ на ваш вопрос.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн prizes

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Ответ в тот же интерфейс откуда пришел запрос
« Ответ #12 : 27 Сентября 2017, 06:03:12 »
да это может быть и ответ но зачем так сложно то. У меня 5 правил все зарешали, а там правил на лист A4. Или зачем нам легко, легкие пути для слабаков, а мы то не такие ;D

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28469
    • Просмотр профиля
Re: Ответ в тот же интерфейс откуда пришел запрос
« Ответ #13 : 27 Сентября 2017, 08:36:05 »
Если это всё, что вы смогли ответить, можно было не стараться.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.039 секунд. Запросов: 25.