MAC ベースのプロキシルールは、Squid サーバーの隣にあるデスクトップでは機能しても、別のサブネットにある同じ構成のデスクトップでは失敗することがあります。ルーターはプロキシが観測できるものを変えてしまいます。

ARP はローカルリンク上で IPv4 の隣接ノードのリンク層アドレスを解決します。元の Ethernet アドレスをルーティングされた各ホップへ運ぶわけではありません。したがって、遠隔の経路で到達するクライアントは、Squid がその IP アドレスを見られるというだけでは、直接接続された隣接ノードと同等ではありません。

IPv4 の場合、Squid の ACL ドキュメントは MAC 検索を同一サブネット上のクライアントに限定し、該当するサポートを含むビルドを求めています。一致しない MAC ACL を綴り間違いとみなす前に、両方の条件を確認してください。

識別子は正しい境界で使う

直接接続されたクライアントに対しては、対応する MAC ルールでデバイス単位のネットワーク状態を記述できます。それでもそのデバイスを操作する人物を認証するものではありません。報告されたハードウェアアドレスを変更不可能にするものでもありません。

ルーターを越える場合は、プロキシ側で利用できる情報を使ってください。制御された送信元サブネット、認証済みのプロキシ ID、あるいは明示的に設計された信頼された ID 連携です。DHCP サーバーのリース表を読むのは追加の相関システムであり、ARP の到達範囲の拡張ではありません。

ルールを見直すときは、クライアントから Squid までの経路を描き、すべてのルーターに印を付けてください。そのうえで、導入済みのビルドが本当にその ACL と検索方式を支えているかを問います。この二つの確認は、同じルールにクライアントの MAC を貼り続けるよりはるかに多くを説明します。

関連記事