Squid 3.1 介绍dns_v4_first
查询和首先使用 DNS A 记录而不是 AAAA 记录的选项。这在 IPv6 与原生 IPv4 相比属于“二等公民”的情况下(即:6to4、6in4 或其他隧道)非常有用。
根据dns_v4_first
变更日志,但实际上删除了该选项,将其显示为“错误”且没有任何效果。文档没有提供任何线索,说明有哪些其他选项可以取代该选项,也没有提供任何解决方法。
我想知道是否有新的方法可以实现相同的功能,也许是使用一些新的或旧的指令,或者通过 DNS(BIND)和 Squid 设置的组合?完全停止使用 IPv6 当然也是一种选择,但并不是非常理想,就像恢复到所有较旧的 Squid 版本一样。
答案1
阅读 squid 5 发行说明可以发现,新的双栈行为是Happy Eyeballs 实施。
快乐眼球更新
Squid 现在在需要转发请求时立即使用收到的 IP 地址,而不是等待所有潜在的转发目的地都完全解析(即完成 IPv4 和 IPv6 域名解析)后才开始转发请求。
而不是服从dns_v4_first设置,IP 系列使用顺序现在主要由 DNS 响应时间控制:如果在 Squid 等待 IP 地址时 DNS AAAA 响应首先到来,则 Squid 将首先使用收到的 IPv6 地址。对于以前缓存的 IP,Squid 将首先尝试 IPv6 地址。为了控制 Squid 使用的 IP 地址系列,管理员应使用防火墙或 DNS 递归解析器配置。在规划配置更改时,请记住即将推出的 Happy Eyeballs 改进将有利于更快的 TCP 连接建立,从而减少 DNS 解析时间的影响。
在某些双栈网络上,竞争地址系列是一种很好的解决方法。
虽然 IPv6 可路由但性能不佳并不是一个好的体验。
- 改善 IPv6 连接
- 仅为对等缓存服务器添加 A DNS 名称
- 如果体验仍然不好,则配置递归解析器以删除 AAAA 记录