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

iptables redirect to loopback

 , ,


1

2

Прощу помощи, не могу въехать как мне сделать редирект на сервер который висит на loopback.

То есть, что бы при запросе 192.168.0.1:5050 например, происходил редирект на 127.0.0.1:5050.

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 5050 -j DNAT --to 127.0.0.1:5050
не катит, я так понимаю что проблема в том, что отправителем значится 127.0.0.1, и это как то не очень хорошо.

★★★★

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

Для этих целей есть девайс dummy

ip li add  dummy1 type dummy

ifconfig dummy1 XX.XX.XX.XX netmask 255.255.255.255

Ставишь на него какой-нибудь адрес и редиректишь на него.

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

есть

# tcpdump -nnei any tcp
запускай установку соединения, потом что получилось выкладывай сюда

а заодно расскажи, зачем такая херня нужна

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

Я так понял это аналог сабинтерфейса, как eth0:0. В любом случае, не работает.

invokercd ★★★★
() автор топика
Ответ на: комментарий от anonymous

Такая херня нужна была, ибо была запущена виртуалка на kvm, с локально висящим vnc и ребутать ее нельзя было. Теперь это не критично, просто стало интересно как это сделать.

В выхлопе вообще никакого редиректа нет, пытался неткатом прицепиться к неткату висящему на 127.0.0.1.

20:52:30.654169  In 52:54:00:fd:3b:ac ethertype IPv4 (0x0800), length 76: 1.1.1.1.34604 > 1.1.1.2.5050: Flags [S], seq 2399105203, win 14600, options [mss 1460,sackOK,TS val 32633054 ecr 0,nop,wscale 4], length 0
20:52:31.653340  In 52:54:00:fd:3b:ac ethertype IPv4 (0x0800), length 76: 1.1.1.1.34604 > 1.1.1.2.5050: Flags [S], seq 2399105203, win 14600, options [mss 1460,sackOK,TS val 32633304 ecr 0,nop,wscale 4], length 0
20:52:33.657318  In 52:54:00:fd:3b:ac ethertype IPv4 (0x0800), length 76: 1.1.1.1.34604 > 1.1.1.2.5050: Flags [S], seq 2399105203, win 14600, options [mss 1460,sackOK,TS val 32633805 ecr 0,nop,wscale 4], length 0
20:52:37.669307  In 52:54:00:fd:3b:ac ethertype IPv4 (0x0800), length 76: 1.1.1.1.34604 > 1.1.1.2.5050: Flags [S], seq 2399105203, win 14600, options [mss 1460,sackOK,TS val 32634808 ecr 0,nop,wscale 4], length 0
20:52:45.685346  In 52:54:00:fd:3b:ac ethertype IPv4 (0x0800), length 76: 1.1.1.1.34604 > 1.1.1.2.5050: Flags [S], seq 2399105203, win 14600, options [mss 1460,sackOK,TS val 32636812 ecr 0,nop,wscale 4], length 0

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

127.0.0.1, и это как то не очень хорошо.

Это марсианские пакеты, их очень давно не маршрутизирует ядро. Так что через iptables вашу задачу было не решить, только вешать какого-нибудь демона, того же sshd, который примет коннект на 192.168.0.1:5050, откроет другой коннект с адреса 127.0.0.1 на 127.0.0.1:5050 и будет через себя перегонять данные из одного сокета в другой.

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

Спасибо, тоже читал про марсианские, нашел еще вариант добавить --mark в iptables но тоже не катит.

invokercd ★★★★
() автор топика
Ответ на: комментарий от mky

Кстати вот судя по http://en.wikipedia.org/wiki/Martian_packet марсианские пакеты включают и 192.168.0.0/16 но ведь эти сети прекрасно маршрутизируются, как и все чатные.

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

Хорошо, что разработчики ядра эту страницу википедии не читали :-) В ядре всё проще (код из ./net/ipv4/route.c):

        /* Check for the most weird martians, which can be not detected
           by fib_lookup.
         */

        if (ipv4_is_multicast(saddr) || ipv4_is_lbcast(saddr) ||
            ipv4_is_loopback(saddr))
                goto martian_source;

То есть запрещается маршрутизации мультикаста, броадкаста и loopback. В fib_lookup ещё рубятся пакеты с src-адресом сетевого интерфейса. И всё, проверок на «серые» (частные) адреса нет.

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