DNS服务器
目录
一、概述
(一)DNS服务
1、概念
一套分布式的域名服务系统,即有多个DNS服务器遍布于世界。每个DNS服务器上存放着大量的机器域名和IP地址的映射,并且是动态更新。众多网络客户端程序都使用DNS协议来向DNS服务器查询目标主机的IP地址。
2、全称
Domain Name system | service
3、作用
正向解析 将已知的域名解析为IP地址
反向解析 将已知的IP地址解析为域名
4、监听端口
53/udp | 53/TCP
5、默认运行用户
named
(二)域名
完全限定域名 FQDN
组成 www.baidu.com
主机名.二级域名.顶级域名.
分类
分类 | 根域 | . |
顶级域 | 二级域 | 三级域 |
cn | baidu | |
org | sina | |
edu | soho | |
hk | 163 | |
uk | ||
com | ||
mil |
二、DNS解析过程
(一)客户端如何解析域名
1、本地DNS缓存
2、本地hosts文件
3、指向的DNS服务器IP
直接给出解析结果: 递归查询
没有给出解析结果: 迭代查询
(二)递归查询
客户机与本地DNS服务器之间的查询。(所答即所问)
(三)迭代查询
本地DNS服务器与根等其他DNS服务器之间的查询。(所答非所问)
三、域名服务器的分类
(一)根据作用
1、根域名服务器:
最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。
2、顶级域名服务器:
负责管理该顶级域名注册的二级域名。
3、权限域名服务器:
负责一个“区”的域名服务器。
4、本地域名服务器:
本地域名服务器不属于域名服务器的层次结构,但是它对域名系统非常重要。当一个主机发出DNS查询请求时,这个查询请求报文就发送给本地域名服务器。
(二)根据应用场景
1、主服务器(Primary Name server)
为客户端提供域名解析的主要区域,主DNS服务器宕机,会启用从DNS服务器提供服务。
2、辅助服务器(Second Name Server)
主服务器DNS长期无应答,从服务器也会停止提供服务,主从区域治安的同步采用周期性检查+通知的机制,从服务器周期性地检查主服务器上地记录情况,一旦发现修改就会同步,另外主服务器上如果有数据被修改了,会立即通知从服务器更新记录。
3、高速缓存服务器(Cache-only server)
缓存服务器是一种不负责域名数据维护,也不负责域名解析地DNS服务类型。它将用户经常使用到地域名与IP地址解析记录保存在主机本地中,来提升下次解析的效率。
四、DNS服务器部署
(一)介绍
软件包 bind
配置文件目录 /etc/
区域文件目录|安装目录 /var/named/
服务名 named
(二)基础环境配置
(三)安装
yum install -y bind
(四)配置文件解析
1、注释
单行注释 //
多行注释 /* 多行数据内容 */
2、配置项
2.1、options
配置DNS服务的运行状态
listen-on port 53 { 127.0.0.1; }; 定义IPv4监听地址及端口号
listen-on-v6 port 53 { ::1; }; 定义IPv6监听地址及端口号
directory "/var/named"; 区域文件目录,不建议更改
dump-file "/var/named/data/cache_dump.db"; 缓存文件目录,不建议更改
allow-query { localhost; }; 允许哪些客户端来访问DNS服务器,any表示所有的客户端都能访问
2.2、zone
配置区域文件的名称
正向解析
zone "需要解析的域名" IN { type 服务器类型; (master 主服务、 slave从服务器) file "解析文件名称"; }
反向解析
zone "100.168.192.in-addr.arpa" IN {
type master;
file "192.168.100.zones";
};
2.3、include
将指定路径的配置文件内容加载到当前配置文件中
(五)区域文件类型
1、正向解析
解析文件名称命名规则 wjy.com.zones
2、反向解析
解析文件名称命名规则 192.168.100.zones
(六)区域文件的模板文件
named.empty
(七)生成区域文件
cp -p named.empty wjy.com.zones
cp -p named.empty 192.168.100.zones
(八)解析记录的类型
A IPv4正向解析记录
NS DNS服务器解析记录
MX 邮件解析记录
CNAME 别名解析记录
PTR 反向解析记录
(九)修改解析文件
正向解析文件
$TTL 3H
@ IN SOA wjy.com. root.wjy.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1.wjy.com.
dns1 A 192.168.100.254
www A 192.168.100.101
wjy.com. 指定要解析的域名
root.wjy.com. 管理员域名
反向解析文件
$TTL 3H
@ IN SOA jxedu.com. root.jxedu.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns1.wjy.com.
254 PTR dns1.wjy.com.
101 PTR www.wjy.com.
命令配置完毕后需重启服务。
输入命令验证服务是否正确启动
五、服务端DNS命令
named-checkconf 检查配置文件语法
named-checkzone 检查区域文件语法
named-checkzone zonename filename
一般情况下命令正确不报错,第一段命令为故意输错,去检查错误,命令内容写错
错误原因
改正错误
六、客户端解析
(一)客户端解析验证
配置DNS地址
1、DHCP服务器分配
2、手动配置
/etc/resolv.conf
nameserver 192.168.100.254
(二)客户端常见解析命令
nslookup 交互式
正向解析
反向解析
dig 非交互式
host 非交互式
七、拓展
1、安装yum源
2、yum安装HTTPD源
3、编辑HTTPD服务的配置文件
4、重启服务使其生效
5、查看监听端口
6、进入html目录编辑内容
7、验证
打开火狐验证可以正常显示内容
八、主从DNS服务器部署
(一)主服务
type master;
在zone配置中加入
allow-transfer { 192.168.100.253; };
192.168.100.253 是从服务器地址
在options中配置
allow-transfer { 192.168.100.253; };
全局配置,允许文件中所有的区域文件进行传送
(二)从服务
从服务需要更改的配置
type slave;
zone "wjy.com" IN {
type slave;
file "slaves/wjy.com.zones";
masters { 192.168.100.254; }; //主服务器地址
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.100.zones";
masters { 192.168.100.254; };
};
1、配置基础环境
1.1、安装yum源
cd /etc/yum.d 进入yum源目录下
mkdir backup 创建备份文件目录
mv CentOS-* ./backup 将当前文件下所有CentOS文件移动至备份目录内
vim local.repo 创建local.repo文件,进行编辑
编辑内容:
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
mount /dev/sr0 /mnt 将光盘挂载到/mnt上
2、关闭防火墙以及SElinux
systemctl stop firewalld && systemctl disable firewalld
getenforce 查看SElinux状态
setenforce 设置宽容模式
vim /etc/selinux/config 编辑内容
将文件内容中SELINUX=enforce改为SELINUX=disabled
使配置文件永久生效(需要重启)
3、yum源安装DNS
yum install -y bind 安装DNS
4、进入DNS配置项更改配置
vim /etc/named.conf 进入配置文件更改内容
将内容改为any代表所有IP都可访问从域名或IP进行访问(具有危险性,一般不建议开启)
master { 192.168.100.254 } 为指定主服务器的IP地址
systemctl restart named 重启服务使其生效
5、更改监听地址
vim /etc/resolv.conf
6、进入目录查看内容是否存在可以正常使用
cd /var/named/slaves
ls