Squid 的 MAC 规则能走多远?
了解 Squid 在本地链路上能从客户端 MAC 地址得知什么,以及跨过路由器后什么会消失。
基于 MAC 的代理规则可能对 Squid 服务器旁边的台式机有效,而对另一子网上其他方面完全相同的台式机失效。路由器改变了代理能够观察到的东西。
ARP 在本地链路上解析 IPv4 邻居的链路层地址。它不会把原始以太网地址带过每一个被路由的跳。因此,远程路由到达的客户端,并不会仅仅因为 Squid 能看到它的 IP 地址,就等同于直连邻居。
对于 IPv4,Squid 的 ACL 文档把 MAC 查询限制在同一子网内的客户端,并要求构建版本具备相应支持。在把不匹配的 MAC ACL 当作拼写错误之前,请先核实这两个条件。
在正确的边界上使用标识符
对于直连客户端,受支持的 MAC 规则可以描述设备层面的网络状况。它仍然不会认证操作该设备的人。也不会让上报的硬件地址无法更改。
跨过路由器时,请使用代理端可用的信息:受控的源子网、经过认证的代理身份,或明确设计的可信身份集成。读取 DHCP 服务器的租约表是一种额外的关联系统,而不是 ARP 覆盖范围的延伸。
审查规则时,画出从客户端到 Squid 的路径,并标出每一个路由器。然后问:已安装的构建是否真的支持该 ACL 和查询模式。这两项检查所能解释的问题,远多于反复把客户端的 MAC 粘贴到同一规则里。