LINUX.ORG.RU
ФорумAdmin

Почему в POSTROUTING нельзя использовать input interface в качестве условия?

 , , ,


0

2

Вопрос для общего развития. Я понимаю почему в PREROUTING нет output interface, пакет еще не знает куда его направят. В forwarding и input можно использовать input interface, получается что маршрутизация не удаляет эту информацию, так почему в POSTROUTING она не попадает? Связано с тем, что мешается OUTPUT и FORWARDING трафик? Ну так могли добаить виртуальный интерфейс(local, cpu, thispc, ...) для трафика исходящего от локальных процессов, или просто игнорировать output трафик, но давать возможность для оставшегося фильтровать по интерфейсу. Или что-то еще?

Перемещено Shaman007 из talks

Deleted

Возможно потому, что в этом нет необходимости. Т.к. любые действия, которые ты хочешь выполнить по условию input interface в POSTROUTING, можно выполнить иначе, а раз так, то зачем тратить память на хранение инфы о input interface для каждого пакета в POSTROUTING. Также специалисты по коду ядра возможно приведут более предметные причины.

rumgot ★★★★★
()

Ты можешь ставить метки с помощью mangle на любом этапе, а потом использовать их в POSTROUTING для анализа.

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

с метками знаю, но мне не для практических целей а для общего понимания

Deleted
()

Потому что уже прошло FORWARD

targitaj ★★★★★
()

Потому что пакет уже находится как бы на выходном интерфейсе(цель -j ROUTE выпилили не зря). Сделано это в том числе для того чтобы на эту архитектуру можно было всякие offload-ы накладывать(что и делают некоторые вендоры коммерческих дистрибутивов для роутеров)

Pinkbyte ★★★★★
()

Почитайте Iptables Tutorial, есть русский перевод версии 1.1.19, например на опеннете. Там в частности есть чертеж, как идут пакеты. В цепочку POSTROUTING пакет может попадать не только из входного интерфейса, а например, и из локальной системы (процесса), поэтому -i eth0 указывать не имеет никакого смысла.

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

а например, и из локальной системы (процесса), поэтому -i eth0 указывать не имеет никакого смысла.

я-же в оригинальном посте про это написал, ну да могут но что мешает пакеты пришедшие не из output проверять -i

Deleted
()
Ответ на: комментарий от Pinkbyte

Вопрос ТС кстати действительно интересный, с одной стороны и не надо (как написали выше и метками можно обойтись) с другой стороны действительно почему и не оставить?

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