Linux ネットワーキング

最終更新: 2026-06-17 09:53:22 +0800 +0800
原文は英語で書かれています。あなたはAI翻訳版を読んでいます。

Linux は、ネットワーク名前空間を認識するインターフェースを通じてネットワーク状態を公開します。Linux 2.6.25 以降、 /proc/net は /proc/self/net への互換性シンボリックリンクであるため、読み取りを行うプロセスの ネットワーク名前空間を示します。現在のツールは通常、procfs を解析する代わりに Netlink を使用します。

IPv4 転送情報ベース(FIB)は、パケットの送信先を決定します。 /proc/net/route はその歴史的なビューです。一方、ip route は Netlink を通じてカーネルに問い合わせ、 カーネルの設定を変更します。Netlink はメッセージ指向ソケットのファミリーであり、新しいシステムコールを 追加せずに、ユーザー空間からカーネルサブシステムを設定および検査できるようにします。 ルーティング、リンク、アドレス、近隣、トラフィック制御、Netfilter はすべてこれを使用します。

Netfilter と iptables #

Netfilter は、ネットワークスタックにおけるパケット処理フックを提供します。iptables は IPv4 用の 従来のユーザー空間ルール管理ツールです(IPv6 には ip6tables を使用します)。現在のシステムでは一般に nftables が使用されますが、その互換性レイヤーは引き続き iptables 構文を受け付けることができます。

重要な iptables テーブルは次のとおりです。

  • filter はデフォルトのフィルタリングテーブルで、INPUT、FORWARD、OUTPUT チェーンを持ちます。
  • nat は接続の最初のパケットに対してアドレスまたはポートの変換を行い、PREROUTING、INPUT、 OUTPUT、POSTROUTING チェーンを持ちます。
  • mangle は複数のフックで、特殊なパケットフィールドを変更します。
  • raw はコネクション追跡より前に実行され、NOTRACK によってトラフィックを除外できます。
  • security は filter テーブルの後に強制アクセス制御ラベルを適用し、SELinux および関連する Linux Security Module ポリシーに使用されます。

ルールはチェーンの順序に従って評価されます。INPUT はローカルソケット宛てのパケットに適用され、 FORWARD はルーティングされたトラフィックに、OUTPUT はローカルで生成されたパケットに適用されます。 コネクション追跡により、後続のパケットはそのフローに対して決定された処理に従うことができます。

コメント

GitHub で閲覧・コメントする(投稿にはログインが必要です)