Назад | Перейти на главную страницу

Есть ли способ фильтровать пакеты (например, по iptables) после завершения маршрутизации?

Я хочу отбросить определенный пакет, предназначенный для ip_address ПОСЛЕ того, как он достигнет цепочки POSTROUTING. Однако для iptables таблица "nat" не может использоваться для фильтрации, поэтому следующее не работает:

iptables -t nat -A POSTROUTING -d ip_address -j DROP

Так как это сделать? Если iptables не может этого сделать, есть ли альтернативы? Пожалуйста, порекомендуйте. Спасибо.

Маршрутизация завершается непосредственно перед выполнением цепочек постмаршрутизации (отсюда и название).

Я думаю, что то, как вы хотите выполнить любую задачу, которую вы пытаетесь выполнить, - неправильный, потому что это невозможно. Однако любые разумные предикаты фильтрации обычно должны существовать до постмаршрутизации. Вы должны иметь возможность применять те же критерии фильтрации, которые в противном случае привели бы к изменению постмаршрутизации, которую вы хотите отфильтровать, к правилу пересылки или вывода.

На этой диаграмме показано, как пакеты проходят через iptables:

Эта отличная диаграмма до сих пор сохраняется и происходит от http://xkr47.outerspace.dyndns.org/netfilter/packet_flow/.