第18讲 | DNS协议:网络世界的地址簿
刘超
该思维导图由 AI 生成,仅供参考
前面我们讲了平时常见的看新闻、支付、直播、下载等场景,现在网站的数目非常多,常用的网站就有二三十个,如果全部用 IP 地址进行访问,恐怕很难记住。于是,就需要一个地址簿,根据名称,就可以查看具体的地址。
例如,我要去西湖边的“外婆家”,这就是名称,然后通过地址簿,查看到底是哪条路多少号。
DNS 服务器
在网络世界,也是这样的。你肯定记得住网站的名称,但是很难记住网站的 IP 地址,因而也需要一个地址簿,就是 DNS 服务器。
由此可见,DNS 在日常生活中多么重要。每个人上网,都需要访问它,但是同时,这对它来讲也是非常大的挑战。一旦它出了故障,整个互联网都将瘫痪。另外,上网的人分布在全世界各地,如果大家都去同一个地方访问某一台服务器,时延将会非常大。因而,DNS 服务器,一定要设置成高可用、高并发和分布式的。
于是,就有了这样树状的层次结构。
- 根 DNS 服务器 :返回顶级域 DNS 服务器的 IP 地址
顶级域 DNS 服务器:返回权威 DNS 服务器的 IP 地址
权威 DNS 服务器 :返回相应主机的 IP 地址
DNS 解析流程
为了提高 DNS 的解析性能,很多网络都会就近部署 DNS 缓存服务器。于是,就有了以下的 DNS 解析流程。
电脑客户端会发出一个 DNS 请求,问 www.163.com 的 IP 是啥啊,并发给本地域名服务器 (本地 DNS)。那本地域名服务器 (本地 DNS) 是什么呢?如果是通过 DHCP 配置,本地 DNS 由你的网络服务商(ISP),如电信、移动等自动分配,它通常就在你网络服务商的某个机房。
本地 DNS 收到来自客户端的请求。你可以想象这台服务器上缓存了一张域名与之对应 IP 地址的大表格。如果能找到 www.163.com,它就直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大,能告诉我 www.163.com 的 IP 地址吗?”根域名服务器是最高层次的,全球共有 13 套。它不直接用于域名解析,但能指明一条道路。
根 DNS 收到来自本地 DNS 的请求,发现后缀是 .com,说:“哦,www.163.com 啊,这个域名是由.com 区域管理,我给你它的顶级域名服务器的地址,你去问问它吧。”
本地 DNS 转向问顶级域名服务器:“老二,你能告诉我 www.163.com 的 IP 地址吗?”顶级域名服务器就是大名鼎鼎的比如 .com、.net、 .org 这些一级域名,它负责管理二级域名,比如 163.com,所以它能提供一条更清晰的方向。
顶级域名服务器说:“我给你负责 www.163.com 区域的权威 DNS 服务器的地址,你去问它应该能问到。”
本地 DNS 转向问权威 DNS 服务器:“您好,www.163.com 对应的 IP 是啥呀?”163.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入介绍了DNS服务器的层次结构和解析流程,以及如何通过负载均衡提高性能。DNS协议作为网络世界的地址簿,为人们访问网站提供了便利。文章详细解释了DNS服务器的重要性和应用,对于想要了解网络基础知识和提高性能的读者来说,是一篇值得阅读的文章。 文章首先介绍了DNS服务器的层次结构和解析流程,从客户端请求object.yourcompany.com的域名解析开始,逐步介绍了本地DNS解析器、本地DNS服务器、权威DNS服务器等各个环节的作用和交互过程。同时,文章还详细说明了如何通过负载均衡器实现内部和全局负载均衡,确保应用的高可用性和访问速度。特别是对于复杂的应用,如跨地域跨运营商的大型应用,需要更加复杂的全局负载均衡机制,因而需要专门的设备或者服务器来实现全局负载均衡。 总的来说,本文通过具体的案例和流程图,生动地展示了DNS服务器的工作原理和负载均衡的重要性。对于想要深入了解DNS协议和提高网络性能的读者来说,这篇文章提供了宝贵的参考和指导。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《趣谈网络协议》,新⼈⾸单¥68
《趣谈网络协议》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(140)
- 最新
- 精选
- 公告-SRE运维实践分地址和运营商主要是为了返回最优的ip,也就是离用户最近的ip,提高用户访问的速度,分运营商也是返回最快的一条路径。gslb失灵一般是因为一个ns请求gslb的时候,看不到用户真实的ip,从而不一定是最优的,而且这个返回的结果可能给一个用户或者一万个用户,可以通过流量监测来缓解。
作者回复: 对的
2018-08-196109 - Garwen刘超老师,根域名服务器的访问不还是无法逃离高并发访问的场景吗,虽说本地的DNS已经可以解决80%请求的地址解析,但还是会有极其庞大数量的访问需要去找根域名服务器的吧,这里的根域名服务器的高并发场景不比12306小吧,是如何解决的呢?
作者回复: 一方面,dns要求有缓存。另一方面,根服务器没有12306业务逻辑这么复杂,什么各种高铁段的计算啊,而且涉及事务,两个人不能同一个位置,涉及支付。根服务器基本只需要维护下一级别的就可以了,而下一个级别的相对稳定,而且都是静态的。所以支撑过双十一我们就知道,凡是静态的,我有一万种方式可以搞定,就怕落数据库
2019-05-05334 - jim浏览器,路由器也有缓存吧?
作者回复: 是的
2018-11-28314 - alexgzh以前只知道DNS是方便記憶。今天學到了DNS其實是解耦應用和被訪問應用的IP地址,還有局部負載均衡和全局負載均衡的功能, 學到了!!
作者回复: 对的,负载均衡
2019-07-2012 - 古夜这一课看懂了,还联想到了ping百度域名有时候返回ip不一样的问题,感谢
作者回复: 对的
2019-04-1912 - 杨春鹏当访问网站的时候,是先去访问host文件还是,本地DNS缓存?
作者回复: host
2018-09-1210 - 胸怀宇宙瓜皮李确实不是很理解为什么需要两次的全局负载均衡?为什么不在第一次的负载均衡中,直接获取DNS服务器所在地址和DNS服务提供商?
作者回复: 不是所有的人都要两层
2019-07-148 - 极客时间引用原文中的话: “在 yourcompany.com 的 DNS 服务器中,一般是通过配置 CNAME 的方式,给 object.yourcompany.com 起一个别名,例如 object.vip.yourcomany.com,然后告诉本地 DNS 服务器,让它请求 GSLB 解析这个域名,GSLB 就可以在解析这个域名的过程中,通过自己的策略实 现负载均衡” 这里有一句没明白,告诉本地服务器,让object.vip.yourcomany.com域名去GSLB解析,这个应该如何告诉呢
作者回复: 返回给他就可以了。
2019-06-1776 - 刘培培1. 不同地区和运营商之间延迟不同,所以优先选择同运营商、同地区服务 2. GLSB 挂掉了,客户端地址、运营商变更了,缓存未及时更新。
作者回复: 赞
2019-08-274 - 起风了001好像设置GSLB是通过添加NS记录实现的, 不是CNAME呀.
作者回复: 通过添加NS也是可以的
2019-05-2224
收起评论