centos7下搭建DNS服务器介绍
导读
一:项目环境:
主机 | 角色 | IP地址 | 功能 |
---|---|---|---|
dns.kevin.com | DNS服务器 | 192.168.100.10 | 提供域名解析 |
win.kevin.com | DNS客户端 | 192.168.100.20 | 测试域名解析是否正常 |
www.kevin.com | WEB服务器 | 192.168.100.30 | 站点服务器 |
blog.kevin.com | FTP服务器 | 192.168.100.40 | 博客服务器 |
二:dns服务器配置
i:配置正向解析:
基础环境配置
[root@kevin ~]# hostname kevin [root@kevin ~]# getenforce Disabled [root@kevin ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) Docs: man:firewalld(1) [root@kevin ~]#
2.安装DNS 服务器软件,并启动
[root@kevin ~]# yum install -y bind [root@kevin ~]# systemctl start named
3.主配置文件/etc/named.conf,DNS服务的全局配置文件。
为了安全,在修改之前先备份该文件。该文件的属组比较特殊,属于named组
[root@kevin ~]# cp -p /etc/named.conf /etc/named.conf.bak
4.修改主配置文件named.conf:13行:监听地址 21行:允许利用本服务器查询的客户机地址
均修改为any
[root@kevin ~]# vi /etc/named.conf listen-on port 53 { any; }; allow-query { any; };
5.修改区域配置文件/etc/named.rfc1912.zones,该文件用于说明哪个区域的数据存放在哪个文件里。 仿照该文件已有内容的格式,在文件末尾新增一个正向查找区域kevin.com,类型是主要区域,数据是kevin.com.zone;
[root@kevin ~]# vi /etc/named.rfc1912.zones zone "kevin.com" IN { type master; file "kevin.com.zone"; allow-update { none; }; };
6.根据第5步,添加正向区域数据文件。数据文件无需新建,可以根据/var/named 目录下提供的文件named.localhost进行复制命名为kevin.com.zone并修改。 将kevin.com.zone内容修改为:
[root@kevin ~]# cp -p /var/named/named.localhost /var/named/kevin.com.zone
[root@kevin ~]# vi /var/named/kevin.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 192.168.100.10 dns IN A 192.168.100.10 win IN A 192.168.100.20 www IN A 192.168.100.30 blog IN A 192.168.100.40 AAAA ::1
7.重新加载DNS服务的配置文件
[root@kevin ~]# rndc reload server reload successful [root@kevin ~]#
若是加载失败,可使用named-checkconf /etc/named.conf和named-checkzone kevin.com /var/named/kevin.com.zone检查是何处出了错误
[root@kevin ~]# named-checkconf /etc/named.conf [root@kevin ~]# named-checkzone kevin.com /var/named/kevin.com.zone zone kevin.com/IN: loaded serial 0 OK
8.完成后,可首先在DNS服务器本地进行测试,修改/etc/resolv.conf,将DNS服务器的地址(即服务器本机地址)写入:
(bind-utils)是DNS服务器的辅助工具包,比如dig主要用来从 DNS 域名服务器查询主机地址信息,可以用来测试域名系统工作是否正常。
或者nslookup等工具
[root@kevin ~]# vi /etc/resolv.conf # Generated by NetworkManager nameserver 8.8.8.8
[root@kevin ~]# yum install bind-utils [root@kevin ~]# dig www.kevin.com @192.168.100.10 ; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.8 <<>> www.kevin.com @192.168.100.10 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62498 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;www.kevin.com. IN A ;; ANSWER SECTION: www.kevin.com. 86400 IN A 192.168.100.30 ;; AUTHORITY SECTION: kevin.com. 86400 IN NS kevin.com. ;; ADDITIONAL SECTION: kevin.com. 86400 IN A 192.168.100.10 ;; Query time: 0 msec ;; SERVER: 192.168.100.10#53(192.168.100.10) ;; WHEN: 六 12月 18 14:48:23 CST 2021 ;; MSG SIZE rcvd: 88
9:本地测试访问正常,在其他客户机上将网卡的首选 DNS 服务器地址调整为上述表格里设置的DNS服务器地址,再查询相关的记录:
C:\Users\Kevin>nslookup 默认服务器: UnKnown Address: 192.168.100.10 > www.kevin.com 服务器: UnKnown Address: 192.168.100.10 名称: www.kevin.com Address: 192.168.100.30 > blog.kevin.com 服务器: UnKnown Address: 192.168.100.10 名称: blog.kevin.com Address: 192.168.100.40 >
目前实现了可以通过主机名查询主机对应的 IP 地址,但是通过 IP 地址查询对应的主机名还不能完成,因为没有配置反向查找区域。
ii :配置反向解析
1.主要思路同正向查找区域配置。主配置文件已无需修改。 修改辅助配置文件,在文末新增一个反向查找区域,注意反向查找区域名称的命名格式:
[root@kevin ~]# vi /etc/named.rfc1912.zones zone "100.168.192.in-addr.arpa" IN { type master; file "192.168.100.arpa"; allow-update { none; }; };
2.复制反向解析文件模板进行修改:
[root@kevin ~]# cp -p /var/named/named.loopback /var/named/192.168.100.arpa [root@kevin ~]# vi /var/named/192.168.100.arpa $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS dns.kevin.com. dns IN A 192.168.100.10 10 IN PTR dns.kevin.com. 20 IN PTR win.kevin.com. 30 IN PTR www.kevin.com. 40 IN PTR blog.kevin.com.
重载配置文件:
[root@kevin ~]# systemctl restart named [root@kevin ~]# rndc reload server reload successful
3:在客户机测试反向解析是否正确:
C:\Users\Kevin>nslookup 默认服务器: dns.kevin.com Address: 192.168.100.10 > 192.168.100.30 服务器: dns.kevin.com Address: 192.168.100.10 名称: www.kevin.com Address: 192.168.100.30 > 192.168.100.40 服务器: dns.kevin.com Address: 192.168.100.10 名称: blog.kevin.com Address: 192.168.100.40 >
三:配置主从服务器:
通过前面的操作,DNS主服务器已经配置完毕并能正常工作。启动第2台CentOS主机,将其配置为第1台DNS服务器的从服务器,使得第1台主机上DNS数据能通过网络传输到第2台。
1:编辑/etc/named.conf文件,修改监听IP地址为any
vi /etc/named.conf listen-on port 53 { any; }; allow-query { any; };
2:编辑/etc/named.rfc1912.zones,建立或从第1台主机复制所需要的正向/反向查找区域文件(从服务器的区域解析库文件应当是从主服务器加载过来的,所以无需创建区域解析库文件。),并修改内容,将type类型改为slave
[root@likevin ~]# vi /etc/named.rfc1912.zones zone "kevin.com" IN { type slave; //类型 masters {192.168.100.10;}; //主机 file "slaves/kevin.com.zone"; //配置文件存放地点和名称 masterfile-format text; //文档类型 }; zone "100.168.192.in-addr.arpa" IN { type slave; masters {192.168.100.10;}; file "slaves/192.168.100.arpa"; masterfile-format text; };
3:重启named服务,检查下slaves文件夹下有没有从主机传送来的文件
[root@likevin ~]# systemctl restart named [root@likevin ~]# rndc reload server reload successful [root@likevin ~]# ll /var/named/slaves/ 总用量 8 -rw-r--r-- 1 named named 517 12月 18 16:14 192.168.100.arpa -rw-r--r-- 1 named named 349 12月 18 16:14 kevin.com.zone
[root@likevin ~]# vi /var/named/slaves/192.168.100.arpa $ORIGIN . $TTL 86400 ; 1 day 100.168.192.in-addr.arpa IN SOA 100.168.192.in-addr.arpa. rname.invalid. ( 0 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS dns.kevin.com. $ORIGIN 100.168.192.in-addr.arpa. 10 PTR dns.kevin.com. 20 PTR win.kevin.com. 30 PTR www.kevin.com. 40 PTR blog.kevin.com. dns A 192.168.100.10
[root@likevin ~]# vi /var/named/slaves/kevin.com.zone $ORIGIN . $TTL 86400 ; 1 day kevin.com IN SOA kevin.com. rname.invalid. ( 0 ; serial 86400 ; refresh (1 day) 3600 ; retry (1 hour) 604800 ; expire (1 week) 10800 ; minimum (3 hours) ) NS kevin.com. A 192.168.100.10 $ORIGIN kevin.com. blog A 192.168.100.40 dns A 192.168.100.10 win A 192.168.100.20 www A 192.168.100.30