DNS 基础

DNS

Domain Name System:域名系统,主要用来将域名解析为IP。DNS以及相关系统存在,主要有两个原因:

  • 可以让人容易记住名字,而不是记住IP;
  • 它允许服务器改变IP,但是采用同样的名字;

上网的时候,经常要通过浏览器去访问一些网站,实际上就是访问网站所在的服务器IP地址

DNS工作的过程可以简单描述为:域名地址经过DNS服务器解析后,得到对应的IP地址,通过该IP地址访问到服务器获取我们要访问的内容

DNS通信主要使用UDP,TCP为辅,使用端口号53。当然,端口号可以修改,但是默认是使用53端口;在某些情况下,也会采用TCP协议。DNS是网络分层里的应用层协议,事实上他是为其他应用层协议工作的。

DNS协议运行在UDP协议之上,使用端口号53。

linux 中有三个文件是关于 dns 解析的:

  • /etc/hosts 记录 hostname 对应的ip地址
  • /etc/resolv.conf 设置DNS服务器的ip地址
  • /etc/host.conf 指定域名解析的顺序(是从本地的hosts文件解析还是从DNS解析)

/etc/hosts 的存在是早期网络并不是特别发达,仅仅在 hosts 中保存主机名和 ip 地址的对应关系即可满足需要,随着网络的发展逐渐出现分布式 DNS 服务,但是 /etc/hosts 形式保留下来了。

resolv.conf文件

/etc/resolv.conf是配置DNS 域名和 ip 地址的。它包含了主机的域名搜索顺序和DNS服务器的地址,每一行应包含一个关键字和一个或多个的由空格隔开的参数。下面是一个例子文件:

search mydom.edu.cn
nameserver 210.34.0.14
nameserver 210.34.0.2

合法的参数及其意义如下:

  • nameserver 表明DNS服务器的IP地址。可以有很多行的nameserver,每一个带一个IP地址。在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
  • domain   声明主机的域名。很多程序用到它,如邮件系统;当为没有域名的主机进行DNS查询时,也要用到。如果没有域名,主机名将被使用,删除所有在第一个点( .)前面的内容。
  • search   它的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。domain和search不能共存;如果同时存在,后面出现的将会被使用。

参考:

nslookup命令

# yum install bind-utils # centos
# sudo apt-get install dnsutils # ubuntu

dig命令

DNS解析

posted @ 2019-03-03 20:42  Michael翔  阅读(528)  评论(0编辑  收藏  举报