25_DNS:域名系统详解
系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客
文章目录
- DNS 的作用
- DNS 的主要作用:
- 网站域名的组成
- DNS 服务的整体结构
- DNS 查询方式:
- DNS 服务器软件:BIND
- 安装和配置 BIND 步骤:
- 1. **安装 BIND**:
- 2. **修改主配置文件** `/etc/named.conf`:
- 3. **配置日志**:
- 4. **注册根域**:
- 5. **配置其他区域**:
- 6. **检查配置文件语法**:
- 7. **启动服务**:
- 8. **测试 DNS 服务**:
- 反向解析配置
- 1. **修改子配置文件** `/etc/named.rfc1912.zones`:
- 2. **编写区域解析数据文件** `/var/named/192.168.50.arpa`:
- 3. **检查配置文件语法**:
- 4. **测试反向解析**:
- 缓存 DNS 服务器
- 1. **修改主配置文件** `/etc/named.conf`:
- 2. **重启服务**:
- DNS 实现负载均衡
- 1. **编辑区域解析数据文件**:
- 2. **测试负载均衡**:
- 主从 DNS 配置步骤
- 主服务器配置:
- 1. **打开主 DNS 服务器的 named.conf 文件**:
- 2. **添加监听和允许查询配置**:
- 3. **在 named.rfc1912.zones 文件中添加区域配置**:
- 4. **重启 named 服务**:
- 从服务器配置:
- 1. **打开从 DNS 服务器的 named.conf 文件**:
- 2. **添加监听配置**:
- 3. **在 named.rfc1912.zones 文件中添加从区域配置**:
- 4. **重启 named 服务**:
- 更新数据
- 1. **修改 SOA 记录中的 serial 值**:
- 2. **在从 DNS 服务器上删除 slaves 目录下的所有文件并重启 named 服务**:
- 3. **检查 slaves 目录下的文件是否有变更**。
DNS 的作用
DNS(Domain Name System,域名系统)是互联网的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,使得用户可以通过易于记忆的域名访问互联网上的资源,而不需要记住难以记忆的IP地址。
DNS 的主要作用:
- 正向解析:将域名转换为 IP 地址。
- 反向解析:将 IP 地址转换为域名。
网站域名的组成
一个典型的网站域名由多个部分组成,例如 “www.uplooking.com”:
- 服务主机名:如 “www”、“mail”、“ftp” 等。
- 二级域名:如 “uplooking”。
- 顶级域名:如 “com”。
DNS 服务的整体结构
DNS 是一个分层的、分布式的数据库系统。它采用树状结构,从根域(.)开始,向下分为多个层级,每个层级包含不同的域名服务器,负责不同范围的域名解析。
DNS 查询方式:
- 递归查询:客户端向一个 DNS 服务器查询,如果该服务器没有结果,它会代替客户端继续查询,直到找到结果或确定无结果。
- 迭代查询:客户端向一个 DNS 服务器查询,如果该服务器没有结果,它会返回可能知道结果的其他 DNS 服务器列表给客户端,由客户端继续查询。
DNS 服务器软件:BIND
BIND(Berkeley Internet Name Daemon)是互联网上最常用的 DNS 服务器软件,由互联网系统协会(Internet Systems Consortium, ISC)维护。
安装和配置 BIND 步骤:
1. 安装 BIND:
# yum -y install bind
2. 修改主配置文件 /etc/named.conf
:
options {listen-on port 53 { 127.0.0.1;192.168.0.9; };directory "/var/named";allow-query { any; };recursion yes;
};
3. 配置日志:
logging {channel default_debug {file "data/named.run";severity dynamic;};
};
4. 注册根域:
zone "." IN {type hint;file "named.ca";
};
5. 配置其他区域:
include "/etc/named.rfc1912.zones";
6. 检查配置文件语法:
# named-checkconf
# named-checkzone student.com /var/named/student.com.zone
7. 启动服务:
# systemctl enable named
# systemctl restart named
8. 测试 DNS 服务:
# nslookup
> server 192.168.50.147
> www.student.com
反向解析配置
反向解析用于将 IP 地址解析为域名。配置步骤如下:
1. 修改子配置文件 /etc/named.rfc1912.zones
:
zone "50.168.192.in-addr.arpa" IN {type master;file "192.168.50.arpa";allow-update { none; };
};
2. 编写区域解析数据文件 /var/named/192.168.50.arpa
:
$TTL 1D
@ IN SOA student.com. admin.student.com. (20230809 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimum@ IN NS dns.student.com.
2 IN PTR www.xx.com.
3. 检查配置文件语法:
# named-checkzone student.com /var/named/student.com.zone
4. 测试反向解析:
# nslookup
> server 192.168.50.147
> 192.168.50.2
缓存 DNS 服务器
缓存 DNS 服务器用于提供快速的 DNS 解析结果,减轻上层 DNS 服务器的负载。
1. 修改主配置文件 /etc/named.conf
:
options {forwarders {202.96.128.86; 8.8.8.8; };forward only;
};
2. 重启服务:
# systemctl restart named
DNS 实现负载均衡
通过将同一个域名解析到多个不同的服务器 IP 地址上,可以实现请求的分发。
1. 编辑区域解析数据文件:
$TTL 1D
@ IN SOA dns.upl.cn. root.upl.cn. (20230809 ; serial1D ; refresh1H ; retry1W ; expire3H ) ; minimumNS dns.upl.cn.
www A 192.168.0.9
www A 192.168.0.10
2. 测试负载均衡:
# ping www.upl.cn
主从 DNS 配置步骤
主服务器配置:
1. 打开主 DNS 服务器的 named.conf 文件:
[root@server145 ~]# vim /etc/named.conf
2. 添加监听和允许查询配置:
listen-on port 53 { any; };
allow-query { any; };
3. 在 named.rfc1912.zones 文件中添加区域配置:
zone "student.com" IN {type master;file "student.com.zone";allow-transfer { 192.168.50.128; };
};
4. 重启 named 服务:
systemctl restart named
从服务器配置:
1. 打开从 DNS 服务器的 named.conf 文件:
[root@b ~]# vim /etc/named.conf
2. 添加监听配置:
listen-on port 53 { any; };
allow-query { any; };
3. 在 named.rfc1912.zones 文件中添加从区域配置:
zone "student.com" IN {type slave;file "slaves/student.com.zone";masters { 192.168.50.145; };
};
4. 重启 named 服务:
systemctl start named
更新数据
如果在主 DNS 服务器上修改了解析数据,需要修改 SOA 记录中的 serial 值。这样从 DNS 服务器会更新 zone 数据。
1. 修改 SOA 记录中的 serial 值:
20230809 ; serial
2. 在从 DNS 服务器上删除 slaves 目录下的所有文件并重启 named 服务:
[root@desktop13 ~]# cd /var/named/slaves/
[root@desktop13 slaves]# rm -fr *
[root@desktop13 slaves]# systemctl restart named