Linux中DNS系统搭建与配置指南(配实验步骤与注释)
Linux中DNS系统搭建与配置指南(配实验步骤与注释)
一、DNS核心概念
- 定义
DNS(Domain Name System)是域名解析系统,实现域名与IP地址的双向映射。- 核心组件:解析器(客户端)、域名服务器(服务端)
- 核心功能:将用户友好的域名(如
www.example.com
)转换为机器可识别的IP地址(如172.16.30.20
)
- 域名与IP关系
- 域名 → IP:必然映射(一对一或多对一)
- IP → 域名:可选映射(反向解析)
- 负载均衡:通过DNS轮询实现一个域名对应多个IP(一对多)
二、域名层级结构
层级 | 说明 | 示例 |
---|---|---|
根域 | 最高层级,用 . 表示 | . |
顶级域 (TLD) | 组织域/国家地区域 | .com , .cn |
二级域 | 注册的个性化名称 | baidu , taobao |
主机名 | 设备的具体标识 | www , mail |
- FQDN(完全限定域名):
主机名.二级域.顶级域.根域
→www.baidu.com.
三、DNS解析类型
查询方式 | 过程说明 | 使用场景 |
---|---|---|
递归查询 | 客户端要求DNS服务器必须返回最终结果 | 客户端向本地DNS请求 |
迭代查询 | DNS服务器仅返回下一级线索,客户端自行查询 | DNS服务器间协作 |
解析方向 | 功能 | 记录类型 |
---|---|---|
正向解析 | 域名 → IP | A记录 |
反向解析 | IP → 域名 | PTR记录 |
四、DNS服务搭建(主服务器)
1.搭建服务器环境
vim /etc/yum.repos.d/server.repo # 搭建本地yum仓库[aa]name=aa1baseurl=file:///mntenabled=1gpgcheck=0mount /dev/cdrom /mnt/ # 挂载镜像
yum -y install bind-chroot # 下载 bind-chroot 服务
2. 服务器关键配置文件
-
编辑DNS服务器主配置文件
vim /etc/named.conf # 进入 DNS 服务器主配置文件listen-on port 53 { any; }; # 允许所有 IP 监听 53 端口listen-on-v6 port 53 { any; };allow-query { any; }; # 允许所有客户端查询
-
编辑正向和反向解析全局配置文件
vim /etc/named.rfc1912.zones # 进入解析全局配置文件zone "example.com" IN { # 域名type master; # 服务器类型(master主/slave辅助)file "example.com"; # 告诉配置文件我的正向解析文件是谁allow-update { none; };};zone "30.16.172.in-addr.arpa" IN { # IP网段(反写,0省略)type master; # 服务器类型(master主/slave辅助)file "com.example"; # 告诉配置文件我的反向解析文件是谁allow-update { none; };};
-
编辑正向解析文件和反向解析文件
vim /var/named/yyh.com # 进入正向解析文件 vim /var/named/com.yyh # 进入反向解析文件$TTL 1D ; # 缓存有效期1天@ IN SOA server.example.com. root.example.com. (20210228 # 序列号(修改后需递增)1D # 刷新间隔(Refresh)1H # 重试间隔(Retry)1W # 过期时间(Expire)3H # 无效缓存时间(Minimum))@ NS server.example.com. # 域名服务器记录server in A IP地址 # 主机A记录10 PTR client.example.com. # IP末位段 → 域名
# 可以通过复制,对模板进行更改 cp -p /var/named/named.localhost /var/named/yyh.com cp -p /var/named/named.empty /var/named/com.yyh
-
重启服务
systemctl restart named # 重启服务 systemctl enable named # 下次开机自启
-
关闭防火墙
systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 禁用防火墙
-
关闭seLinux服务
setenforce 0 # 临时改成 permissive 模式 vim /etc/selinux/config # 进入配置文件,改成 disabled 模式
三、客户端配置与验证
-
在网卡配置文件中配置DNS为服务器的IP
vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 进入网卡配置
-
重启服务
systemctl restart network # 重启服务
- 使用nslookup验证
nslookup # 查询DNS记录
五、辅助DNS服务器配置
在服务器上配置
-
安装 bind-chrooh(同上)
略
-
修改主配置文件(和主DNS修改内容一致,同上)
略
-
编辑正向和反向解析全局配置文件
vim /etc/named.rfc1912.zones # 进入解析全局配置文件zone "example.com" IN { # 域名type slave; # 服务器类型(master主/slave辅助)file "slaves/example.com"; # 告诉配置文件我的正向解析文件是谁masters { 172.16.30.10; }; # 主服务器主机};zone "30.16.172.in-addr.arpa" IN { # IP网段(反写,0省略)type slave; # 服务器类型(master主/slave辅助)file "slaves/com.example"; # 告诉配置文件我的反向解析文件是谁masters { 172.16.30.10; }; # 主服务器主机};
-
重启服务(同上)
略
-
关闭防火墙(同上)
略
-
关闭seLinux服务(同上)
略
在客户端配置
-
在网卡配置文件中配置DNS为服务器的IP(主服务器和辅助服务器)
vim /etc/sysconfig/network-scripts/ifcfg-ens33 # 进入网卡配置文件
-
重启服务(同上)
略
-
使用nslookup验证(同上)
略
关键补充说明
- 关键配置文件
文件路径 | 作用 |
---|---|
/etc/named.conf | 主配置文件 |
/etc/named.rfc1912.zones | 正/反向解析区域声明 |
/var/named/example.com | 正向解析数据文件 |
/var/named/com.example | 反向解析数据文件 |
- 资源记录类型
记录 | 作用 | 示例 |
---|---|---|
A | 域名 → IPv4 | www A 192.168.1.1 |
AAAA | 域名 → IPv6 | www AAAA 2001:db8::1 |
PTR | IP → 域名 | 20 PTR server.example.com |
CNAME | 域名别名 → 规范域名 | web CNAME www |
- SOA记录参数详解
参数 | 说明 |
---|---|
Serial | 区域数据版本号(修改后必须递增) |
Refresh | 辅助DNS同步主数据的间隔 |
Retry | 同步失败后的重试间隔 |
Expire | 辅助DNS数据失效的超时时间 |
Minimum | 否定响应(NXDOMAIN)的缓存时间 |
注意:
- 所有配置文件修改后需执行
systemctl reload named
生效- 文件权限要求:
/var/named/
下文件属组需为named
- 反向解析文件名通常为正向域名的倒写(如
com.example
)