目录
把网卡中的DNS地址参数改为本机IP地址(127.0.0.1)
关闭主服务器上的防火墙或者增加规则,让DNS协议流量可以传递
BIND安装部署
安装bind服务程序
#安装bind服务程序加上chroot(俗称牢笼机制)扩展包
yum install bind-chroot
在Linux中bind服务程序的名称为named,在目录中找到该服务程序的主配置文件把第11行和第19行的地址均改为any,分别表示该服务器所有IP地址均可提供DNS域名解析服务和所有人可向本服务器发生DNS请求
vim /etc/named.conf
正向解析
编程区域配置文件
#将该文件原有数据清空,只保留自己的域名解析信息
vim /etc/named.rfc1912.zones
#将原有内容替换为以下内容
zone "g.com" IN {
type master;
file "g.com.zone";
allow-update { none; };
};
编程数据配置文件
#切换目录
cd /var/named
查看一下文件
ls -al named.localhost
#把这个正向解析的模板文件复制一下
cp -a named.localhost g.com.zone
#修改
vim g.com.zone
#修改为以下内容
$TTL 1D
@ IN SOA g.com. admin.g.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.g.com.
ns IN A 172.20.10.3
www IN A 172.20.10.3
#重启一下named服务程序
systemctl restart named
systemctl enable named
把网卡中的DNS地址参数改为本机IP地址(127.0.0.1)
#修改网卡参数
nmtui
#关闭网络检测是否成功
nslookup
反向解析
编程区域配置文件
vim /etc/named.rfc1912.zones
#添加以下内容
zone "10.20.172.in-addr.arpa" IN {
type master;
file "172.20.10.arpa";
allow-update { none; };
};
编程数据配置文件
#切换目录
cd /var/named/
cp -a named.loopback 172.20.10.arpa
vim 172.20.10.arpa
#添加以下内容
$TTL 1D
@ IN SOA g.com abmin.g.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.g.com.
ns A 172.20.10.3
3 PTR ns.g.com.
3 PTR www.g.com.
4 PTR bbs.g.com.
#重启服务
systemctl restart named
检验结果,网卡中的DNS地址参数改为本机地址
主从服务器部署
主句名称 | 主句 | IP地址 |
主服务器 | 虚拟机1 | 172.20.10.3 |
从服务器 | 虚拟机2 | 172.20.10.4 |
在主服务器的区域配置文件中允许从服务器的更新请求
vim /etc/named.rfc1912.zones
#重启一下服务程序
systemctl restart named
关闭主服务器上的防火墙或者增加规则,让DNS协议流量可以传递
#关闭防火墙
systemctl stop firewalld
在从服务器上安装bind-chroot软件包
dnf install bind-chroot
#安装完修改配置文件,让从服务器也能对外提供DNS服务
vim /etc/named.conf
#修改为any
在从服务器中填写主服务器的IP地址与要抓取的区域信息
#打开配置文件
vim /etc/named.rfc1912.zones
#把里面的所有内容替换为以下内容
zone "g.com" IN {
type slave;
masters { 172.20.10.3; };
file "slaves/g.com.zone";
};
zone "10.20.172.in-addr.arpa" IN {
type slave;
masters { 172.20.10.3; };
file "slaves/172.20.10.arpa";
};
#重启服务
systemctl restart named
检验解析结果
#配置从服务器的网络参数,把DNS地址参数修改为172.20.10.4
nmtui
#开始查看解析结果
nslookup
加密传输
此实验依然使用了上面两台服务器
在主服务器中生成密钥
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST master-slave
#查看生成的密钥文件
ls -l Kmaster-slave.+157+16153.*
#查看生成的密钥的值并记录下来,即key后面的黑体字
cat Kmaster-slave.+157+16153.private
在主服务器中创建密钥验证文件
#切换目录
cd /var/named/chroot/etc
#打开文件
vim transfer.key
#添加以下内容,/BR2E/za4kqfXAlbg1K8Iw==是密钥的值,每个人不一样
key "master-slave" {
algorithm hmac-md5;
secret "/BR2E/za4kqfXAlbg1K8Iw==";
};
#为安全起见,需要将文件的所属组修改为named
chown root:named transfer.key
#将文件的权限设置的要小一点
chmod 640 transfer.key
#设置该文件的一个硬链接,并指向/etc
ln transfer.key /etc/transfer.key
开启并加载bind服务的密钥验证功能
#在主服务器的主配置文件中加载密钥验证文件,然后进行设置
vim /etc/named.conf
#加入下面这两行,位置如图
include "/etc/transfer.key";
allow-transfer { key master-slave; };
#然后重启服务
systemctl restart named
配置从服务器
#清空同步目录中所有的数据配置文件
rm -rf /var/named/slaves/*
重启bind服务程序
systemctl restart named
ls /var/named/slaves/
创建密钥认证文件,使其支持密钥验证
#切换目录
cd /var/named/chroot/etc/
#配置文件内容
vim transfer.key
#复制以下内容,和主服务器内容一样
key "master-slave" {
algorithm hmac-md5;
secret "/BR2E/za4kqfXAlbg1K8Iw==";
};
#设置权限,和硬链接
chown root:named transfer.key
chmod 640 transfer.key
ln transfer.key /etc/transfer.key
开启并加载从服务器的密钥验证功能
vim /etc/named.conf
#输入以下内容,位置如下图所示,位置为第9行,51行
include "/etc/transfer.key";
server 172.20.10.3
{
keys { master-slave; };
};
DNS从服务器同步域名区域数据
#重启bind服务程序
systemctl restart named
#可以发现又能顺利同步到数据配置文件了
ls /var/named/slaves/
再次进行解析验证
DNS缓存服务器
主机名称 | 主句 | IP地址 |
缓存服务器 | 虚拟机1 | 网卡1:桥接网卡 网卡2:仅主机IP为172.20.10.10 |
客户端 | 虚拟机2 | 仅主机IP为172.20.10.20 |
在bind服务程序的主配置文件中添加缓存转发参数
vim /etc/named.conf
#在大约20行处添加一行参数"forwarders { 上级DNS服务器地址; };",
forwarders { 210.42.249.131; };
#重启一下DNS服务
systemctl restart named
#记得关闭一下防火墙
systemctl stop firewalld
设置客户端主机的DNS服务器地址参数
分离解析
主机名称 | IP地址 |
服务器 | 192.168.10.1 122.71.115.1 |
客户端 | 192.168.10.20 |
客户端2 | 122.71.115.20 |
修改bind服务的主配置文件
vim /etc/named.conf
#把11行和19行的允许主机修改为any,把52~55行的根域信息删除
编程区域配置文件
vim /etc/named.rfc1912.zones
#添加以下内容
acl "china" { 192.168.10.0/24; };
acl "america" { 122.71.115.0/24; };
view "china"{
match-clients { "china"; };
zone "g.com" {
type master;
file "g.com.china";
};
};
view "america"{
match-clients { "america"; };
zone "g.com" {
type master;
file "g.com.america";
};
};
建立数据配置文件
cd /var/named
cp -a named.localhost g.com.china
cp -a named.localhost g.com.america
vim g.com.china
#输入以下内容
$TTL 1D
@ IN SOA g.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.g.com.
ns IN A 192.168.10.150
www IN A 192.168.10.222
#打开另一个
vim g.com.america
#输入以下内容
$TTL 1D
@ IN SOA g.com. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ns.g.com.
ns IN A 122.71.115.188
www IN A 122.71.115.144
#重启服务
systemctl restart named
将不同客户端的DNS服务器地址改为对应的地址
IP为192.168.10.20的客户端:
IP为122.71.115.20的客户端: