DNS4EU – 有点欧盟,有点安全,有点无意义
2025年6月,关于"欧洲正在构建自己的互联网"或"欧盟正将互联网从美国控制中夺回"的消息在各类技术门户网站传播。我指的是新创建的DNS4EU公共项目,这是一个专为欧盟公民设计的DNS解析器,旨在确保速度、安全性和隐私保护。但事实真的如此吗?这些乐观的标题与现实相符吗?至少在恶意域名防护和项目的欧盟属性方面,我有不同看法。
服务器地址和不同变体
DNS变体 | 地址 |
---|---|
无过滤 - 无拦截 | 86.54.11.100 / 86.54.11.200 2a13:1001::86:54:11:100 / 2a13:1001::86:54:11:200 DoH: https://unfiltered.joindns4.eu/dns-query DoT: unfiltered.joindns4.eu |
防护版 | 86.54.11.1 / 86.54.11.201 2a13:1001::86:54:11:1 / 2a13:1001::86:54:11:201 DoH: https://protective.joindns4.eu/dns-query DoT: protective.joindns4.eu |
防护版+儿童保护 | 86.54.11.12 / 86.54.11.212 2a13:1001::86:54:11:12 / 2a13:1001::86:54:11:212 DoH: https://child.joindns4.eu/dns-query DoT: child.joindns4.eu |
防护版+广告拦截 | 86.54.11.13 / 86.54.11.213 2a13:1001::86:54:11:13 / 2a13:1001::86:54:11:213 DoH: https://noads.joindns4.eu/dns-query DoT: noads.joindns4.eu |
防护版+儿童保护&广告拦截 | 86.54.11.11 / 86.54.11.211 2a13:1001::86:54:11:11 / 2a13:1001::86:54:11:211 DoH: https://child-noads.joindns4.eu/dns-query DoT: child-noads.joindns4.eu |
此外:
- 不支持DNSCrypt,因此实用的匿名DNSCrypt无法使用
- 也不支持Oblivious DNS over HTTPS(尽管这仍是实验性技术,Cloudflare早在2020年就已支持)
- DNS over QUIC于2023年宣布,但目前仍不支持
虽然列表中的后两项技术可被视为"锦上添花"或冗余,但在一个300万欧元的项目中缺乏DNSCrypt支持有点令人失望。
目录
- DNS4EU有多快?
- 它有多安全?
- 插曲:RIPE Atlas - 网络版的Flightradar24
- DNS4EU有多少欧盟成分?
- DNS4EU是否匿名?
- 总结
- 那么我应该选择哪个DNS?
DNS4EU有多快?
如果谈论家庭使用此类服务,我对DNS速度测试持怀疑态度。响应时间对普通用户重要吗?我很确定用户不会注意到30毫秒和300毫秒之间的差异。解析的IP地址会被操作系统和浏览器缓存,因此DNS服务器只是偶尔(根据TTL)被查询,而不是每次访问网站时都查询。
然而,为了全面处理这个话题,除了测量DNS查询本身的时间外,我还进行了ping和traceroute测量。这些测量为了解该企业的基础设施提供了见解,并检查了其稳定性。像某些人那样每次从一个位置运行此类实验毫无意义。这个任务需要僵尸网络,但必须是合法的。
这时RIPE Atlas就派上用场了,这是一个用于在互联网上进行各种测量的全球研究探针网络,任何感兴趣的人都可以使用。使用blaeu工具和可以要求DNS提供ID(又称NSID,根据提议的RFC 5001)的事实,很容易瞄准至少部分DNS4EU基础设施并"绕过"任播。下面,我使用来自全球的1000个探针,查询DNS4EU的IPv4来解析域名z3s.pl并显示相应节点的NSID。
如您所见 - 任播起作用了,因为从一个IP地址有14个不同位置的节点响应。它们的数量和位置也在ENISA网站上的材料中得到确认。看起来欧洲的"覆盖范围"相当不错,在其境内访问服务应该没有问题。
让我们进一步检查IPv6解析器变体的情况。
这次找到了12个不同的节点。斯德哥尔摩和索菲亚的节点可能不参与IPv6流量,或者Atlas探针未能到达它们。这只是简单观察。
可以重复测试,将探针位置缩小到波兰境内的那些。这会使探针只与华沙节点通信吗?不完全是这样。
华沙节点在响应数量上跃居首位,而较远的节点则完全退出排名。有趣的是,布拉格和阿姆斯特丹也响应相当频繁。这可能是由于互联网提供商的路由,尽管DNS4EU的负载平衡机制可能也起了作用。从上图可以看出,即使是波美拉尼亚(北部)的探针也能访问布拉格。然而,无论哪个节点成功响应,几乎每次都非常快 - 大约30毫秒区域。
可以对IPv6变体进行相同的测试,它肯定有一天会取代IPv4。很快。相信我。
确实,支持IPv6的波兰探针数量很少,但它们也经常遇到捷克节点。尽管如此,响应时间仍然非常合理。
从进行的实验来看,在波兰境内,我们有很大机会到达华沙的节点,平均时间低于20毫秒。即使到达外国节点,仍然可以获得约25-50毫秒的合理时间,因此查询到达的地理位置不会导致性能下降。还值得回顾的是,DNS4EU的基础设施完全设在欧洲。如果您带着这样设置的DNS环游世界,并在途中遇到数据包丢失,这种配置肯定会引起问题。
继续进行ping测试,从长期来看时间非常稳定。在我几天的测试中,没有记录到极其缓慢的响应或明显的延迟峰值。DNSPerf.com基于DigiCert PerfOps的数据也证实了这一点。
同样重要的是要记住,ping(ICMP回显)是一回事,而通过UDP进行的DNS查询时间是另一回事。这两个值不能直接比较,但大多一致。此外,有时解析器不知道查询的答案,必须查询更高级的服务器,或者存储的地址保存在不同的缓存层中 - 那么这些操作显然需要更多时间。您可以通过时间差异来判断解析器的行为,这可以通过例如dig工具测量,要求选定的DNS解析记录。对于进一步的测试,我已经使用连接到Orange Fiber(波兰)的单一机器,从该机器ping DNS4EU大约为11毫秒。
在查询不存在的.pl域名的测试中,我第一次等待响应大约30毫秒。应该预期第一次查询会较慢,因为每个解析器首先必须自己查询负责此TLD的DNS。后续请求已经解析得更快,这表明缓存运行良好。
查询新创建的.xyz子域名第一次大约需要90毫秒。然后响应被缓存,时间再次下降到大约10毫秒。
另一方面,Google.com的查询通常在10毫秒内完成。在这种情况下,我们可以确信Google地址由于其流行度将始终被缓存。
我还用dnsperf粗略测试了服务,尽管我将测试限制在每秒最多15个查询,持续12小时。我只想知道一系列查询是否会堵塞DNS,因为毕竟大多数网站同时从许多不同的域拉取额外内容。我根据Cloudflare Radar和Semrush的波兰网站受欢迎排名编制了一个测试域列表。但别担心,也包括像Facebook、Weather.com等全球网站。
Orange Fiber (RTT: 11 ms) | Google Cloud, europe-central2-c, Premium Network (RTT: 40 ms) | |
---|---|---|
平均 | 18.4 ms | 43.1 ms |
最小 | 11.8 ms | 40.0 ms |
最大 | 266.8 ms | 629.1 ms |
标准差 | 7.04 ms | 8.98 ms |
查询>100 ms | 176/648,000 | 570/648,000 |
从所有进行的测试来看,很明显,只要用户位于欧洲,DNS4EU确实非常快地解析域名。服务也非常稳定,因此速度的承诺可以视为已实现。
它有多安全?
DNS4EU的恶意网站过滤变体承诺"高级保护"和"主动区域威胁防护"。
项目网站还有一篇博客文章,指出波兰NASK(研究和学术计算机网络)作为威胁信息来源之一。
CERT Polska(波兰)在其网站上的条目也证实了这一点。
“然而,DNS4EU的优势之一将是通过在DNS级别快速拦截危险网站,有效防护针对欧盟公民的威胁。”
不幸的是,从下面进行的实验可以看出,DNS4EU没有(正确或完全)实施CERT Polska警告列表 - 拦截恶意域名的时间仍然高得荒谬,这基本上使此DNS的"防护"变体无用。
为了测试拦截恶意域名的速度,我编写了一个应用程序,在24小时内从CERT Polska警告列表下载新域名,然后循环检查它们是否(以及何时)被选定的DNS(在这种情况下是"防护解析")拦截。这非常重要,因为用于网络钓鱼或窃取资金的域名可能存活时间非常短,因此应立即拦截。我在不同日期重复了几次测试以确认,但结果始终保持相似。
基准小时 | 警告列表上的新域名 | 被DNS4EU拦截的域名 | 平均拦截时间 |
---|---|---|---|
1 | 16 | 0 | N/A |
2 | 49 | 0 | N/A |
3 | 81 | 2 | 1小时23分钟 |
6 | 141 | 4 | 59分钟 |
8 | 185 | 8 | 34小时50分钟 |
12 | 232 | 9 | 44小时50分钟 |
18 | 292 | 27 | 5小时8分钟 |
24 | 321 (结束) | 31 | 5小时0分钟 |
28 | 321 | 32 | 14小时59分钟 |
当DNS返回黑洞IP地址 - 51.15.69.11(属于Scaleway SAS,用于显示拦截警报)时,域名被视为被拦截。为简单起见,A记录因某种原因停止存在的域名计入DNS4EU的功劳。还应注意,虽然CERT列表在24小时内不断刷新,但直到所有恶意域名被拦截需要更多时间。
从上图可以看出,DNS4EU似乎每隔几小时批量拦截来自CERT列表的恶意域名,这与倡议网站上的承诺相矛盾。CERT Polska本身建议使用其列表的用户每5分钟更新一次。是分钟,不是小时!
从审查的日志来看,一些域名在两小时后被拦截,而其他域名直到九小时后才被拦截。在我看来,如果CERT Polska列表被直接导入,这样的时间差异是不可能的 - 这种行为非常奇怪。无论如何,看到这种情况令人难过,特别是因为查看域名本身,您可以猜到是哪种骗局。像这样的东西需要立即拦截。
为了检查我没有在基准测试中搞砸什么,我还对Orange Poland的DNS进行了测试,该DNS默认实施警告列表。从列出域名到拦截的平均时间为8分20秒。我怀疑如果我更快刷新数据,结果会更好。
理论上,我可以测试DNS4EU在"防护"版本中是否以及如何快速拦截来自其他列表的恶意域名,拦截带有恶意软件的域名等情况。问题是拦截骗局数小时的延迟 - 至少在我看来 - 是 disqualifying 的。此DNS的防护变体不会保护您免受区域威胁,因此我认为没有理由进一步测试。
RIPE Atlas - 网络版的Flightradar24
本节不严格关于DNS主题,可能值得单独写一篇文章,但我将其放在这里作为趣闻。离题结束将以类似横幅标记,但您也可以点击此处继续。
在研究如何对DNS解析器进行基准测试时,我遇到了一个名为RIPE Atlas的有趣服务。它的运营模式类似于Flightradar24,但是,它不是从志愿者那里收集飞机信息,而是允许研究人员从整个网络监控和测量各种主机。这不一定是DNS测试 - 还支持ping、traceroute、TLS和NTP。为了自己进行测量,我们需要在Atlas服务中有积分,这些积分可以在特定条件下获得。
在Flightradar中,免费计划仅包括访问基本数据,您必须为更多过滤器和信息支付额外费用,或者自己提供飞机数据。为此,您只需要一个SDR无线电和一台计算机。接收器(RTL SDR v3或v4 - 非常适合业余爱好者!)加上天线的成本约为40美元,再加上一台微型计算机(可能是Raspberry Pi)来传递收集的ADS-B数据。作为共享数据的奖励,每个人免费获得商业计划,因此对于航空爱好者来说可能是一种享受。谁知道 - 也许所需的硬件已经在您杂乱的抽屉里了?
作为离题的离题,我可能补充说,仅检测几架飞机就能解锁奖品。您真的不需要任何专业设备或秘密知识。因此,您可能考虑购买SDR而不是专业计划 - 从长远来看它会收回成本。
在RIPE Atlas的情况下,任何有积分的人都可以要求志愿者探针进行各种测量。这使得很容易查询,例如,从波兰的所有探针ping特定服务器;从不同ISP的解析器执行DNS查询或检查从澳大利亚到奥地利的网络路由 - 可能性可能是无限的。测量也可以定期运行,这在调查异常时很有用。
那么这个简单测试我们需要花费多少积分?在创建测量之前,我们会被告知成本,在这种情况下,我们的订单定价为200积分。
那么如何获得积分?与Flightradar24一样,我们还需要安装特殊软件,但是,您只需要任何计算机或Raspberry Pi和稳定的互联网连接。我使用了我的家庭实验室中最强大(尽管是我唯一的)硬件,并创建了一个性能怪兽,如下图所示。
这样的路由器作为Atlas的探针将非常有效。重要的是有线连接设备以避免不稳定和冗余延迟。一旦探针设置好,我们将仅因正常运行时间而自动开始收集积分。但是,它们不会立即到来 - 它们在每天UTC时间17:00集体授予。目前,速率是探针运行每分钟15积分,每天增益21,600。除此之外,您还会因向其他用户交付结果而获得奖励 - 然而,数量取决于您的探针参与了多少测量。
公开可用的探针可以通过地图查看。在波兰,我们目前有大约230个这样的探针,然而,与欧洲其他地区相比,这是一个相当平庸的结果。
那些希望设置自己的探针的人被邀请阅读本指南,更感兴趣的人还可以使用专用表格申请物理探针。
有趣的是,NASK(波兰研究和学术计算机网络)有两个探针(至少通过ASN名称搜索) - 一个硬件和一个Anchor类型(简而言之,更专业,适应数据中心并需要RIPE的额外祝福)。
现在您可以安全地继续阅读文章的其余部分。
DNS4EU有多少欧盟成分?
毕竟,既然它的名字中有"EU",那肯定是欧盟的,对吧?
实际上,如果我们要完全 pedantic 并开始检查每个细节,并不是。但是,有一个陷阱。
查看可用的DNS4EU变体列表,我们看到所有IP地址都属于单个前缀86.54.11.0/24。因此,我们可以继续分析BGP协议 - 类似于互联网的路线图,其中代替地名,我们只会看到负责不同IP地址池的自治系统(AS)。因此,使用RIPE数据库,我们知道这个范围属于AS198121,这是来自捷克共和国注册的Whalebone, s.r.o的自治系统。听起来不错,但出于好奇,让我们检查这个AS如何连接到世界其他地方。BGPlay工具对此足够。情况如下图所示。左边 - 粉色 - 是运行DNS4EU的自治系统。如您所见,从那里所有道路都通向AS60068。
这也被bgp.tools证实。AS60068由DataCamp Limited拥有,目前是唯一直接连接到DNS4EU的自治系统。这意味着所有到这些DNS的网络流量都由DataCamp负责。问题是这是一家来自英国的公司,英国已经超过5年不是欧盟成员国了。这有点令人失望,但这是否意味着我们的DNS查询将始终在欧盟外运行?不一定。
DataCamp主要作为两个实体提供各种服务:作为CDN77的CDN,以及作为专用服务器托管、抗DDoS和网络传输的Datapacket。他们的客户列表包括Discord、Udemy、Bunny CDN或AdGuard等组织。在DNS4EU的情况下,Datapacket负责解析器本身运行的基础设施。
好吧,但是Datacamp是坏事吗?相反,他们的服务据报非常好并被推荐给其他人。麻烦的是,那些希望DNS独立于欧盟以外公司的人可能感到受骗。主权本身在名称、倡议网站上的营销材料和各种不同的"信息"站点中有所暗示。麻烦的是,Datacamp作为非欧盟合作伙伴的提及并不明确 - 他们只被称为"欧洲",这不是一回事。
但这绝不意味着通过DNS4EU的查询正在通过英国。BGP浏览器中显示的理论路线绝不一定是数据包通过的实际路线。这可以通过traceroute工具非常容易地验证,当您访问由不同运营商连接的数百台设备时更好。再次,您可以在这里使用RIPE Atlas并进行测量。
在Orange Polska的情况下,一切看起来正确。倒数第二跳来自AS5511(Orange的OpenTransit网络),然后直接连接到DNS4EU。在这种安排下,流量很可能留在联盟内。
在Play/UPC的情况下已经更有趣了。您可以看到在CDN77(Datacamp)中有一跳,但这并不意味着流量跳到英国。对IP反向查找的搜索更多地指向波兰和德国。对于以Arelion (twelve99)结尾的路线,最后一跳直接发生在华沙和DNS4EU之间。可以安全地假设流量留在了欧盟。
顺便说一句:使用IP地址检查主机的确切位置是无意义的。这样的地址在数据库中可能输入了不同的位置。例如,只需查看IP Location.net服务,它同时搜索十几个地理位置数据库。
差异有很多原因。IP地理位置提供商的数据可能或多或少是最新的。它们也可能是区域注册机构(RIR)数据的副本,而这些可能与现实无关(毕竟,地址池的所有者可以输入任何内容)。一个IP地址通过任播的魔力实际上也可以存在于多个位置。一些geoIP数据提供商尝试自己确定地址的位置,如IPInfo使用自己的ping探针网络。这就是上下文如此重要的原因,即前一个和后一个跳跃的位置(并且可以更确定)。从波兰到法国通过非洲的路线远比通过斯洛伐克的路线可能性小。
让我们检查另一个ISP,恰好是T-Mobile,在Atlas中仍有合理数量的可用探针。
在前两条路线的情况下,您可能会有点惊讶,因为跳跃在德国和匈牙利。后续探针的路线只从波兰到德国。另一方面,最后一个探针除了本地网络外没有报告沿途的任何跳跃。我能想到的唯一解释是黑洞物理或巫术。后来从这个特定探针的测试显示了更合理的路线。
我还在其他国家进行了一些测量,因为我仍然无法在traceroute日志中到达英国。在德国、比利时或法国,我偶尔发现一些荒谬的路由,但它们都不包括BGP承诺的英国。作为最后手段,我选择了位于英吉利海峡边缘的探针进行最终研究。
最终,在审查了数百个IP和翻阅了几个小时的日志后,英国出现了,尽管只在特定条件下。在根西岛的情况下,该岛通过海底电缆物理连接到法国和英国,恰好第一跳是英国。在第二种情况下,探针连接到Starlink,因此伦敦作为第一跳的出现也是合乎逻辑的。在这两种情况下,流量立即跳到联盟,最后到达荷兰的节点。
尽管努力搜索,我未能找到DNS4EU与英国的DataCamp合作时流量会"逃逸"到欧盟外的合理场景。然而,倡议网站没有明确说明它与非欧盟公司合作,这是令人惊讶的。对于一个由欧盟补贴并自称为"主权"的项目,我期望它在联盟内。这样的免责声明将受到欢迎。
因此,如果我们只关心流量的纯粹"管辖权",那么直到网络运营商或某个中介决定通过斯劳路由流量之前,它不应离开欧盟边界。这并不改变DNS4EU不是完全独立的欧盟倡议的事实。
互联网上也有失望的声音,关于官方DNS4EU网站使用Cloudflare服务以及Google负责电子邮件。确实,这些公司是美国的,但在我看来这无关紧要。我在这里的兴趣严格在于DNS服务,而不是营销环境或联系方式。尽管如此,我出于义务将其留在这里,也作为一个有趣的事实。
DNS4EU是否匿名?
关于匿名性问题,您只能相信(或不相信)项目协调员的保证。
来自DNS请求的IP根据上面概述的广泛程序进行匿名化。在最坏的情况下,如果HMAC密钥和模数值奇迹般泄露,攻击者可能强行猜测来自子网(不是特定地址)的流量,并且仅在给定日期。密钥和模数值每24小时轮换一次,匿名化日志用于对抗恶意域名并在六个月后删除。但是,如果对于匿名化的单个IP发现少于100个查询,数据将立即删除。
与更流行的DNS服务相比,Cloudflare承诺通过IP地址修剪进行匿名化,日志存储25小时。另一方面,Google声称它删除临时日志最多48小时,但保留在特定IP地址更改为用户城市或区域后保留更长时间的权利。
既不独立也不安全
好吧,DNS4EU表面上看起来像是一个完全的欧盟倡议,将允许独立于外国公司,额外的"防护"选项也应该提供网络威胁防护。实际上,我们得到的是一个由捷克公司运营的服务,与英国运营商合作,欧盟给了它一些钱,而防护DNS并不提供防护。好吧,基础设施提供商可以更改,对恶意域名的防护可以改进。尽管如此,整个项目的方向和未来仍令人担忧。
早在明年,该服务将被商业化并剥夺其欧盟资金,完全掌握在捷克Whalebone手中。在我看来,如此重要的项目最好在成员国更大的控制下保留。因为在那情况下,DNS4EU与现有服务有什么不同?更差的骗局过滤?与此同时,市场上有替代服务,能更好地拦截威胁,更欧洲化或更好地关注匿名性和隐私,并且不花费公民300万欧元。我想知道DNS4EU为什么存在。我不知道。
那么我应该选择哪个DNS?
并没有真正适合每个用户的现成解决方案。有些人可能更喜欢可配置性,注意服务背后组织的来源,寻找安全解决方案或优先考虑速度和可靠性。由于每个解决方案都有其优点和缺点,我决定以随机顺序列出示例服务并简要介绍它们。但是,我没有像这里对DNS4EU那样深入研究它们,其中一些我以前从未听说过。我还假设你们中的一些人会对这些解析器有或多或少的积极看法。在那种情况下,评论部分开放。
- Wikimedia DNS,Wikipedia背后的组织:https://meta.wikimedia.org/wiki/Wikimedia_DNS
- DNS.SB - 位于德国的小项目,提供透明度报告,具有易于记忆的短IPv6地址:https://dns.sb
- DNS4all - 荷兰国家域名注册机构SIDN的实验项目:https://dns4all.eu
- DNS0 - 运行在针对欧盟定制的NextDNS基础设施上的欧洲DNS,各种过滤选项:https://www.dns0.eu
- NextDNS - 美国服务,非常广泛的配置选项,防火墙,全球服务器,免费和付费计划:https://nextdns.io
- Quad9 - 瑞士DNS,关心隐私和安全:https://quad9.net
- Google DNS - 经典,尽管令人不安的反盗版审查报告和Google本身的赞助可能令人沮丧:https://developers.google.com/speed/public-dns
- AdGuard DNS - 对许多人来说是在互联网上拦截广告的简单有效方法,尽管有些人可能对公司俄罗斯起源感到不安。另一方面,5月份Roskomandzor本身命令从三星和小米的俄罗斯商店移除AdGuard VPN应用程序。https://adguard-dns.io/public-dns.html
- Cloudflare DNS - 经常用作Google服务的更私有替代品,他们广告宣传,除其他外,世界上最快的响应时间:https://www.cloudflare.com/pl-pl/application-services/products/dns
- Mullvad DNS - 来自更诚实的VPN提供商之一的服务,不在广告中弯曲现实,过滤选项少:https://mullvad.net/en/help/dns-over-https-and-dns-over-tls
为什么不保留运营商的默认DNS?毕竟,ISP必须遵守当地法律,有时它已经实施针对威胁的拦截列表。另一方面,运营商可能被迫拦截选定的站点(无论好坏原因)。您的里程可能 vary。
如果您好奇,为什么不自托管?启动Unbound实例似乎是一个有趣的解决方案:https://nlnetlabs.nl/projects/unbound/about