一.DNS总揽
1、什么是DNS
DNS是域名系统(或服务)协议,它是一种分布式网络目录服务,主要用于域名与IP地址的相互转换,以及控制因特网的电子邮件的发送。
DNS是因特网的一项核心服务,它作为可以将域名和IP地址互相映射的一个分布式数据库,能使人更方便的访问互联网,是解决网上机器命名的一种系统。
2、DNS名称服务器
(1)根名称服务器
根服务器是将人类可读主机名转换(或解析)为IP地址的第一步。它可以被认为是图书馆中指向不同书籍的索引,通常情况下,可作为对其他更具体位置的参考。
(2)TLD名称服务器
顶级域名服务器(TLD)可以被视为库中特定的书架。此名称服务器是搜索特定IPP地址的下一步(例:baidu.com中,TLD服务器是.com)。
(3)权威名称服务器
可被认为是书架上的字典,其中可以将特定名称翻译成其定义。权威名称服务器是名称服务器查询中的最后一步。如果权威名称服务器可以访问所请求的记录,它将把请求的主机名的IP地址返回给发出初始请求的DNS Recursor(图书管理员)。
类型有:
命令 | 功能 |
---|---|
Master | 包含原始区域数据,有时称为“主要名称服务器” |
Slave | 备份服务器,通过区域传送Master服务器获得的区域数据的副本,有时称为“次要名称服务器” |
(4)递归DNS解析器(非权威DNS名称服务器)
递归解析器是响应来自客户端的递归请求,并花时间跟踪DNS记录的计算机。它通过发出一系列请求直到它到达请求记录的权威DNS名称服务器来完成此操作(没有找到记录则超时、返回错误)。递归DNS解析器并不总是需要发出多个请求才能跟踪响应客户端所需的记录,缓存是一种数据持久性过程,它通过在DNS查找中提前提供的资源记录来帮助缩短必要的请求(可以降低内网主机的网络延迟)。
3、非权威DNS名称服务器的配置
(1)配置实验环境
命令 | 功能 |
---|---|
vim /etc/sysconfig/network-scripts/ifcfg-eth0 | 修改ip,添加掩码,并将网络状态改为静态 |
hostnamectl set-hostname dns.example.com | 修改主机名方便辨别 |
systemctl restart network | 重读network配置文件,使修改立即生效 |
vim /etc/yum.repos.d/xxxx.repo | 查看yum源是否配置好,若配置正常则关闭,不正常则配置正常后关闭 |
yum search dns | 查找dns安装包是否存在,找到dns安装包 |
yum install bind -y | dns安装包为bind,安装dns |
rpm -ql bind | 可查询该软件提供的服务的名称,查到该软件提供的服务名为named.service,使用时可简写为named |
systemctl start named | 开启该服务,开启时需要在准备开启该服务的机中进行一些键盘和鼠标操作,使记录操作的文件足够长,使开启服务所需要的key能够被抓取到 |
/etc/rndc.key | 开启named服务需要的key文件,若不进行键盘操作,数据过短,无法抓取到key,则无法开启named |
/dev/random | 记录键盘和鼠标操作的数据的文件 |
systemctl stop firewalld | 关闭防火墙 |
systemctl disable firewalld | 设置开机时不自动开启防火墙 |
systemctl status firewalld | 查看此时防火墙状态,确认是否关闭 |
vim /etc/yum.repos.d/xxxx.repo | 在需要作为服务端的机中修改该文件,添加网关,使服务端可以进行联网 |
route -n | 查看网关(Gateway) |
ping 114.114.114.114 | 查看能否ping通,来判断是否能联网,通了即可以联网,不通则不能联网 |
(2)配置非权威DNS名称服务器
命令 | 功能 |
---|---|
vim /etc/resolv.conf | 修改此文件 |
添加nameserver 172.25.254.xxx | 将dns服务器的ip输入进去,此时用该机(客户端)询问服务端时,将询问该dns服务器,修改完成后退出保存 |
dig www.baidu.com | 此时dig不通(服务端未响应) |
<1>开启named服务的端口
命令 | 功能 |
---|---|
netstat -antlupe | grep named |
vim /etc/named.conf | 修改该文件 |
listen-on port 53 { any; }; | 改为任何人可访问53 |