The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Растолкуйте про роутинг - к 127.0.0.1 записан через eth0."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Firewall, Фильтрация пакетов / Linux)
Изначальное сообщение [ Отслеживать ]

"Растолкуйте про роутинг - к 127.0.0.1 записан через eth0."  +/
Сообщение от Artif on 15-Июл-12, 22:36 
Исходящие пакеты, не транзитные, именно локально созданные, браузером, в таблице nat перенаправляются в локальный прокси 127.0.0.1:8080 и локальный DNS 127.0.0.1:53:

iptables -t nat -A OUTPUT ! -o lo -p udp --dport 53 -m udp -j REDIRECT --to-ports 53
iptables -t nat -A OUTPUT ! -o lo -p tcp                   -j REDIRECT --to-ports 8080

В логах вижу (логгирует из filter, OUTPUT; это уже после обработки в таблице nat), что идёт пакет на 127.0.0.1:8080 и через eth0 вместо петли:


IN= OUT=eth0 SRC=192.168.0.2 DST=127.0.0.1 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=49221 DF PROTO=TCP SPT=36551 DPT=8080 WINDOW=2641 RES=0x00 ACK FIN URGP=0
IN= OUT=eth0 SRC=192.168.0.2 DST=127.0.0.1 LEN=89 TOS=0x00 PREC=0x00 TTL=64 ID=34996 DF PROTO=TCP SPT=59256 DPT=8080 WINDOW=2641 RES=0x00 ACK PSH URGP=0
IN= OUT=eth0 SRC=192.168.0.2 DST=127.0.0.1 LEN=58 TOS=0x00 PREC=0x00 TTL=64 ID=40181 PROTO=UDP SPT=35527 DPT=53 LEN=38

Пакет попадает в прокси, оттуда уже идёт наружу, всё работает.
Как объяснить, что интерфейс eth0?

Для ясности, вот диаграмма, как пакеты идут по цепям:
http://kray.info/images/KernelPacketTravelingDiagram.png

Выходит, последовательность такая: пакет с внешним адресом был направлен в eth0,
в таблице nat был переписан адрес и порт назначения, но не менялся интерфейс,
в таблице filter пакет был записан в журнал,
где-то после снова выполнено направление в петлю, вместо eth0.

Где, когда происходит перенаправление в loopback? За пределами Netfilter, при обработке согласно таблице маршрутов?
А имеет смысл в iptables анализировать интерфейс, если известно, что имел место NAT?

Я правильно понял последовательность?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Растолкуйте про роутинг - к 127.0.0.1 записан через eth0."  +/
Сообщение от Andrey Mitrofanov on 16-Июл-12, 12:50 
> iptables -t nat -A OUTPUT ! -o lo -p udp --dport 53 -m udp -j REDIRECT --to-ports 53

(1)

> Выходит, последовательность такая: пакет с внешним адресом был направлен в eth0,
> в таблице nat был переписан адрес и порт назначения, но не менялся
> интерфейс,
> Где, когда происходит перенаправление в loopback? За пределами Netfilter, при обработке
> согласно таблице маршрутов?

При dnat-е меняется dest-ip --> пакет может роутиться повторно.

"""Обратите внимание также на тот факт, что пакеты, с адресом назначения на брандмауэр, могут претерпеть изменение сетевого адреса назначения (DNAT) в цепочке PREROUTING таблицы nat и соответственно дальнейшая маршрутизация в первой точке будет выполняться в зависимости от произведенных изменений. .. https://www.opennet.ru/docs/RUS/iptables/#TRAVERSINGOFTABLES

(1) Обычно перенаправление (DNAT в частности) делают в NAT/PREROUTING -- видимо, как раз чтоб не гонять роутинг и все таблицы по два раза.

+++Мозголомные подробности "другого" табличинга: http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру