目录
一.DNS服务简介
1.基本概念
DNS:是一个用于将域名转换为IP地址的系统,它在互联网中起着重要的作用。
在浏览器中一般是输入域名来访问网站,而不是输入网站的 IP 地址。DNS 就是负责将这些域名解析为相应的 IP 地址的系统。
服务器端:53/udp、53/tcp
2.域名分类
域名采用分层的管理模式,可以分为:一级域名(或称顶级域名)、二级域名、三级域名、四级域名等等。
-
根域:用 “.” 表示
-
一级域名:一般是国家或地区管理
-
二级域名:一般是国家下属部门管理
-
三级域名:一般是组织机构管理
-
最多可达到127级域名
3.DNS服务器类型
根域名服务器:根域名服务器是最高层次的域名服务器。
顶级域名服务器:这些域名服务器负责管理在该顶级域名服务器注册的所有二级域名。
权限域名服务器:这些域名服务器负责管理某个区的域名。
本地域名服务器:本地域名服务器不属于上述的域名服务器的等级结构。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。
二.DNS原理
1.查询方式
递归查询:
当客户机向DNS服务器发出请求后,若DNS服务器本身能解析,会将解析的肯定或否定的结果交给客户机。此查询为了结果只需要发起一次查询。
迭代查询:
当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,它会向下一个DNS服务器再次发起进行查询,直到返回查询的结果为止。此查询的目标不断变化,为查询结果需要发起多次查询。
2.查询原理过程
①先查本机的缓存记录
②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理。
以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
三.配置文件
1.配置文件位置
软件名:bind
服务名:named
①. 主配置文件
/etc/named.conf
②. 区域配置文件
/etc/named.rfc1912.zones 管理域名
③. 数据库配置文件
/var/named/域名
2.资源记录
SOA记录
注意:
-
当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
-
当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
-
主从服务区域传输相关定义以及否定的答案的统一的TTL
name [TTL] IN rr_type value
域名 缓存 Internet协议 资源类型 值
1. TTL可从全局继承缓存时间
2. 使用 "@" 符号可用于引用当前区域的域名
3. 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
4. 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
$TTL 1D(统一的ttl定义1天,不写D 是秒)
@ IN SOA master.kgc.com. admin.kgc.com. (
当前服务器的名称 邮箱地址
0 ; serial #是否有更新 版本号 更新文件 手动把 0 加1
1D ; refresh #刷新时间 拉取时间
1H ; retry #失败后一个小时 后再试一次
1W ; expire #过期时间,老是拉取不了,1周以后过期
3H ) ; minimum #老是去查错误的解析地址,3小时内的缓存下,用户再查直接返回找不到
NS记录
注意:
-
相邻的两个资源记录的name相同时,后续的可省略
-
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
-
一个区域可以有多个NS记录
master IN NS kgc.com.
master IN NS kgc.com.
NS master
MX记录
注意:
-
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高
-
对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
mail IN MX 10 mx1.kgc.org.
IN MX 20 mx2.kgc.org.
mx1 A 192.168.91.10
mx2 A 192.168.91.10
A记录
name: 某主机的域名解析,例如:www.kgc.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
www.kgc.com. IN A 1.1.1.1
www.kgc.com. IN A 2.2.2.2
www.kgc.com. IN A 3.3.3.3
www.kgc.com. IN A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@ IN A 6.6.6.6
#代表不需要名字
PTR记录
3.2.1.in-addr.arpa. IN PTR www.kgc.org.
#如1.2.3为网络地址,可简写成:
4 IN PTR www.kgc.com
CNAME别名记录
name: 别名的FQDN
value: 真正名字的FQDN
ftp.kgc.com. IN CNAME www.kgc.com
#固定格式
name [TTL] IN rr_type value
缓存时间 internet记录 区域解析库 值
$TTL 1D
@ IN SOA master.kgc.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master.kgc.com.
master A 192.168.91.100
www A 192.168.91.103
db A 192.168.91.101
IN MX 10 mail.kgc.com.
mail A 192.168.91.10
ftp CNAME www
$TTL 1D #有效解析记录的生存周期
@ in SOA benet.com. admin.benet.com. ( #“@"符号表示当前的DNS区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃#
3H) ; minimum #无效解析记录的生存周期,
NS benet.com. #记录当前区域的DNS服务器的名称
A 192.168.80.10 #记录主机IP地址
IN MX 10 mail.benet.com. #MX为邮件交换记录,数字越大优先级越低
www IN A 192.168.80.10 #记录正向解析www.benet.com对应的IP
mail IN A 192.168.80.11 #MX为邮件交换记录,数字越大优先级低
ftp IN CNAME www #CNAME使用别名,ftp 是www的别名
* IN A 192.168.80.100 #泛域名解析,“*"代表任意主机名
四.正向解析步骤
1.实验准备
关闭防火墙和安全机制,安装bind软件
yum install bind* -y
yum install bind bind-utils -y
2.配置ens33网卡DNS解析地址
vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network
3.修改主配置文件并重新加载DNS服务
vim /etc/named.conf
rndc reload
4.配置区域配置文件
vim /etc/named.rfc1912.zones
5.编辑数据库文件
cd /var/named/
cp named.localhost ./ky33.com.zone -p