【环境说明】
阿里云ECS服务器:CentOS7.7 x64 (双栈环境)
如果没有双栈阿里云环境,可以根据链接进行搭建:阿里云部署IPv4&IPv6 双栈环境
【编译安装环境】
yum install -y gcc #安装编译器
yum install -y openssl-devel #安装openssl-devel
【下载并编译安装递归DNS】
1)获取安装包
wget ftp.osuosl.org/pub/blfs/conglomeration/bind/bind-9.12.3-P1.tar.gz
2)解压
tar -zxvf bind-9.12.3-P1.tar.gz
3)编译安装
cd bind-9.12.3-P1
./configure --prefix=/usr/local/bind --enable-threads
#--prefix=/usr/local/bind 指定目录
#--enable-threads 开启多线程
make && make install
4)配置rndc和named.conf主配置文件
此时/usr/local/bind/etc下并没有named.conf文件,可以手动创建,但如果要用rndc工具控制bind,那么还是需要通过rndc生成:
/usr/local/bind/sbin/rndc-confgen -r /dev/urandom > /usr/local/bind/etc/rndc.conf
tail -10 /usr/local/bind/etc/rndc.conf | head -9 | sed -e s/#\ //g > named.conf
在/usr/local/bind/下创建zone文件的目录和log的目录
mkdir /usr/local/bind/zone
mkdir /usr/local/bind/log
编辑bind的基本配置: /usr/local/bind/etc/named.conf ,在配置文件末尾增加如下配置
options {
directory "/usr/local/bind";
pid-file "/usr/local/bind/etc/named.pid";
dump-file "/usr/local/bind/data/dunmp.db";
recursion yes;
allow-query { any; };
listen-on port 53 { any; };
querylog yes;
};
logging {
channel query_syslog { syslog local3; severity info; print-time yes; };
channel query_log {
file "/usr/local/bind/log/query.log." versions 5 size 50m;
print-time yes;
severity info;
};
category queries { query_log;};
channel general_log {
file "/usr/local/bind/log/general_log" versions 5 size 20m;
print-time yes;
print-category yes;
print-severity yes;
severity info;
};
category default { general_log; };
category general { general_log; };
};
5)检查并启动bind
/usr/local/bind/sbin/named -g
出现running代表启动成功
6)启动服务
如果单线程启动执行:
/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf
如果多线程启动执行:
/usr/local/bind/sbin/named -c /usr/local/bind/etc/named.conf -n 4 -U 4
此时BIND就可以进行递归查询了
在windows客户端上使用nslookup 指向IPv6地址进行dns查询
(一定要让自己的windows客户端也具备双栈环境,才可以向双栈DNS发起测试)
【搭建权威DNS】
1)将常用命令复制到/usr/sbin/目录中
cp /usr/local/bind/bin/dig /usr/sbin/
cp /usr/local/bind/sbin/named-checkconf named-checkzone rndc /usr/sbin/
2)配置一个权威区,在/usr/local/bind/zone/目录下创建test.com权威zone文件:
vim /usr/local/bind/zone/test.com.conf
添加如下内容:
$ORIGIN .
$TTL 3600 ; 1 hour
test.com IN SOA test.zsf.com. mail.test.com. (
2 ; serial
28800 ; refresh (8 hours)
3600 ; retry (1 hour)
604800 ; expire (1 week)
1800 ; minimum (30 minutes)
)
NS ns.zsf.com.
$ORIGIN test.com.
$TTL 60 ; 1 minute
www A 1.3.5.7
$TTL 3600 ; 1 hour
ns A 192.168.138.133
3)校验区配置文件,出现ok即代表zone配置完成
named-checkzone test.com /usr/local/bind/zone/test.com.conf
4)编辑/usr/local/bind/etc/named.conf文件,在文件末尾添加如下内容
zone "test.com" {
check-names ignore;
type master;
file "/usr/local/bind/zone/test.com.conf";
};
5)校验named配置文件,没有输出即代表配置完成
named-checkconf /usr/local/bind/etc/named.conf
6)重载bind配置
rndc reload
7)解析测试
(测试解析成功)