晚上好,我是老杨,今天和你聊聊DNS。
我们知道,TCP/IP提供了通过IP地址来连接到设备的功能。
但对用户来讲,记住某台设备的IP地址是相当困难的,因此,有人专门设计了一种字符串形式的主机命名机制,这些主机名与IP地址相对应。
在IP地址与主机名之间需要有一种转换和查询机制,提供这种机制的系统就是域名系统DNS(Domain Name System)。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
可能还有小白对DNS的概念有那么一点不清晰,老杨今天这篇文章就从DNS是啥、DNS配置、好用DNS服务器推荐这仨方面入手,都说道说道。
01 到底啥是DNS?一句话解释DNS功能:
DNS就相当于电话簿, 电话簿可以根据人名查找对应的电话号码,而DNS可以根据域名查找对应的IP地址。
有小白可能会问:为啥非要整个IP地址,就域名不行吗?这就要从互联网通信协议相关知识讲起。
简单的讲,IP地址是每一个计算机的唯一标识, 就像每个人的身份证号一样是独一无二的, 只有通过IP地址才来唯一确定一台计算机。
但是由于IP地址一连串的数字, 记忆麻烦,因此就产生了域名, 域名相当于IP地址的昵称,但它和IP地址是一对多的关系,即一个域名可能对应多个IP地址, 用户访问时,只会被导向其中一个。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
所以,通过DNS查询IP地址是必要的。那DNS到底是怎么工作的?
简单举个例子来说明DNS的工作流程,就用www.baidu.com为例吧:
com被称为”顶级域名“(top-level domain);
baidu和被称为”次级域名“(second-level domain);
www被称为主机名, 也叫做“三级域名”。
常见的域名往往只显示了三个层级, 比如上面所说的www.baidu.com。这是因为所有域名的最后一个根域名都是一样的都是.root, 所以平时都省略了。
实际上应该是:www.baidu.com.root
因此,域名实际上是一个拥有四个层级的层级结构,即:
主机名.次级域名.顶级域名.根域名,也就是host.sld.tld.root
DNS解析域名时就是按照层级结构, 从根域名开始逐级向下分级查询,比如咱们来查查www.baidu.com。
首先访问根域名服务器, 查询.com(顶级域名)由哪一个顶级域名服务器维护;
根据返回结果, 访问顶级域名服务器, 查询.baidu(次级域名)由哪一个次级域名服务器维护;
根据返回结果, 访问次级域名服务器, 查询www(主机名)的IP地址;
上述的查询流程是由本地的DNS服务器完成, 而并非本地主机。
编辑切换为居中
添加图片注释,不超过 140 字(可选)
本地主机通过浏览器访问一个域名时:
首先会查询本地主机的/etc/hosts文件, 查看是否进行了域名和IP映射自定义设置 (比如在/etc/hosts文件中将www.baidu.com映射成了127.0.0.1, 那么浏览器访问www.baidu.com时访问的将是本地主机)
如果没有相应的自定义设置, 则会访问本地DNS服务器。
本地DNS服务器的IP地址可查看/etc/resolv.conf文件
本地DNS服务器会先查看本地缓存, 是否有对应域名和IP的映射,如果有则直接返回给本地主机,如果没有则进行上述查询流程。
02 华为路由器咋配置DNS?光说不练假把式,咱们来手把手操作试试,最好是转发到你的朋友圈收藏一波,方便之后有空时随时打开操作。
01组网需求