(一)DNS概述
DNS域名解析服务是提供域名解析服务的服务器,根据域名解析IP地址或根据IP地址解析域名
(1)DNS作用
DNS域名解析分为正向解析和反向解析
- 正向解析
根据域名查找对应的IP地址
- 反向解析
根据IP地址查找对应的域名
(2)DNS结构
DNS域名结构是树形结构,是从根域开始为起点的
格式为: 主机名(三级域). 子域 . 二级域 . 顶级域 . (最后一个点为根域)
- 根域:域名的起始位置,一般表示为:“ . ”
- 顶级域:代表组织机构或者国家地区
- 二级域:标明顶级域中特定的组织(国家顶级域下面的二级域名由国家网络部门统一管理)
- 子域:二级域下创建的各种域
- 主机名(三级域):就是一台主机
(3)DNS端口
DNS的端口号为53,分为 TCP 端口和 UDP 端口
- TCP 端口主要用来连接DNS服务器
- UDP端口主要用来解析DNS
(二)DNS的分类
(1)缓存域名服务器
- 也称为DNS高速缓存服务器
- 通过向其他域名服务器查询获得域名 ->IP地址记录
- 将域名查询结果缓存到本地,提高重复查询时的速度
(2)主域名服务器
- 特定DNS区域的权威服务器,具有唯一性
- 负责维护该区域内所有域名->IP地址的映射记
- 录需要自行建立所负责区域的地址数据文件
(3)从域名服务器
- 也称为辅助域名服务器,是对主域名服务器的热备份
- 其维护的域名->IP地址记录来源于主域名服务器
- 需要从主域名服务器自动同步区域地址数据库
(三)DNS域名解析工作原理
- 客户端将DNS解析请求发给本地域名服务器,本地域名服务器如果有相关记录则会返回给客户端,如果没有则会发给根域名服务器进行解析。
- 根域名服务器根据域名中的顶级域名发给对应的顶级域名服务器进行解析。
- 顶级域名服务器根据域名中的二级域或子域名发给对应的二级域或子域名服务器进行解析。
- 子域服务器根据域名中的主机名解析出IP地址,然后返回给本地域名服务器和客户端。
(四)DNS域名解析查询方式
DNS域名解析查询方式分为 递归查询 和 迭代查询 两种
(1)递归查询
- 本地域名服务器将DNS请求发给根域名服务器
- 根域名服务器根据域名中的顶级域名发给对应的顶级域名服务器
- 顶级域名服务器根据域名中的二级域名或子域名发给对应的二级域名服务器或子域名服务器
- 子域名服务器根据域名中的主机名解析出对应的IP地址
- 最后逐层返回给本地域名服务器
(2)迭代查询
- 本地域名服务器将DNS请求发给根域名服务器
- 根域名服务器响应消息回本地域名服务器告知对应顶级域名服务器
- 本地域名服务器将DNS请求发给对应顶级域名服务器
- 顶级域名服务器响应消息回本地域名服务器告知对应二级域名服务器或子域名服务器
- 本地域名服务器将DNS请求发给对应子域名服务器
- 子域名服务器根据域名中的主机名解析出对应IP地址,然后直接返回给本地域名服务器
(五)搭建本地DNS服务器
(1)初始化系统
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/selinux/config
修改内容:
SELINUX=disabled
(2)安装 bind 软件包
yum install -y bind
(3)修改主配置文件
vim /etc/named.conf
修改内容:
listen-on port 53 { any; }; #设置监听IP地址和端口
allow-query { any; }; #设置允许访问DNS服务器的客户端
(4)修改区域配置文件
vim /etc/named.rfc1912.zones
修改内容:
zone " xxx.com" IN { #正向解析配置
type master;
file "xxx.com.zone"; #设置区域数据文件名称
};zone "80.168.192.in-addr.arpa" IN { #反向解析配置,地址倒写
type master;
file "xxx.com.zone.local";
};
(5)修改区域数据文件
vim /var/named/xxx.com.zone
cd /var/named
cp -p named.localhost xxx.com.zone正向解析
vim xxx.com.zone
修改内容:@ IN SOA xxx.com. admin.xxx.com. (
......
NS xxx.com. #设置当前区域名称
A 192.168.80.20 #设置DNS服务器IP地址
www IN A 192.168.80.30 #设置正向解析的主机名与IP地址的映射记录
xxx IN CNAME www #设置主机名 xxx 是 www 的别名反向解析
vim xxx.com.zone.local
修改内容:
30 IN PTR www.xxx.com. #设置IP地址与域名的反向解析记录
(6)重启named服务
systemctl restart named
(7)客户端设置DNS服务器地址 /etc/resolv.conf ,并验证 nslookup host dig
vim /etc/resolv.conf