DNS 配置实验
一、实验目的
本实验旨在完成 DNS 服务器的配置,包括正向解析、反向解析,以及相关客户端配置,并通过多种工具对配置结果进行测试,确保 DNS 服务的正常运行。
二、实验环境与所需软件包
(一)实验环境
Linux 操作系统(以 Red Hat 系列为例)
(二)所需软件包
- bind:bind 主程序软件包,是 DNS 服务的核心程序。
- bind - utils:bind 软件提供的一组 DNS 工具包,其中包含 dig、host、nslookup、nsupdate 等工具,可用于域名解析和 DNS 调试工作。
- bind - chroot:用于增强 bind 的安全性,通过改变 bind 的运行根目录,限制其对系统其他部分的访问。
- bind - libs:包含 bind 数据库文件相关的库文件。
- bind - devel:Contains all the header files and libraries required for development with ISC BIND 9 and BIND 8,主要用于开发相关的功能,如果只是配置 DNS 服务器,非必需。
- caching - nameserver:包括使 bind(DNS 名称服务器)作为简单缓存名称服务器的配置文件。
三、相关配置文件说明
- /etc/named.conf:DNS 主配置文件,用于配置 DNS 服务器的全局参数、日志记录、区域信息等。
- /var/named/*:DNS 域解析文件存放目录,其中包含各个域名和 IP 地址映射关系的配置文件。
- /etc/resolv.conf:为 DNS 客户端指定 DNS 服务器的配置文件,包括域名服务器的 IP 地址和搜索顺序等信息。
- /etc/hosts:静态解析配置文件,用于实现本地主机名与 IP 地址的静态映射,可用于在 DNS 不可用时或者特定主机的快速解析。
- /etc/host.conf:配置 DNS 解析顺序,例如可以指定先使用 hosts 文件解析,再使用 DNS 服务器解析。
四、配置过程
(一)安装所需软件包
使用以下命令安装所需软件包:
yum install bind* caching-nameserver
(二)修改主配置文件 /etc/named.conf
- 基本配置
// named.conf
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
// See /usr/share/doc/bind*/sample/ for example named configuration files.
options {
directory "/var/named"; // named 区文件目录
dump - file "/var/named/data/cache_dump.db";
statistics - file "/var/named/data/named_stats.txt";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
在 /etc/named.conf
配置文件中,可以使用 //
或 /*...*/
进行注释。
2. 根域名服务器配置
zone "." IN {
type hint;
file "named.ca";
};
此处使用 zone
关键字定义根域名服务器(type hint
),并指定从 named.ca
文件获取 Internet 的顶层“根”服务器地址,named.ca
文件通常位于 /var/named/
目录下。
- 正向解析区域配置
zone "seker.com" IN {
type master;
file "seker.zone";
allow - update { none; };
};
建立一个域名为 seker.com
的正向解析区域,类型为 master
(主域名服务器),指定解析文件为 seker.zone
,文件通常位于 /var/named/ 目录下,并禁止动态更新(allow - update { none; }
)。
- 反向解析区域配置
zone "1.168.192.in - addr.arpa" IN {
type master;
file "192.168.1.zone";
allow - update { none; };
};
建立一个针对 IP 地址段 192.168.1.0/24
的反向解析区域,类型为 master
,指定反向解析文件为 192.168.1.zone
,同样禁止动态更新。
(三)编辑域的配置文件
- 编辑正向解析配置文件(/var/named/seker.zone)
$TTL 86400
@ IN SOA dns.seker.com. root.seker.com. (
2009110202 ; serial
28800 ; refresh
7200 ; retry
604800 ; expire
86400)
@ IN NS dns.seker.com.
mail IN MX 5 mail.seker.com.
localhost IN A 127.0.0.1
mail IN A 192.168.1.4
dns IN A 192.168.1.4
www IN CNAME mail
- **TTL(Time - To - Live)值**:生存时间记录字段,单位为秒。名字服务器在查询响应中提供此 TTL 值,允许其他服务器将数据在缓存中存放 TTL 指定的时间。如果数据变动不频繁,可将 TTL 值默认设置为 1 天(86400 秒),最长建议不超过 1 周。虽然短至 1 小时的值也可用,但一般不建议。
- **@ 符号**:代表相应的域名,此处代表 `seker.com`。
- **IN 关键字**:表示后面的数据使用的是 INTERNET 标准,与 A、PTR 或 CNAME 记录一起使用时可将域名映射为 IP 地址,反之亦然。
- **SOA(Start Of Authority)记录**:
- 指明其后的域名定义了主域名服务器及该域的联系点的电子邮件地址。对于该区数据而言,这个名字服务器是最好的信息来源,根据此 SOA 记录,名字服务器对区 `seker.com` 具有权威。每个数据文件都要有 SOA 记录,且每个区数据文件中只允许有一个 SOA 记录。
- `dns.seker.com.` 是 `seker.com` 区的主名字服务器的名字,注意域名后面必须有一个点,这是因为 DNS 中的简写惯例,如果不加,`dns.seker.com` 会被解析为 `dns.seker.com.seker.com`。
- `root.seker.com.` 是管理员邮箱,由于 `@` 在 DNS 记录中是保留字符(代表相应的域名),所以在 SOA 中用“.”代替 `@`,实际邮箱为 `root@seker.com`。
- SOA 记录中括号内的 5 组数字用于和从服务器同步 DNS 资料:
- **Serial**:表示配置文件的修改版本,格式通常为“年月日 + 当日修改次数”,从服务器在进行资料同步时会比较此号码,若发现此处号码比自身的大,则进行更新,每次更改 dns 设置后需修改此值,注意不能超过 10 位数字,分号后的内容为注释。
- **Refresh**:定义以秒为单位的刷新频率,即规定从域名服务器查询主服务器的时间间隔,以保证从服务器数据的时效性。
- **Retry**:如果从服务器更新失败,此值规定了隔多久再次尝试更新。
- **Expire**:规定从服务器在向主服务更新失败后多长时间清除对应的记录,单位为分钟。
- **Minimum**:规定缓冲服务器在不能与主服务联系上后多长时间清除相应的记录。
- **NS 记录**:指定在这个区内的权威 DNS 服务器,此处表明负责 `seker.com` 域的 NameServer 是 `dns.seker.com` 这台主机。
- **MX 记录**:定义负责为域或单个主机传送电子邮件的机器。对于域而言,它告诉其他邮件服务器将发往该域的邮件发送给指定的服务器。此处标明发往 `seker.com` 域的邮件由 `mail.seker.com` 这台服务器接收,数值 5 表示优先级,数值越小优先级越高。正确配置 MX 记录对于邮件服务器的正常运行至关重要。
- **A 记录**:标明了 IP 地址和域名之间的对应关系,如 `mail.seker.com` 对应的 IP 地址是 `192.168.1.4`。
- **CNAME(Canonical Name)记录**:定义别名,此处将 `www` 设置为 `mail` 的别名,即 `www.seker.com` 会被解析为与 `mail.seker.com` 相同的 IP 地址(`192.168.1.4`)。
- 编辑反向解析配置文件(假设文件名为 /var/named/192.168.1.zone)
$TTL 86400
@ IN SOA dns.seker.com. root.seker.com.(
20031001;
1D;
1H;
1W;
3H);
@ IN NS dns.seker.com.
4 IN PTR mail.seker.com.
4 IN PTR www.seker.com.
此反向解析配置文件与正向解析类似,通过 SOA 记录定义起始授权信息,NS 记录指定域名服务器,PTR 记录将 IP 地址映射为主机名,这里将 IP 地址 192.168.1.4
分别映射为 mail.seker.com
和 www.seker.com
。
(四)重启网络环境与语法检查
- 加载 DNS 配置文件并重启 DNS 服务
service named reload # 加载 DNS 配置文件
systemctl restart named.service # 使用 systemctl 命令重启 DNS 服务
- 语法检查
named-checkzone seker.zone /var/named/seker.zone (正向区域文件检查)
named-checkzone 192.168.1.zone /var/named/192.168.1.zone (反向区域文件检查)
确保配置文件语法正确,避免因语法问题导致 DNS 服务启动失败或运行异常。
(五)测试 DNS 服务器
- 使用
nslookup
工具进行测试:
nslookup www.seker.com
nslookup 192.168.1.4
- 使用
host
工具进行测试:
host www.seker.com
host 192.168.1.4
- 使用
ping
命令进行测试:
ping www.seker.com
ping 192.168.1.4
- 使用
dig
命令进行测试(dig
命令可提供更详细的 DNS 查询信息):
dig www.seker.com
dig 192.168.1.4
通过以上多种工具的测试,可以全面检查 DNS 服务器的正向和反向解析功能是否正常。
(六)客户端配置
- /etc/resolv.conf
domainname seker.com // 定义本地域名
search seker.com // 简化用户输入的主机名,当用户输入部分主机名时,DNS 可根据此搜索域进行解析。与 domain 是类似功能,二者同时出现时都是用于定义搜索列表
nameserver 192.168.1.4 // 定义域名服务器的 IP,最多可指定三个,一般建议使用两个
此文件用于指定域名服务器的 IP 和搜索顺序,客户端需要正确配置此文件才能使用 DNS 服务进行域名解析。
- /etc/hosts 配置静态解析文件
127.0.0.1 localhost.localdomain localhost
192.168.1.4 www.seker.com www
此文件用于实现本地主机名与 IP 地址的静态映射,在 DNS 不可用或者需要对特定主机进行快速解析时发挥作用。
- 编辑/etc/host.conf配置
order hosts,bind
表示先使用 hosts
文件进行解析,若解析失败再使用 DNS 解析。
此外,在 DNS 服务器配置中,如果需要监听所有网络接口,可以在 /etc/named.conf
的 listen - on port 53 {}
中添加 any
;在 allow - query {}
中也添加 any
,表示允许所有客户端查询。如果有多个域名需要解析,需要创建并配置多个正向解析文件。
五、总结
通过以上步骤完成了 DNS 服务器的配置、测试以及客户端相关配置。在配置过程中,需要注意各个配置文件的语法和参数含义,特别是 SOA、NS、MX、A、CNAME、PTR 等记录的正确使用,以及 DNS 服务的启动、语法检查和多种测试方法的应用,确保 DNS 服务的稳定和正确运行。
同时,要关注软件包的更新和系统环境的变化可能对 DNS 配置带来的影响。