理论知识
-
TCP/IP网络使用IP地址标识计算机,一台计算机要访问其他计算机,必须知道目标计算机的IP地址。通过转换机制可以把更易于记忆的计算机名转换为IP地址。目前将计算机名转换为IP地址的方式主要有:hosts文件、NIS、DNS。
-
host文件
/etc/hosts 存放了主机名和IP地址的映射表,计算机首先通过在该文件搜索来匹配主机名和IP地址。 -
NIS (Network Information System)
将主机列表用作NIS主机数据库,客户机可以查询到他们所需的主机列表信息。 -
DNS (Domain Name Server)
主机名和IP地址的转换机制,使用一种分层的分布式数据库来处理Internet上的成千上万个主机和IP的转换。
-
名称解析方法的使用顺序
在CentOS 7 系统中,主机尝试名称解析方法的顺序与 /etc/nsswitch.conf 文件有关。
具体执行顺序由"hosts:"关键字指明,默认配置如下:
hosts:file dns myhostname
其顺序为:hosts->DNS->本主机名
其中:files 表示在 /etc/hosts文件中查找
dns 表示使用DNS服务器查找
myhostname 表示匹配本机的主机名
Internet上的主机命名方式
- 分层的名称结构,最顶层只有一个域,成为根域
- 根域之下是统一命名的顶级域,如.com、.net、.cn等
- 顶级域下可申请二级域名,二级域名下还可以在划分子域。主机和服务可在二级域或子域下注册名称。
DNS服务器的搭建
-
Bind
Linux 下架设DNS服务器通常是使用BIND(Berkeley Internet Name Domain Service)
bind: DNS服务器软件包
bind-utils: DNS测试工具,包括dig,host与nslookup等
bind-chroot: 使BIND运行在指定的目录中的安全增强工具 -
BIND 的安装和启动
安装:yum install bind bind-utils -y
启动:systemctl start named
systemctl enable named
查看域名服务器的运行状态:rndc status -
配置DNS 服务器实现高速缓存
BIND 安装后,默认提供一个仅高速缓存服务器的配置
BIND 主配置文件为 /etc/named.conf
默认通过根提示文件 /etc/named.ca 获取根服务器来解析外部域名
转发器指定把客户端的查询请求转发到到远程DNS服务器(一般为ISP提供的DNS服务器,可提高查询效率)。
修改配置文件:
检查:named -checkconf
重启DNS服务:systemctl restart named
测试DNS服务:nslookup www.baidu.com 192.168.1.10
创建主DNS服务器正向查找区域
-
每台DNS服务器可以管理多个区域,管理的区域需要在 /etc/named.conf 文件中定义
-
创建区域数据文件
区域数据文件名必须与/etc/named.conf中定义的一致
区域数据文件建立:
cd /var/named
cp -a named.localhost mydomain.com.zone
修改区域数据文件:
vim mydomain.com.zone
检查区域数据文件语法错误:
named-checkzone mydomain.com /var/named/mydomain.com.zone
重启DNS服务:
systemctl restart named
创建主DNS服务器反向查找区域
- 定义反向查找区域
区域数据文件名必须与 /etc/named.conf中定义的一致
建立区域数据文件:
cd /var/named
cp -a named.loopback 1.168.192.zone
修改区域数据文件:
vim 1.168.192.zone
检查区域数据文件语法错误:
named-checkzone 1.168.192 /var/named/1.168.192.zone
重启DNS服务:
systemctl restart named
测试主DNS服务
-
为客户端指定DNS服务器
在网络设备配置文件中将DNS服务器改为192.168.1.10:
vim /etc/sysconfig/network-scripts/ifcfg-<网卡名>
添加下行内容:
DNS1=192.168.1.10
重启网络服务:
systemctl restart network
查看客户端使用的DNS服务器:
cat /etc/resolv.conf -
nslookup非交互式操作
nslookup命令支持交互和非交互式操作。
测试正向解析:
nslookup www.mydomain.com
nslookup ftp.mydomain.com
nslookup mail.mydomain.com
测试其他DNS服务器,例如8.8.8.8:
nslookup www.163.com 8.8.8.8
查询结果:
测试反向解析:
nslookup 192.168.1.100
nslookup 192.168.1.110
-
nslookup交互式操作
进入交互式界面:
nslookup
查看nslookup 所有设置,子命令set all
查询主机名www.mydomain.com:
查询mydomain.com区域授权记录:
查询1.168.192.in-addr.apra 区域授权记录:
查询邮件交换器记录:
查询名称服务器记录:
退出nslookup交互式操作:
DNS常见故障排除
-
服务器端故障
(1)配置错误
检查DNS主配置文件 /etc/named.conf语法错误:
named-checkconf -z
检查DNS区域数据文件语法错误:
named-checkzone <区域名称> <区域文件>
(2)防火墙配置错误
先关闭防火墙功能,再判断故障现象是否消除:
systemctl stop firewalld
(3)辅助DNS服务器区域更新故障
序列号问题:
设置主服务器上的序列号小于辅域名服务器不能从区域进行更新。
比较主/辅服务器的序列号:
dig <域名> SOA @<主DNS服务器IP> +noall +answer
dig <域名> SOA @<辅助DNS服务器IP> +noall +answer
区域传输配置问题:
检查区域传输配置
主DNS服务器上,检查区域定义中的forwarders 选项是否配置正确。
辅助DNS服务器上,检查区域定义中的masters选项是否配置正确。 -
客户端故障
可根据测试命令nslookup、dig执行获取的信息判断故障原因
(1)客户端的DNS服务器配置是否正确:
cat /etc/resolv.conf
(2)网络连接是否正确:
ping <DNS服务器IP地址>
(3)Windows 系统DNS客户端故障
确认DNS Client(后台服务)是否运行。
DNS客户端缓存引起的故障:
查看DNS客户端缓存:
ipconfig /displaydns
刷新DNS客户端缓存:
ipconfig /flushdns -
外部域名查询故障
配置有转发器
测试转发是否能解析外部域名:
nslookup www.baidu.com <转发器IP地址>
未配置转发器
检查zone"."定义的根示文件名和路径是否正确,根示文件名内容是否正确。
配置辅助DNS服务器
-
配置区域传输
在主DNS服务器上增加区域传输配置:
vim /etc/named.conf
打开正向查找区域数据文件:
vim /etc/var/named/mydomain.com.zone
打开反向查找区域数据文件:
vim /etc/var/1.168.192.zone
重启DNA服务:
systemctl restart named -
定义辅助DNS服务器正向查找区域
辅助DNS服务器的安装、基本配置与主DNS服务器一样。
定义辅助正向查找区域mydomain.com
vim /etc/named.conf
-
定义辅助DNS服务器反向查找区域
定义辅助反向查找区域1.168.192.in-addr.arpa:
启动DNS服务:
systemctl start named
验证区域传输:
ls -l /var/named/salves