逆流而上:阿里巴巴技术成长之路 - (EPUB全文下载)
文件大小:1.11 mb。
文件格式:epub 格式。
书籍内容:
逆流而上:阿里巴巴技术成长之路
第1章 基础架构高可用
第2章 中间件使用常见隐患与预防
第3章 数据库常见问题
第4章 业务研发经典案例
第5章 运行管理域稳定性建设
第1章 基础架构高可用
互联网、电子商务、云计算、大数据等领域都离不开基础设施建设,基础设施的建设包含从服务器到 IDC、网络等一系列的过程。技术日新月异变化的过程,也给基础设施的建设带来了巨大的挑战。如何用研发能力解决基础设施稳定性是基础架构不断提升核心竞争力的关键。
本章从线上案例入手,从基础架构角度介绍了问题排查思路和创新设计概念,希望给读者带来启迪。
1.1 明察秋毫,域名解析排查技巧
背景
网站服务是现在众多互联网服务中应用最广泛的服务之一,而且中国的网络环境更为复杂,几乎每个应用都会使用到域名。域名在互联网应用中是非常重要的一环,万一出现问题可能会导致整个网站无法访问,并且由于各地DNS(Domain Name System,域名系统)缓存,有时候恢复解析所需时间会比较长。本节针对几种典型的域名解析问题,做了简单的排查思路介绍,以期与读者交流。
域名解析的过程
用户使用终端(电脑、手机、Pad 等)上网时,电脑会设置一组 DNS (即缓存DNS,又叫Local DNS)作为一层“代理”、“缓存”,为当地局域网或其他用户提供高性能的解析迭代查询。这个缓存DNS一般是在用户连上网时自动分配的,不需要手工配置。当用户访问网站时,如www.example.com,会向缓存 DNS发送example对应的地址的查询请求。当缓存DNS收到请求后,如果其有相应的缓存且没过期,则直接响应;否则,向根DNS、顶级域DNS、主域名对应的权威DNS或更下级的权威DNS进行查询,直到查询到最终的地址,然后返回给客户端。
对网站管理者(更准确地说,是域名的管理者)来说,需要为域名设置解析,将域名指向自己的网络服务器。购买了域名,一般会使用注册商的DNS(即将注册商提供的DNS服务器作为购买的域名的权威DNS服务器),或者使用第三方的 DNS。如果使用注册商的 DNS,设置解析的流程会比较便捷;但如果使用第三方的DNS,需要在第三方添加域名、解析记录,然后在注册商处修改域名的DNS作为第三方提供的DNS名字。
在上述描述域名解析的过程中,有两种DNS的角色:
· 缓存DNS,又叫Local DNS或Cache DNS,一般是由网络接入服务提供商在近上网用户端做的缓存 DNS 服务器,主要用于迭代查询的缓存,其中的数据均来自向上级的查询得到,本身并无实际的权威数据,这既增加了解析速度,又减少了对权威DNS的查询数量,就好比是数据库中的Memcache。
· 权威 DNS,又叫 Authority DNS。由域名管理者负责管理,或委托其他 DNS 服务提供商进行管理,其中的记录均是由负责本域的管理员添加进来的。权威 DNS 是由上到下一级级授权的,如根 DNS (ROOT DNS)将各个后缀授权到各个后缀管理机构的顶级域 DNS (即注册局的 DNS),而各个顶级域 DNS 中又有指向下级域对应的DNS。
如何判断是否是解析异常
网站无法访问有多种原因,如网络异常、服务器异常、网站配置不正确、代理服务器异常等。
当你访问网站时,如果打开的页面内容和预期的不同,或报错信息中含有“resolve”相关字样,或提示“找不到网站服务器”时,就应该怀疑是不是解析方面的问题了。
排查解析问题用到的基本方法是用dig(或nslookup,本文以dig为例来说明,nslookup 相关命令请参考其对应的帮助文档)看能否正常解析到最终的IP。
如果无法获取到最终的 IP,或者获取到最终的 IP 不是网站的实际 IP (这个由域名网站管理员判断),就是解析异常了。
如下是一个正常的解析(部分域名用example.com/bar.com/bar.net等指代,部分IP地址使用1.1.1.1、2.1.1.1、2.2.2.2等代替,后续类同)。
如下场景能获取到解析值,但解析到的IP是错误的(具体原因后续分析)。
解析异常的排查分析
解析的技术原理,就是域名从根域将顶级域授权给顶级域的权威服务器,再由顶级域的权威服务器授权给主域名的DNS权威服务器;查询时,客户端查询Local DNS,再由Local DNS向根域、顶级域、主域名的权威DNS 查询。如果解析的值是 CNAME 或 NS,则再次查询对应的值,直到获取到IP或超时。
排查时,也是按照这个原理来进行的。
正常的迭代查询结果
技术人员可以用dig做手工的迭代查询,如下是正常的查询。
域名不存在或域名被Hold
当域名不存在(如域名输入错误,域名过期被删除等),或者域名存在但被 Hold (如域名未实名认证等,根据政策的不同,可能会有被ClientHold/ServerHold 的处理。被 Hold 的域名将从顶级域的 DNS 服务器中被删除)。总之,是在顶级域的DNS服务器中,把域名向下级授权的NS记录(域名服务器记录)删除了,导致查询时无法获取到主域名的 NS 记录。前面看到正常的迭代查询,一级级的是:
.IN NS ROOT_NS
TLD.IN NS TLD_NS
NAME.TLD IN NS DOMAIN_NS
HOST.NAME.TLD IN A IP
而域名不存在的,可以看到查询结果中并没有出现not-exists-domain.com**IN NS dns.dnsname.com 这样的记录,在顶级域的DNS中返回的是SOA记录(如SOA a.gtld-servers.net.nstld.verisign-grs.com.1493003321 1800 900 604800 86400)。
不存在域名的dig例子。
被阻断
正常的迭代查询是根、顶级域、域名的权威DNS一级级的NS授权,如果被阻断,在应该返回NS记录的响应中获取了A记录,而中间缺了DNS的由上到下的一级或多级的授权NS记录 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 逆流而上:阿里巴巴技术成长之路 - (EPUB全文下载)