在 CentOS 7 上配置主 DNS 服务器
默认情况下,named.service 在 localhost 上运行。
由于我们正在为我们的域配置一个权威的 DNS 服务器,因此,我们需要配置 named.service 以在与我们的网络连接的接口上运行。
[root@dns-01 ~]# vi /etc/named.conf
在 options 指令下设置以下参数以允许 named.service 在我们的网络接口上运行。
listen-on port 53 { 127.0.0.1; 192.168.1.101; };
我们还需要启用 named.service 以允许客户端查询。
因此,在选项指令中查找并设置以下参数。
allow-query { localhost; 192.168.1.0/24; };
为了保持named.conf 文件干净,我们在一个单独的文件中定义我们的DNS 区域。
[root@dns-01 ~]# vi /etc/named.conf.local
并在此文件中添加以下指令。
zone "onitroad.com" { type master; file "/var/named/onitroad.com"; }; zone "116.168.192.in-addr.arpa" { type master; file "/var/named/116.168.192.in-addr.arpa"; };
我们在这里定义了两个 DNS 区域,一个是正向 DNS 区域,另一个是反向 DNS 区域。
在默认的named.conf 文件中包含我们的named.conf.local 文件,所以它会在服务启动时被调用。
[root@dns-01 ~]# echo 'include "/etc/named.conf.local";' >> /etc/named.conf
为我们的域配置转发区域。
[root@dns-01 ~]# vi /var/named/onitroad.com
并其中添加以下设置。
$TTL 1h @ IN SOA onitroad.com. root.onitroad.com. ( 2019080901 ; Serial YYYYMMDDnn 24h ; Refresh 2h ; Retry 28d ; Expire 2d ) ; Minimum TTL ;Name Servers @ IN NS dns-01 ;Mail Servers @ IN MX 0 mail-01 ;Other Servers dns-01 IN A 192.168.1.101 mail-01 IN A 192.168.1.6 web-01 IN A 192.168.1.3 ;Canonical Names www IN CNAME web-01 mail IN CNAME mail-01
检查转发区域文件是否有任何可能的错误。
[root@dns-01 ~]# named-checkzone onitroad.com /var/named/onitroad.com zone onitroad.com/IN: loaded serial 2019080901 OK
为我们的域配置一个反向区域。
[root@dns-01 ~]# vi /var/named/116.168.192.in-addr.arpa
并其中添加以下设置。
$TTL 1h @ IN SOA 116.168.192.in-addr.arpa root.onitroad.com. ( 2019080901 ; Serial YYYYMMDDnn 24h ; Refresh 2h ; Retry 28d ; Expire 2d ) ; Minimum TTL ;Name Servers @ IN NS dns-01 ;Other Servers dns-01 IN A 192.168.1.101 ;PTR Records 4 IN PTR dns-01 6 IN PTR mail-01 3 IN PTR web-01
检查反向区域文件是否有任何可能的错误。
[root@dns-01 ~]# named-checkzone onitroad.com /var/named/116.168.192.in-addr.arpa zone onitroad.com/IN: loaded serial 2019080901 OK
调整区域文件的文件所有权。
[root@dns-01 ~]# chgrp named /var/named/onitroad.com [root@dns-01 ~]# chgrp named /var/named/116.168.192.in-addr.arpa
启用并启动 named.service 。
[root@dns-01 ~]# systemctl enable --now named.service Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
在 Linux 防火墙中允许 DNS 服务。
[root@dns-01 ~]# firewall-cmd --permanent --add-service=dns success [root@dns-01 ~]# firewall-cmd --reload success
将我们的主(主)DNS 服务器添加到客户端的 resolve.conf 中。
[root@dns-01 ~]# nmcli c m ens33 ipv4.dns-search onitroad.com ipv4.dns 192.168.1.101
重新启动界面使更改生效。
[root@dns-01 ~]# nmcli c down ens33 ; nmcli c up ens33 Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
验证 DNS 服务器设置。
[root@dns-01 ~]# cat /etc/resolv.conf # Generated by NetworkManager search onitroad.com nameserver 192.168.1.101
使用 dig 命令查询我们的主(主)DNS 服务器。
[root@dns-01 ~]# dig www.onitroad.com ; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> www.onitroad.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2020 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.onitroad.com. IN A ;; ANSWER SECTION: www.onitroad.com. 3600 IN CNAME web-01.onitroad.com. web-01.onitroad.com. 3600 IN A 192.168.1.3 ;; AUTHORITY SECTION: onitroad.com. 3600 IN NS dns-01.onitroad.com. ;; ADDITIONAL SECTION: dns-01.onitroad.com. 3600 IN A 192.168.1.101 ;; Query time: 1 msec ;; SERVER: 192.168.1.101#53(192.168.1.101) ;; WHEN: Fri Aug 09 23:15:51 PKT 2019 ;; MSG SIZE rcvd: 118
在 CentOS 7 上安装 BIND 9 DNS 服务器
BIND 9 可通过 CentOS 7 官方 yum 存储库获得。
因此,我们可以使用 yum 命令轻松安装它。
[root@dns-01 ~]# yum install -y bind bind-utils
BIND 是使用最广泛的 DNS(域名服务器)软件。
它的名字起源于 Berkeley Internet Name Domain 的首字母缩写词。
BIND 也被称为它的服务名称,例如:named(或者 Name Daemon)。
BIND 最新版本 9 现在可用,并在 Mozilla 公共许可证 (MPL) 下分发。
BIND 由 Internet Systems Consortium (ISC) 开发和维护。
在本文中,我们将在 CentOS 7 上使用 BIND 9 配置主(主)和辅助(从)DNS 服务器。
在 CentOS 7 上配置从属DNS 服务器
登录到服务器 dns-02.onitroad.com。
按照上一节的方法安装 BIND 9 软件包。
配置我们的辅助(从)DNS 服务器的named.service 设置。
[root@dns-02 ~]# vi /etc/named.conf
在选项指令下设置以下参数。
listen-on port 53 { 127.0.0.1; 192.168.1.102; }; allow-query { localhost;192.168.1.0/24; };
就像我们对主(主)DNS 服务器所做的一样,我们在单独的配置文件中定义我们的区域。
[root@dns-02 ~]# vi /etc/named.conf.local
并其中定义以下区域。
zone "onitroad.com" { type slave; masters { 192.168.1.101; }; file "/var/named/onitroad.com"; }; zone "116.168.192.in-addr.arpa" { type slave; masters { 192.168.1.101; }; file "/var/named/116.168.192.in-addr.arpa"; };
在默认的 named.conf 文件中包含我们的 named.conf.local 文件,因此它会在服务启动时调用我们的设置。
[root@dns-02 ~]# echo 'include "/etc/named.conf.local";' >> /etc/named.conf
启动并启用 named.service 。
[root@dns-02 ~]# systemctl enable --now named.service Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
在 Linux 防火墙中允许 DNS 服务。
[root@dns-02 ~]# firewall-cmd --permanent --add-service=dns success [root@dns-02 ~]# firewall-cmd --reload success
设置 SELinux 布尔值,以便我们的辅助(从)DNS 服务器可以接受区域传输并更新本地区域文件。
[root@dns-02 ~]# setsebool -P named_write_master_zones on
现在,连接到 dns-01.onitroad.com 并为我们的辅助(从)DNS 服务器添加设置。
通过如下编辑named.conf.local 文件来配置区域传输。
[root@dns-01 ~]# vi /etc/named.conf.local
在两个区域下添加以下指令。
allow-transfer {192.168.1.102; }; also-notify {192.168.1.102; };
在我们的正向和反向区域中添加我们的辅助(从)DNS 服务器记录。
[root@dns-01 ~]# vi /var/named/onitroad.com
并添加辅助(从)DNS 服务器 NS 和 A 记录如下:
$TTL 1h @ IN SOA onitroad.com. root.onitroad.com. ( 2019080901 ; Serial YYYYMMDDnn 24h ; Refresh 2h ; Retry 28d ; Expire 2d ) ; Minimum TTL ;Name Servers @ IN NS dns-01 @ IN NS dns-02 ;Mail Servers @ IN MX 0 mail-01 ;Other Servers dns-01 IN A 192.168.1.101 dns-02 IN A 192.168.1.102 mail-01 IN A 192.168.1.6 web-01 IN A 192.168.1.3 ;Canonical Names www IN CNAME web-01 mail IN CNAME mail-01
在反向区域中添加辅助(从)DNS 服务器记录。
[root@dns-01 ~]# vi /var/named/116.168.192.in-addr.arpa
并添加我们的辅助(从)DNS 服务器 NS , A 和 PTR 记录如下。
$TTL 1h @ IN SOA 116.168.192.in-addr.arpa root.onitroad.com. ( 2019080901 ; Serial YYYYMMDDnn 24h ; Refresh 2h ; Retry 28d ; Expire 2d ) ; Minimum TTL ;Name Servers @ IN NS dns-01 @ IN NS dns-02 ;Other Servers dns-01 IN A 192.168.1.101 dns-02 IN A 192.168.1.102 ;PTR Records 4 IN PTR dns-01 5 IN PTR dns-02 6 IN PTR mail-01 3 IN PTR web-01
重新启动 named.service 使更改生效。
[root@dns-01 ~]# systemctl restart named.service
检查 dns-02.onitroad.com 上的 /etc/named 目录。
[root@dns-02 ~]# ls /var/named 116.168.192.in-addr.arpa dynamic named.ca named.localhost slaves data onitroad.com named.empty named.loopback
区域文件会自动复制到辅助(从)DNS 服务器。
现在将此辅助 DNS 服务器添加到客户端的 resolve.conf 文件中。
[root@dns-01 ~]# nmcli c m ens33 +ipv4.dns 192.168.1.102 [root@dns-01 ~]# nmcli c down ens33 ; nmcli c up ens33 Connection 'ens33' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1) Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
检查 resolv.conf 内容。
[root@dns-01 ~]# cat /etc/resolv.conf # Generated by NetworkManager search onitroad.com nameserver 192.168.1.101 nameserver 192.168.1.102
通过查询主机名检查辅助(从)DNS 服务器。
[root@dns-01 ~]# dig @192.168.1.102 mail.onitroad.com ; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> @192.168.1.102 mail.onitroad.com ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21668 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;mail.onitroad.com. IN A ;; ANSWER SECTION: mail.onitroad.com. 3600 IN CNAME mail-01.onitroad.com. mail-01.onitroad.com. 3600 IN A 192.168.1.6 ;; AUTHORITY SECTION: onitroad.com. 3600 IN NS dns-02.onitroad.com. onitroad.com. 3600 IN NS dns-01.onitroad.com. ;; ADDITIONAL SECTION: dns-01.onitroad.com. 3600 IN A 192.168.1.101 dns-02.onitroad.com. 3600 IN A 192.168.1.102 ;; Query time: 2 msec ;; SERVER: 192.168.1.102#53(192.168.1.102) ;; WHEN: Sat Aug 10 13:09:59 PKT 2019 ;; MSG SIZE rcvd: 157
从属DNS 服务器已配置好并且运行良好。
搭建环境
主(Primary/Master)DNS 服务器:
- 主机名 - dns-01.onitroad.com
- IP 地址 - 192.168.1.101 /24
- 操作系统 - CentOS 7.6
从属(Secondary)DNS 服务器:
- 主机名 - dns-02.onitroad.com
- IP 地址 - 192.168.1.102 /24
- 操作系统 - CentOS 7.6