目录
一、DNS简介
1.1DNS名词介绍
域名管理系统DNS(Domain Name System)是域名解析服务器的意思,应用层协议,是互联网的一项服务。它在互联网的作用是:把域名转换成网络可以识别的ip地址,在通过IP地址访问主机。 种由文字组成的名称,显而易见要更容易记忆。
实际上,每一台 DNS 服务器都只负责管理一个有限范围(一个或几个域)内的主机域 名和 IP 地址的对应关系,这些特定的 DNS 域或 IP 地址段称为 zone(区域)。根据地址解析的方向不同,DNS 区域相应地分为正向区域(包含域名到 IP 地址的解析记录)和反向区 域(包含 IP 地址到域名的解析记录)。
1.2DNS系统的作用
-
正向解析:根据域名查找对应的IP地址
-
反向解析:根据IP地址查找对应的域名
-
DNS系统的分布式数据结构:
二、DNS查询类型及原理
2.1查询方式
-
递归查询:一般客户机和本地DNS服务器之间属于递归查询,即当客户机向DNS服务器发出请求后,若DNS服务器本身不能解析,则会向另外的DNS服务器发出查询请求,得到最终的肯定或否定的结果后转交给客户机。此查询的源和目标保持不变,为了查询结果只需要发起一次查询。(不需要自己动手)
-
迭代查询:一般情况下(有例外)本地的DNS服务器向其它DNS服务器的查询属于迭代查询,如:若对方不能返回权威的结果,则它会向下一个DNS服务器(参考前一个DNS服务器返回的结果)再次发起进行查询,直到返回查询的结果为止。此查询的源不变,但查询的目标不断变化,为查询结果一般需要发起多次查询。(需要自己动手)
一级DNS服务器:专门负责一级域名的解析(一般代表一种类型的组织机构或国家地区):
二级DNS服务器:专门负责二级域名的解析
子域名DNS服务器:专门负责子域名的解析也称为三级域名
主机站点
2.2DNS系统类型
缓存域名服务器:
只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,
但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置根域或指定
其他 DNS 服务器作为解析来源。
主域名服务器:
管理和维护所负责解析的域内解析库的服务器
从域名服务器
从主服务器或从服务器"复制"(区域传输)解析库副本
2.3DNS正向解析查询原理过程
①先查本机的缓存记录②查询hosts文件
③查询dns域名服务器,交给dns域名服务器处理以上过程成为递归查询:我要一个答案你直接会给我结果
④这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
⑤求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
⑥求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
⑦求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
⑧本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
三、正向解析资源记录及配置实例
3.1资源记录
3.1.1SOA记录
name: 当前区域的名字,例如"wlw.com."
value: 有多部分组成
注意:
当前区域的主DNS服务器的正向解析,也可以使用当前区域的名字
当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换
例如:admin.wlw.com
主从服务区域传输相关定义以及否定的答案的统一的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
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
3.1.2 NS记录
name: 当前区域的名字
value: 当前区域的某DNS服务器的名字,例如: ns.kgc.org.
注意:
相邻的两个资源记录的name相同时,后续的可省略
对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
一个区域可以有多个NS记录
范例:
master IN NS wlw.com.
master IN NS wlw.com.
3.1.3 MX记录
name: 当前区域的名字
value: 当前区域的某邮件服务器(smtp服务器)的主机名
注意:
一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的
优先级;数字越小优先级越高
对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录
范例:
mail IN MX 10 mx1.wlw.org.
IN MX 20 mx2.wlw.org.
mx1 A 192.168.59.10
mx2 A 192.168.59.10</span>
3.1.4 A记录
name: 某主机的域名解析,例如:www.wlw.com
value:主机名对应主机的IP地址
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至某特定地址
范例:
www.wlw.com. IN A 1.1.1.1
www.wlw.com. IN A 2.2.2.2
www.wlw.com. IN A 3.3.3.3
www.wlw.com. IN A 4.4.4.4
* IN A 5.5.5.5
#代表泛域名
@ IN A 6.6.6.6
#代表不需要名字
3.1.5 PTR记录
name: IP,有特定格式,把IP地址反过来写,192.168.59.100,要写作100.59.168.192;而有特定后缀:in-addr.arpa.,所以完整写法为:100.59.168.192.in-addr.arpa. value: FQDN
3.1.6CNAME别名记录
name: 别名的FQDN value: 真正名字的FQDN
ftp.wlw.com. IN CNAME www.wlw.com
3.2正向解析服务器配置方法
[root@localhost ~]#yum install bind bind-utils -y
#主软件 和 配置包管理软件
[root@localhost ~]#systemctl stop firewalld.service
[root@localhost ~]#setenforce 0
[root@localhost ~]#systemctl start named
#开启服务
[root@localhost ~]#netstat -ntap |grep named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 17047/named
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 17047/named
tcp6 0 0 ::1:53 :::* LISTEN 17047/named
tcp6 0 0 ::1:953 :::* LISTEN 17047/named
[root@localhost ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=127.0.0.1
[root@localhost ~]#systemctl restart network
[root@localhost ~]#ping www.baidu.com
[root@localhost ~]#rpm -qc bind
#配置文件包
/etc/logrotate.d/named
/etc/named.conf
/etc/named.iscdlv.key
/etc/named.rfc1912.zones
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost
/var/named/named.loopback[root@localhost ~]#vim /etc/named.conf
#可以修改配置,注释,或者删除这两行
listen-on port 53 { any; };
allow-query { any; };# // listen-on port 53 { 127.0.0.1; };
# // allow-query { localhost; };[root@localhost ~]#rndc reload
#重新加载DNS服务
server reload successful[root@localhost named]#vim /etc/named.rfc1912.zones
#编写域名
zone "kgc.com" {
type master;
file "kgc.com.zone";
};[root@localhost named]#cd /var/named/
#切换目录
[root@localhost named]#ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]#cp named.localhost ./kgc.com.zone -p
#保留权限复制
[root@localhost named]#ls
data dynamic kgc.com.zone named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]#vim kgc.com.zone
#编辑数据库文件,解析记录对应关系
$TTL 1D
@ IN SOA master.kgc.com. admin.kgc.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS master
master A 192.168.91.100
www A 192.168.91.101
db A 192.168.91.103
IN MX 10 mail.kgc.com.
mail A 192.168.91.10
@ A 192.168.91.100
[root@kgc ~]# cd /var/www/html/
[root@kgc html]# ls
[root@kgc html]# vim index.html
www.kgc.com
#检查启动文件格式
named-checkconf
named-checkzone kgc.com /var/named/kgc.com.zone