我有一个虚拟专用服务器,它有一个 IPV4 地址和一系列 IPV6 地址,并且可以选择添加一百个 IPV6 地址。
配置:
操作系统:
Debian 11
IPV4:
一个可路由的公共 Internet IPV4 地址
IPV6:
一个可路由的公共互联网 IPV6 地址和另外两个 ::1,::2,::3 到接口文件,它们可以从互联网访问
DNS 和域:
我有一个域名(XXXX.com)和 DNS 提供商上的记录:A记录IPV4(XXXX)地址和三个高级记录三个IPV6服务器上的地址。
当用户在浏览器或终端上输入 XXXX.com 时,DNS 响应包括所有 IPV4 和 IPV6 地址。客户端如何决定应该使用哪个地址?
优先顺序是什么?
有标准或算法吗?我可以设置全部一百个,这样如果某些 IPV6 地址被阻止,它仍然可以访问吗?
我已看到服务器上的数据包,它始终使用第三个 IPv6(例如 ::3)。它如何决定使用哪一个?如果它在其路由表上(IP-6路由没有显示第三个 IPV6(如 ::3),有没有办法将其随机化(每个连接使用随机接口)?
答案1
- 仅支持 IPv4 的客户端仅查找 A 记录。
- 同样,仅支持 IPv6 的客户端会专门查找 AAAA 记录。
- 双栈客户端同时请求两者,并且可能优先考虑其中一个或者同时尝试两者(感谢@dave)。
答案2
除了@Zac67的回答之外,还会向客户端返回一个地址列表。理论上,他们可以优先考虑并浏览整个列表,看看哪些有效。实际上,许多软件只尝试列表中的第一个,如果失败,则中止而不尝试其他。