一、DNS
1.1 DNS简介
域名解析:(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用udp53和tcp53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
TCP 53号端口:连接DNS服务器
UDP 53号端口:解析DNS
1.2 DNS 数据结构分布
树状结构最顶层称为根域,用“.”表示,相应服务器称为根服务器,整个域名空间解析权都归根服务器所有,但根服务器无法承担庞大的负载,采用“委派”机制,在根域下设置了一些顶级域,然后将不同顶级域解析权分别委派给相应的顶级域服务器,如将com域的解析权委派给com域服务器,以后但凡根服务器收到以com结尾的域名解析请求,都会转发给com域服务器,同样道理,为了减轻顶级域的压力,又下设了若干二级域,二级域又下设三级域或主机。
根域
位于域名空间最顶层,一般用一个 “.” 表示
顶级域
一般代表一种类型的组织机构或国家地区,
如 .net(网络供应商)、.com(工商企业)、.org(团体组织)、.edu(教育机构)、.gov(政府部门)、.cn(中国国家域名)
二级域
用来标明顶级域内的一个特定的组织,国家顶级域下面的二级域名由国家网络部门统一管理,
如 .cn 顶级域名下面设置的二级域名:.com.cn、.net.cn、.edu.cn
子域
二级域下所创建的各级域统称为子域,各个组织或用户可以自由申请注册自己的域名
主机
主机位于域名空间最下层,就是一台具体的计算机,
如 www、mail都是具体的计算机名字,可用www.sina.com.cn. 、mail.sina.com.cn. 来表示,这种表示方式称为 FQDN (完全合格域名,是指包含了所有域的主机名,其中包括根域),也是这台主机在域名中的全名
1.3 服务器的类型
(1)主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
(2)从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
1.4 DNS 域名解析方式
正向解析:根据域名查找对应的IP地(域名 --------> IP)
反向解析:根据IP地址查找对应的域名(IP---------->域名)
1.5 DNS查询方式
递归查询
主机通常使用递归查询进行本地域名服务器查询。 其查询过程为:首先检查本地 DNS 是否有对应的寰球域名,如果有关联主机域名,则直接解析。如果无法访问根域名服务器,则从根域名服务器转发到顶级域名服务器,再转发到子域名服务器(如果有二级域名,则从二级域名转发到子域名服务器),从子域名服务器转发到 转发给主机,并根据主机名逐步转发给客户端,以便解析相应的 IP 地址。
迭代查询
从本地 DNS 服务器到根 DNS 服务器的查询是迭代查询。 查询过程:首先还要访问本地主机的 DNS 缓存,如果有缓存,则直接解析。如果没有,则先访问根域名服务器,根域名服务会回复相应的顶级域名服务器。接下来,客户端访问顶级域服务器,顶级域服务器回复给相应的子域服务器(如果有二级域名,则有另一个访问二级域名的过程)。然后,客户端访问相应的子域服务器,子域服务器回复相应的主机。然后,客户端访问主机,根据主机名解析相应的 IP 地址,并回复客户端,完成解析过程。
1.6 映射文件
hosts 文件包含 IP 地址和主机名之间的映射,以及主机的别名。
默认情况下,系统首先在 hosts 文件中查找解析记录。
hosts 文件优先于 /etc/nsswitch.conf 文件中指定的 DNS 服务器。
hosts 文件只对当前主机有效。
hosts 文件可减少 DNS 查找过程,加快访问速度。
Linux中有关DNS的映射文件
vim /etc/hosts
二、DNS域名解析器
2.1构建DNS域名解析器的目的
bind是开源软件,用于内网划分DNS,不同于外网,内网的DNS是不需要注册,是方便内部进行使用和访问的有效手段
2.2bind服务的安装
yum install bind bind-utils -y
2.3bind服务程序介绍
绑定服务程序的区域配置文件(/etc/named.rfc1912.zones)用于存储域名和 IP 地址之间的对应关系。该文件定义了存储域名和 IP 地址解析规则的文件位置和服务类型,但不包含域名和 IP 地址之间对应关系的具体信息。有三种服务类型:提示(根区)、主区(一级区)和从区(二级区),常用的主区和从区指的是主服务器和从服务器。
2.4查看需要修改的配置文件所在路径
rpm -qc bind
三、搭建DNS域名解析器具体步骤
3.1 搭建正向解析
第一步:修改DNS
systemctl stop firewalld
setenforce 0
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
第二步:修改主机配置文件
vim /etc/named.conf
options {
(也可以使用//注释掉) listen-on port 53 { any; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
(也可以使用//注释掉) allow-query { any; };
................................................
}
第三步:写区域配置文件
vim /etc/named.rfc1912.zones
第四步:复制模板文件并重命名
cd /var/named
cp -a named.localhost clx.com.zone
第五步:编辑数据库文件,解析记录对应关系
vim clx.com.zone
$TTL 1D // SOA代表有效解析记录的生存周期
@ IN SOA master.clx.com. admin.clx.com. ( //@符号表示当前的DNS区域名
0 ; serial //更新序列号,可以是 10 位以内的整数
1D ; refresh //刷新时间,重新下载地址数据的间隔
1H ; retry //重试延时,下载失败后的重试间隔
1W ; expire //失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum //无效解析记录的生存周期
NS master
master A 192.168.136.133 //记录当前主机ip
www A 192.168.136.120 //正向解析域名
ftp A 192.168.136.110 //正向解析域名
第六步:重启服务测试结果
systemctl restart named
四、主从DNS域名服务器的配置
第一步:关闭防火墙 核心防护 安装bind
systemctl stop firewalld.service
setenforce 0
yum install bind bind-utils.x86_64 -y
第二步:修改第一台虚拟机(打算作主服务器的那台)的区域配置
vim /etc/named.rfc1912.zones
allow-transfer {192.168.136.11;}; //允许的主机IP
第三步:设置从服务器的配置
vim /etc/named.conf
第四步:添加从服务器的配置文件
vim /etc/named.rfc1912.zones
zone "clx.com" IN {
type slave; //从服务器类型设置
file "clx.com.zone"; //主机提供
masters { 192.168.136.133; }; //文件存放在/var/named/slaves下
};
第五步:保存后退出启动服务(有错误,看日志排错)
systemctl start named
第六步:测试
echo "nameserver 192.168.136.11" > /etc/resolv.conf
#将DNS指向自己
host www.clx.com
host ftp.clx.com
总结:
1. 了解域名的组成部分
2. 了解域名解析中递归查询和迭代解析的原理
3. 学习配置正向和反向域名解析
4. 成功配置主从域名解析服务器