Jump to content
Калькуляторы

Порт редирект между eth0 и eth1

Линь обычный, iptables.

2 сетевые (eth0, eth1), 2 ип (х.х.х.х, у.у.у.у).

Есть апач который слушает 80 порт на eth1.

 

Надо, сделать локальный редирект между двумя сетевыми.

Т.е. трафик приходящий на eth0 на 80 порт, отправлять на eth1 и обратно.

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80-j DNAT --to у.у.у.у:80

- не работает.

Запрещающих правил нет, иптаблс пуст.

форвард включен:

net.ipv4.ip_forward = 1

 

тспдамп молчит:

tcpdump -i eth1 port 80

 

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

А вот локальный редирект не срабатывает.

 

Апач на eth0 повесить тоже - не предлагать в силу определенных причин.

Share this post


Link to post
Share on other sites

То что вы пытаетесь сделать с иптаблес абсолютно эквивалентно тому что вы просто повесите апач на этот интерфейс.

ip_forward - означает маршрутизацию пакетов НЕ предназначенных серверу, к тому же иптаблесу на это плевать.

Share this post


Link to post
Share on other sites

iptables у вас правильно настроен, но tcpdump не отобразит этот трафик. Несмотря на то, что редирект стоит на адрес интерфейса eth1, этот адрес интерфейсу не принадлежит. После прохождения цепочки PREROUTING будет принято решение о маршрутизации, в результате которого пакет должен быть либо отправлен дальше по сети, либо остаться на роутере. В вашем случае он останется на роутере и на сетевой интерфейс никак не попадет. Непосредственно прописанные на интерфейсах адреса хранятся в специальной таблице local, посмотрите

ip route get y.y.y.y

увидите через какой интерфейс к этому ip должен идти трафик.

Share this post


Link to post
Share on other sites

Несмотря на то, что редирект стоит на адрес интерфейса eth1, этот адрес интерфейсу не принадлежит.

Т.е. нюхать либо на eth0, либо на any, чтобы смотреть, что происходит.

Share this post


Link to post
Share on other sites

Т.е. нюхать либо на eth0, либо на any, чтобы смотреть, что происходит.

 

Не совсем так, этот пакет после DNAT уже невозможно будет отловить через libpcap(и в частности tcpdump). Чтобы проверить, что редирект происходит, можно сделать правило iptables

iptables -A INPUT  -i eth0 -p tcp --dport 80 -j LOG

и смотреть в логах.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.