DNS的随谈

DNS的简介

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

DNS的结构

通常 Internet 主机域名的一般结构为:主机名.三级域名.二级域名.顶级域名。 Internet 的顶级域名由 Internet网络协会域名注册查询负责网络地址分配的委员会进行登记和管理,它还为 Internet的每一台主机分配唯一的 IP 地址。全世界现有三个大的网络信息中心: 位于美国的 Inter-NIC,负责美国及其他地区; 位于荷兰的RIPE-NIC,负责欧洲地区;位于日本的APNIC ,负责亚太地区 。

DNS的区域库

在DNS中,有两个概念,对于一台DNS,它可以解析的域(domain),可以理解为一个逻辑的概念;而它用来解析的解析库文件(可以包含正向解析和反向解析),它是一个物理概念。

区域解析库文件的资源记录:rr(resource record)  
    有类型的概念:用于此记录解析的属性

    SOA: Start Of Authority, 起始授权记录,一个区域文件只能有一个(SOA是用来指定这个区域这由谁来管理的);    
    NS:Name Server 指定负责给定区域的名称服务器。    
    MX: Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99);    
    A:FQDN --> IP,专用于正向解析库    
    PTR: IP --> FQDN,专用于反向解析库    
    AAAA:FQDN --> IPv6,专用于正向解析库    
    CNAME: Canonical Name,正式名称

DNS查询 
    递归:客户端通过DNS服务器去解析来获取IP就是递归查询,DNS服务器必须给它答复    
    迭代: DNS服务器去公网上从根DNS服务器去依次查找解析的过程就是迭代

hosts --> local dns cache --> dns server (cache) --> 迭代  
    客户端上会有缓存:1、加速了解析速度;2、减轻了服务器的压力

权威应答:只要负责那个域名具体解析的服务器,就叫做权威服务器  
    非权威应答:利用缓存来作应答叫做非权威应答

DNS服务器类型
    主DNS服务器    
    1、负责本地客户端地址解析的请求,并且会缓存下来    
    2、负责某个域名的解析(它就是这个域名的权威DNS服务器)    
        
    从DNS服务器    
    可以跟主DNS服务器完成一样的功能,但是它区别就是,对于域名解析的配置和修改,是在主DNS服务器上配置的,从DNS服务器只是去同步主DNS服务器的库文件,也就是说这个同步过程只能是单向的,并且可能只同步正向,或者同步反向,也可能同步两者。    
       
    缓存服务器    
    缓存DNS服务器就是只负责本地客户端地址解析的请求,去公网上迭代解析的过程,并且会把查询返回的结果缓存在服务器上;它并不对域名进行解析。(它不需要去互联网上注册)

转发DNS服务器  
    只会转发地址解析的请求,可以去互联网查询,但是并不会把查询的结果缓存在本地。一般这种情况还有另一台DNS服务器,这台服务器本身并不能上外网,它会把请求交给转发DNS服务器,由转发DNS服务器来给它查询结果,然后再缓存在本地。

BIND的安装和配置

BIND(Berkeley Internet Name Daemon)是现今互联网上最常使用的DNS服务器软件,使用BIND作为服务器软件的DNS服务器约占所有DNS服务器的九成。BIND现在由互联网系统协会(Internet Systems Consortium)负责开发与维护。  
    20世纪80年代,柏克莱加州大学计算机系统研究小组的四个研究生Douglas B Terry、Mark Painter、David W. Riggle和周松年(Songnian Zhou)一同编写了BIND的第一个版本,并随4.3BSD发布。

1、安装程序包
    # yum install bind
    
2、修改主配置文件
(1)、/etc/named.conf
    options {
        directory "/var/named";
        recursion yes;    是否允许递归 
     };
    zone "ZONE_NAME" IN {                   
        ype {master|slave|hint|forward};     指定服务器类型
        file "mageedu.com.zone";    指定解析库文件
        };
    logging {
        日志
    }
3、为每一个区域提供解析库
name 	[ttl] 	IN 	RRType    value	

    name:这里有个特殊的符号@(在dns中有特殊含义,表示当前区域)
    IN:固定值,表示internet
    [ttl] : 缓存时间,可以省略

    任何解析库文件的第一个记录的类型必须是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 ;否定答案的统一缓存时长
					) 	

	区域文件中,FQDN中最后的.是不可以省略的
	[email protected] 跟的是区域管理员的邮箱地址,由于@有特殊含义,所以写成admin.mageedu.com.

	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.

            注意:
                如果有多台MX服务器,每一个都必须有对应的MX记录;但各MX记录还有优先级属性
                对于正向解析文件来讲,每一个NS的FQDN都应该有一个A记录;

            A: Address
                name: FQDN
                value: IP

            例如:
                www.magedu.com. 	IN   A  	1.1.1.1
                www.magedu.com.  	IN   A  	1.1.1.2

                pop3.magedu.com. 	IN   A  	1.1.1.3
                imap.magedu.com.    IN   A      1.1.1.3

		AAAA: ipv6 IP

	    CNAME: Canonical Name
                name: FQDN
                value: FQDN

            例如:
                www.magedu.com.  	IN  	A    1.1.1.5
                web.magedu.com.    	IN   	CNAME www.magedu.com.

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

            例如:
            7.100.in-addr.arpa. 	IN   	PTR 
            

    服务脚本:/etc/rc.d/init.d/named
    主配置文件:/etc/named.conf, /etc/named.rfc1912.zones
    区域解析库文件:/var/named/zone_name.zone(建立完这个文件一定要记得更改它的文件属组named和权限640)
        $TTL 3600	定义缓存时间,单位是s
        $ORIGIN mageedu.com. 不写完整格式,自动补全的内容
        name段如果不写,表示和上一条一样的name值

	/var/named/named.ca 放着13台根dns服务器的地址

正向解析示意图

客户端测试工具

1、host -t RRType NAME [SERVER]

例如:host -t NS mageedu.com 172.16.100.7

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.100.7

DNS的随谈

时间: 2024-10-20 15:49:56

DNS的随谈的相关文章

<转>浅谈DNS体系结构:DNS系列之一

浅谈DNS体系结构 DNS是目前互联网上最不可或缺的服务器之一,每天我们在互联网上冲浪都需要DNS的帮助.DNS服务器能够为我们解析域名,定位电子邮件服务器,找到域中的域控制器……面对这么一个重要的服务器角色,我们有必要对它进行一番深入研究,本文尝试探讨一下DNS的体系结构,从而让大家能更好地了解DNS的原理. DNS的主要工作是域名解析,也就是把计算机名翻译成IP地址,这样我们就可以直接用易于联想记忆的计算机名来进行网络通讯而不用去记忆那些枯燥晦涩的IP地址了.现在我们给出一个问题,在DNS出

浅谈DNS基本原理以及实现方法(二)

DNS作为互联网服务的一个基础型服务,了解和掌握DNS服务的原理和配置将是每一个运维人员必备的技能,这就如同闯荡江湖的侠客不但要有的招式,还要懂的运用这些招式的心法一样,接下来我将从DNS的正反向解析.主从同步.子域授权以及Bind view这四个方面来揭开它神秘的面纱. 正反向解析:   首先,任何一台服务器要想提供服务必须要有对应的服务应用程序,安装bind yum install -y bind bind--libs bind-utils 安装之后我们有必要认识一下bind安装之后的文件,

DNS简单谈析

DNS查询主机名IP流程:(例:www.wxl.com) 1)先查看本身本地有没有记录,若无则向 . (root)查询 2)向最顶层 . (root)查询,查询到向第二层.com去询问www.wxl.com 3)在.com上查询,要你去wxl.com去询问www.wxl.com 4)在wxl.com上查询到了www.wxl.com.这条A记录,得到www.wxl.com的IP 5)DNS服务器缓存在本地,这样下次访问时就不用向 . (root)中查询 DNS 共有13(a-h)台根服务器,共有5

浅谈DNS

什么叫域名解析 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站一种服务.IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址.域名解析就是域名到IP地址的转换过程.域名的解析工作由DNS服务器完成. 域名解析也叫域名指向.服务器设置.域名配置以及反向IP登记等等.说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定. DNS的查询过程 当DNS客户机需要

【转】浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)

1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. 阅读本文需要读者已有一定的计算机知识,了解TCP.DNS等. 2.分析 众所周知,打开一个网页的过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所以我们暂且把这个网页加载过程分成两部分: html(jsp/php/aspx) 页面加载(假设存在简单的Nginx负载均

DNS浅谈

名词解释 DNS:Domain Name Service:域名解析服务 FQDN:Full Qualified Domain Name:完全合格域名 IANA:Internet Assigned Numbers Authority:互联网数字分配机构 相关知识点 应用程序:bind 监听端口:tcp/53,udp/53 C/S架构 树状结构 根域:. 根节点:13个 一级域: 组织域:.com, .org, .net, .mil, .edu, .gov, .info, .cc, .me, .tv

浅谈一个网页打开的全过程(涉及DNS、CDN、Nginx负载均衡等)

1.概要 从用户在浏览器输入域名开始,到web页面加载完毕,这是一个说复杂不复杂,说简单不简单的过程,下文暂且把这个过程称作网页加载过程.下面我将依靠自己的经验,总结一下整个过程.如有错漏,欢迎指正. 阅读本文需要读者已有一定的计算机知识,了解TCP.DNS等. 2.分析 众所周知,打开一个网页的过程中,浏览器会因页面上的css/js/image等静态资源会多次发起连接请求,所以我们暂且把这个网页加载过程分成两部分: html(jsp/php/aspx) 页面加载(假设存在简单的Nginx负载均

浅谈浏览器解析 URL+DNS 域名解析+TCP 三次握手与四次挥手+浏览器渲染页面

(1)浏览器解析 URL 为了能让我们的知识层面看起来更有深度,我们应该考虑下面两个问题了: 从浏览器输入 URL 到渲染成功的过程中,究竟发生了什么? 浏览器渲染过程中,发生了什么,是不是也有重绘与回流? OK,兴致来了,我们就先从 浏览器解析 URL 看起,先来看看当用户输入 URL,到浏览器呈现给用户页面,经历了以下过程: 版本 A: 用户输入 URL 地址. 对 URL 地址进行 DNS 域名解析. 建立 TCP 连接(三次握手). 浏览器发起 HTTP 请求报文. 服务器返回 HTTP

DNS相关配置文件

我们晓得主机名对应到 IP 有两种方法,早期的方法是直接写在档案里面来对应, 后来比较新的方法则是透过 DNS 架构!那么这两种方法分别使用什么配置文件?可不可以同时存在? 若同时存在时,那个方法优先?嗯!我们先来谈一谈几个配置文件吧! * /etc/hosts :这个是最早的 hostname 对应 IP 的档案;* /etc/resolv.conf :这个重要!就是 ISP 的 DNS 服务器 IP 记录处;* /etc/nsswitch.conf:这个档案则是在决定先要使用 /etc/ho