1.dns的安装与配置
yum install bind -y
systemctl start named
systemctl enable named
systemctl stop firewalld
systemctl disable firewalld
主配置文件:/etc/named.conf
子配置文件:/etc/named.rfc1912.zones
数据目录:/var/named
2.非权威dns的高速缓存
a.在主配置文件中做配置
vim /etc/named.conf
listen-on port 53 { any; }; ##让53端口在网络服务上都开启
allow-query { any; }; ##允许所有客户登录
forwarders { 172.25.254.90; }; ##当所访问域服务端不知道时,去询问172.25.254.90主机
systemctl restart named
b.测试
在客户主机做好
vim /etc/resolv.conf
nameserver 172.25.254.190
dig www.baidu.com
3.权威dns的正向解析
目的:不需要本地区域文件或根区域来进行查询的解析,而是自己来维护一个域 例如:(www.wzw.com)
在子配置文件中设置主区域
vim /etc/named.rfc1912.zones
zone "wzw.com" IN {
type master;
file "wzw.com.zones";
allow-update ( none; ); ##不允许任何主机更新
}
接着在数据目录中创建子配置文件中的“wzw.com.zones"
cd /var/named/
cp -p name.localhost wzw.com.zone ## -p 是将权限也一起复制过来
vim wzw.com.zone
配置完毕以后,可以执行named-checkconf命令和named-checkzone命令,分别检查主配置文件与数据配置文件中语法或参数的错误。
在其中做好你自己维护域的解析地址
systemctl restart named
测试时可以用nslookup命令检测是否从DNS服务器中查询到域名与IP地址的解析记录,进而更准确地检验DNS服务器是否已经能够为用户提供服务。
4.权威dns的反向解析区域
目的:通过主机的ip号能找到对应的域名
与正向解析一样也是在子配置文件中设置主区域
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type masters;
file "wzw.com.ptr';
allow-update { none; };
接着在数据目录中创建子配置文件中的“wzw.com.ptr"
cd /var/named/
cp -p name.loopback wzw.com.ptr ## -p 是将权限也一起复制过来
vim wzw.com.ptr
在其中做好你自己维护域的解析地址
systemctl restart named
5.dns对内网和外网的双向解析
目的:为了将dns服务器内网的解析与外网的区别出来,使内网没有必要通过外网再回来,从而达到内网的解析速度更快。
在主配置文件中先设置好内网与外网的访问区分
view localnet {
match-clients { 172.25.254.90 ;}; ##内网允许的客户端
zone "." IN {
type hint;
file "named.ca";
}
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
以上为内网的设置
view any {
match-clients { any;}; ##内网允许的客户端
zone "." IN {
type hint;
file "named.ca";
}
include "/etc/named.rfc1912.zones.inter";
include "/etc/named.root.key";
};
注意:以上的两个子配置文件是不同的
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter
vim /etc/named.rfc1912.zones.inter
zones "wzw.com" IN {
type master;
file "wzw.com.inter";
allow-update { none; };
cd /var/named/
cp -p wzw.com.zone wzw.com.inter
vim wzw.com.inter
dns A 172.25.254.190
systemctl restart named
6.辅助dns的设置
目的:分担主dns服务器的负担,在dns客户端较多的情况下,通过架设辅助服务器完成客户端的查询服务。
主dns服务器的设置
vim /etc/named.rfc1912.zones.inter
zone "wzw.com" IN {
type master;
file "wzw.com.inter";
allow-update { none; };
also-notify { 172.24.254.222 ;}; ##辅助服务器的ip
};
systemctl restart named
辅助dns服务器的设置
准备工作:先安装好dns和关掉火墙
vim /etc/named.rfc1912.zones
zone "wzw.com" IN {
type slave;
masters { 172.25.254.190; };
file "slaves/wzw.com.inter"; ##数据是从主服务的数据直接复制过来的
allow-update { none; };
};
systemctl restart named
测试:
在客户机中
vim /etc/resolv.conf
nameserver 172.25.254.199
dig www.wzw.com ##查看解析结果
在主dns服务器中修改解析地址
注意: 每次更改A记录文件后必须更改serial的数据,主服务器和辅助服务器才能同步
再次测试:
7.dns的远程更新
a.基于ip连接的更新
chmod g+w /etc/named
vim /etc/named.rfc1912.zones.inter
zone "wzw.com" IN {
type master;
file "wzw.com.inter"; ##数据是从主服务的数据直接复制过来的
allow-update { 172.25.254.199 ;}; ## 允许172.25.254.199主机能远程更新dns
also-notify { 172.25.254.199; };
};
systemctl restart named
测试:
在172.25.254.199这台主机上
nsupdate
>server 172.25.254.190
>update add bbs.wzw.com 86400 A 1.1.1.3 ##添加域
>send
>server 172.25.254.190
>update delete bbs.wzw.com ##删除域
>send
b.基于钥匙连接的远程更新,解决了ip更新的不安全性
在dns服务器端
dnssec-keygen -a HMAC-MD5 -b 222 -n HOST wzw ##生成钥匙
cp -p /etc/rndc.key /etc/wzw.key
vim /etc/wzw.key
chgrp named /etc/wzw.key
将生成的钥匙填入
vim /etc/named.conf
在logging那一行上面加入
include "/etc/wzw.key";
vim /etc/named.rfc1912.zones.inter
zone "wzw.com" IN {
type master;
file "wzw.com.inter";
allow-update { key wzw; };
allow-nodify { 172.25.254.199; };
};
scp 生成的钥匙 [email protected]:/mnt/ ##将钥匙发送给将要远程更新它的主机
在172.25.254.199主机中
nsupdate -k 发送过来的钥匙
8.dns的动态解析
目的:在一台主dns服务器上若要做多域名的解析,则必须要知道每个域名对应的ip号,且域名所对应的ip有可能相同出现抢网现象,为了解决这些问题,则可以在主dns服务器上设置动态解析,分配ip给每个管理的域即可。
在dns服务器端配置好dhcp与dns服务
yum install dhcp -y
systemctl start dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
先配置好dhcp
key wzw {
algorithm hmac-md5;
secret "生成的密码”;
};
zone wzw.com. {
primary 127.0.0.1;
key wzw;
}
在动态ip的域名主机上
hostnamectl set-hostname www.wzw.com ##修改主机名为维护的域名
ifconfig eth0 | grep inet ##查看获取到的ip是否是服务器端设定的
测试:
在服务器端测试: dig www.wzw.com
查看解析到的是不是获取的动态ip