URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 87910
[ Назад ]

Исходное сообщение
"Пути прохождения пакетов netfilter (iptables)"

Отправлено Alexovi4 , 20-Янв-10 15:23 
Уважаемые,
интересуют пути прохождения пакетов в системе netfilter при взаимодействии двух Linux-машин из одной подсети (например со след. адресами: 1.1.1.1(eth1) и 1.1.1.2 (eth2)).
Хочу разобраться, как работает ядро - нужно для написания правил маркировки пакетов с последующей настройкой маршрутизации на шлюзе.
  _________                  _________
|    #1           |                  |    #2        |
| 1.1.1.1      | < - -- - - > | 1.1.1.2      |
|_________|                  |_________|

1 ситуация)
При отправке пакетов с узла 1 на узел 2 (ping), пакеты попадают в оба правила, прописанные на узле 1:
1     iptables -t mangle -A OUTPUT -o eth1
2     iptables -t mangle -A OUTPUT -s 1.1.1.1
Получаем, что по рисунку "пути прохождения пакетов в netfilter" (http://upload.wikimedia.org/wikipedia/ru/a/ad/Netfilter-diag... эти пакеты после этапа маршрутизации попадают в цепочку OUTPUT (образуются на локальной машине), и в этой цепочке уже есть имя выходного интерфейса и адрес отправителя (попадают и в 1е,и в 2е правило).
2 ситуация)
При отправке пакетов с узла 2 на узел 1 (ping), на узле 1 происходит следующее.
Пакеты попадают в цепочку INPUT, далее происходит формирование Echo reply,маршрутизация, но при их отправке пакеты (Echo reply) уже будут попадать только в одно правило:
1      iptables -t mangle -A OUTPUT -s 1.1.1.2, где пакеты выбираются по адресу источника, а уже в следующее правило, где просматривается выходящий интерфейс - нет:
2     iptables -t mangle -A OUTPUT -s 1.1.1.1

Почему так? В чем здесь разница.

Спасибо.


Содержание

Сообщения в этом обсуждении
"Пути прохождения пакетов netfilter (iptables)"
Отправлено zerot , 20-Янв-10 15:49 
советую изучить руководство по iptables
http://www.opennet.me/docs/RUS/iptables/

"Пути прохождения пакетов netfilter (iptables)"
Отправлено Alexovi4 , 20-Янв-10 16:00 
>советую изучить руководство по iptables
>http://www.opennet.me/docs/RUS/iptables/

Изучал,но нужной информации не нашел.
Если вы знаете в какой главе данного руководства есть ответ, подскажите...


"Пути прохождения пакетов netfilter (iptables)"
Отправлено Вася , 20-Янв-10 17:17 
>Изучал,но нужной информации не нашел.
>Если вы знаете в какой главе данного руководства есть ответ, подскажите...

Глава 3. Порядок прохождения таблиц и цепочек


"Пути прохождения пакетов netfilter (iptables)"
Отправлено zerot , 21-Янв-10 12:13 
В разделе 3.1 есть диаграмма, показывающая порядок прохождения цепочек. Там важно учитывать иерархию, цепочки с одним именем могут быть и в filter, и в mangle


"Пути прохождения пакетов netfilter (iptables)"
Отправлено Andrey Mitrofanov , 20-Янв-10 16:41 
Во-первых, я не знаю как оно в -t mangle, а в -t nat "попадают" только пакеты с contrack статусом NEW, а для следующих за ними ESTABLISHED применяется то же "решение", что для первого пакета соединения~~~

По идее, echo-reply -- это ESTABLISHED, а request - NEW.

Вставь свои правила (?? они без "назначения" -- ты просто смотришь счётчики?) в начало -t filter -- мобть оно?


"Пути прохождения пакетов netfilter (iptables)"
Отправлено Alexovi4 , 20-Янв-10 16:55 
>Во-первых, я не знаю как оно в -t mangle, а в -t
>nat "попадают" только пакеты с contrack статусом NEW, а для следующих
>за ними ESTABLISHED применяется то же "решение", что для первого пакета
>соединения~~~
>
>По идее, echo-reply -- это ESTABLISHED, а request - NEW.

Действительно, скорее всего надо копать будет в сторону conntrack...

>Вставь свои правила (?? они без "назначения" -- ты просто смотришь счётчики?)

Да, просто смотрю счетчики.

>в начало -t filter -- мобть оно?

А зачем в таблицу filter ведь пакеты не транзитные вроде?


"Пути прохождения пакетов netfilter (iptables)"
Отправлено Вася , 20-Янв-10 17:19 
>А зачем в таблицу filter ведь пакеты не транзитные вроде?

Не путайте цепочку FORWARD с таблицей filter. Таблица filter существует (может существовать), как в FORWARD, так и в INPUT и OUTPUT.



"Пути прохождения пакетов netfilter (iptables)"
Отправлено Alexovi4 , 20-Янв-10 17:36 
>>А зачем в таблицу filter ведь пакеты не транзитные вроде?
>
> Не путайте цепочку FORWARD с таблицей filter. Таблица filter существует (может
>существовать), как в FORWARD, так и в INPUT и OUTPUT.

Извините, больше путать не буду...


"Пути прохождения пакетов netfilter (iptables)"
Отправлено Andrey Mitrofanov , 20-Янв-10 18:20 
>Таблица filter существует (может существовать), как в FORWARD, так и в INPUT и OUTPUT.

Мне казалось :) , что с "кто на ком стоял" дело обстоит ровно наоборот. Но, впрочем, не путайте, так не путайте. :)))


"Пути прохождения пакетов netfilter (iptables)"
Отправлено Andrey Mitrofanov , 20-Янв-10 18:18 
>>в начало -t filter -- мобть оно?
>А зачем в таблицу filter

Проверить версию, что "не все пакеты", в "-t filter" ["провернено"] [про]ходят все пакты. Ко всё тому же вопросу "почему так"~~~

> ведь пакеты не транзитные вроде?

В -t filter есть [свои] цепочки INPUT, OUTPUT, FORWARD. "Транзитные" относится только к последней. Компроне ву?


"Пути прохождения пакетов netfilter (iptables)"
Отправлено ALex_hha , 21-Янв-10 00:54 
>Почему так? В чем здесь разница.

в iptables правила просматриваются по порядку, поэтому порядок правил имеет значение. При первом совпадении остальные правила в данной цепочке уже не будут просматриваться