Уважаемые,
интересуют пути прохождения пакетов в системе 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Почему так? В чем здесь разница.
Спасибо.
советую изучить руководство по iptables
http://www.opennet.me/docs/RUS/iptables/
>советую изучить руководство по iptables
>http://www.opennet.me/docs/RUS/iptables/Изучал,но нужной информации не нашел.
Если вы знаете в какой главе данного руководства есть ответ, подскажите...
>Изучал,но нужной информации не нашел.
>Если вы знаете в какой главе данного руководства есть ответ, подскажите...Глава 3. Порядок прохождения таблиц и цепочек
В разделе 3.1 есть диаграмма, показывающая порядок прохождения цепочек. Там важно учитывать иерархию, цепочки с одним именем могут быть и в filter, и в mangle
Во-первых, я не знаю как оно в -t mangle, а в -t nat "попадают" только пакеты с contrack статусом NEW, а для следующих за ними ESTABLISHED применяется то же "решение", что для первого пакета соединения~~~По идее, echo-reply -- это ESTABLISHED, а request - NEW.
Вставь свои правила (?? они без "назначения" -- ты просто смотришь счётчики?) в начало -t filter -- мобть оно?
>Во-первых, я не знаю как оно в -t mangle, а в -t
>nat "попадают" только пакеты с contrack статусом NEW, а для следующих
>за ними ESTABLISHED применяется то же "решение", что для первого пакета
>соединения~~~
>
>По идее, echo-reply -- это ESTABLISHED, а request - NEW.Действительно, скорее всего надо копать будет в сторону conntrack...
>Вставь свои правила (?? они без "назначения" -- ты просто смотришь счётчики?)
Да, просто смотрю счетчики.
>в начало -t filter -- мобть оно?
А зачем в таблицу filter ведь пакеты не транзитные вроде?
>А зачем в таблицу filter ведь пакеты не транзитные вроде?Не путайте цепочку FORWARD с таблицей filter. Таблица filter существует (может существовать), как в FORWARD, так и в INPUT и OUTPUT.
>>А зачем в таблицу filter ведь пакеты не транзитные вроде?
>
> Не путайте цепочку FORWARD с таблицей filter. Таблица filter существует (может
>существовать), как в FORWARD, так и в INPUT и OUTPUT.Извините, больше путать не буду...
>Таблица filter существует (может существовать), как в FORWARD, так и в INPUT и OUTPUT.Мне казалось :) , что с "кто на ком стоял" дело обстоит ровно наоборот. Но, впрочем, не путайте, так не путайте. :)))
>>в начало -t filter -- мобть оно?
>А зачем в таблицу filterПроверить версию, что "не все пакеты", в "-t filter" ["провернено"] [про]ходят все пакты. Ко всё тому же вопросу "почему так"~~~
> ведь пакеты не транзитные вроде?
В -t filter есть [свои] цепочки INPUT, OUTPUT, FORWARD. "Транзитные" относится только к последней. Компроне ву?
>Почему так? В чем здесь разница.в iptables правила просматриваются по порядку, поэтому порядок правил имеет значение. При первом совпадении остальные правила в данной цепочке уже не будут просматриваться