gradient

DNS 进化史

rain

前言

DNS最早于1983年由保罗·莫卡派乔斯(Paul Mockapetris)发明;原始的技术规范在882号因特网标准草案(RFC 882)中发布。1987年发布的第1034和1035号草案修正了DNS技术规范,并废除了之前的第882和883号草案。在此之后对因特网标准草案的修改基本上没有涉及到DNS技术规范部分的改动。

正言

DNS协议就是为了将IP地址与域名关联起来的协议,常见的DNS协议类型有以下几种:
DOT(DNS over TLS):DOT使用TLS协议加密传输用户和递归解析服务器之间的DNS消息,起到防止中间用户窃听和域名查询隐私泄漏的作用。已列入标准文档(参见 RFC 7858 和 RFC 8310)。默认端口 853
DOH(DNS over HTTP/HTTPS):DOH允许通过 HTTPS 协议加密 DNS 递归解析过程,以防止中间用户窃听和域名查询隐私泄漏。已列入标准文档(参见 RFC 8484)。默认端口 HTTP 80、HTTPS 443,注意HTTP存在非加密内容
DOQ(DNS over QUIC):QUIC 提供的加密与 TLS 提供的加密具有相似的属性,而 QUIC 传输消除了 TCP 固有的线头阻塞问题,并提供比 UDP 更有效的丢包恢复。 DNS over QUIC (DoQ) 具有类似于 RFC7858 中指定的 DNS over TLS (DoT) 的隐私属性,以及类似于经典 DNS over UDP 的延迟特性。默认端口784(比如ADH),也有用8853的
UDP DNS:默认端口53
等等类型
其中DOT、DOH、DOQ均为加密,UDP DNS 类型是一种不加密的类型,所以容易篡改、劫持、拦截、识别、记录、匹配等
由于
DOQ和QUIC(最早称为快速UDP互联网连接)虽然本身也用到了UDP,但是应用场景太少了,支持程度也很差,大多数情况下不需要用到。
所以主流的更多是DOT,DOH,UDP DNS

用途

加密DNS主要是保护隐私、抵抗干扰使用,套在TLS、HTTPS中相对隐蔽且难以解密,可以做到保护的效果。
但是,加密DNS就像一个运输管道,你从屎水里面吸,吸进来的还是屎水,所以当你从污染源取解析时,被DNS污染也是再正常不过的了
一般的DNS链路如下:
你的设备-》你的网关-》你的运营商-》公网服务器,公网服务器包含境内、境外、跨境网关
根据实际需求来确定是使用UDP DNS 还是DOT,DOH,DOQ等加密DNS。

错误场景

114、阿里、腾讯、百度、360的DNS,和你本地DHCP获取的运营商的DNS也差不多。
如果收到了DNS污染,或者DNS劫持,这个时候更换DNS也不一定能行,因为某些原因导致的,除非你自己爬梯子。
如果你有去广告需求可以考虑构建加密DNS解决方案来尝试解决,注意加密DNS会影响你的解析速度
有条件的先把IPV6关了,这个垃圾东西,很多时候是你打不开网页/APP、加载不出来东西的主要原因(由于某些网站还没有支持IPV6导致你获取了IPV6 容易冲突。)

风险

由于众所周知的原因,导致某些DNS在国内不是那么好用,还会导致在某些安全设备上产生告警。
跨境DOT和默认的DOH都会被检测,知名的会被干扰阻断,不知名的直接杀IP杀端口杀域名。

区别

DNSSEC和基于 TLS/HTTPS DNS 是不同的
DNSSEC 是一组安全扩展,用于验证与 DNS 解析器通信时 DNS 根服务器和权威名称服务器的身份。它旨在防止 DNS 缓存中毒以及其他攻击,不会加密通信。另一方面,基于 TLS 或 HTTPS 的 DNS 会对 DNS 查询进行加密。

参考

本文参考:https://www.cloudflare.com/zh-cn/learning/dns/dns-over-tls/,https://www.blueskyxn.com/202202/5746.html

 

 

Leave a Comment