2021.08.01 技術シェア
【技术浅谈】轻松理解DNS

前言


大家好,在讲解AWS Route53服务的时候,大家对DNS服务的概念很陌生。虽然网上有很多相关讲解,但对于初学者来说理解负担很重。那么今天我将用简单易懂的文字介绍DNS。


图片


 

DNS是什么


DNS(Domain Name System)是互联网通信核心协议之一,作用就是根据域名查出IP地址,相当于互联网中的电话簿。提起电话簿,那我们就能联想到给朋友打电话的例子,电话之间想要通信必须知道对方的电话号码。大家肯定不想记住所有人的电话号码,那么就利用电话簿把人名称呼和电话号码储存进去,想要打电话的时候直接选择人名就可以打电话啦。


DNS和电话簿一样,在互联网中是通过IP进行通信的,大家都知道记住每个网站的IP是不可能的,但是我们基本都能打出像www.baidu.com的域名,所以能够将域名和IP一一对应记住的服务就是DNS服务,我们每一次上网的时候都会用通过DNS获取域名的IP来进行网站的访问。保存所有域名和IP记录的服务就是DNS服务器。DNS服务又分为缓存服务器和根服务器。


图片


 

DNS查询IP过程


首先大家一起查看一下百度网站的IP,在windows的cmd界面,mac的命令行界面通过nslookup www.baidu.com的命令可以查看百度的IP。下面是命令返回的IP结果,明明是baidu为什么会出现shifen的名字那,这个大家可以百度查一下,实际在DNS查询的内部百度用了一个shifen的别名。这样知道IP之后大家可以试一试在浏览器中不用www.baidu.com而是直接输入119.63.197.151能不能打开百度的网站。下面结果可以看到返回了百度的两个IP,目的就是为了分散负荷,如果大家都访问一个IP的话会对服务器造成大的负载。


图片


接下来我们剖析一下从域名得到IP的整个过程。这个也是DNS的精髓希望大家着重理解。下图是详细的查询过程。


图片


当发起查询www.baidu.com的IP的请求的时候,首先是对DNS缓存服务器进行查询。如果缓存服务器中有baidu的IP记录的话会直接返回IP结果。如果缓存服务器中没有IP的记录的话,接下来将去根域名服务器问www.baidu.com的IP是什么。根域名服务器内保存着顶级域名(TLD)的地址,www.baidu.com的顶级域名是com。那么接下来问com顶级域名的服务器www.baidu.com的IP是什么,顶级域名服务器保存着二级域名服务器的地址,百度的二级域名其实就是baidu.com,这样再去访问baidu.com服务器查询www.baidu.com的IP地址。baidu.com服务中正好有www.baidu.com的IP,这样就把IP返回到DNS缓存服务器中保存,在从DNS服务器中返回给客户端。客户端将利用返回的IP来访问网站。这就是整个解析过程。


 


以上的内容就简单的介绍了DNS的概念和查询流程,这正是学习云计算中DNS相关服务的必备知识点。


 


 

AWS课程讲师介绍

❖ 徐老师


 ·「课程C:AWS云计算架构+ 解决方案项目+ 资格对策」主讲


 · 奈良先端科学技术大学院大学(信息科学专业)/日系IT大手/DevOps工程师


 · 擅长方向:AWS架构 · 公有云&私有云企划,搭建,测评,维护


 


图片