Linux修炼之旅第五章!
本章对dns服务器部署相关的常用基础功能进行了系统的介绍,内容包括高速缓存dns,dns的正,反向解析,dns集群以及动态域名解析ddns。
下面我们就开始吧
文章目录
一、DNS简介及常见错误信息
dns:
domain name service(域名解析服务)
配置文件中的A
就是A记录
ip地址叫做域名的Address 记录
SOA
授权起始主机
关于报错信息:
1.no servers could be reached #服务无法访问(服务开启?火墙?网络?端口?)
2.服务启动失败 #配置文件写错 journalctl -xe查询错误
3.dig 查询状态
NOERROR #表示查询成功
REFUSED #服务拒绝访问
SERVFAIL #查询记录失败,(dns服务器无法到达上级,拒绝缓存)
NXDOMAIN #此域名A记录在dns中不存在
二、dns服务的安装与启用
首先安装bind
dnf install bind -y
启用服务
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
然后打开主配置文件做如下调整
最后重启服务
systemctl restart named
三、高速缓存dns
在企业中配置一台dns服务器,内网主机都可以从dns服务器中获取dns,大大提升效率。
如何做呢?
实验前确保dns服务主机可以联网
本次实验dns主机为126主机(172.25.254.126)
首先将dns服务器的dns设置为114.114.114.114
vim /etc/resolv.conf
加上
nameserver 114.114.114.114
然后在主配置文件中
vim /etc/named.conf
增加一行
forwarders { 114.114.114.114; };
效果如下
然后在一台主机中将dns地址设置为该主机的ip
本实验是在226主机中
vim /etc/resolv.conf
输入
nameserver 172.25.254.126
尝试输入
dig www.baidu.com
然后再去dns服务器中
dig www.baid.com
让服务器获取dns
这时再让客户端
dig www.baidu.com
可以看到时间花费为0s
大大提升了效率
四、dns的正向解析
首先将dns服务主机的dns设定为自己的ip
vim /etc/resolv.conf
然后将主配置文件中上一个实验的指向注释diao
vim /etc/named.conf
为了防止主配置文件过长,很多情况下可以将配置文件放在具有相同效果的include后的文件中
那我们输入这个文件绝对路径
vim /etc/named.rfc1912.zone
然后编辑文件
加入如下内容
zone "westos.com" IN { #维护的域名
type master; #当前服务器位主dns
file "westos.org.zone"; #域名A记录文件
allow-update { none; }; #允许更新主机列表
};
然后带权限复制文件模板,更名为自己文件中书写的域名
[root@dns ~] cd /var/named/
[root@dns named] cp -p named.localhost westos.org.zone
[root@dns named] ll
total 20
drwxrwx---. 2 named named 23 Dec 2 16:44 data
drwxrwx---. 2 named named 60 Dec 2 19:06 dynamic
-rw-r-----. 1 root named 2253 Feb 27 2020 named.ca
-rw-r-----. 1 root named 152 Feb 27 2020 named.empty
-rw-r-----. 1 root named 152 Feb 27 2020 named.localhost
-rw-r-----. 1 root named 168 Feb 27 2020 named.loopback
drwxrwx---. 2 named named 6 Feb 27 2020 slaves
-rw-r-----. 1 root named 152 Feb 27 2020 westos.org.zone
复制完模板以后需要自己编辑文件
vim westos.org.zone
$TTL 1D
@ IN SOA dns.westos.org. root.westos.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.126
www A 172.25.254.111
完成上述操作以后再重启系统
systemctl restart named
可以去客户主机(226)上试试效果
dig www.westos.org
可以看到“172.25.254.111“
就是之前我们再配置文件中想让客户主机解析到的内容
五、dns的反向解析
与正向解析相反,此操作可以将域名解析为ip
首先编辑文件
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
为如下内容
$TTL 1D
@ IN SOA dns.westos.org. rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.126
126 PTR shy.westos.org.
~
~
之后就可以去客户主机中测试了
dig -x 172.25.254.126
可以看到域名shy.westos.org.成功解析为172.25.254.126
六、dns的双向解析
这个实验需要用到2个客户端,并将服务主机设定两个网段的ip
类似于内部网段和外部网段
1网段的ip情况
服务机的ip情况
首先去主被配置文件控制不同网段访问的控制路径
让不同网段的主机访问不同的内容
vim /etc/named.conf
先将默认的访问文件注释掉
然后输入访问控制代码
view loaclnet{
match-clients{ 1.1.1.0/24 ;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.inter";
};
view anyone {
match-clients{ any ;};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
};
然后根据该文件中的指向编写相应的访问文件
[root@dns ~] cd /var/named/
[root@dns named] ls
172.25.254.ptr data dynamic named.ca named.empty named.localhost named.loopback slaves westos.org.zone
[root@dns named] cp westos.org.zone westos.org.inter -p
[root@dns named] chgrp named westos.org.inter
[root@dns named] ls -l westos.org.inter
-rw-r-----. 1 root named 202 Dec 2 19:47 westos.org.inter
[root@dns named] cp /etc/named.rfc1912.zones /etc/named.rfc1912.inter -p
然后对复制过来的文件进行修改
vim /etc/named.rfc1912.inter
将本来的文件名改为westos.org.inter
zone "westos.org" IN {
type master;
file "westos.org.inter";
allow-update { none; };
};
vim westos.org.inter
可以看到inter对应的文件均为1网段的
$TTL 1D
@ IN SOA dns.westos.org. root.westos.org. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 1.1.1.126
www CNAME shy.a
shy.a A 1.1.1.126
shy.a A 1.1.1.226
westos.org. MX 1 1.1.1.226
测试前再检查下zone文件,即172网段访问时的指向文件
最后重置一下服务
systemctl restart name
测试效果
在1网段主机中 可以看到访问到的是1网段对应的内容
在172网段中访问的是172网段的内容
七、dns集群
本实验需要2个虚拟机
将两个虚拟机的网段都设定为172网段
两台主机都需要安装bind
并开启服务
具体步骤看本章一开始的说明
在主dns服务器中更改zone文件配置文件
修改serial值,可以按照年月日设置比如我们设置2021120201就是2021年12月2日的第一次改动
vim westos.org.zone
$TTL 1D
@ IN SOA dns.westos.org. root.westos.org. (
2021120201 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns.westos.org.
dns A 172.25.254.126
www CNAME shy.a
shy.a A 172.25.254.11
shy.a A 172.25.254.22
westos.org. MX 1 172.25.254.222
然后在1912zone文件中让主dns更改内容时通知别的客户端
很简单
编辑文件vim /etc/named.rfc1912.zones
加上also-notify { 172.25.254.226 ;};
效果如下
然后退出重启服务
systemctl restart named
再客户端主机中,就是副dns主机226
完成服务安装步骤后关掉火墙
修改1912zone文件
vim /etc/named.rfc1912.zones
zone "westos.org" IN {
type slave;
masters{ 172.25.254.126; };
file "slaves/westos.org.zone";
};
重启服务
就可以测试了
此时我们再去主dns服务其中修改
改为第二次,并且修改解析内容
可以看到会自动同步
八、ddns(dhcp+dns)
顾名思义ddns服务器就是dns服务器与dhcp服务器的集合,可以使客户主机实现随机分配ip并获得域名解析的能力。在配置ddns服务器的时候也是分两部来进行操作的。
首先需要将服务主机配置成dhcp服务器
首先需要安装dhcp服务
dnf install dhcp-server -y
然后配置dhcp服务器
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcpd.conf
vim /etc/dhcpd.conf
编辑文件中的内容如下
红框中的ip为dhcp服务器的ip
下图中range后面代表被分配到的主机的ip地址范围
option行后的ip为dhcp服务器的ip
最后重启服务
systemctl restart dhcpd
这样就配置好dhcp服务器了
在此基础上如果要实现ddns的功能
还得继续可以根据系统中的说明来进行配置
输入man 5 dhcpdconf
找到DYNAMIC DNS
其中就有ddns的配置方法(大概在860行左右的位置)
根据提示
首先生成密钥
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westoskey
cp /etc/rndc.key /etc/westos.key -p
vim /etc/westos.key
vim /etc/named.conf
添加一行内容,使密钥生效
vim /etc/named.rfc1912.zones
vim /etc/dhcp/dhcpd.conf
最后重启服务
systemctl restart thcpd
systemctl restart named
效果(在客户主机上测试)