DNS

DNS是什么web

DNS:Domain Name System,域名系统数据库

DNS做为域名和IP地址相互映射的一个分布式数据库,可以让用户更方便的访问互联网。它的正向映射是把一个主机和IP地址关联起来,它的反向映射则是IP地址到主机名。DNS使用TCP和UDP的53号端口。当前,对于每一级域名长度的限制是63个字符,域名总长度不能超过253个字符。缓存

为何要用DNS
bash

链接到互联网的主机不可胜数。当我要访问www.magedu.com这个网站。因为底层网络只能理解IP地址,而个人电脑不知道www.magedu.com这台主机的IP地址。DNS服务器收到查询请求以后,把查询到的结果(IP:101.200.188.230)再返还给个人电脑。而后个人电脑再经过IP地址进行访问。  服务器

wKioL1ddI8iROCm-AADp5FlwnmU856.png

如图所示:网络

    一、本机向DNS服务器发送查询请求。dom

    二、DNS服务器将查询的结果返还给本机。
tcp

    三、本机经过IP地址访问www.magedu.com。分布式

域名:ide

    DNS名称空间被组织成一个“树”形结构。每一个完成的域名(例如,www.magedu.com)是这颗树的分支上的一个节点。完整限定域名(FQDN,Fully Qualified Domain Name)是到一个DNS对象的完整路径,包括最后一个点。

wKioL1ddJB3QeZ4SAAEIGxahSug847.png


以上述的域名为例说明,magedu网址是由两部分组成,标号magedu是这个域名的主体,而最后的标号com则是该域名的后缀,表明的这是一个com国际域名,是顶级域名。而前面的www是网络名,为www的域名。DNS规定,域名中的标号由英文字母和数字组成,每一个组成部分(标号)不能超过63个字符,整个FQDN(完整域名)全长不超过256个字符。FQDN不区分大小写,可是他们一般都采用小写。RFC2181对域名放开了限制。


域名级别

域名分为:

国际顶级域名:.com, .net, .org, .edu等

国家地区顶级域名:.cn, .de, .jp, .hk, .uk, .us等

除了顶级域名外,还有二级域名,就是靠近顶级域名左侧的字段。如:www.magedu.com中,.magedu就是二级域名。接下来还有三级域名,即靠近二级域名的左侧的字段,以此类推还有四级域名等。


DNS查询类型:

递归查询:客户端向根服务器发送请求,根服务器并不返回真实的答案,而是推荐它下级的服务器,以此类推,直到查询IP地址返回给客户机。

迭代查询:客户机向DNS服务器发送请求,DNS服务器直接回复答案给客户机。


域名解析

正向解析:FQDN到IP地址的解析。

反向解析:IP地址到FQDN的解析。


域名服务器的分类

服务器的类型 说明
主服务器 维护所负责解析的域内解析库的服务器
从服务器 从主DNS服务器或其它从DNS服务器“复制”(区域传送)一份解析库
缓存服务器

缓存之前的查询,一般没有本地的区

转发服务器 负责非本地域名的本地查询


一次完整的查询过程

以上述域名www.magedu.com为例。客户机向最近的远端DNS服务器发送查询请求,DNS服务器首先查看缓存中是否有www.magedu.com这条记录。若是没有就向根服务器发送查询请求,根服务器会告诉你要去请求.com顶级服务器。以后DNS服务器再向顶级域名服务器发送查询请求,获得的回复是向.magedu这个二级域名服务器发送查询请求。最终,DNS服务器向二级域名发送请求并获得正确答案返回给客户机。同时将这次查询的结果写入缓存之中,以便下次的查询。

wKioL1ddLoSic0jUAACaGXDjeEQ223.png

资源记录

DNS层次结构中的每个区(zone),都有与之相关的一组资源记录。资源记录的基本格式是:

name [TTL] IN rr_type value


记录的类型

类型 名称 功能
SOA Start Of Authority

定义一个DNS区

NS Name Server 标识服务器,受权子域
A IPv4 Address 名称到地址的转换
AAAA IPv6 Address 名称到IPv6地址的转换
PTR Pointer 地址到名字的转换
MX Mail Exchanger 控制邮件的路由
CNAME Canonical Name 主机的呢称或别名

记录的类型解释

SOA

一个SOA记录标记出一个区,即位于DNS域名空间中相同位置的一组资源记录的开始位置。一个DNS域的数据一般至少包括两个区:一个区用来把主机名转换成IP地址,称为正向区,其余一些区把IP地址反向映射到主机名,称为反向区。

1
2
3
4
5
6
7
8
例如:
magedu.com.    86400    IN  SOA    ns.magedu.com.  admin.magedu.com.    (
                2018041401    ; 序列号
                2H    ;刷新时间
                10M    ;重试时间
                1W    ;过时时间
                1D    ;否认答案的TTL值
)

NS

NS(域名服务器)记录标识一个区的权威服务器(主服务器和从服务器),并把子域受权给其余机构。NS记录一般直接放在这个区的SOA记录后面。

注意:一个区域能够有多条NS记录
1
2
3
4
5
6
7
例如:
magedu.com.  IN  NS  ns1.magedu.com.
magedu.com.  IN  NS  ns2.magedu.com.
  
注意:
相邻的两个资源记录的name相同时,后续的能够省略。
对NS记录而言,任何一个NS记录后面的服务器名字,都应该在后续有一个A记录。

MX

电子邮件系统使用MX记录来更有效地路由邮件。MX记录优先于邮件发送方所指定的目的地址,在大多数状况下,它将邮件指向接收方网点的邮件主机。

1
2
3
4
5
6
7

一个区域内,MX记录可有多个,可是每一个记录的value以前应该有一个数字(0-99)。表示此服务器的优先级,

数字越小优先级越高。

例如:
magedu.com.  IN  MX 10  mx1.magedu.com.
              IN  MX 20  mx2.magedu.com.
  
注意:
     对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录。

A

A记录是DNS数据库的核心。它们提供了主机名到IP地址的映射,而这之前是在/etc/hosts文件中指定的。一个主机一般给它的每一个网络端口都有一条A记录。

1
2
例如:
ns1  IN  A  101.200.188.230

AAAA

AAAA记录提供主机名到IPv6地址的映射。

PTR

PTR记录提供IP地址到主机名的反向映射。反向映射记录存在于in-addr.arpa这个域,而且以IP地址各字节逆序的形式命名。

1
2
例如:
101  IN  PTR  www.magedu.com.

CNAME

CNAME记录为以前多分配几个名字。一般,这些别名要么用来将某项功能与主机关联起来,要么用来缩短一个长主机名。

1
2
例如:
web.magedu.com.  IN  CNAME  www.magedu.com.


BIND

BIND指Berkeley Internet Name Domain(伯克利因特网域名)系统,它是ISC提供的一种开源软件包,为Linux、Unix、Mac OS和Windows系统实现了DNS协议。


BIND安装

1
# yum -y install bind bind-utils


BIND简介

    dns:协议

    bind:dns协议的一种实现

    named:bind程序运行的进程名

    bind-libs:被bind和bind-utils包中的程序共同用到的库文件

    bind-utils:bind客户端程序集,例如:dig,host,nslookup等

    bind:提供的dns server程序,已经几个经常使用的测试程序

    bind-chroot:选装,让named运行于jail模式下

主配置文件:/etc/named.conf

  或包含进来的其它文件

    /etc/named.iscdly.key

    /etc/named.rfc1912.zones

    /etc/named.root.key

  区域配置文件通常在/etc/named.rfc1912.zones,全局配置在/etc/named.conf中

    一、主配置文件格式:

    全局配置段:

      options { ... }; #注意内容先后有空格,分号结尾

    日志配置段:

      logging { ... };

    区域配置段:

      zone { ... };

      配置那些由本机负责解析的区域,或转发的区域

    注意:每一个语句必须以分号结尾

    二、缓存名称服务器的配置:(注意此处的配置应该在使用前操做)

    监听能与外部主机通讯的地址:

      listen-on port 53 { 192.168.168.158; };

    通常状况,建议关闭dnssec(基本上用不到,并且很麻烦,反正我是不知道。。)

       dnssec-enable no;

      dnssec-validation no;

      dnssec-lookaside no;   #或者在前面加俩个//;

    修改仅容许本地查询:

      allow-query { any; };  #或者注释掉

解析库文件

    /var/nanmed/目录下:

                通常名字为:ZONE_NAME.zone

                        例如:bjwf.com.zone

                                    192.168.168.zone

                注意:

                        一、一台DNS服务器可同时为多个区域提供解析

                        二、必需要有跟区域解析库文件:named.ca

                        三、还应该有两个区域解析库文件:localhost和127.0.0.1的正反向解析库

                                正向:named.localhost            

                                反向:named.loopback

检查配置文件语法错误

    named-checkconf [/etc/named.conf]

    named-checkzone ZONE_NAME ZONE_FILE

1
2
3
4
# named-checkconf
# named-checkzone bjwf.com /var/named/bjwf.com.zone 
zone bjwf.com /IN : loaded serial 2018041202
OK
测试及管理工具

 dig命令:

        语法:dig [ -t RR_TYPE] name [@SERVER] [query options]

        做用:用于测试DNS系统,所以其不会查询hosts文件

            查询选项:

                    +[no]trace:跟踪解析过程

                    +[no]recurse:进行递归解析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#正向解析
# dig -t A ns1.bjwf.com @192.168.168.158
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t A ns1.bjwf.com @192.168.168.158
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,  id : 5996
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns1.bjwf.com.          IN  A
 
;; ANSWER SECTION:
ns1.bjwf.com.       86400   IN  A   192.168.168.158
 
;; AUTHORITY SECTION:
bjwf.com.       86400   IN  NS  ns2.bjwf.com.
bjwf.com.       86400   IN  NS  ns1.bjwf.com.
 
;; ADDITIONAL SECTION:
ns2.bjwf.com.       86400   IN  A   192.168.168.158
 
;; Query  time : 1 msec
;; SERVER: 192.168.168.158 #53(192.168.168.158)
;; WHEN: 一 4月 13 16:55:05 CST 2018
;; MSG SIZE  rcvd: 105
 
#反向解析
# dig -x 202.106.0.20
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -x 202.106.0.20
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR,  id : 41309
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;20.0.106.202. in -addr.arpa. IN  PTR
 
;; ANSWER SECTION:
20.0.106.202.IN-ADDR.ARPA. 38400 IN   PTR c1-xingfudajie-ns2.
 
;; Query  time : 6 msec
;; SERVER: 202.106.0.20 #53(202.106.0.20)
;; WHEN: 一 4月 13 17:31:52 CST 2018
;; MSG SIZE  rcvd: 111
 
#模拟彻底区域传送
# dig -t axfr DOMAIN [@server]
# dig -t axfr bjwf.com. @192.168.168.158
 
; <<>> DiG 9.9.4-RedHat-9.9.4-29.el7_2.3 <<>> -t axfr bjwf.com. @192.168.168.158
;; global options: +cmd
bjwf.com.       86400   IN  SOA ns1.bjwf.com. admin.bjwf.com. 2018041202 3600 300 604800 86400
bjwf.com.       86400   IN  NS  ns1.bjwf.com.
bjwf.com.       86400   IN  NS  ns2.bjwf.com.
ns1.bjwf.com.       86400   IN  A  192.168.168.158
ns2.bjwf.com.       86400   IN  A   192.168.168.158
www.bjwf.com.       86400   IN  A   192.168.168.158
bjwf.com.       86400   IN  SOA ns1.bjwf.com. admin.bjwf.com. 2018041202 3600 300 604800 86400
;; Query  time : 1 msec
;; SERVER: 192.168.168.158 #53(192.168.168.158)
;; WHEN: 一 4月 13 17:33:44 CST 2018
;; XFR size: 7 records (messages 1, bytes 192)

 host命令:

        host [ -t RR_TYPE] name SERVER_IP

1
2
3
4
# host 192.168.168.158
158.168.168.192. in -addr.arpa domain name pointer bogon.
# host -t A www.bjwf.com
www.bjwf.com has address 192.168.168.158

nslookup命令:

        nslookup [ -options] [name] [server]

1
2
3
4
5
6
# nslookup www.bjwf.com
Server:     127.0.0.1
Address:    127.0.0.1 #53
 
Name:   www.bjwf.com
Address: 192.168.168.158

rndc命令:named服务控制命令 

1
2
3
4
5
6
7
8
9
10
11
12
13
14

[root@localhost ~]# rndc status

version: 9.9.4-RedHat-9.9.4-50.el7 <id:8f9657aa>

CPUs found: 3

worker threads: 3

UDP listeners per interface: 3

number of zones: 101

debug level: 0

xfers running: 0

xfers deferred: 0

soa queries in progress: 0

query logging is OFF

recursive clients: 0/0/1000

tcp clients: 0/100

server is up and running

写的比较乱,参考了其余文档,你们能够看看作个参考,后面还会继续更新的。

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息