dns服务器部署
1.关于dns的名词解释
dns:
domain name service(域名解析服务)
作用:上网搜索时能通过域名搜索到地址
实验环境:两台虚拟机,一台作客户端172.25.254.104,一台当服务端172.25.254.204
#关于客户端:#
/etc/resolv.conf ##dns指向文件
nameserver 172.25.254.204
A记录 ##ip地址叫做域名的Address 记录
SOA ##授权起始主机
#关于服务端#
bind ##安装包
named ##服务名称
/etc/named.conf ##主配置文件
/var/named ##数据目录
端口 ##53
关于报错信息:
1.no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?)
2.服务启动失败 ##配置文件写错 journalctl -xe查询错误
3.dig 查询状态
NOERROR ##表示查询成功
REFUSED ##服务拒绝访问
SERVFAIL ##查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN ##此域名A记录在dns中不存在
## 2.dns服务的安装与启用
#安装#(服务端)
dnf install bind.x86_64 -y
#启用#
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
服务器上能dig出baidu
vim /etc/named.conf
11 行 listen-on port 53 { any; }; ##在本地所有网络接口上开启53端口
19 行 allow-query { any; }; ##允许查询A记录的客户端列表
34 行 dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机
systemctl restart named
#测试:客户端
host www.baidu.com ##地址解析命令
dig www.baidu.com ##地址详细解析信息命令
3.高速缓存dns
20 forwarders { 114.114.114.114; };
指定一台主机向外界请求信息,这里用实验中的服务端来向114网段请求dns信息
当其他主机想要获取dns解析时,可以通过直连的服务器主机来获取,获取解析速度更快,节约用时
4.dns的正向解析
vim /etc/named.rfc1912.zone
zone "westos.com" IN { ##维护的域名
type master; ##当前服务器位主dns
file "westos.com.zone"; ##域名A记录文件
allow-update { none; }; ##允许更新主机列表
};
cd /var/named/
cp -p named.localhost westos.com.zone
$TTL 1D #TIME-TO-LIVE(dns地址保存时间长度)
@ IN SOA dns.westos.com. root.westos.com ( #SOA授权起始(Start of Authority)
0 ; serial #域名版本序列号
1D ; refresh #刷新时间(辅助dns)
1H ; retry #重试时间(辅助dns)
1W ; expire #过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
3H ) ; minimum #A记录最短有效期
NS dns.westos.com.
dns A 192.168.0.20
www CNAME westos.a.westos.com. ##规范域名
westos.a A 192.168.0.111 ##正向解析记录
westos.a A 192.168.0.112
westos.com. MX 1 192.168.0.20. ##邮件解析记录
systemctl restart named
dig www.westos.com #查询正向解析
dig -t mx westos.com #邮件解析记录查询
NOERROR | 表示查询成功 |
REFUSED | 服务拒绝访问 |
SERVFAIL | 查询记录失败,(dns服务器无法到达上级,拒绝缓存) |
NXDOMAIN | 此域名A记录在dns中不存在 |
MX 1 #邮件地址解析
CNAME #规范域名解析
5.dns的反向解析
vim /etc/named.rfc1912.zones
zone "0.168.192.in-addr.arpa" IN {
type master;
file "192.168.0.ptr";
allow-update { none; };
};
cp时-p是指把文件权限一并复制过来
cd /var/named/
cp -p named.loopback 192.168.0.ptr
vim 192.168.0.ptr
@ IN SOA dns.westos.com. root.westos.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 192.168.0.20
11 PTR www.westos.com.
12 PTR bbs.westos.com.
13 PTR news.westos.com.
systemctl restart named
测试:
dig -x 172.25.254.111
6.dns的双向解析
实验环境:
客户端2个网段
172.25.254.104
1.1.1.204
服务端2个网段的ip
172.25.254.204
1.1.1.104
在172.25.254.104的客户主机中
vim /etc/resolv.conf
nameserver 172.25.254.204
在1.1.1.204 的客户主机中
vim /etc/resolv.conf
nameserver 1.1.1.104
配置方式:
cd /var/named/
cp -p westos.com.zone westos.com.inter
vim westos.com.inter
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.20
www CNAME westos.a.westos.com.
westos.a A 172.25.254.111
westos.a A 172.25.254.112
westos.com. MX 1 172.25.254.20. #mail exchanger
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
vim /etc/named.rfc1912.inters
zone "westos.com" IN {
type master;
file "westos.com.inter";
allow-update { none; };
};
分别指向自己的配置文件
vim /etc/named.conf
注释掉
#zone "." IN {
## type hint;
## file "named.ca";
##};
#
##include "/etc/named.rfc1912.zones";
##include "/etc/named.root.key";
注释后在后面添加
view localnet {
match-clients { 172.25.254.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
};
view internet {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inters";
include "/etc/named.root.key";
};
systemctl restart named
测试:
分别在2个网段的主机中作同样域名的地址解析
得到的A记录不同
当dns指向1.1.1.104时
当dns指向172.25.254.204时
7.dns集群
主dns:
主动通知辅助dns主机
vim /var/named/westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com (
2020112001 ; serial ##每次修改A记录文件需要
1D ; refresh ##变更此参数的值
1H ; retry
1W ; expire
3H ) ; minimum
slave dns:
dnf install bind -y
firewall-cmd --add-service=dns
vim /etc/named.conf
listen-on port 53 { any; };
allow-query { any; };
dnssec-validation no;
vim /etc/named.rfc1912.zone
zone "westos.org" IN {
type slave; ##dns状态位辅助dns
masters { 172.25.254.204; }; ##主dns
file "slaves/westos.org.zone"; ##同步数据文件
};
systemctl restart named
8.dns的更新
dns基于ip地址的更新:
在dns中设定:
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { 172.25.254.104; }; ##允许指定客户端更新westos域
also-notify { 172.25.254.204; };
};
测试:
在172.25.254.104主机
[root@rhel7_node1 ~]# nsupdate #修改dns服务器解析规则的命令
> server 172.25.254.204
> update add hello.westos.com 86400 A 172.25.254.111 ##新曾A记录
> send
> update delete hello.westos.com ##删除A记录
> send
dns基于key更新的方式:
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westos
cp -p /etc/rndc.key /etc/wesots.key
vim /etc/wesots.key
key “westos” {
algorithm hmac-sha256;
secret “SB1tQcLaWeroU9lGW21zeA==”;
};
把公钥和私钥发送给104主机
vim /etc/named.conf
43 include "/etc/wesots.key"; #在43行把key文件加上去
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { key westos; }; ##允许有该密码的可以进行更新
also-notify { 172.25.254.104; };
};
systemctl restart named
[root@rhel7_node1 ~]# nsupdate -k /mnt/Kwestos.+163+26695.private
> server 172.25.254.104
> update add test.westos.org 86400 A 172.25.254.245
> send
> quit