1. 环境
centos7
ip: 192.168.61.42
域名:harbor.domain.com
2. 下载安装包
因为安装时离线环境,所以提前在有网络的服务器上下载
注意:在使用downloadonly时,需要在没有安装过依赖的机器上执行,如果执行的机器之前安装过所需依赖,执行downloadonly后,会提示依赖已经安装,不能下载,会导致离线安装缺少依赖包
下载DNS服务依赖包
yum -y install bind --downloadonly --downloaddir /home/dns/bind
下载DNS检测工具依赖包
yum -y install bind-utils --downloadonly --downloaddir /home/dns/bind-utils
打包:
cd /home/dns
tar cf bind.tar bind
tar cf bind-utils.tar bind-utils
上传下载解压 ,解压命令:tar -xf ... 后:
cd /home/dns/bind //进入安装包目录bind
rpm -ivh *.rpm --force --nodeps
cd /home/dns/bind-utils //进入安装包目录bind-utils
rpm -ivh *.rpm --force --nodeps
3. 修改配置文件
# vim /etc/named.conf
修改listen-on port 53 { 127.0.0.1; }; 为 listen-on port 53 { any; }; #服务器上的所有IP地址均可提供DNS域名解析服务
修改allow-query { localhost; }; 为 allow-query { any; }; #允许所有人对本服务器发送DNS查询请求
vim /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.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
//listen-on port 53 { 127.0.0.1; };
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
//allow-query { localhost; };
allow-query { any; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
/* Path to ISC DLV key */
bindkeys-file "/etc/named.root.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
#增加一个a.com域名的解析,具体解析规则在/var/named/a.com.zone里
zone "harbor.domain.com" IN {
type master;
file "harbor.domain.com.zone";
};
#增加一个反向解析,即根据ip查域名(不需要的话可以不设置)
zone "61.168.192.in-addr.arpa" IN {
type master;
file "192.168.61.zone";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
4. 建立解析文件
cd /var/named
正向解析
# cd /var/named
# cp -p named.localhost harbor.domain.com.zone //编辑正向区域数据配置文件,注意复制配置文件时,要保持源文件权限
# vim harbor.domain.com.zone //编辑正向区域数据配置文件内容
$TTL 1D
@ IN SOA @ harbor.domain.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.61.42
www A 192.168.61.42
AAAA ::1
[root@node7 ~]# named-checkzone dnps.com.zone /var/named/harbor.domain.com.zone
zone dnps.com.zone/IN: loaded serial 0
OK
erial:序列号。可以供从服务器判断何时获取新数据的,更新数据文件必须要更新这个序列号,否则从服务器将不更新。
refersh: 指定多长时间从服务器要与主服务器进行核对。
retry: 如果从服务器试图检查主服务器的序列号时,主服务器没有响应,则经过这个时间后将重新进行检查。
expire: 将决定从服务器在没有主服务器的情况下权威地持续提供域数据服务的时间长短。
minium: 高速缓存否定回答的存活时间。
反向解析
# cd /var/named
# cp -p named.localhost 192.168.61.zone //编辑反向区域数据配置文件,注意复制配置文件时,要保持源文件权限
# vim 192.168.61.zone //编辑反向区域数据配置文件内容
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.61.42
42 PTR harbor.domain.com.
~
~
[root@node7 ~]# named-checkzone dnps.com.zone /var/named/192.168.61.zone
zone dnps.com.zone/IN: loaded serial 0
OK
5. 启动测试
# chkconfig named on //设置开机自启动
# service named restart // 重启
# service named start // 开启命令
# service named stop //关闭服务命令
[root@node7 ~]# vim /etc/resolv.conf
[root@node7 ~]# cat /etc/resolv.conf
#nameserver 223.5.5.5
nameserver 192.168.61.42
[root@node7 ~]# nslookup harbor.domain.com
Server: 192.168.61.42
Address: 192.168.61.42#53
Name: harbor.domain.com
Address: 192.168.61.42
[root@node7 ~]# nslookup 192.168.61.42
42.61.168.192.in-addr.arpa name = harbor.domain.com.
[root@node7 ~]#