趣谈网络协议
刘超
前网易研究院云计算技术部首席架构师
130417 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 51 讲
趣谈网络协议
15
15
1.0x
00:00/00:00
登录|注册

第18讲 | DNS协议:网络世界的地址簿

失灵情况和解决方法
全局负载均衡可以分地址和运营商
域名解析可以实现负载均衡
DNS是网络世界的地址簿
内部负载均衡器(SLB)
全局负载均衡器(GSLB)
全局负载均衡
内部负载均衡
权威DNS服务器
顶级域DNS服务器
根DNS服务器
本地DNS缓存服务器
电脑客户端发出DNS请求
高可用、高并发和分布式
小结
示例:DNS访问数据中心中对象存储上的静态资源
负载均衡
DNS解析流程
DNS服务器
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
立即购买
登录 后留言

全部留言(140)

  • 最新
  • 精选
  • 公告-SRE运维实践
    分地址和运营商主要是为了返回最优的ip,也就是离用户最近的ip,提高用户访问的速度,分运营商也是返回最快的一条路径。gslb失灵一般是因为一个ns请求gslb的时候,看不到用户真实的ip,从而不一定是最优的,而且这个返回的结果可能给一个用户或者一万个用户,可以通过流量监测来缓解。

    作者回复: 对的

    2018-08-19
    6
    109
  • Garwen
    刘超老师,根域名服务器的访问不还是无法逃离高并发访问的场景吗,虽说本地的DNS已经可以解决80%请求的地址解析,但还是会有极其庞大数量的访问需要去找根域名服务器的吧,这里的根域名服务器的高并发场景不比12306小吧,是如何解决的呢?

    作者回复: 一方面,dns要求有缓存。另一方面,根服务器没有12306业务逻辑这么复杂,什么各种高铁段的计算啊,而且涉及事务,两个人不能同一个位置,涉及支付。根服务器基本只需要维护下一级别的就可以了,而下一个级别的相对稳定,而且都是静态的。所以支撑过双十一我们就知道,凡是静态的,我有一万种方式可以搞定,就怕落数据库

    2019-05-05
    3
    34
  • jim
    浏览器,路由器也有缓存吧?

    作者回复: 是的

    2018-11-28
    3
    14
  • alexgzh
    以前只知道DNS是方便記憶。今天學到了DNS其實是解耦應用和被訪問應用的IP地址,還有局部負載均衡和全局負載均衡的功能, 學到了!!

    作者回复: 对的,负载均衡

    2019-07-20
    12
  • 古夜
    这一课看懂了,还联想到了ping百度域名有时候返回ip不一样的问题,感谢

    作者回复: 对的

    2019-04-19
    12
  • 杨春鹏
    当访问网站的时候,是先去访问host文件还是,本地DNS缓存?

    作者回复: host

    2018-09-12
    10
  • 胸怀宇宙瓜皮李
    确实不是很理解为什么需要两次的全局负载均衡?为什么不在第一次的负载均衡中,直接获取DNS服务器所在地址和DNS服务提供商?

    作者回复: 不是所有的人都要两层

    2019-07-14
    8
  • 极客时间
    引用原文中的话: “在 yourcompany.com 的 DNS 服务器中,一般是通过配置 CNAME 的方式,给 object.yourcompany.com 起一个别名,例如 object.vip.yourcomany.com,然后告诉本地 DNS 服务器,让它请求 GSLB 解析这个域名,GSLB 就可以在解析这个域名的过程中,通过自己的策略实 现负载均衡” 这里有一句没明白,告诉本地服务器,让object.vip.yourcomany.com域名去GSLB解析,这个应该如何告诉呢

    作者回复: 返回给他就可以了。

    2019-06-17
    7
    6
  • 刘培培
    1. 不同地区和运营商之间延迟不同,所以优先选择同运营商、同地区服务 2. GLSB 挂掉了,客户端地址、运营商变更了,缓存未及时更新。

    作者回复: 赞

    2019-08-27
    4
  • 起风了001
    好像设置GSLB是通过添加NS记录实现的, 不是CNAME呀.

    作者回复: 通过添加NS也是可以的

    2019-05-22
    2
    4
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部