企业内部经常需要搭建内部的DNS服务器,现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Internet Systems Consortium)编写和维护。BIND支持先今绝大多数的操作系统(Linux,UNIX,Mac,Windows),BIND服务的名称称之为named。DNS默认使用UDP、TCP协议,使用端口为53(domain),953(mdc,远程控 大专栏 使用BIND搭建内部DNS服务制使用)。 本文介绍了如何使用BIND软件轻松构建一套私有的DNS服务。
名词解析
- DNS
域名解析服务(Domain Name System),是用于解析域名与IP地址对应关系的服务。
- 正向解析
根据主机名(域名)查找对应的IP地址。
- 反向解析
根据IP地址查找对应的主机名(域名)。
部署过程
- 安装BIND服务,其二进制命令名称为named
yum -y install bind-chroot bind bind-utils bind-devel
- 编辑主配置文件
/etc/named.conf
,需要修改的行数如下:(下面显示的是修改之后的配置)
[root@internal-dns]# vim /etc/named.conf 13 listen-on port 53 { any; }; //127.0.0.1修改为any,代表允许监听任何IP地址。 14 #listen-on-v6 port 53 { ::1; }; //注释掉这行 19 allow-query { any; }; //localhost修改为any,代表允许任何主机查询。
- 配置区域数据信息,文件名为
/etc/named.rfc1912.zones
,在该文件最下面追加以下内容:
vim /etc/named.rfc1912.zones # 正向解析 zone "linux.com" IN { type master; file "linux.com.zone"; allow-update { none; }; }; # 反向解析 zone "15.168.192.in-addr.arpa" IN { type master; file "1.0.0.127.zone"; };
- 配置解析数据信息
复制正向解析配置模板文件,填写相关记录值:
cp /var/named/named.localhost /var/named/linux.com.zone
修改后的正向解析文件内容如下:
[root@localhost named]# cat linux.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.linux.com. dns IN A 192.168.15.150 www IN A 192.168.15.150 hehe IN A 192.168.15.150
复制反向解析配置模板文件,填写相关记录值:
cp /var/named/named.loopback /var/named/1.0.0.127.zone
修改后的反向解析文件内容如下:
[root@localhost named]# cat 1.0.0.127.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum @ IN NS dns.linux.com. 150 IN PTR dns.linux.com. 150 IN PTR www.linux.com. 150 IN PTR hehe.linux.com.
检验配置文件语法是否正确:
named-checkconf /etc/named.conf named-checkzone linux.com /var/named/linux.com.zone named-checkzone 1.0.0.127.in-addr.arpa /var/named/1.0.0.127.zone
重启named服务:
systemctl restart named
- 检验解析结果
将本机DNS地址设置为本机IP:
[root@ineteral-dns named]# cat /etc/resolv.conf nameserver 192.168.15.150
使用host/nslookup/dig
等命令测试解析是否生效。
常见报错
在测试的时候,可能会遇到下面一些报错。
一、Host not found
Host www.linux.com not found: 2(SERVFAIL)
报错原因可能是配置文件的权限问题,检查配置文件的属性:
[root@ineteral-dns named]# ll 总用量 24 -rw-r----- 1 root root 475 5月 7 13:26 1.0.0.127.zone -rw-r----- 1 root root 248 5月 7 13:26 linux.com.zone
修改域文件的属性:
chmod 640 *.zone chgrp named linux.com.zone chgrp named 1.0.0.127.zone
再次测试,即可返回正确的解析结果。
[root@ineteral-dns named]# host www.linux.com www.linux.com has address 192.168.15.150
二、正向解析正常,反向解析错误
反向解析的时候,出现以下报错:
** server can't find 150.15.168.192.in-addr.arpa.: NXDOMAIN
可能的原因是反向解析文件的区域配置错误,检查区域信息配置:
zone "15.168.192.in-addr.arpa" IN { type master; file "1.0.0.127.zone"; };
再次测试,成功解析:
[root@ineteral-dns named]# nslookup > 192.168.15.150 Server: 192.168.15.150 Address: 192.168.15.150#53 150.15.168.192.in-addr.arpa name = www.linux.com. 150.15.168.192.in-addr.arpa name = dns.linux.com. 150.15.168.192.in-addr.arpa name = hehe.linux.com. >
The End.
来源:https://www.cnblogs.com/lijianming180/p/12256277.html