2021-09-16

WARNING: This article may be obsolete
This post was published in 2021-09-16. Obviously, expired content is less useful to users if it has already pasted its expiration date.
This article is categorized as "Garbage" . It should NEVER be appeared in your search engine's results.


内容:DNS基础知识,MathJax


MathJax暂时还没不支持在display math里通过\\换行,但可以通过\displaylines{.....\\.....}换行,见:https://github.com/mathjax/MathJax/issues/2312

注意:在上面这个链接里,有日本Wordpress用户提到过他必须使用\\\而不是\\来转义,虽然这个现象还没有在我的Wordpress里出现;


DNS负载均衡

是“DNS在负载均衡中的应用”,而不是“大型企业的负载均衡DNS服务器是用什么底层架构来设计的”

使用DNS技术的负载均衡是最简单的,见:https://blog.csdn.net/sun5769675/article/details/50478609

DNS负载均衡的最简单算法:轮循(round-robin),见: https://www.cloudflare.com/learning/dns/glossary/round-robin-dns/

https://www.nginx.com/resources/glossary/dns-load-balancing/ 来自nginx.com的介绍,但是涉及到“dns负载均衡缺陷”的时候就停了,没有详细说明具体缺陷以及改进方法(转而介绍nginx plus产品去了)

https://www.cloudflare.com/learning/performance/what-is-dns-load-balancing/ ,介绍的更多一些,特别注意阅读“What other types of DNS-based load balancing are there?”这一章。除了最简单的round-robin之外,还可以对round-robin进行加权:根据服务器的性能、根据服务器的实时负载/连接数量、根据请求的地理位置...来对算法进行综合加权。


有关nslookup的各种命令:

https://kb.intermedia.net/article/819


DNS 迭代查询和递归查询(iterative/recursive query)的区别:

https://zhuanlan.zhihu.com/p/61394192

那么DoH呢? DoH is used for recursive DNS resolution by DNS resolvers. (wikipedia)

那么,iterative query和recursive query有没有优劣之分? https://www.zhihu.com/question/53882349 根据讨论,现在似乎用recursive比较多.

https://www.cloudflare.com/learning/dns/what-is-recursive-dns/ 当然,recursive query也有致命缺陷:比如一旦local dns name server中招,就会影响非常多的(同时使用DNS服务的)用户,而iterative query中招只会影响中招的用户。


有关Local DNS name server:

注意,local server并不是localhost DNS (cache)server/software(如果习惯了dnsmasq等缓存工具),而是ISP/机构/公司提供的DNS server.

那么,假如你连接了一个机构的网络,假设是mit.edu,但是你的电脑上又设定了1.1.1.1作为DNS解析地址,那么local dns name server到底是什么?如果你请求maillist.mit.edu,那么是mit.edu回应,还是1.1.1.1回应?

目前暂时认为“如果没有指定DNS,那么就会使用ISP/机构/学校提供的DNS服务器”

那么,如何【在不切换自己DNS配置,也不后台登陆路由器/网关等设备 的情况下】找到ISP/机构/学校给你提供的默认local DNS name server? https://www.quora.com/How-do-you-find-your-DNS-from-your-ISP 限制有点大,所以操作难度也大了很多


如果对某个域名对应多个IP地址,DNS查询也返回了多个IP地址,那么我们最终会访问哪一个?

大概率是第1个,这和程序的默认写法有关,见:🔗 https://www.zhihu.com/question/36891472


nslookup返回的Non-authoritative answer是什么?

https://serverfault.com/questions/413124/dns-nslookup-what-is-the-meaning-of-the-non-authoritative-answer 如果查询的结果不来自于authoritative nameserver,那么就会被标记为Non-authoritative answer

比如:向1.1.1.1查询了google.com,返回了1.1.1.1的缓存结果,但是这个结果并不来自于google公司的authoritative nameserver,所以会被标记为Non-authoritative answer


有关NS record:

When someone registers a domain name, he/she can specify which DNS server is the authoritative DNS server. This information is called an NS record. The NS record will tell a top-level domain DNS server which nameserver holds the domain's A record, MX record, etc.

https://serverfault.com/questions/413124/dns-nslookup-what-is-the-meaning-of-the-non-authoritative-answer

有关DNSSEC:

相比于DOH,DNSSEC仅仅对DNS查询的来源进行了签名验证,可以简化理解为“在常规DNS查询的数据里添加了一段区域用于签名”,但是DNS查询本身还是没有被加密的。

https://zhuanlan.zhihu.com/p/139889234


DNS协议(不包含DNSSEC的原始协议),它的最大缺点是什么?

https://en.wikipedia.org/wiki/Domain_Name_System#Security_issues

因为使用udp,所以无法保证数据的完整性;因为明文传输,所以不安全;最后,DNS原始协议没有包含身份认证,所以容易被篡改结果。


假设正在使用的某个local DNS server(比如1.1.1.1)使用了DNS缓存,那么给定一个网址(比如chinaz.com),能否判断这个网址在local DNS server上“最近被人访问过”?(当然不能用黑入admin的方法来做,因为要实际非常可行...)

首先,“两次dig chinaz.com,对比query time,如果第二次查询时间明显缩短,那么这个网址是被缓存的 “似乎不太可行,或者说理论上是可行的,但是实际往往返回一些不确定的结果。比如第一次是600 msec,第2次是240 msec,第3次是345 msec,第4次是700 msec ...

https://serverfault.com/questions/372066/force-dig-to-resolve-without-using-cache 这个问答似乎表明“不太可行,没有什么好方法”

https://superuser.com/questions/681680/dns-making-iterative-requests 这个问答提出了一种方法,强制local DNS server不使用recursive查询:

$  dig +norecurse xxx.com

但不同local DNS server对待这个命令的态度不太一样。从理论上来看,如果请求的域名不在缓存中,那么local DNS server会返回对应的TLD dns server列表,让客户端自己去查;但是1.1.1.1和8.8.8.8却不会返回这些东西。一些小体量的dns服务器会返回。

即使使用了小体量的dns服务器,也不能保证100%命中:假设现在用一个叫做68.87.68.166的亚特兰大DNS进行查询,会发现对于大公司的网站能直接返回缓存内容(表明:缓存命中),而对于小网站,返回的永远是TLD dns server列表,让客户端自己去查。也就是说,虽然我们能够判断缓存是否命中,但却很难猜透local dns server的内部机制:如何让一个小网站加入缓存中去呢?

看起来很难通过一台电脑做到这一点,所以这个问题先搁置了。

综上,我们至少能够通过上述方法得知“whether or not a DNS query is cached in local DNS server” .


OCR辅助查找工具

递归:客户端只发一次请求,要求对方给出最终结果。 迭代:客户端发出一次请求,对方如果没有授权回答,它就会返回一个能解答这个查询的其它名称服务器列表,


 Last Modified in 2022-07-07 

Leave a Comment Anonymous comment is allowed / 允许匿名评论