netfilter/iptablesのチェーンとテーブルの理解

netfilter/iptablesのチェーンとテーブルの理解

netfilter_ipv4.h私が理解したところ、Linuxカーネルはファイル内のIPv4パケットフローに対して5つのフックポイントを定義しています。

/* IP Hooks */
/* After promisc drops, checksum checks. */
#define NF_IP_PRE_ROUTING   0
/* If the packet is destined for this box. */
#define NF_IP_LOCAL_IN      1
/* If the packet is destined for another interface. */
#define NF_IP_FORWARD       2
/* Packets coming from a local process. */
#define NF_IP_LOCAL_OUT     3
/* Packets about to hit the wire. */
#define NF_IP_POST_ROUTING  4

..netfilter_ipv6.h同じ説明によると、IPv6でも同じようです。

/* IP6 Hooks */
/* After promisc drops, checksum checks. */
#define NF_IP6_PRE_ROUTING  0
/* If the packet is destined for this box. */
#define NF_IP6_LOCAL_IN     1
/* If the packet is destined for another interface. */
#define NF_IP6_FORWARD      2
/* Packets coming from a local process. */
#define NF_IP6_LOCAL_OUT        3
/* Packets about to hit the wire. */
#define NF_IP6_POST_ROUTING 4

netfilterタスクが発生する場所を定義し、どのタスクを実行できるかを決定する方法でアイデア/アーキテクチャを設定することが正しいかどうか疑問に思います。また、カーネルにも重要ですか、それともユーザーが発生する可能性のある処理タイプをグループ化できるようにするために存在しますか?iptableschainstablestablesiptables

ベストアンサー1

キーは、テーブルが次のようにグループ化されていることです。設計のための計画。フィルタリングに関するすべてのルールがここにあり、すべてのNATルールがここにあります。チェーンは一連のルールであり、デフォルトではチェーンはパケットパスの特定のポイントを通過します。

理論的には、NATテーブルなどをフィルタリングするルールを追加できます。ただし、フロントエンドはこれを防ぎ、次のメッセージを表示します。

「nat」テーブルはフィルタリングには使用されないため、DROPは禁止されています。

私の考えはチェーンに関するもので、テーブルはチェーンを整理するのに役立つように後で検討しました。一時的で伝統的なユーザーインターフェイスデザインなので混乱しています。

おすすめ記事