一.DNS的名词解释
dns本地解析:
上网时不需要输入IP,只需域名 dns;
domain name service(域名解析服务)
高速缓存dns:
主机dig了网址之后,数据被缓存
其余主机再次dig网址时,时间为0毫秒
二.DNS服务的安装与启用
dnf install bind.x86_64 -y ##安装
启用:
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
vim /etc/named.conf
11 listen-on port 53 { any; }; ##在本地所有网络接口上开启53端口
19 allow-query { any; }; ##允许查询A记录的客户端列表
20 forwarders { 114.114.114.114; };
34 dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机
systemctl restart name
高速缓存dns:
主机dig了网址之后,数据被缓存,其余主机再次dig网址时,时间为0毫秒
更改两台主机
vim /etc/resolv.conf
nameserver 172.25.254.100
dig www.baidu.com
三.dns的正向解析
vim /etc/named.conf
// forwarders { 114.114.114.114; };
cd /var/named/
cp -p named.localhost westos.org.zone
vim /etc/named.rfc1912.zones
zone "westos.org" IN{ ##维护的域名
type master; ##当前服务器位主dns
file "westos.org.zone"; ##域名A记录文件
allow-update { none;}; ##允许更新主机列表
systemctl restart named
vim westos.org.zone
$TTL 1D
@ IN SOA dns.westos.org. lee.westos.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.110
www CNAME nodea.westos.org.
nodea A 172.25.254.111
nodea A 172.25.254.222
westos.org. MX 1 172.25.254.200.
systemctl restart named
dig www.westos.org ##查询正向解析
dig -t mx westos.org ##邮件解析记录的查询
四.dns的反向解析
cd /var/named/
cp -p named.loopback 172.25.254.ptr
vim 172.25.254.ptr
$TTL 1D
@ IN SOA dns.westos.org. lee.westos.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.110
200 PTR mail.westos.org.
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file "172.25.254.ptr";
allow-update { none; };
};
systemctl restart named
在客户端测试:
五.dns的双向解析
ip addr add 192.168.0.139/24 dev ens160
ip addr show
cp -p westos.org.zone westos.org.inter
ls
172.25.254.ptr dynamic named.empty named.loopback westos.org.inter
data named.ca named.localhost slaves westos.org.zone
vim westos.org.inter
cp /etc/named.rfc1912.zones /etc/named.rfc1912.inter -p
vim /etc/named.rfc1912.inter
vim /etc/named.conf
vim /etc/resolv.conf
cat /etc/resolv.conf
# Generated by NetworkManager
search westos.org
nameserver 172.25.254.139
systemctl restart named
vim /etc/named.conf
客户端172网段测试:
六.dns集群
随着访问量的增多,一台dns服务器上的解析资源可能无法应对访问压力,为了解决问题,我们需要搭建dns集群。
对nodeb进行操作
dnf install bind -y
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
vim /etc/named.conf
11 listen-on port 53 { any; };
19 allow-query { any; };
34 dnssec-validation no;
vim /etc/named.rfc1912.zones 新加一段
zone "westos.org" IN {
type slave; ##dns状态位辅助dns
masters {172.25.254.239;}; ##主dns
file "slaves/westos.org.zone"; ##同步数据文件
};
vim /etc/resolv.conf
nameserver 172.25.254.139
vim westos.org.zone
$TTL 1D
@ IN SOA dns.westos.org. lee.westos.org. (
20111115 ; serial ##每次修改A记录文件需要变更此参数的值(增量)
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.110
www CNAME nodea.westos.org.
nodea A 172.25.254.11
nodea A 172.25.254.22
westos.org. MX 1 172.25.254.200.
vim /etc/resolv.conf
systemctl restart named
在dns主机修改的 westos.org.zone
辅助dns能实时更新
七.dns的更新
dns基于key更新的方式:
cd /mnt/
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westos
cp /etc/rndc.key /etc/westos.key -p
cat Kwestos.+163+48931.private
vim /etc/westos.key
key "westos" {
algorithm hmac-sha256;
secret "43chbrNqeFgsa2dhDnbmlA==";
};
vim /etc/named.rfc1912.zones
zone "westos.org" IN{
type master;
file "westos.org.zone";
allow-update { key westos;};
also-notify { 172.25.254.100};
};
systemctl restart named
八.ddns(dhcp+dns)
dnf install dhcp-server -y ##下载安装dhcp服务
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf ##根据模板生成配置文件
vim /etc/dhcp/dhcpd.conf
option domain-name "westos.org";
option domain-name-servers 172.25.254.100;
subnet 172.25.254.0 netmask 255.255.255.0 {
range 172.25.254.60 172.25.254.90;
}
systemctl restart dhcpd
cd /mnt/
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westos
cp /etc/rndc.key /etc/westos.key -p
cat Kwestos.+163+48931.private
vim /etc/westos.key
key "westos" {
algorithm hmac-sha256;
secret "43chbrNqeFgsa2dhDnbmlA==";
};
vim /etc/named.rfc1912.zones
zone "westos.org" IN{
type master;
file "westos.org.zone";
allow-update { key westos;};
also-notify { 172.25.254.200;};
};
systemctl restart named