目录
一.关于dns的名词解释
dns:
domain name service(域名解析服务)
#关于客户端:#
/etc/resolv.conf ##dns指向文件
nameserver 172.25.254.20
#测试:
host www.baidu.com ##地址解析命令
dig www.baidu.com ##地址详细解析信息命令
A记录 ##ip地址叫做域名的Address 记录
SOA ##授权起始主机
dns顶级
. 13
次级
.com .net .edu .org ....
baidu.com
#关于服务端#
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中不存在
二.dns服务的安装与启用 :
在服务器中 :
dnf install bind.x86_64 -y
systemctl enable --now named
netstat -antlupe | grep named
systemctl start firewalld
firewall-cmd --permanent --add-servive=dns
firewall-cmd --reload
vim /etc/resolv.conf 写 nameserver 114.114.114.114
vim /etc/sysconfig/network 写GATEWAY=172.25.254.32
dns解析设置为114.114.114.114,网关设定为自己可以上网的真机ip,如果可以上网的主机与服务器不在同一网段,那么需要可以上网的主机先开启地址伪装功能,然后将其统一网段的ip设定成服务器的网关
在客户端中:
vim /etc/resolv.conf 写 nameserver 172.25.254.224(服务器ip)
服务器中:
vim /etc/named.conf
将11,19改成 listen-on port 53 { any; }; ##在本地所有网络借口上开启53端口
allow-query { any; }; ##允许查询A记录的客户端列表
dnssec-validation no ; ##金庸dns检测使dns能够缓存外部信息到本机
systemctl restart named
测试:在客户端中 dig www.baidu.com
三.高速缓存dns :
服务器中:
vim /etc/named.conf
20行加 :forwarders { 114.114.114.114; } ;
然后在另外两台客户端中,
vim /etc/resolv.conf
写 nameserver 主机器ip,设可以上网的网关
然后分别dig相同的网站看访问时间的差别
tips:火墙允许dns
四:dns的正向解析 :
在服务器中:
vim /etc/resolv.conf #将nameserver改成自己主机ip
vim /etc/named.conf #注释掉原先的自己写的114 dns
vim /etc/named.rfc1912.zone
zone "westos.org" IN { ##维护的域名
type master; ##当前服务器位主dns
file "westos.org.zone"; ##域名A记录文件
allow-update { none; }; ##允许更新主机列表
};
cd /var/named
ls
cp -p named.localhost westos.org.zone
ll #看组是否是named
vim /var/named/westos.org.zone
$TTL 1D #TIME-TO-LIVE(dns地址保存时间长度)
@ IN SOA dns.westos.org. root.westos.org. ( #SOA授权起始(Start of Authority)
0 ; serial #域名版本序列号
1D ; refresh #刷新时间(辅助dns)
1H ; retry #重试时间(辅助dns)
1W ; expire #过期时间(辅助dns,查询失败过期停止对辅助域名的应答)
3H ) ; minimum #A记录最短有效期
NS dns.westos.org.
dns A 172.25.254.224
www A 172.25.254.111
然后在客户端中进行测试:
五.dns的反向解析 :
服务器中:
vim /etc/named.rfc1912.zones 最后添加写
zone "254.25.172.in-addr.arpa" IN { ##反着写
type master;
file "172.25.254.ptr"; ##数据文件
allow-update { none; };
};
cd /var/named/
cp -p named.loopback 172.25.254.ptr ##复制模板
vim 172.25.254.ptr
systemctl restart named
测试: dig -x 172.25.254.224
六.dns的双向解析
实验环境:
客户端两台
1.1.1.0网段 ##ifconfig ens3 1.1.1.124
172.25.254.0网段 ##ifconfig ens3 172.25.254.123
服务端一台两个网段的ip
1.1.1.224
172.25.254.224
在1.1.1.0网段的客户机中(1.1.1.124)
nameserver 1.1.1.224
在172.25.254.0网段的客户机中(172.25.254.123)
nameserver 172.25.254.224
cd /var/named/
cp -p westos.org.zone westos.org.inter
vim westos.org.inter
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.inters
vim /etc/named.rfc1912.inters
zone "westos.com" IN {
type master;
file "westos.org.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 { 1.1.1.0/24; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inters";
};
view any {
match-clients { any; };
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
systemctl restart named
测试:分别在两台客户端dig同一个地址,显示不同的ip解析
七.DNS的集群 :
主dns (ip是223 dns也改成自己的)
vim /var/named/westos.org.zone
$TTL 1D
@ IN SOA dns.westos.org. root.westos.org. (
2021080603 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.223
www CNAME lee.a
lee.a A 172.25.254.121
lee.a A 172.25.254.221
westos.org MX 1 172.25.254.223.
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
also-notify { 172.25.254.123; }; ##数据变化主动通知的辅助dns
};
次dns(ip是123,dns改成自己的)
dnf install bind -y
systemctl disable --now firewalld
vim /etc/named.conf
vim /etc/named.rfc1912.zones
zone "westos.org" IN {
type slave; ##dns状态位辅助dns
masters {172.25.254.223;}; ##主dns的ip
file "slaves/westos.org.zone"; ##同步数据文件
};
ls /var/named -l 看slaves 是不是属于named
systemctl restart named
测试:在dns主机上更改数据文件,并增加serial序列号,重启named
辅助DNS机上看到信息已与主机同步。
八.DNS的更新
在服务器中:
dnf install dhcp-server -y
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
rpm -qc bind
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westoskey ##生成秘钥
mv Kwestoskey.+163+63449.private Kwestoskey.+163+63449.key /mnt ##将两把钥匙移动到mnt目录
cd /mnt
ls
cat Kwestoskey.+163+63449.private
cat Kwestoskey.+163+63449.key
vim /etc/westos.key
key "westoskey" {
algorithm hmac-sha256;
secret "8SxQ/8DZM6zyaYQx4vth7Q=="; ##改写成为自己生成的密钥
};
vim /etc/named.conf
写一句 include"/etc/westos.key";
vim /etc/named.rfc1912.zones
vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
systemctl restart named
测试 :客户端中,设置客户端网络为dhcp,保证ip可以从dhcp服务中获取。更改客户端主机名为westosb.westos.com
dig westosb.westos.com
1.查看/etc/resolv.conf内容,没有nameserver
2.重启网卡获取ip。查看/etc/resolv.conf内容,nameserver为服务器ip,说明获取成功,ip为172.25.254.71.
3.主机名为westosb.westos.org 属于westos.org这个域
4.dig westosb.westos.org