iptables
。私はIptablesのマニュアルを読んで、チェーン、テーブル、フック、ルール、ターゲットなどいくつかの基本的な概念を理解しました。 Linuxエコシステムでは、iptablesはカーネルのnetfilterパケットフィルタリングフレームワークとインターフェースする広く使用されているファイアウォールツールです。route table
。 Linuxには別のテーブルがありますroute table
。
私はそれらの間の関係を把握し、それらを大きな絵に収めようとします。
以下は、2つのステップで構成されたiptablesプロセスを示す素晴らしい図ですroute
。カーネルはどの段階で「ルーティングテーブル」を使用しますか?
引用する
- DigitalOcean:IptablesおよびNetfilterアーキテクチャの詳細な分析
- 私はこの質問を読んだ」StackOverflow:iptableとルーティングの違いは何ですか?「と言いますが、私の質問に対する答えはありません。
ベストアンサー1
iptables は、次のいずれかを実行して、パケットの内容またはパケットのアドレス指定に基づいてパケットに応答する方法を決定します。
- フィルタ:パケットを無視、拒否、または承認(ファイアウォール)
- mangle: NAT 書き換えを含むパケット変更
図に示すように、各ルーティングステップの前後に適切なiptables(青色)が参加できます。
ルーティングテーブルは、ヘッダのアドレスに完全に基づいてパケットがどこに行くべきかを決定します。
- 入力パスは、ローカル(iptables INPUTテーブルへ)または転送するか(iptables FORWARDテーブル)かを決定します。対応するIPテーブルが空の場合、またはテーブルがパケットを受け入れると、パケットはそれぞれ受信アプリケーションに送信されます(転送が有効になっている)が出力パスに送信されます。
- 出力パスは、転送されたパケットとアプリケーションから送信されたパケットを取得します。次に、パケットを送信するネットワークインターフェイスと宛先ホスト(そのインターフェイスと同じネットワーク上)または外部ルータに直接送信するかどうかを決定します。
- 「ローカルプロセス」とマークされたボックスは、ルーティングフェーズではありませんが、パケットを受信したり新しいパケットを送信したりするシステムのローカルアプリケーション(潜在的に関連していない2つのタスク)を示します。
再公開するには追加の説明が必要な場合があります。 Linuxシステムへの転送が有効になっていると、ルーターのように動作します。通常、これは複数のネットワークインターフェイスがあることを意味し、ローカルシステムに向かうことなくパケットが受信したインターフェイスとは異なるインターフェイスのネットワークに向かうパケットを受信できます。イーサネットでは、各パケットにはイーサネット(LAN)アドレスと送信元および宛先IPアドレスがあります。ルータのイーサネットアドレスと WAN IP アドレスをそれぞれの宛先アドレスに入力して、パケットを WAN アドレスに送信できます。その後、ルータ(おそらく他のLinuxボックス)はルーティングテーブルを介してパケットを実行し、パケットを送信する次のネットワークを決定します。