27.2. 接続追跡の概要

Netfilter フレームワークは、ファイアウォールで外部ネットワークからのパケットをフィルタリングします。パケットが到着すると、Netfilter は接続追跡エントリーを割り当てます。このエントリーは、Netfilter マークを格納し、メモリーテーブル内の接続状態の情報を追跡します。新しいパケットタプルは、既存のエントリーにマップされます。パケットタプルが既存のエントリーにマップされない場合、パケットは、同じ接続のパケットをグループ化する新しい接続追跡エントリーを追加します。たとえば、FTP 接続のすべてのパケットが同じように動作するようにするには、接続追跡エントリーを FTP 接続に割り当てます。

tc は、qdisc (ネットワークデバイスが送信する前にすべてのトラフィックをキャッチするためのカーネル設定のキューイング規則) を使用してパケットスケジューラーを設定するトラフィックコントローラーユーティリティーです。tc qdisc コマンドは、同じ接続に属するパケットの帯域幅レートを制限します。

tc ユーティリティーには、connmark 機能を使用して、接続追跡マークからさまざまなフィールドにデータを取得する接続追跡情報 (ctinfo) モジュールがあります。パケットマーク情報を格納するために、ctinfo モジュールは Netfilter マークと接続状態情報を skb にコピーします。skb とは、ソケットバッファー (skb) マークメタデータフィールドを表します。

物理メディアを介した送信の場合には、パケットはそのメタデータを失います。パケットがそのメタデータを失う前に、ctinfo モジュールは Netfilter マーク値をパケットの IP フィールドの Diffserv コードポイント (DSCP) の特定の値にマッピングしてコピーします。

関連情報

  • tc (8) および tc-ctinfo (8) の man ページ