Как сделать проброс пакетов без подмены адреса отправителя?
Пояснение.
При работе с "железным" роутером (пусть даже Длинк)... Он имеет 2 порта. ВАН и ЛАН. Все пакеты приходящие на ВАН натятся на ЛАН порт. При этом, машины за роутером находящиеся на ЛАН порту видят внешние IP адреса отправителей этих пакетов.
Есть значит у меня Линукс ) И IPTABLES.
2 интерфейса. ВАН и VPN (на котором сидят другие машины)
И по сути 3 правила.
1. Forward
2. D-NAT (PreRoute)
3. S-NAT (PostRoute)
Дак вот машины в VPN сети, видят приходящие пакеты с IP адресом VPN интерфейса Линукс-роутера.
И вот вопрос из заголовка...Как сделать проброс пакетов без подмены адреса отправителя?
Ибо все, что пока делаю я, либо вообще перестает работать, либо работает так, как работает. )
Andrey Barbolin, совершенно верно.
На шлюз провайдера. (а если уж совсем точно, на роутер, который подключен к провайдеру).
Можу поменять в принципе на ВПН тунель, ибо выше описанные правила позволяют гонять весь трафик через него. Но хотелось бы сего не делать.
Олег,
> На шлюз провайдера. (а если уж совсем точно, на роутер, который подключен к провайдеру).
Вот ваша проблема.
Пакет от клиента из интернета, проходит через проброс порта, потом заворачивает в VPN доходит до VPN клиента, тот видит реальный IP клиента из интернета. Куда по вашему он отправит ответ? - правильно на default GW, клиент в интернете к такому не готов, запрос он отправлял на один адрес, а ответ пришел с другого)
Соответственно, что остается
- заворачивать вест трафик VPN клиента в VPN, тогда можно показывать реальный IP клиента из интернет
- маскарадить трафик на VPN сервере (как вы сейчас и делаете) и не показывать IP клиента из интернет.
Andrey Barbolin, А если у меня более 1 VPN машины. И клиенты идут с разных VPN туннелей.... Как решить такую задачу? Несколько шлюзов как я понимаю, не вариант же....
Andrey Barbolin, VPN туннелей 4 шт. На концах каждого из них машина с IP адресом, на который коннектятся клиенты.
Выше данные одного туннеля. У остальных в правилах меняется только внешний IP.
10.7.0.3 - это ВПН адрес сервера с исходной службой на которой хочется видеть не VPN IP, а реальные.
Грубо говоря, туннели это зеркала одного сервера.
Если коротко, тебе надо создать отдельные таблицы маршрутизации для каждого интерфейса, тогда сервер будет отвечать на том интерфейсе куда пришел запрос.