一、为啥写这篇文章?#
DNS(domain name system)域名管理
说一下为啥会整理这么一篇文章,难道工作会用到嘛?不不不,作为CRUD工程师,日常工作那是一准用不到本文跟大家分享的知识。
但是当你想学云原生技术栈时,你无论如何都不能跳过这篇文章所分享的DNS等计算机网络的知识点。所以这其实是一篇筑基的文章。
二、DNS的作用#
TCP/IP网络协议
要求想要互联的机器要有唯一的IP地址,因为TCP/IP协议
是基于IP地址
通信的。
但是ip地址
是一大长串数据,也不好记。所以就衍生出一个叫主机识别码
的东西来。这个主机识别码
和ip地址
一样,都是唯一存在的。比如:www.qq.com
就是一个主机识别码
。
有TCP/IP
这道坎,主机识别码
就不能独立存在,我们需要一个机制,可以帮我们将主机识别码
转换成ip地址
,DNS系统
扮演的就是这个角色。
本专题公众号首发,感兴趣可以考虑关注,不迷路:
三、域#
域名是分层的
比如齐鲁工业大学的域名是:qlu.edu.cn
其实cn后面还有个. 表示根域名服务器,但是都省略了
其中的cn
表示中国,edu
表示教育,qlu
是齐鲁工业大学的名字。这样大家看到这个域名时,即使不知道它具体是哪所高校,但是起码知道它代表一所学校。
qlu.edu.cn
还可以继续往下分,如www.qlu.edu.cn
、paper.qlu.edu.cn
、family.qlu.edu.cn
等等
四、DNS工作原理#
一说DNS服务器
大家都感觉云里雾里,感觉DNS服务器
很高大上的样子。
它确实是台服务器,确切的说是专门运行着有域名解析功能的某个软件的服务器(比如后文中的bind软件),既然是个软件,那软件启动后肯定得监听某个端口,这个端口
讲一下当我们在浏览器输入:www.baidu.com
时,它时如何找到域名对应的ip地址的!
1、首先浏览器会缓存域名、ip的对应关系。
2、浏览器中没缓存,就会查找电脑本地的hosts文件,这里面会配置域名和ip的对应关系。
~ % cat /etc/hosts ## # Host Database # # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost
3、如果本地hosts文件中也没有域名对应的ip地址,我们的主机就会像它的dns服务器发起询问。在mac系统可以查看:网络偏好设置 ,找到dns服务器的相关信息。
然后点击高级,查看当前我的mac的DNS服务器地址
在mac或者linux中都可以通过如下的命令查询dns服务器的位置
~ % cat /etc/resolv.conf
在mac或者linux中都可以通过如下的命令对域名进行解析
# 会使用resolv.conf记录的dns服务器,对域名进行解析 ~ % nslookup baidu.com Server: 172.22.1.253 Address: 172.22.1.253#53 Name: baidu.com Address: 220.181.38.148 Name: baidu.com Address: 220.181.38.251
4、免费的DNS服务器ip
ip | 公司 |
8.8.8.8 | 谷歌 |
114.114.114.114 | 百度 |
5、DNS服务器接受到域名解析的请求后,就会查询该域名对应的ip是多少,而且他本身也存在缓存机制,如果它确定自己不能找到域名对应的ip地址的话,就会将这个dns解析请求转发给根DNS服务器,根域名域名服务器会告诉我们的DNS服务器说:我知道 com.
域名服务器的位置,你去问他吧!
然后我们的DNS服务器找到com.
域名服务器说:你知道www.baidu.com 对应的ip地址吗? 然而com.
服务器会说:我知道baidu.com.
域名服务器在哪里,你去问他吧!
然后我们的DNS服务器找到baidu.com.
域名服务器说:你知道www.baidu.cn 对应的ip地址吗? baidu.com.
服务器会说:www.com.com 的ip地址是 xxx.xxx.xxx.xxx