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

NAT 1:1

 , , ,


0

2

Помогите разобраться. есть сервер на дебиане, у него 3 интерфейса eth0 с внешним айпи 1 eth0:0 с внешним айпи 2 ppp0 соответственно впн Надо сделать чтобы при попытке зайти на айпи 2 попадать на определенный айпи на интерфейсом ppp0. Не особо силен в нате, но как я понимаю грубо говоря прокинуть туда все порты

Вы «не особо сильны» не только в нате, но и использовании гугла тоже.

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)

зайти на айпи

Как насчет залететь/заплыть на айпи?

Deleted ()

Читая это, сломал голову. Хау эбаут подтянуть русский язык, май френд?

iptables -t nat -A POSTROUTING -o eth0:0 -s local_ip -j SNAT --to-source public_ip_2
iptables -t nat -A PREROUTING -i eth0:0 -d public_ip_2 -j DNAT --to-destination local_ip
В таблице filter цепочки FORWARD должны быть соответствующие разрешающие правила.

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

iptables не работает с алиасами ( eth0:0), только реальные (eth0)
В вашем примере будет разнозначно eth0:0 == eth0, что может работать не правильно если адреса на eth0 и eth:0 из разных подсетей или из одной и той-же но по какой-то причине с них роутиться на разные gw и т.д. и т.п.

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

Вообще странно, я не уверен как в этих ваших линупсах, но виатта (которая тоже линупс и тоже с iptables) работает с vif`ами нормально. Если листануть правила с помощью iptables-save, а не с помощью виатовского CLI, то вполне можно увидеть правила такого типа:

-A VYATTA_IN_HOOK -i bond0.4 -m comment --comment "Name-Rule_UITIS_POOL_IN_0" -j wYeFpxAt8giSwZbgkIco392VIBE
-A VYATTA_IN_HOOK -i bond0 -m comment --comment "Name-Rule_UITIS_LAN_IN_0" -j 1Lv80GePHLsQb,HDOX8wFBEXtCc
Ну, это крепление экземпляров правил к интерфейсам. Я так понимаю, eth0:0 это суть vif, верно?

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

Если нет, тогда зачем он вообще нужен. Просто дополнительный адрес на интерфейс емнип можно повесить и без всяких eth0:0. Я, вроде, именно на дэбиане делал просто указанием в /etc/network/interface под одним eth

address ...
netmask ...
address ...
netmask ...
Правда давно было, ручаться не могу.

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

iptables`у всё равно, eth0 или eth0:0 для него одно и тоже.

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

а он и не нужен, это легаси которое не поддерживается утилитой ip

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

Сделал так, вроде заработало.

iptables -t nat -A POSTROUTING -s 10.90.1.2 -j SNAT --to-source внешний

iptables -t nat -A PREROUTING -d внешний -j DNAT --to-destination 10.90.1.2

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

Ну вот видишь, всё оказалось совсем несложно. И, кстати, в данном случае интерфейс не понадобился (как сейчас модно, «от слова совсем»).

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

Просто дополнительный адрес на интерфейс емнип можно повесить и без всяких eth0:0

В волосатые времена когда не было iproute2 повесить доп. адрес на интерфейс можно было только через алиас, как я понимаю. Так что да - в современном мире они обычно нафиг не нужны. Через ip addr add можно накидать сколько нужно IP-адресов на один интерфейс без проблем.

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