Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > *nix > маршрутизация


Автор: v4567 22.04.18, 18:40
На шлюзе есть два сетевых интерфейса: один смотрит во вне eth0 на нём внешний ip, второй смотрит во внутреннюю сеть eth1. На внешнем интерфейсе поднят openvpn сервер, на ноутбуке настроен openvpn клиент. Ноутбук будет вынесен и подключаться к openvpn серверу будет из вне. Но пока он был включён во внутреннюю сеть решил проверить и подключится к openvpn серверу который висит на внешнем интерфейсе eth0. На ноутбуке шлюзом по умолчанию прописан ip шлюза eth1.

Получается, что на интерфейс шлюза eth1 приходит пакет адрес назначения которого это ip интерфейса eth0, а адрес отправителя ip внутренней сети который был прописан на ноутбуке. Если стать tcpdump на интерфейс eth1 то так оно и есть, я вижу этот пакет, но вот дальше на интерфейс eth0 он не доходит. Судя по картинке пакет должен попасть в цепочку FORWARD, на форварде проброс настроен, но скорее всего он попадает в цепочку INPUT интерфейса eth1 и далее не двигается, а уничтожается.

Прошу тех кто владеет досконально этими вопросами, объяснить почему пакет не доходит до интерфейса eth0 и можно ли осуществить такой проброс?

За объяснение и помощь заранее благодарен!

Автор: ^D^ima 23.04.18, 12:46
Здесь про микротик, но думаю можно зеркально перенести:
https://wiki.mikrotik.com/wiki/Hairpin_NAT

Автор: cppasm 23.04.18, 20:13
Ничего не ясно.
Какой IP на eth0 и eth1 (внешний можешь не светить :) )?
Из какого диапазона выдаются IP клиентам в VPN?

Ну и вот это:
Цитата v4567 @
Получается, что на интерфейс шлюза eth1 приходит пакет адрес назначения которого это ip интерфейса eth0, а адрес отправителя ip внутренней сети который был прописан на ноутбуке. Если стать tcpdump на интерфейс eth1 то так оно и есть, я вижу этот пакет, но вот дальше на интерфейс eth0 он не доходит.

Пакет попал на устройство у которого на одном из интерфейсов IP=IP_назначения_пакета -> значит пакет уже попал по назначению.
С чего его дальше ещё куда-то форвардить?

Автор: v4567 24.04.18, 10:25
Цитата

Здесь про микротик, но думаю можно зеркально перенести:
https://wiki.mikrotik.com/wiki/Hairpin_NAT


^D^ima спасибо за подсказку.

Я совсем упустил из виду, что можно подменить айпишники, я так и раньше делал для для сайта что бы он был виден из внутренней сети.

Для ясности нарисовал картинку

В моём случае можно было написать правило в цепочке PREROUTING и подменить внешний ip 5.5.5.5 на внутренний ip 10.10.10.10 и в Openvpn добавить что бы он слушал интерфейс 10.10.10.10 тогда бы всё работало, или просто добавить в openvpn прослушивание 10.10.10.10 и соединяться на него.

Но дело уже не в этом просто интересно узнать почему когда я соединяюсь на 7.7.7.7 то пакеты уходят через цепочку FORWARD, а когда (то же можно сказать на внешний интерфейс хоть и находящийся на этом компьютере) на 5.5.5.5 то в цепочку FORWARD они не уходят и пакета на интефейсе eth0 нет, хотя при этом на eth1 он есть.

Автор: v4567 27.04.18, 07:46
Если уйти от правил сетевого фильтра, вопрос заключается вот в чём.

На интерфейс eth1 приходит пакет с ip получателя 7.7.7.7, система видит, что это ip не интерфейса eth1 и смотрит в таблицу маршрутизации так как она понимает, что пакет предназначен не ей. Далее пакет направляется согласно таблице маршрутизации.

Теперь рассмотрим вариант когда на интерфейс eth1 приходит пакет с ip 5.5.5.5, система опять видит что, пакет предназначен не ей. И вот дальше не понятно, что система делает дальше????

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)