1.关于dns的名词解释
dns:
domain name service(域名解析服务)DNS(Domain Name System,域名系统),万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)
2.dns服务的安装与启用
1.配置实验环境
两台虚拟机
nodea:172.25.254.173 nodea上设置网关172.25.254.73 使之可上网
nodeb:172.25.254.237
1)首先 172.25.254.73 可以上外网
2) 配置nodea :172.25.254.173 设定网关172.25.254.73
要想nodea:172.25.254.173 可以上外网 要在网关上设置地址伪装策略
设置成功后 nodea可以上外网 nodea配置完成
3) 配置nodeb:172.25.254.237
2.安装dns服务并启用
1)安装dns 服务
--------------nodea:172.25.254.173----------
dnf install bind -y
2) 启动dns服务
systemctl enable --now named ---启动服务
firewall-cmd --permanent --add-service=dns ---火墙允许访问
firewall-cmd --reload ---重启
注意:别忘了开放端口
vim /etc/named.conf
listen-on port 53 { any; }; ##在本地所有网络接口上开启53端口
allow-query { any; }; ##允许查询A记录的客户端列表
dnssec-validation no; ##禁用dns检测使dns能够缓存外部信息到本机
systemctl restart named
vim /etc/named.conf
服务设置完成 别忘了重启
3.测试
在nodeb:172.25.254.237测试
1)编写配置文件 需要从nodea:172.25.254.173获取数据
vim /etc/resolv.conf
2)dig www.baidu.com 进行测试 下图表示dns服务搭建成功
搭建成功但是访问速度太慢 如下图需要2401ms
为了提升访问速度 我们可以设置高速缓存dns
4.高速缓存DNS
1)编辑配置文件
----------nodea :172.25.254.173-----------
vim /etc/named.conf
-------
forwarders {114.114.114.114;};
--------
systemcrl restart named
2)测试
在nodeb:172.25.254.237测试
dig www.baidu.com
在dig www.baidu.com 一次
可见DNS访问速度大大提升
3.DNS正向解析
目的:设定172.25.254.173为DNS服务器 对www.westos.org进行域名解析
-------nodea--------
1.设定维护的域名
#vim /etc/named.conf
----------
# forwarders { 114.114.114.114; }; ---注释高速缓存
zone "westos.org" IN { ##维护的域名
type master; ##当前服务器位于主dns
file "westos.org.zone"; ##域名A记录文件
};
-----------------------------
注意此时westos.org还不存在
#vim /etc/named.conf
----------
# forwarders { 114.114.114.114; }; ---注释高速缓存
zone "westos.org" IN {
type master;
file "westos.org.zone";
};
-----------------------------
注意此时westos.org还不存在
2.编辑域名A记录文件
设定DNS服务器--nodea :172.25.254.173
需要解析的域名 www.westos.org --->172.25.254.111
------------nodea---------173---------------
#cd /var/named/
#ls
#cp -p named.localhost 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.173
www A 172.25.254.111
------------------------------------------
#systemctl restart named
3.修改DNS解析地址
因为nodea变成了dns解析服务器 所以 解析获取的资源都是来自nodea 自然解析地址变成了nodea
-----------------nodea--------------173------------------
vim /etc/resolv.conf
systemctl restart named
4.测试
在nodeb:172.25.254.237 输入dig www.westos.org 进行测试
dig www.westos.org
测试 结果:在nodeb 输dig www.westos.org 解析结果如上图
可以看出 域名www.westos.org 解析ip为172.25.254.111
解析服务器 为172.25.254.173 测试结果正确
4.DNS的各种数据类型
CNAME 规范域名
MX 邮件解析
PTR 反向解析
1.CNMAE 规范域名
1)规范域名解释
例如百度的域名只有www.baidu.com 但是百度的服务器肯定不都是叫这个名字
就出现了规范域名
如下图 www.a.shifen.com就是百度的一个规范域名
2)实验:设定lee.a.westos.org 为www.westos.org的一个域名
--------------nodea:172.25.254.173--------
设定规范域名
# cd /var/named
# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback 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.173
www CNAME lee.a
lee.a A 172.25.254.173
lee.a A 172.25.254.237
-----------------------------------------
# systemctl restart named
# dig www.westos.org
测试 在nodea:172.25.254.173输入:dig www.westos.org
2.MX 邮件解析
1)邮件解析解释
2)配置邮件发送端
在nodea:172.25.254.173上配置
安装启动posfix
dnf install postfix mailx -y
systemctl enable --now postfix
配置记录文件
cd /var/named
ls
vim westos.org.zone
systemctl restart named
邮件解析记录查询
dig -t mx westos.org
发送邮件
mail root@westos.org
mailq
3)配置邮件接收端
在nodea:172.25.254.173上做实验
邮件接收端收到的是ip 如何将ip转换成域名呢?
PTR 反向解析 和正向解析是分开的
修改配置文件
vim /etc/named.rfc1912.zones
# cd /var/named
# ls
data named.ca named.localhost slaves
dynamic named.empty named.loopback westos.org.zone
# cp -p named.loopback 172.25.254.ptr
# ls
172.25.254.ptr dynamic named.empty named.loopback westos.org.zone
data named.ca named.localhost slaves
# vim 172.25.254.ptr
# systemctl restart named
测试:反向解析
dig -x 172.25.254.173
5.DNS的双向解析
不同网段的主机使用 同一个dns服务器 解析出的地址不同
1)配置实验环境
服务端:nodea一个网卡 两个网段:172.25.254.173/1.1.1.173
客户端1:172.25.254.73
客户端2: 1.1.1.73
查看一个网卡上的网段:
ip addr show ens3
2)配置服务端
修改配置文件----inter----172网段改为1网段
# cd /var/named
# ls
172.25.254.ptr dynamic named.empty named.loopback westos.org.zone
data named.ca named.localhost slaves
# cp 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
# chgrp named westos.org.inter
# ls -l westos.org.inter
-rw-r-----. 1 root named 304 Dec 3 19:39 westos.org.inter
# vim westos.org.inter
---------------------------
$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.173
www CNAME lee.a
lee.a A 1.1.1.173
lee.a A 1.1.1.237
westos.org. MX 1 1.1.1.173.
--------------------------------
修改配置文件---rfc.inter
# cp /etc/named.rfc1912.zones /etc/named.rfc1912.inter -p
# vim /etc/named.rfc1912.inter
修改主配置文件
vim /etc/named.conf
systemctl restart named
3)测试:
客户端1 :解析出的地址是172网段的
dig www.westos.org
客户端2:解析出的地址是1网段的
dig www.westos.org
总结:利用双向解析 不同网段客户端使用同一个DNS服务器 解析出的地址网段也不同
6.DNS集群
为了减小主DNS的访问压力 创建辅助DNS 并且可以实时更新数据
达到 控制一台主DNS服务器 辅助DNS服务器可以实时更新数据
1.配置实验环境
需要配置两台虚拟机:
nodea/主DNS服务器:172.25.254.173
nodeb/辅助DNS服务器:172.25.254.237
2.配置辅助dns服务器
-------在 nodeb:172.25.254.237上做-------
1)安装启动DNS服务
dnf install bind -y
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
2)编辑配置文件
vim /etc/named.conf
vim /etc/named.rfc1912.zones
3)查看域名保存文件
root@westosb named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@westosb named]# ls slaves
[root@westosb named]# systemctl restart named
[root@westosb named]# ls slaves
westos.org.zone
4)测试辅助DNS是否配置成功
[root@westosb named]# vim /etc/resolv.conf
[root@westosb named]# dig www.westos.org
解析数据来源于237 237---来源于173结果如上图表示辅助DNS配置成功
3.数据不同步问题
1)在主DNS服务器:172.25.254.173修改westos数据
[root@westoslinux ~]# cd /var/named
[root@westoslinux named]# ls
172.25.254.ptr data dynamic named.ca named.empty named.localhost named.loopback slaves westos.org.inter westos.org.zone
[root@westoslinux named]# vim westos.org.zone
[root@westoslinux named]# systemctl restart named
2)测试
----------------主DNS服务器 nodea测试------------
----------辅助dns服务器nodeb测试-------
3)解决不同步的方法 :删除slaves的内容 重新解析
--------------------------nodeb:172.25.254.237----------------------
[root@westosb ~]# cd /var/named/
[root@westosb named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@westosb named]# rm -fr slaves/
[root@westosb named]# systemctl restart named
[root@westosb named]# dig www.westos.org
这个方法很简单 可以解决不同步的问题 但是在企业中不使用该方法
4.集群
1)在主DNS/nodea修改配置文件:更新数据通知设定
[root@westoslinux named]# vim /etc/named.rfc1912.zones
2)编辑A记录文件:修改数据
[root@westoslinux named]# vim westos.org.zone
3)测试
nodea:
[root@westoslinux named]# systemctl restart named
辅助DNS/nodeb:
总结:控制一台 主DNS服务器 就可以 达到辅助DNS服务器 同步数据 的效果
7.DDNS:DNS的动态域名解析
使用DHCP动态分配ip 可进行动态域名解析
1.配置DHCP网络:动态分配ip
1)在主服务器:nodea 搭建dhcp服务
-----------------------nodea----------------------------
[root@westoslinux named]# dnf install dhcp-server -y
[root@westoslinux named]# cp /usr/share/doc/dhcp-server/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp: overwrite '/etc/dhcp/dhcpd.conf'? y
[root@westoslinux named]# vim /etc/dhcp/dhcpd.conf
[root@westoslinux named]# systemctl restart dhcpd
2)nodeb:westosb.westos.org 设置dhcp网络
----------------------------------nodeb--------------------------
cd /etc/sysconfig/network-scripts/
ls
vim ifcfg-ens3
---------------
DEVICE=ens3
ONBOOT=yes
BOOTPROTO=dncp
-----------
nmcli connection reload
nmcli connection up ens3
ifconfig
此时dig 自己 dig westosb.westos.org 不通 因为没有写进主配置文件的dns
3)将nodeb 对应域名和ip写进nodea的dns
----------------------------------nodea---------------------------------
[root@westoslinux named]# vim /etc/dhcp/dhcpd.conf
[root@westoslinux named]# vim /var/named/westos.org.zone
4)在nodeb测试
dig westosb.westos.org
解析成功
问题:nodeb的ip是动态分配的 会变化 nodea里面的对应关系是固定的 一旦ip发生变化 nodeb就无法解析 这个问题如何解决?
答:dhcp动态分配ip 分配 ip dhcp自己知道 只需要让DHCP通知DNS 就可解决
2.解决方法:DDNS动态解析
1)设定密匙
生成密匙:在/mnt/里面
[root@westoslinux named]# dnssec-keygen --help
[root@westoslinux named]# dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST westoskey
Kwestoskey.+163+63771
[root@westoslinux named]# ls
172.25.254.ptr dynamic Kwestoskey.+163+63771.private named.empty named.loopback westos.org.inter
data Kwestoskey.+163+63771.key named.ca named.localhost slaves westos.org.zone
[root@westoslinux named]# mv Kwestoskey.+163+63771.key Kwestoskey.+163+63771.private /mnt/
[root@westoslinux named]# cd /mnt/
[root@westoslinux mnt]# ls
8-abstract-dark.xml circles-dark.xml desktop-backgrounds-default.xml Kwestoskey.+163+63771.key
8-abstract-light.xml circles-light.xml hello-world-dark.xml Kwestoskey.+163+63771.private
将密匙写进模板:/etc/westos.key
[root@westoslinux named]# rpm -qc bind
[root@westoslinux named]# vim /etc/rndc.key
[root@westoslinux named]#cd /mnt/
[root@westoslinux mnt]# cp /etc/rndc.key /etc/westos.key -p
cp: overwrite '/etc/westos.key'? y
[root@westoslinux mnt]# vim /etc/westos.key
2)编辑DNS主配置文件
[root@westoslinux mnt]# vim /etc/named.conf
3)编辑DNS子配置文件
[root@westoslinux mnt]# vim /etc/named.rfc1912.zones
别忘了重启DNS服务
[root@westoslinux mnt]# systemctl restart named
4)编辑DHCP主配置文件
[root@westoslinux mnt]# vim /etc/dhcp/dhcpd.conf
[root@westoslinux mnt]# systemctl restart dncpd
3.DDNS动态域名测试
1)在nodea:修改动态分配ip范围 模仿ip的变化
[root@westoslinux mnt]# vim /etc/dhcp/dhcpd.conf
[root@westoslinux mnt]# systemctl restart dncpd
2)在nodeb:上测试
查看nodeb主机名
重启网络服务 dig 自己
nmcli connection reload
nmcli connection up ens ---重启
dig westosb.westos.org
发现域名解析已经更改
查看此时nodeb分配到的ip
与解析出来的一致
ifconfig