Squid は通常の IP ルートが持たない情報を使ってリクエストを分類できます。対応する Linux ビルドでは、tcp_outgoing_mark が高速 ACL に基づいてサーバー側の Netfilter マークを設定します。

acl selected_sites dstdomain -n .vendor.example
tcp_outgoing_mark 0x20 selected_sites
tcp_outgoing_mark 0x00 all

一致する Linux ポリシールールは、その後 fwmark 0x20 を使って既に設定済みのルーティングテーブルを選べます。テーブルには正しいルートと到達可能なネクストホップが依然として必要です。Squid のディレクティブはそれらを作成しません。

このマークはローカルのルーティングメタデータです。IP パケットで運ばれる DSCP や TOS フィールドとは異なり、送信元 IP を選ぶ tcp_outgoing_address とも別物です。

文書化されたディレクティブは Linux のパケットマークとケーパビリティのサポートを必要とし、高速 ACL のみを受け付けます。Squid 7 および以前に列挙されたリリースで利用でき、Squid 8 では使えません。

ポリシーは実際の外向き接続を中心に設計してください。再利用された TCP 接続は、別の HTTP リクエストが使ったというだけで新しい接続になるわけではありません。クライアント向けの戻り経路と、マークなしトラフィックの経路も設計に含めます。

関連記事