DNS(Domain Name System)

域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。

1、因特网的域名结构

由于因特网的用户数量较多,所以因特网在命名时采用的是层次树状结构的命名方法。任何一个连接在因特网上的主机或路由器,都有一个唯一的层次结构的名字,即域名(domain name)。这里,“域”(domain)是名字空间中一个可被管理的划分。

域名只是逻辑概念,并不代表计算机所在的物理地点。分为三大类:

(1)国家顶级域名:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)。

(2)通用顶级域名:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。

(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。www.baidu.com.

IANA      the internet Assigned Numbers Authority 互联网数字分配机构

ICANN     the internet Corporation for Assigned names and Nunbers 互联网名称与数字地址分配机构

         现如今全球一共投放13个根服务器   

服务器主要用来管理互联网的主目录,全世界只有13台。1个为主根服务器,放置在美国。其余12个均为辅根服务器,其中9个放置在美国,欧洲2个,位于英国和瑞典,亚洲1个,位于日本。所有根服务器均由美国政府授权的互联网域名与号码分配机构ICANN统一管理,负责全球互联网域名根服务器、域名体系和IP地址等的管理。 这13台根服务器可以指挥Firefox或互联网 Explorer这样的Web浏览器和电子邮件程序控制互联网通信。换句话说——攻击整个因特网最有力、最直接,也是最致命的方法恐怕就是攻击根域名服务器了。

由于根服务器中有经美国政府批准的260个左右的互联网后缀(如.com、.net等)和一些国家的指定符(如法国的.fr、挪威的.no等),美国政府对其管理拥有很大发言权。

在与现有IPv4根服务器体系架构充分兼容基础上,由下一代互联网国家工程中心牵头发起的“雪人计划”于2016年在美国、日本、印度、俄罗斯、德国、法国等全球16个国家完成25台IPv6(互联网协议第六版)根服务器架设,事实上形成了13台原有根加25台IPv6根的新格局,为建立多边、民主、透明的国际互联网治理体系打下坚实基础。

发展:

Hosts文件   ---------------需要不停地添加域名

1.周期性任务  ---------------在指定时间自动的去写(自动化)

2.server       ---------------东西太多(性能)

3.分布式数据库 -------------全球各地分放

查找方式:

递归    ------计算机只发送一次请求

迭代    -----多次

实际解析分为两段,一段递归一段迭代

应答方式:

肯定答案

否定答案

权威答案

非权威答案

ISPDNS

I

c游览器www.haha.com.

缓存

hosts

SLAVE

HINT

114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS

8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用

FQDN<-->IP,双向解析,但是使用完全不同的方法

正向解析:FQDN---->Ip

Ip            域名       (一对多)

反向解析:IP----->FQDN

主DNS服务器:数据修改 (接受用户请求返回数据)  master

辅助dns服务器: 定期请求数据同步    slave

缓存dns服务器:   只缓存dns数据    hint

转发器:缓存服务器去掉缓存功能   forward

提供dns服务的套件叫bind但执行服务名称的是named   

yum install bind -y

rpm -ql bind  查看

bind:

/etc/named.conf

进程的工作属性

区域的定义

/etc/rndc.key:        remount named domain controller密钥文件

/etc/rndc.conf:        相关配置文件

区域数据文件,需要手动创建

/var/named/zidingyi.zone

配置检查脚本工具

/usr/sbin/named-checkconf

区域配置检查工具

/usr/sbin/named-checkzone

#全球十三个根服务器的相关信息;

/var/named/named.ca  区域文件dns数据库

如果没有该文件,可用以下命令重新创建

dig -t NS .        #查询根域

dig -t NS . @a.root-servers.net.        #指定根服务器进行查询

配置文件详解:

dns的主配置文件,作为dns的设定档,将我自己的设定档案列出来然后逐部分进行解释。

注意格式:"//"      "/*     */"   ";"结尾

该文件属主root,named用户组

###################################3

#全局选项

options {

#定义监听端口,如果所有地址都监听,则只写端口

        listen-on port 53 { 127.0.0.1; };                   

        listen-on-v6 port 53 { ::1; };

#定义数据文件目录

        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";分配统计目录

#只允许本地主机进行查询

        allow-query     { localhost; };

#允许递归

        recursion yes;

指定可以递归的范围

#allow-recursion { 192.168.0.0/16; };

logging { //指定日志记录分类和他们的目标位置

};

Zone{  定义区域,一个zone定义一个区域

type hint;
};

#包含其他配置文件

include "/etc/named.rfc1912.zones";

include "/etc/named.root.key";

区域类型:

主区域:主DNS,master

从区域:从DNS,slave

缓存区域:hint,在找不到相关信息的时候去从根查找,标识根的地址

转发区域:forward,转发到指定区域,而不是指向根

DNS在53端口上监听请求并提供响应的服务。出于性能的考虑,DNS查询请求用UDP协议交互并且每个请求的大小小于512字节,但是如果返回的请求大小大于512字节,交互双方会协商使用TCP协议

资源记录名称:(数据库中的每一个条目)baidu.com

SOA(起始授权记录) 记录提供有关dns区域工作方式的信息 -----具体负责哪个区域的解析

NS  将自己的域名映射到DNS  将域名最终映射到哪一台主机(由哪一台主机去解析当前所定义的域主机)-----定义dns主机ip

A  (ipv4地址记录) 资源记录将主机名映射到ipv4地址。

CNAME  (规范名称)记录域别名

MX 邮件交换记录

PTR指针记录 将IPV4 IPV6地址映射到主机名 (用于反向DNS)

AAAA  (IPV6 地址记录)  资源记录(四A记录)将主机名映射到ipv6地址。

五种定义的信息

serial number:   序列号 定义当前使用的数据序列号    sn遵循“年+月+日+编号” ·

refresh:  定义检查间隔时间  (上次和这次变化的时间)

retry:        重试时间  < 检查时间>        

expire:        过期时间  缓存放多久过期        

nagative enswer TTL:  否定答案的缓存时长  (如果解析在规定时间里没有解析到答案会否定解析不到)

 时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒

推荐查看博客: DNS服务简介和配置详解_成长中的强大的技术博客_51CTO博客_dns服务

案例一:正向解析

主配置文件 /etc/named.conf

资源记录包含的元素:

owner-name      TTL                       class           type                    date

主机名    资源记录生存时间      INTERNET           A                    记录存储数据(主机ip)

TTL(time to live)生存时间dns记录在dns服务器上的缓存时长。

@域名    IN INTERNET输入标准   起始授权记录   服务器所对应的主域名服务器  管理员邮件以.代替常见的类型的@

如何查看是否解析成功:

Dig -t

#查询NS记录

dig -t NS baidu.com

dig +trace -t A www.linux7.com

#使用nslookup,windows操作系统也可以使用

nslookup;交互式

Nslookup -type=A www.baidu.com

[root@localhost ~]# nslookup -type=A www.baidu.com

案例二: 反向解析

测试:

重启服务正常

区域传送

将一个区域文件复制到多个服务器上的过程叫做区域传送。将主服务器上的信息复制到辅助服务器上来实现。

两种区文件复制方式:

完全区域传送:axfr,all transfer,全部区域文件复制,复制整个区域文件        

增量区域传送:ixfr,incremental transfer,仅复制区域里变化的文件

#定义全局,在options选项内定义

allow-transfer { 192.168.75.130; };

IXFR:        增量区域传送

查询上次序列号改变后的信息

dig -t ixfr=1 baidu.com @192.168.75.129        

案例三:完全区域传送

在服务器端的主配置文件定义完全区域传送

在另一台虚拟机作为从服务器安装bind软件包:

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

#ll /var/named/slaves

[root@localhost slaves]# ll

-rw-r--r--. 1 named named 274 1月  16 22:30 named.192.168.221

-rw-r--r--. 1 named named 336 1月  16 22:30 named.linux7.com

重启服务会动态同步主服务其中的区域数据文件。

案例四:增量区域传送

1.修改主服务器的区域配置文件/var/named/named.baidu.com

$TTL 1D

@       IN SOA  @ admin.baidu.com. (

                                  2018012313;  修改这个序列号,每次增加1

                                        1M

                                        1M

                                        1M

                                        3M )

        IN      NS      ns.baidu.com.

        IN      NS      ns2.baidu.com.

        IN      MX      10      mail.baidu.com.

ns      IN      A       192.168.221.132

ns2     IN      A       192.168.221.133

mail    IN      A       192.168.221.132

maiaal  IN      A       192.168.221.132

注意每次增删一条资源记录

2.重载主服务器的服务

[root@localhost ~]# systemctl reload named

3.查看结果

通过tail -f /var/log/message来查看从服务器的日志,注意传送过程

[root@localhost ~]# tail -f /var/log/messages

Jan 23 16:29:50 localhost named[73533]: reloading configuration succeeded

Jan 23 16:29:50 localhost named[73533]: reloading zones succeeded

Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: refresh: failure trying master 192.168.18.132#53 (source 0.0.0.0#0): operation canceled

Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: loaded serial 2018012313

Jan 23 16:29:50 localhost named[73533]: zone baidu.com/IN: expired

Jan 23 16:29:50 localhost named[73533]: all zones loaded

Jan 23 16:29:50 localhost named[73533]: running

Jan 23 16:29:50 localhost systemd: Reloaded Berkeley Internet Name Domain (DNS).

Jan 23 16:30:01 localhost systemd: Started Session 48 of user root.

Jan 23 16:30:01 localhost systemd: Starting Session 48 of user root.

案例五:批量解析

批量解析(主服务器:vim /var/named/named.baidu.com)

$GENERATE        1-10  $.linux7.com.        IN        A        192.168.221.$

在从服务器上:  ping 1.baidu.com

反向格式

$GENERATE        1-10 $         IN        PTR        $.linux7.com.

根域名服务器,定义了每个域名服务器的地址信息

顶级域名服务器,管理在该顶级域名服务器注册的所有二级域名

权限域名服务器,负责一个区的域名服务器

返回的是最佳查询点或者主机

缓存

ip

172.16.30.233

255.255.255.0

172.16.30.254

114.114.114.114

hosts

缓存

www.baidu.com    

.        位置信息

.com

ISP

dns服务的完整主机名

$TTL 1D #指定资源记录的生存时间(秒)。解析器应缓存此记录的时间长度

@       IN      SOA     www.baidu.com. admin.baidu.com. (    

#DNS资源记录的名称解析的是哪一个域

#class  INTERNAT IN

#起始授权记录(记录dns区域工作方式的信息) -----具体负责哪个区域的解析,

#服务器所对应的主域名服务器

#管理员邮箱 以.代替常见的类型的@

                                        0   ;序列号   年月日01

                                        1D  ;检查时间间隔,刷新时间

                                        1H  ;重试时间

                                        1W  ;过期时间

                                        3H ) ;解析在规定时间里没有解析到答案,否定时间的缓存时长

 域          IN    NS   ns.linux7.com.       ;将域名最终映射到哪一台主机(由哪一台主机去解析当前主机所定义的域)

               IN      MX      10 mail.linux7.com.  

ns           IN      A       192.168.221.132      

mail       IN      A       192.168.221.132

www     IN      A       192.168.221.132

猜你喜欢

转载自blog.csdn.net/Albert__Einstein/article/details/121325526