目录
1. 关于dns的名词解释
dns:domain name service(域名解析服务)
1.1 客户端
/etc/resolv.conf ##dns指向文件
host www.baidu.com ##地址解析命令
dig www.baidu.com ##地址详细解析信息命令
A记录 ##ip地址叫做域名的Address 记录
/etc/resolv.conf 指向文件【指向文件即我们地址解析动作时会访问该文件下指定的IP完成操作】:
地址解析命令’host’:
地址详细解析信息命令’dig’:
SOA ##授权起始主机
dns顶级
. 13
次级
.com .net .edu .org
1.2 服务端
bind ##安装包
named ##服务名称
/etc/named.conf ##主配置文件
/var/named ##数据目录
53 ## 数据目录端口
1.3 报错信息
1.no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?)
2.服务启动失败 ##配置文件写错 journalctl -xe查询错误
3.dig 查询状态
NOERROR ##表示查询成功
REFUSED ##服务拒绝访问
SERVFAIL ##查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN ##此域名A记录在dns中不存在
测试一:在dns_node1主机中关闭防火墙和selinux ,结果我们还是无法正常的解析,这是为什么呢?
查看状态后我们发现并没有开启172.25.254.20的53端口
接下来我们编辑主配置文件vim /etc/named.conf
再去执行dig www.westos.com查看结果
2. 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记录的客户端列表
32 dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机
systemctl restart named
3. 高速缓存dns
20 forwarders { 114.114.114.114; };
4.dns的正向解析
1)在主配置文件vim /etc/named.conf
中
或在配置文件vim /etc/named.rfc1912.zone
中
zone "westos.com" IN { ##维护的域名
type master; ##当前服务器位主dns
file "westos.com.zone"; ##域名A记录文件
allow-update { none; }; ##允许更新主机列表
};
2) #复制指向文件
cd /var/named/
cp -p named.localhost westos.com.zone
#并配置指向文件:
vim westos.com.zone
$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.linux.westos.com. ##CNAME解析跳转
westos.linux A 172.25.254.11
westos.com MX 1 172.25.254.20. ##邮件解析记录
#查询正向解析dig www.westos.com
#查询正向解析dig bbs.westos.com
因为文件中没配置bbs.westos.com,所以解析错误
CNAME的作用
跳转到westos.linux.westos.com
邮件解析记录
1).安装邮件发送软件和命令
2)发送邮件,没有解析记录
- vim westos.com.zone
wesoswestos.com MX 1 172.25.254.11. ##邮件解析记录 - dig -t mx westos.com邮件解析记录查询
5.dns的反向解析
dig -x 172.25.254.20
反向解析失败
1)配置文件中添加:
vim /etc/named.rfc1912.zones
zone "254.25.172.in-addr.arpa" IN {
type master;
file "172.25.254.ptr";
allow-update { none; };
};
2)复制并编写解析文件
cd /var/named/
cp -p named.loopback 172.25.254.ptr
vim 172.25.254.ptr
3) systemctl restart named
dig -x 172.25.254.20 ##反向解析
6. dns的双向解析
6.1 实验环境:
##服务端一台主机配置2个ip
1.1.1.20
172.25.254.20
##客户端两台
客户端主机1:1.1.1.30
客户端主机2:172.25.254.30
在1.1.1.30的客户主机中
vim /etc/resolv.conf
search westos.com
nameserver 1.1.1.20
在172.25.254.30的客户中
vim /etc/resolv.conf
search westos.com
nameserver 172.25.254.20
两台客户端dig www.westos.com 得到的解析地址一样,怎么办?
6.2 配置方式:
1)复制并编写解析文件
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 1.1.1.20
www CNAME westos.linux.westos.com.
westos.linux A 1.1.1.11
westos.com. MX 1 1.1.1.20.
2)复制主配置文件并编写:
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; };
};
3)设置不同的客户访问不同的zone文件:
vim /etc/named.conf
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";
};
4)测试
分别在两台客户端主机中作同样域名的地址解析
得到的A记录不同
7. dns集群(辅助DNS)
DNS集群:在一台主机中做的任何操作,会同步到其他所有的主机中。
7.1 实验环境
1)主dns:双IP(注释掉双向解析代码,原始的还原,防止影响后面实验)
Vim /etc/named.conf
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; };
also-transfer { 172.25.254.30; }; ##主动通知的辅助dns主机
};
vim /var/named/westos.com.zone
$TTL 1D
@ IN SOA dns.westos.com. root.westos.com (
20200606 ; serial
##每次修改A记录文件需要,改变后对比更新
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.com.
dns A 172.25.254.20
www CNAME westos.linux.westos.com.
westos.linux A 172.25.254.1
westos.com. MX 1 172.25.254.11.
2)辅助dns:172.25.254.30用来缓解主dns的压力
也需要装dns
dnf install bind -y
systemctl start named
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.com" IN {
type slave; ##dns状态位辅助dns
masters { 172.25.254.20; }; ##主dns
file "slaves/westos.com.zone"; ##同步数据文件
};
3)测试机中:vim/etc/resolv.conf配置指向172.25.254.30
dig www.westos.com解析到主dns的A记录
8.dns的更新
第7步中,此时dns集群数据不同步,如果改变服务器解析文件IP,集群服务器不会更新
删除辅助dns的数据然后重启dns服务数据会重新同步解决数据不同步问题,但是不可行,繁琐
8.1 dns基于ip地址的更新
1)在dns中设定:
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { none; }; ##允许指定客户端更新westos域
Allow-transfer{172.25.254.30}
also-notify { 172.25.254.30; };
};
##每次修改A记录文件需要,改变后对比更新
##测试:
8.2 dns基于key更新
在测试机中
# nsupdate
> server 192.168.43.20
> update add hello.dsd.com 86400 A 192.168.43.111 ##新曾A记录
> send
> update delete hello.dsd.com ##删除A记录
> send
可以无密增删A记录
1)新建KEY文件
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westoskey
cp -p /etc/rndc.key /etc/westos.key
vim /etc/westos.key
key "westoskey" {
algorithm hmac-sha256;
secret "4EVMXogJevsnJ5vW/0E7bw==";
};
2).主配置文件指向westos key
vim /etc/named.conf
include "/etc/westos.key";
vim /etc/named.rfc1912.zones
zone "westos.com" IN {
type master;
file "westos.com.zone";
allow-update { key westos; };
also-notify { 192.168.43.30; };
};
此时测试主机操作被拒绝
3)复制key文件到测试主机
scp Kwestoskey.+163+54090.* root@172.25.254.10:/mnt
这个时候由于我们没有设置两台主机时间同步,因此会报错,这里我们直接将时间同步设置好。
4)配置时间同步
dns_node1主机172.25.254.20中
vim /etc/chrony.conf
###
23 allow 172.25.254.0/24
26 local stratum 10
###
systemctl restart chronyd.service
systemctl stop firewalld
在测试机中:
vim /etc/chrony.conf
###
server 172.25.254.20 iburst
###
systemctl restart chronyd.service
测试:
[root@rhel7_node1 ~]# nsupdate -k /mnt/Kwestos.+163+26695.private
> server 172.25.254..20
> update add hello.westos.com 86400 A 172.25.254.111
> send
> quit
9. ddns(dhcp+dns)花生壳
动态域名解析服务,简称DDNS(Dynamic Domain Name Server),是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候,客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务程序负责提供DNS服务并实现动态域名解析。就是说DDNS捕获用户每次变化的IP地址,然后将其与域名相对应,这样域名就可以始终解析到非固定IP的服务器上,互联网用户通过本地的域名服务器获得网站域名的IP地址,从而可以访问网站的服务。
配置dns_node1的dhcp服务
1)下载dhcp,并配置文件如下
dnf install dhcp-server -y
cd /etc/dhcp/
cp /usr/share/doc/dhcp-server/dhcpd.conf.example dhcpd.conf
2)编辑/etc/dhcp/dhcpd.conf文件
vim dhcpd.conf
###
7 option domain-name "westos.com";
8 option domain-name-servers 172.25.254.20;
ddns-update-style interiim;
27 #subnet 10.152.187.0 netmask 255.255.255.0 {
28 #}
32 subnet 172.25.254.0 netmask 255.255.255.0 {
33 range 172.25.254.50 172.25.254.80;
34 option routers 192.168.43.1;
35 }
###后面删除,改为
key westoskey {
algorithm hmac-sha256;
secret SB1tQcLaWeroU9lGW21zeA==;
};
zone westos.com. {
primary 127.0.0.1;
key westoskey; }##需要与第8节名字一样
###
systemctl restart dhcpd
删除westos.com.zone中原来指向30的A记录
2)在测试主机中,通过dhcp动态获取IP
3)dig test.westos.com成功解析