我正在设置一个新路由器,它实际上允许我更改 IPV4 和 IPV6 DNS 服务器。我正在添加广告卫士 DNS对于两者来说,设置 IPV4 完全没有问题,因为我过去在需要时已经做过几次了。然而,当我开始为 IPV6 添加 in 时,我发现最后两个框仅包含 3 个字符,而不是像其他所有字符一样包含 4 个字符。换句话说,AdGuard 的 IPV6 DNS 服务器如下所示:
2a00:5a60::ad1:0ff
2a00:5a60::ad2:0ff
现在,我知道“::”对于尽可能多的框来说与“0000”相同,直到添加新的地址号。因此,有 2 个带有数字的框2a00
,5a60
分别用于主服务器和辅助服务器。接下来是 4 盒0000
。但接下来的部分我不确定我是否理解,最后两个框包含ad1:0ff
和ad2/0ff
。
输入这些 IPV6 号码时,是否应该在只有 3 位数字的方框前面添加一个额外的“0”?我应该让它们保持原样,只保留 3 位数字而不是 4 位吗?目前我只是告诉我的路由器使用 ISP 的 IPV6,但我肯定想切换到 AdGuard,因为它可以阻止许多不同的烦恼。
您能提供的任何帮助都会很棒!多谢!
答案1
根据RFC 4291 第 2.2 节您可以通过以下方式缩短任何包含零的地址:
可以删除整个零字符串,您只能执行一次。
1234:5678:0000:0000:0000:0000:0000:abcd 1234:5678::abcd
可以去掉4个零,只留下一个零。
1234:0000:5678:0000:abcd:0000:ef00:0000 1234:0:5678:0:abcd:0:ef00:0
可以删除前导零
1234:000a:000b:000c:000d:000e:000f:0000 1234:a:b:c:d:e:f:0
RFC 的关键引用:
请注意,不必在各个字段中写入前导零,但每个字段中必须至少有一个数字。
因此从技术上讲,只要每个字段中至少有 1 个十六进制数字,您就可以省略最多任何前导零,但整个字段只有零的例外情况(它们可以缩写为::
)。因此 AdGuard 可以省略 1 个零或两个零。两者都是有效的缩写。正如用户 JdeBP 指出的那样,AdGuard 使用了一种域名黑客“出现‘leet’并使其 DNS 服务器 IPv6 地址在其 doco 中的最后两个词中读作‘ad off’和‘bad off’”。
因此,在您的情况下,完整地址是:
2a00:5a60:0000:0000:0000:0000:0ad1:00ff
2a00:5a60:0000:0000:0000:0000:0ad2:00ff
并且可以缩短为:
2a00:5a60::ad1:ff
2a00:5a60::ad2:ff
然而,正如前面提到的,他们希望它显示为“广告关闭”。