DNS 概述
DNS是域名系统(Domain Name System)的缩写,它是互联网上的一项核心服务。
DNS的主要功能是将人类易于记忆的域名转换为计算机能够理解的IP地址。在互联网上,每个设备都需要一个唯一的IP地址来进行通信,但由于IP地址通常是一串难以记忆的数字,使用IP地址也能访问,但人们更倾向于使用域名来访问网站和网络服务。因此,DNS的作用就是将域名解析为对应的IP地址,从而使设备能够相互通信和访问互联网上的各种服务和资源。
域名系统作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。而不需要记住复杂的IP地址。
DNS 服务器的层次结构
从上到下依次为根域名服务器、顶级域名服务器和二级域名服务器。域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。
DNS域名解析过程
用户输入域名:用户在浏览器中输入想要访问的域名。
本地DNS服务器查询:浏览器会向本地DNS服务器发送查询请求,询问域名对应的IP地址。
递归查询:如果本地DNS服务器有该域名的记录,它会直接返回IP地址;如果没有,它会向上一级DNS服务器发送查询请求。
根DNS服务器查询:根DNS服务器会返回下一级DNS服务器的地址,继续递归查询过程,直到找到包含该域名的IP地址的DNS服务器。
DNS服务器返回IP地址:最终,本地DNS服务器会将从上级DNS服务器获得的IP地址返回给浏览器。
浏览器访问目标服务器:浏览器使用从DNS服务器获得的信息,通过IP地址连接到目标服务器并访问相应的页面内容。
域名解析包含两种查询方式,分别是递归查询和迭代查询。
递归查询
- 递归查询是一种从主机到本地域名服务器的查询方式。当主机向本地域名服务器发出查询请求时,本地域名服务器会向其他 DNS 服务器发送多次查询请求,直到找到所需的 IP 地址为止。递归查询需要 DNS 服务器不断地向其他 DNS 服务器请求,直到找到所需的 IP 地址为止。递归查询在查询过程中会一层一层地向下递归,直到找到所需的域名对应的 IP 地址,然后将查询结果返回给请求的主机。
迭代查询
迭代查询是一种从本地 DNS 服务器向根域名服务器发出查询请求的方式。当本地 DNS 服务器向根域名服务器发出查询请求时,根域名服务器会给出查询结果或者告诉本地 DNS 服务器下一步应该向哪个服务器进行查询。本地 DNS 服务器会根据根域名服务器给出的提示,向指定的域名服务器发出查询请求。迭代查询的查询过程是一层一层地向上迭代,直到找到所需的域名对应的 IP 地址。
递归查询和迭代查询的区别在于,递归查询是在本地 DNS 服务器上进行的,而迭代查询是在根域名服务器上进行的。递归查询需要 DNS 服务器向其他 DNS 服务器发送多次查询请求,直到找到所需的 IP 地址为止。而迭代查询则是本地 DNS 服务器向根域名服务器发送单个查询请求,根域名服务器会给出查询结果或者告诉本地 DNS 服务器下一步应该向哪个服务器进行查询。
搭建DNS服务器
1、安装bind软件包
[ ]
bind:提供dns server程序,以及几个常用的测试工具。
bind-utils:bind客户端程序集,提供dig,nslookup,dig等工具
2、修改主配置文件:named.conf
修改前备份配置文件
[ ]
修改配置文件
[ ]
[ ]
3、配置bind服务的区域文件:named.rfc1912
修改前先备份
[ ]
对源区域文件进行配置,添加liyb zone
~]# vi /etc/named.rfc1912.zones
zone "liyb.com" IN {
type master;
file "liyb.com.conf";
{ none; };
};
说明:
第一行的liyb.com是域名
第三行的liyb.com.conf是要做映射的解析文件
4、配置DNS解析文件
首先进入/var/named/后,拷贝 named.localhost为test.com.zone
[root@localhost ~]# cd /var/named/
[root@localhost named]# cp -p named.localhost liyb.com.conf
[root@localhost named]# vi liyb.com.conf
$TTL 1D
@ IN SOA @ liyb.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS www.liyb.com.
;@ IN A 172.16.1.27
www IN A 172.16.1.27
harbor IN A 172.16.1.26
5、启动named服务
启动前先检查配置文件
[ ]
zone harbor.liyb.com/IN: loaded serial 0
OK
启动named,并设置开机自启
[ ]
6、检查域名
使用nslookup解析域名,Linux和window都可以使用该方式进行解析。
[root@localhost ~]# nslookup www.liyb.com
Server: 172.16.1.27
Address: 172.16.1.27#53
Name: www.liyb.com
Address: 172.16.1.27
7、修改域名
直接修改/var/named/liyb.com.conf文件。
注意:生产环境修改前一定要备份。
1D
IN SOA @ liyb.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS www.liyb.com.
IN A 172.16.1.27
www IN A 172.16.1.27
harbor IN A 172.16.1.26
blog In A 172.16.1.26
重启:
[ ]
解析新增的域名
[root@localhost named]# nslookup blog.liyb.com
Server: 172.16.1.27
Address: 172.16.1.27#53
Name: blog.liyb.com
Address: 172.16.1.26