一、DNS解析的基本原理

1、基础知识

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

2、专业术语

FQDN : Full Qualified Domain Name  完全合格域名

例如:www.baidu.com   www.mirrors.163.com

名称解析:主机名解析 把一种名称转换为另一种名称的过程

解析库:username <--> uid  存储域名与IP 对应的数据库

域名解析:根所用户所提供一种名称,去查询解析库,以得到另一种名称

递归:A--B--C--D

迭代:A--B  A--C   A---D

hosts --> local dns cache --> dns server (cache) --> 迭代

正向解析:FQDN --- 解析库 --- IP

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

域:domain, 区域:zone

反向区域:

区域名称为逆向网络地址加.in-addr.arpa做后缀

172.16.110.143

110.16.172.in-addr.arpa

说明:

正向解析和反向解析文件中的名称可以仅使用相对名称,它们均相对当前区域而言;

绝对后缀可以使用$ORIGIN来定义;

DNS服务器类型:

主DNS服务器 :主从结构中负责解析DNS域名的服务器

从DNS服务器 :主从结构中负责同步主DNS域名的服务器,主要作用是冗余备份

缓存服务器 :其实就是主DNS域名服务器查询非本地域名的缓存记录

解析库文件同步的过程:区域传送 (单方向传送)zone transfer

完全区域传送:axfr 主从同步全部数据都传递

增量区域传送: ixfr 主从同步跟新数据传递同步

周期性检查 :同步机制通知同步

3、根域名结构图

1、一般划分图

2、按类划分图

4、一次域名解析的过程,排除本地缓存DNS

以www.dingchao.com为例

1、客户端请求本地DNS解析,递归给本地请求,本地查询解析库没有,

2、发给根 “.”查询

3、根查询说没有,叫去 “.com”根哪里查询,返回给本地

4、本地又去“.com”根哪里查询,查到到“.dingchao.com”

5、“.com”根哪里查询到 “.dingchao.com”返回给本地

6、本地又去“.dingchao.com”找到“www.dingchao.com”

7、“.dingchao.com”找到“www.dingchao.com”返回给本地DNS

8、本地DNS 把最后查询结果返回给客户端

9、客户端直接迭代到到“www.dingchao.com”

二、配置文件修改的基础知识

资源记录类型:

name  [ttl]  IN  RRType    value

1、SOA

任何解析库文件的第一个记录的类型必须是SOA

SOA:Start Of Authority

name: 区域名称,通常可以简写为@

value: 主DNS服务器的FQDN,也可以当前区域的区域名称;

例如:@ IN   SOA   ns.magedu.com.   admin.magedu.com.  (

serial number   ;解析库的版本号,

例如2014080401

refresh time    ;周期性同步的时间间隔

retry time      ;重试的时间间隔

expire time     ;过期时长

negative answer ttl ;否定答案的统一缓存时长

)

2、NS 记录

NS:name server

name: 区域名称

value: DNS服务器的FQDN

例如:@  IN  NS  ns.magedu.com.

注意:

如果有多台NS服务器,每一个都必须有对应的NS记录;

对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

MX:Mail eXchanger

name: 区域名称

value: 邮件服务器的FQDN

例如:

@  IN  MX  10   mail.magedu.com.

@   IN  MX  20   mail2.magedu.com.

3、MX记录

注意:

如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性

对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

PTR: pointer

name: 逆向的主机IP地址加后缀in-addr.arpa,例如172.16.100.7/16, 网络地址为172.16, 主机地址为100.7,其name为7.100.in-addr.arpa.

value: FQDN

4、bind服务脚本

服务脚本:/etc/rc.d/init.d/named

主配置文件:/etc/named.conf, /etc/named.rfc1912.zones

区域解析库文件:/var/named/zone_name.zone

三、实验

一、主服务器的正反解析

1、IP 设置好

2、安装rpm包的bind yum install bind*

3、修改主配置文档 /etc/named.conf

4、主配置文档修改好了就相当于是一个缓存dns服务器啦,可以启动服务查看是否支持

5、正向主配置文件声明:修改主配置文件 /etc/named.rfc1912.zones

6、zone配置文件的新建修改 /var/named/dingchao.com.zone

$ORINIG 定义是个变量 相当于 dingchao.com. 另外一种配置方法

6、对新建配置文件的语法测试

7、修改权限并复制正向改名

8、反向配置文件的声明/etc/named.rfc1912.zones

9、反向配置文件的修改 /var/named/172.16.110.zone

测试反向配置语句

10、重启服务 service named restart  查看配置结果 或者是

/etc/init.d/named restart

11、正向结果图

12、反向结果图

14、一些测试结果的命令

1、host -t RRType NAME [SERVER]

例如:host -t NS mageedu.com 172.16.110.143

2、nslookup

nslookup>

server IP:

set type={A|SOA|NS|MX}

name

3、dig

dig -t TYPE name @server

类型可使用:AXFR

例如: dig -t AXFR mageedu.com  @172.16.110.143

二、主从配置DNS配置

1、配置示意图如(上面1-1所示),配置好IP地址安装好bind,此处不必细说

2、注意事项

1、提供区域解析库

主DNS服务器:定义

从DNS服务器:同步而来

不能手动创建和修改

Linux的特性:只有管理员才能使用小于1024的端口;

named由管理员启动,启动完成后切换为以named系统用户的身份运行;

DNS主从同步:

2、时间同步;

ntp: network time protocol

ntpdate NTP_SERVER

crontab:

*/3 * * * * /sbin/ntpdate  172.16.0.1  &> /dev/null

3、bind版本差异

二者相同

主低、从高

从服务DNS安装的bind要高于或等于主DNS服务的版本,为的事上下兼容

(一)master服务器配置

1、主配置文件同前面一样

2、声明文件配置

3、正向配置文件

4、反向配置文件

(二)从DNS 服务器配置

1、主配置文件同上一样注释掉

2、声明文件配置

3、查看同步过来的文件

四、总结

通过DNS的学习一定要了解它的工作原理,至于上面的实验的话一定要注意细节,正方向文件配置的“.” ;声明文件中文件名字和真正编辑文件名字的匹配,主从同步防火墙的关闭,文件声明名字同主的一样,还有权限,属主属组等。

一、DNS解析的基本原理,布布扣,bubuko.com

时间: 2024-10-02 08:45:06

一、DNS解析的基本原理的相关文章

Linux性能优化实战:案例篇-DNS 解析时快时慢,我该怎么办?(37)

一.上节回顾 上一节,我带你一起学习了网络性能的评估方法.简单回顾一下,Linux 网络基于 TCP/IP协议栈构建,而在协议栈的不同层,我们所关注的网络性能也不尽相同. 在应用层,我们关注的是应用程序的并发连接数.每秒请求数.处理延迟.错误数等,可以使用 wrk.Jmeter 等工具,模拟用户的负载,得到想要的测试结果. 而在传输层,我们关注的是 TCP.UDP 等传输层协议的工作状况,比如 TCP 连接数.TCP 重传.TCP 错误数等.此时,你可以使用 iperf.netperf 等,来测

基于BIND软件实现互联网DNS解析

一.什么是DNS服务 DNS全称(Domain Name System)域名系统,因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串:DNS通过软件来进行实现域名对IP的解析:这里是通过BIND开源软件实现:BIND是开放源码软件,它允许在Internet上发布域名系统(DNS)信息,并为用户解析DNS查询:该名称绑定代表是"Berkeley Internet Name Domain"BIND是迄今为止使用最广泛

C#实现DNS解析服务

利用ARSoft.Tools.Net实现一个客户端DNS解析服务,通过这个工具,可看到当前客户端对某个域名的解析地址是否正确. ARSoft.Tools.Net是一个非常强大的开源DNS控件库,包含.Net SPF validation, SenderID validation以及DNS Client.DNS Server接口. 使用该接口可轻松实现DNS客户请求端及服务器解析端.项目地址:http://arsofttoolsnet.codeplex.com/或参考:http://i.iscla

DNS解析

大家好,今天51开源给大家介绍一个在配置文件,那就是/etc/resolv.conf.很多网友对此文件的用处不太了解.其实并不复杂,它是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名,还包含了主机的域名搜索顺序.该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件.它的格式很简单,每行以一个关键字开头,后接一个或多个由空格隔开的参数.resolv.conf的关键字主要有四个,分别是:nameserver    //定义DNS服务器的IP地址do

DNS解析服务器

Windows2008 DNS解析服务器建立 DNS解析服务器在我们日常生活中的使用非常广泛,相信也有不少人对此存在一些疑惑或者想要了解DNS解析服务器,这里,我简单向大家介绍windows2008中DNS服务器的建立. 第一步,打开服务器管理器,选择添加角色,选中DNS服务器,下一步,选择默认安装程序,进行安装,如图. 第二步,安装完成之后,在管理工具中打开DNS服务器,并在正向查找区域中新建域(新建过程中基本选择默认即可,其中需要注意的是动态更新上面选择不允许动态更新). 域建立好了之后,在

serv-u建立ftp并用DNS解析

1.     安装serv-u. 2.      新建域 3.选择本机IP地址 4.新建用户ftpuser 5.设置ftpuser密码 6.用户建立成功后,用另一台电脑访问ftp://10.0.30.11 7.访问成功 8.建立匿名用户,ID为anonymous. 9.弹出密码窗口时,不要设置密码 10.设置访问权限为只读访问,达到只具有下载权限的效果 11.设置完成后,匿名访问成功 12.新建区域ganen01.cn 13.设置ftp属性 14.DNS域名ganen01.cn访问ftp成功 s

Linux 系统DNS解析

1. 高速缓存dns服务器 修改server的配置文件/etc/named.conf  10options {  11  listen-on port 53 { any; };  #监听所有端口的bind服务  12  listen-on-v6 port 53 { ::1; };  13  directory      "/var/named";  14  dump-file       "/var/named/data/cache_dump.db";  15  s

Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告,或者莫名的流量被消耗掉导致网速变慢.其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏. 如果碰上不稳定的本地DNS,还可能经常出现无法解析的情况.除了要避免"坏"的DNS的影响,我们还可以利用DNS做些"好"事,例如管理局域网的DNS.给手机App Store加速.纠正错误的DNS解析记录.保证上网更加安全.去掉网

DNS解析流程

第一步:浏览器将会检查缓存中有没有这个域名对应的解析过的IP地址,如果有该解析过程将会结束.浏览器缓存域名也是有限制的,包括缓存的时间.大小,可以通过TTL属性来设置. 第二步:如果用户的浏览器中缓存中没有,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析. 第三步:如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析. 第四步:如果hosts与本地DNS解析器缓存都没