企业DNS服务器搭建
实验环境
需要两个操作系统,并且有一个需要可以上网,可上网的为服务端,不可上网的为客户端
服务端IP需要和windows的ip属于同一个网段,且网关是一样的,DNS设定为服务端的IP,如此设置可以让服务端又提供服务,也可以检测做客户端
客户端的IP需要和服务端IP是同一个网段,不设定网关,DNS设定为服务端的IP。
DNS名词解释
客户端配置:
vim /etc/resolv.conf ##dns指向文件
nameserver 192.168.43.222 ##编写服务端的IP
dns: domain name service (域名解析服务)
A记录 ##ip地址叫做域名的Address记录
SOA ##授权起始主机,授权机制是在出现问题的时候才会有的
nxdomain ##地址没有的意思,SOA负责
DNS顶级是. 有13个
次级是.com .net .org ……
baidu.com就是.com域中的
host www.baidu.com ##地址解析命令
dig www.baidu.com ##地址详细解析信息命令
关于报错信息:
no servers could be reached ##服务无法访问(服务开启?火墙?网络?端口?)
服务启动失败: ##配置文件写错;journalctl -xe 查询错误
dig查询状态
NOERROR ##表示查询成功
REFUSED ##服务拒绝访问
SERVFATL ##查询记录失败(DNS服务器无法到达上级,拒绝缓存)
NXDOMAIN ##此域名A记录在DNS中不存在
企业高速缓存DNS的搭建
dnf install bind -y
systemctl enable --now named ##开启服务
firewall-cmd --permanent --add-service=dns ##设定火墙策略
firewall-cmd --reload
netstat -antlupe | grep named ##查看接口
##默认安装的DNS服务只是开启了回环接口上的53端口。除本机以外的主机是不能使用的
vim /etc/named.conf ##编辑主配置文件
11 listen-on port 53 { any; }; ##本机所有网络接口都开启53端口对外提供DNS服务
systemctl restart named
测试200主机:
dig www.baidu.com ##拒绝状态。
vim /etc/named.conf
19 allow-query { any; }; ##为所有主机提供解析服务
systemctl restart named
测试200主机:时间超级长。是在根域名服务器中找寻的,当前的DNS主机中是没有网络地址解析数据的。所以当做解析时,需要到.com主机里面获取资源。
vim /etc/named.conf
20 forwarders {114.114.114.114;}; ##当前主机所有DNS获取渠道为114.114.114.114
systemctl restart named
测试200主机:解析也不是特别快 ,有一个DNS自检,认证
vim /etc/named.conf
34 dnssec-validation no; ##关闭dns认证功能
systemctl restart named
测试200主机:dig www.taobao.com,此时会进行高速缓存,再次在100中也测试dig www.taobao.com,发现只需要0ms
第一个人已经知道这个地址是多少,其他人都可以直接问这个第一个人。如果第一个人他知道,他直接给,如果他不知道,他就需要拿,第一个人就叫做高速缓存DNS
权威DNS搭建的基本步骤
服务器:
vim /etc/named.conf ##编辑主配置文件,端口,主机,认证。
vim /etc/named.rfc1912.zones ##编辑子配置文件,编写我们所要维护的域
zone "westos.org" IN { ##要维护的域名
type master; DNS为主DNS
file "ljx.org.zone"; ##A记录解析文件
allow-update { none; };
};
cd /var/named ##A记录解析文件所存放的目录
#named.localhost是A记录解析文件模板
cp -p named.localhost ljx.org.zone ##这些文件的属性都是设置过的,不是默认属性,p复制属性
vim ljx.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 192.168.43.222
www A 192.168.43.111
systemctl restart named
如果重启失败:
> /var/log/massages
cat /var/log/massages
客户端:
vim /etc/resolve.conf
nameserver 192.168.43.100
dig www.westos.org ##成功
dig hello.westos.org ##有.org域名维护的时候,dig任何你没有写的域名,他都会出现SOA,本机有A记录,他就不会去外网查
dig baidu.com , ##没有域名维护,100可以上网,此时也提供解析,此时就会跳出去,不会对他负责。
-
CNAME
www.baidu.com是公网地址。将这个域名转换成其他的。这就是CNAME
cd /var/named
vim westos.org.zone ##编辑A记录文件,进行规范域名转换
NS dns.westos.org.
dns A 192.168.43.100
www CNAME bbs.westos.org.
bbs A 192.168.43.110
bbs A 192.168.43.220systemctl restart named
dig www.westos.org
-
mx记录(邮件解析记录)
邮件的发送原理:登录邮箱就是进入了邮件的服务器。发送邮件的时候首先询问dns,xxx@163.com的地址是多少,负责接受的域是谁。这个动作就是邮件解析查询,发送邮件的时候是smtp协议,提供smtp的协议有很多sendmail pstfix等cd /var/named vim ljx.org.zone ##编辑A记录 dns A 192.168.43.222 www CNAME bbs.westos.org. bbs A 192.168.43.110 bbs A 192.168.43.220 westos.org. MX 1 mail.westos.org. ##MX1设定优先级为1 mail A 192.168.43.100 systemctl restart named dig -t mx westos.org
-
ptr记录(IP转换域名,反向解析记录)
vim /etc/named.rfc1912.zones ##编辑子配置文件 zone "43.168.192.in-addr.arpa" IN { type master; file "192.168.43.ptr"; allow-update { none; }; }; cp -p named.loopback 192.168.43.ptr ##复制A记录模板 vim 192.168.43.ptr ##编辑A记录 $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 192.168.43.100 100 PTR mail.westos.org. dig -x 192.168.43.100 ##测试
双向解析
企业的内网和外网不是同一个网段,需要内网解析看到内网地址,外网解析看到外网地址。
设定192.168.43.100主机的第二个网段:
ip addr 1.1.1.1/24 dev ens160
ip addr show ens160 ##查看网段
ip addr del 1.1.1.1/24 dev ens160 ##删除网段
设定测试机200的IP为1.1.1.200
如何让内网的人解析到内网,外网的解析到外网,主要取决于看的文件是啥
cd /var/named
cp -p ljx.org.zone ljx.org.inter ##复制一份A记录解析文件
vim ljx.org.inter ##编辑另外一份A记录解析文件
$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.1 ##解析网址是1.1.1.1
www CNAME bbs.westos.org.
bbs A 1.1.1.110
bbs A 1.1.1.220
westos.org. MX 1 mail.westos.org.
mail A 1.1.1.1
cp -p /etc/named.rfc1912.zones /etc/named.rfc1912.zones.inter ##复制一份子配置文件
vim /etc/named.rfc1912.zones.inter
zone "westos.org" IN {
type master;
file "ljx.org.inter"; ##修改子配置文件的指定文件
allow-update { none; };
};
vim /etc/named.conf ##修改主配置文件
zone.注释掉
view localnet {
match-clients {1.1.1.0/24; };
zone "." IN {
type hint;
file"named.ca";
};
include "/etc/named.rfc1912.zones.inter"; ##这个文件的东西只能是1.1.1.0/24这个网段访问
};
view inter {
match-clients { any; };
zone "." IN {
type hint;
file"named.ca";
};
include "/etc/named.rfc1912.zones"; ##其他网段均访问访问这个
};
服务器中(有两个网段)
vim /etc/resolv.conf
nameserver 192.168.43.100
dig www.westos.org ##此时可以解析到的是192.168.43.0/24网段
vim /etc/resolv.conf
nameserver 1.1.1.1
dig www.westos.org ##此时可以解析到的是1.1.1.0/24网段
测试机中(只有一个网段)
vim /etc/resolv.conf
nameserver 1.1.1.1
dig www.westos.org ##此时可以解析到的是1.1.1.0/24网段
##/etc/named.rfc1912.zones.inter
##/etc/named.rfc1912.zones
DNS集群
-
环境
两台主机 ,一台192.168.43.100主机的DNS已经好了,一台192.168.43.100的主机DNS没有配置好,可以作为辅助DNS
如果访问DNS的人特别的多,DNS容易宕机,所以我们应该找到另外一个DNS来缓解这个压力。这就是辅助集群
辅助DNS。 -
实验过程
辅助DNS中 dns install bind -y ##下载DNS vim /etc/named.conf ##编辑主配置文件,端口,主机,认证。 vim /etc/named.rfc1912.zones ##编辑子配置文件 zone "westos.org" IN { type slave; masters {192.168.43.100;}; file "slaves/ljx.org.zone"; }; vim /etc/resolve.conf nameserver 192.168.43.200 ##测试200,看这个辅助DNS是否设定成功 dig www.westos.org 更改主DNS中的配置文件,辅助DNS如何自动同步这个更改? firewall-cmd --permanent --add-service=dns firewall-cmd --reload 方法一:手动同步 rm -rf /var/named/slaves systemctl restart named dig www.westos.org ##在辅助DNS中删掉文件重启后,就会同步过来 方法二:自动同步 top1: vim /etc/named.rfc1912.zones ##编辑主DNS的子配置文件 zone "westos.org" IN { type master; file "ljx.org.zone"; allow-update { none; }; also-notify{192.168.43.200;}; ## 当DNS信息更新后主动通知辅助DNS200主机 }; top2: vim westos.org.zero ##更改此文件中的版本序列号,只要主DNS中的版本序列号进行改变,辅助DNS就会自动同步一次。只能增量修改,最多十位。一般写为2021030301,日期加次数 A记录文件中部分参数解释: 0 ; serial ##域名版本序列号 1D ; refresh ##刷新时间(辅助DNS) 1H ; retry ##重试时间(辅助DNS) 1W ; expire ##过期时间(辅助DNS,查询失败过期停止对辅助域名的应答) 3H ) ; minimum ##A记录的最短有效期限
DNS的动态域名解析
服务器安装dhcp
dnf install dhcp-server -y
cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
vim /etc/dhcp/dhcpd.conf
测试机更改为dhcp模式,并且更改主机名为linux.westos.org
cd /mnt
rpm -ql bind ##有自己的key
dnssec-keygen -a HMAC-SHA256 -b 128 -n host westos ##a加密方式b加密长度n加密类型westos是钥匙的名字,生成钥匙加密字符串
ls ##查看钥匙
vim /etc/dhcp/dncpd ##给dhcp服务添加更新key
ddns-update-style interim; ##dhcp开启网络更新dns的功能
key westos{
algorithm hmac-sha256;
secret "Ky09HJ23+vBo50LwlT1Kcg==";
};
zone westos.org.{
primary 127.0.0.1; ##dhcp和dns在同一台主机,可以使用回环接口
key westos;
} ##指定dhcp用key去更新哪个DNS主机的那个域
vim /etc/named.conf ##第45行 给DNS添加KEY
key westos{
algorithm hmac-sha256;
secret Ky09HJ23+vBo50LwlT1Kcg==;
};
vim /etc/named.rfc1912.zones
zone "westos.org" IN {
type master;
file "ljx.org.zone";
allow-update { key westos; };
also-notify{192.168.43.200;};
};
在测试机上自动获得IP,并用dig linux.westos.org查看