一.DNS基本知识
1、为什么需要DNS解析域名为IP地址?
答:网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址的,所以计算机在网络上进行通讯时只能识别如“192.168.0.10”之类的IP地址,而不能认识如“www.baidu.com”之类的域名。我们很难记住10位数字以上IP地址的网站,所以我们访问网站时,更多的是在浏览器地址栏中输入域名,就能看到所需要的页面,这是因为有一个叫“DNS服务器”的计算机自动把我们的域名“翻译”成了相应的IP地址,然后调出IP地址所对应的网页。
2、具体什么是DNS?
DNS( Domain Name System)是“域名系统”的英文缩写,是一种组织成域层次结构的计算机和网络服务命名系统,它用于TCP/IP网络,它所提供的服务是用来将主机名和域名转换为IP地址的工作。DNS就是这样的一位“翻译官”。它可以将主机名转换为IP地址,也可以将IP地址转换为域名.
3、DNS的层级结构如下图:
根域名服务器全世界一共有13台
4、关于客户端
/etc/resolv.conf | dns的指向文件 |
host www.baidu.com | 地址解析命令 |
dig www.baidu.com | 地址详细解析信息命令 |
A记录 | 指定域名对应的IP地址记录(通俗:服务器的IP) |
SOA | 授权起始主机 |
5、关于服务端
bind | 安装包 |
named | 服务名称 |
/etc/named.conf | 主配置文件 |
/var/named | 数据目录 |
端口 | UDP的53 |
6、关于报错信息:
no servers could be reached | 服务无法访问(服务是否开启?火墙?网络?端口?) |
服务启动失败 | 配置文件写错 journalctl -xe查询错误 |
dig | 查询状态 |
状态 | 含义 |
NOERROR | 表示查询成功 |
REFUSED | 服务拒绝访问 |
SERVFAIL | 查询记录失败,(dns服务器无法到达上级,拒绝缓存) |
NXDOMAIN | 此域名A记录在dns中不存在 |
二.dns服务的安装与启用
实验环境:
rhel8:IP:192.168.0.110 扮演dns服务器
rhel7:IP:192.168.0.109 DNS1:192.168.0.110 扮演dns客户主机
安装与启用详细过程
1、安装dns服务
dnf install bind.x86_64 -y #安装
systemctl enable --now named #启用
netstat -antlupe | grep named #查看服务的启用端口
2、设置防火墙允许dns服务的端口
firewall-cmd --permanent --add-service=dns
或firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload
3、编写rhel7的dns指向文件,使得rhel7的域名解析服务器为rhel8
vim /etc/resolv.conf
nameserver 192.168.0.110
4、rhel7:dig www.baidu.com
报错:no servers could be reached(图4.1)
因为dns服务器主机(rhel8)没有开启它的53端口
开启192.168.0.110的53端口:vim /etc/named.conf(图4.2)
11行 listen-on port 53 { any; }; #在本地所有网络接口上开启53端口
systemctl restart named
5、rhel7:dig www.baidu.com
报错:REFUSED(图5.1)
因为dns服务器主机的配置文件设定了它能够提供服务的主机是localhost
修改配置文件:vim /etc/named.conf(图5.2)
19行 allow-query { any; }; #允许所有客户端查询A记录
systemctl restart named
6、rhel7:dig www.baidu.com
报错:SERVFAIL(图6.1)
因为dns服务器无法到达上级,拒绝缓存外部信息到本机
修改配置文件:vim /etc/named.conf(图6.2)
34行 dnssec-validation no; #禁用dns安全检测功能,使dns能够缓存外部信息到本机
systemctl restart named
7、rhel7:dig www.baidu.com
无报错:NOERROR(图7.1)
图4.1
图4.2
图4.3 开启成功
(图5.1)
(图5.2)
(图6.1)
(图6.2)
(图7.1)
在dns服务器配置好以后,当访问世界上不存在的域名时,状态会变为:NXDOMAIN,由SOA对该查询结果负责
三.高速缓存dns
假设在企业中,现在有多台主机要访问外网,并不会因为有一台主机已经访问过该网站,而使得其他主机在访问同一网站的时间变短,那怎样能使其他主机在访问同一网站的时候时间变短呢
高速缓存DNS解释:
怎样将主机设置为高速缓存dns服务器:
vim /etc/named.conf
20行 forwarders { 114.114.114.114; };
#当别人问我问题时,如果我的主机查询不到,那我去114.114.114.114主机查询,然后缓存到本机
syystemctl restart named
四.dns的正向解析
设定域名:
1、编写文件
vim /etc/named.rfc1912.zone
#根域名在主配置文件/etc/named.conf中进行设定,为了便于阅读主配置文件,
将其他域名设定写到etc/named.rfc1912.zone子文件中
文件内容:
zone "weiwei.com" IN { #要维护的域名
type master; #当前服务器wei主dns
file "weiwei.com.zone"; #域名A记录文件
allow-update { none; }; #允许更新主机列表
};
2、
cd /var/named/
cp -p named.localhost weiwei.com.zone(复制时注意权限也要复制)
3、
vim weiwei.com.zone
$TTL 1D #A记录在客户主机中能够保存的时间
@ IN SOA dns.weiwei.com. root.weiwei.com (
0 ; serial #文件变更标识
1D ; refresh #客户主机刷新A记录的时间
1H ; retry #第一次访问后,第二次访问应间隔的时间,否则不做查询,依然是同样的结果
1W ; expire #客户主机能够得到缓存的最大期限
3H ) ; minimum #客户主机能够得到缓存的最小期限
NS dns.weiwei.com. #NS:客户主机能够看到的DNS解析信息
dns A 192.168.0.110
www CNAME weiwei.a.westos.com. #规范域名
weiwei.a A 192.168.0.111 #正向解析记录
weiwei.a A 192.168.0.112
4、
weiwei.com. MX 1 192.168.0.20. #邮件解析记录
systemctl restart named
5、
dig www.weiwei.com #查询正向解析
dig -t mx weiwei.com #邮件解析记录查询
1、vim /etc/named.rfc1912.zone
2、
3、
原文件内容
修改后文件内容:
注意,在企业中,A记录列表是提前给好的,此处是任意写的
给列表中添加:bbs A 192.168.0.112
邮件解析:我们在发送邮件时,需要先通过账号登录到邮箱,然后在有邮箱的那台主机(A)上发送,而不是直接在我们自己的电脑上发送。假设收件人是xxxxx@163.com,那么A主机必须知道163.com里面负责邮件的主机(B)是谁,A主机就会去问DNS服务器163.com的MX记录是什么,然后DNS服务器响应A主机后,A主机就知道了163.com域里B主机是谁,然后就会通过自己的25端口将邮件发送到B主机的25端口
DNS服务器中的内容:
A主机:
结束!!!