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
タスクが発生する場所を定義し、どのタスクを実行できるかを決定する方法でアイデア/アーキテクチャを設定することが正しいかどうか疑問に思います。また、カーネルにも重要ですか、それともユーザーが発生する可能性のある処理タイプをグループ化できるようにするために存在しますか?iptables
chains
tables
tables
iptables
答え1
キーは、テーブルが次のようにグループ化されていることです。設計のための計画。フィルタリングに関するすべてのルールがここにあり、すべてのNATルールがここにあります。チェーンは一連のルールであり、デフォルトではチェーンはパケットパスの特定のポイントを通過します。
理論的には、NATテーブルなどをフィルタリングするルールを追加できます。ただし、フロントエンドはこれを防ぎ、次のメッセージを表示します。
「nat」テーブルはフィルタリングには使用されないため、DROPは禁止されています。
私の考えはチェーンに関するもので、テーブルはチェーンを整理するのに役立つように後で検討しました。一時的で伝統的なユーザーインターフェイスデザインなので混乱しています。