共计 3564 个字符,预计需要花费 9 分钟才能阅读完成。
前言:
在我们平时上网中,访问的都是域名,那么域名是如何转换为 IP 地址的呢?进而访问我们的服务器主机的呢?这时候就需要用到 DNS 服务器了。DNS 是由域名解析器和域名服务器组成的,域名服务器是指保存有该网络中所有主机的域名和对应 IP 地址,并具有将域名转换为 IP 地址功能的服务器。
那么接下就开始搭建 DNS 服务器吧!
1. 首先搭建主 DNS 服务器,ch1 主机配置如下:
1 2 3 | [root@ch1 ~] # yum -y install bind ## 安装 bind 程序 [root@ch1 ~] # ntpdate 172.18.0.1 ## 同步时间服务器 [root@ch1 ~] # vim /etc/named.conf ## 修改 DNS 服务器配置文件 |
1 2 | [root@ch1 ~] # named-checkconf ## 检查配置文件语法错误 [root@ch1 ~] # vim /etc/named.rfc1912.zones ## 在此配置文件中添加区域 |
1 | [root@ch1 ~] # vim /var/named/test.com.zone ## 在 /var/named 目录下建立区域数据文件 |
1 | [root@ch1 named] # vim /var/named/172.18.20.zone ## 建立反向解析区域数据文件 |
1 2 3 4 5 6 7 | [root@ch1 ~] # chown :named /var/named/test.com.zone ## 修改属组为 named [root@ch1 ~] # chmod o= /var/named/test.com.zone ## 移除其他的权限 [root@ch1 named] # named-checkzone test.com /var/named/test.com.zone ## 检测区域文件语法错误 [root@ch1 named] # named-checkzone 20.18.172.in-addr.arpa /var/named/172.18.20.zone [root@ch1 named] # service named start ## 启动 DNS 服务 [root@ch1 named] # dig -t A www.test.com @172.18.20.10 ## 测试 DNS 服务器 172.18.20.10 是否能正常解析 A 记录 [root@ch1 named] # dig -x 172.18.20.11 @172.18.20.10 ## 测试 DNS 服务器 172.18.20.10 是否能反向解析 172.18.20.11 |
主 DNS 服务器搭建完毕
2. 搭建从 DNS 服务器,ch2 配置如下
1 2 3 | [root@ch2 ~] # yum -y install bind ## 安装 bind 程序 [root@ch2 ~] # ntpdate 172.18.0.1 ## 同步时间服务器 [root@ch2 ~] # vim /etc/named.rfc1912.zones ## 定义一个从区域 |
1 2 3 | [root@ch2 ~] # named-checkconf ## 检查语法错误 [root@ch2 ~] # service named start ## 启动 DNS 服务 [root@ch2 slaves] # cat test.com.zone ## 查看区域配置文件是否能够同步 |
注意:要在主 DNS 服务器上配置一条指向从 DNS 服务器的 NS 记录
3. 配置子域
1 2 3 | [root@ch3 ~] # yum -y install bind ## 安装 bind 程序 [root@ch3 ~] # ntpdate 172.18.0.1 ## 同步时间服务器 [root@ch3 ~] # vim /etc/named.conf ## 修改配置文件 |
1 | [root@ch3 ~] # vim /etc/named.rfc1912.zones ## 建立区域配置 |
1 | [root@ch3 ~] # vim /var/named/ops.test.com.zone ## 建立区域配置文件 |
1 2 3 4 | [root@ch3 ~] # named-checkconf ## 检查语法是否错误 [root@ch3 ~] # service named start ## 启动服务 [root@ch3 ~] # dig -t A www.ops.test.com @172.18.20.12 ## 测试子域是否能够正常解析 [root@ch3 ~] # dig -t A www.test.com @172.18.20.12 ## 测试子域是否能够解析父域 |
注意:子域同样需要主 DNS 服务器上的授权
总结:
1. DNS 是应用层协议,端口号为 tcp/53 和 udp/53
2. DNS 查询的过程
(1)客户机将查询 www.test.com 的信息传递到自己的首选 DNS 服务器。
(2)DNS 客户机的首选 DNS 服务器检查区域数据库,由于此服务器没有 test.com 域的授权记 录,因此,它将查询信息传递到根域 DNS 服务器,请求解析主机名称。
(3)根域 DNS 服务器把负责解析“com”顶级域的 DNS 服务器的 IP 地址返回给 DNS 客户机的首选 DNS 服务器。
(4)首选 DNS 服务器将请求发送给负责“com”域的 DNS 服务器。
(5)负责“com”域的服务器根据请求将负责“test.com”域的 DNS 服务器的 IP 地址返回给首 选 DNS 服务器。
(6)首选 DNS 服务器向负责“test.com”区域的 DNS 服务器发送请求。
(7)由于此服务器具有 www.test.com 的记录,因此它将 www.test.com 的 IP 地址返回给首 选 DNS 服务器。
(8)客户机的首选 DNS 服务器将 www.test.com 的 IP 地址发送给客户机。
(9)域名解析成功后,客户机将 http 请求发送给 Web 服务器。
(10)Web 服务器响应客户机的访问请求,客户机便可以访问目标主机。
3. DNS 服务器类型
主 DNS 服务器:维护所负责解析的域数据库的那台服务器;读写操作均可进行;
从 DNS 服务器:从主 DNS 服务器那里或其它的从 DNS 服务器那里“复制”一份解析库;但只能进行读操作;
4. DNS 区域数据库文件常见类型
SOA:起始授权记录;一个区域解析库有且只能有一个 SOA 记录
NS:域名服务记录;一个区域解析库可以有多个 NS 记录;其中一个为主的;
A:地址记录,FQDN –> IPv4;
AAAA:地址记录,FQDN –> IPv6;
CNAME:别名记录;
PTR:Pointer,IP –> FQDN
MX:Mail eXchanger,邮件交换器;
5. DNS 的配置文件
主配置文件:/etc/named.conf
或包含 ”include” 设定的其它文件;
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
解析库文件:
/var/named/ 目录下;
一般名字为:ZONE_NAME.zone
6. DNS 测试工具
dig 命令:
dig [-t RR_TYPE] name [@SERVER] [query options]
用于测试 dns 系统,因此其不会查询 hosts 文件;
查询选项:
+[no]trace:跟踪解析过程;
+[no]recurse:进行递归解析;
反向解析测试: dig -x IP
模拟完全区域传送:dig -t axfr DOMAIN [@server]
7. DNS 中的安全相关的配置
访问控制指令:
allow-query {}; 允许查询的主机;白名单;
allow-transfer {}; 允许向哪些主机做区域传送;默认为向所有主机;
allow-recursion {}; 允许哪此主机向当前 DNS 服务器发起递归查询请求;
allow-update {}; DDNS,允许动态更新区域数据库文件中内容;
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-04/130035.htm