简介

DNS(Domain Name System,域名解析系统)      
DNS 服务可以为用户提供域名和IP地址之间的自动转换,通过DNS服务,用户可只需要输入机器的域名即可访问相关的服务,而无需使用那些难以记忆 的IP地址。

DNS 域名结构

DNS域名又称为DNS命名空间,它是以层次树状结构进行管理的,其最顶层是根域。根域是整个DNS命名空间中是唯一的,而根域下可以分多个子域,每一个子域下又可以有多个子域。      
一个完整的域名由顶级(根)域以及各子域的名称组成,各部分之间用句号.来分隔,其中最后一个.为顶级域

FQDN: Full Qualified Domain Name      完整主机名  (主机名+域名)        
            例:www.51cto.com              www是主机名;51cto.com是域名

名称解析:主机名解析        
    把一种名称转换为另一种名称的过程        
    名称:字串、数字        
    解析库:某种存储        
        username <--> uid

某种存储:      
            文本文件      
            关系型数据库      
            LDAP:Lightweight Directory Access Protocol, 389/tcp      
    解析:根所用户所提供一种名称,去查询解析库,以得到另一种名称

DNS工作原理/解析过程

1)、如在浏览器中输入www.51cto.com域名,操作系统会先检查自己本地的hosts文件是否有这个域名映射关系,如果有,就直接访问与之匹配IP,完成域名解析。      
2)、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。      
3)、否则,首先会找resole.conf文件中设置的DNS服务器,此服务器收到解析请求时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析。      
4)、如果要查询的域名,不由本地DNS服务器区域解析,但该DNS服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。      
5)、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(没有设置转发器)进行查询,      
如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,      
并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责 .com域的这台服务器。      
这台负责 .com域的服务器收到请求后,如果自己无法解析,它就会找一个管理 .com域的下一级DNS服务器地址(51cto.com)给本地DNS服务器。      
当本地DNS服务器收到这个地址后,就会找51cto.com域服务器,重复上面的动作进行查询,直至找到www.51ctom.com主机。      
6)、如果用的是转发模式(设置转发器),此DNS服务器就会把请求转发至上一级ISP DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间就是迭代查询。

端口

53/udp, 53/tcp (在主从的时候用tcp,解析的时候用udp)

DNS服务器类型:        
    主DNS服务器        
    从DNS服务器        
    缓存服务器        
    转发服务器

区域解析库:        
资源记录:rr(resource record)        
有类型的概念:用于此记录解析的属性        
    SOA: Start Of Authority, 起始授权记录,一个区域文件只能有一个;        
    NS:Name Server        
    MX: Mail eXchange, 邮件交换器,MX记录有优先级属性(0-99);        
    A:FQDN --> IP,专用于正向解析库        
    PTR: IP --> FQDN,专用于反向解析库        
    AAAA:FQDN --> IPv6,专用于正向解析库        
    CNAME: Canonical Name,正式名称

资源记录类型:

name     [ttl]     IN     RRType    value

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

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

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     www.magedu.com.

bind配置文件

named.conf 是bind的主配置文件:      
named.conf 配置文件是由配置语句和注释组成。每条配置语句以分号;做为结束符,多条配置语句组成一个语句块;注释语句使用两个左斜杠//作为注释符。      
服务脚本:/etc/rc.d/init.d/named      
主配置文件:/etc/named.conf, /etc/named.rfc1912.zones      
区域解析库文件:/var/named/zone_name.zone

注意:      
    1、首先要注册域名,国内需要备案:      
          代理商: net.cn (万网),  godaddy.com(国外,淘宝有代理)      
    2、泛域名解析

安装配置过程:

关闭防火墙;关闭Selinux ;CentOS6.5_x86.64;DNS1:192.168.1.19;DNS2:192.168.1.18      
1、安装程序包

yum install bind.x86_64 -y                  # bind的主程序      
    yum bind-utils.x86_64 -y                    # 客户端的命令工具包      
    yum bind-libs.x86_64 -y                     # 给bind与相关指令使用的函数库

本文基于rpm包安装,配置文件会自动生成,如果编译安装的话,所有的配置文件都需要手动编写。

2、修改主配置文件named.conf:      
    定义区域

options { 
           directory "/var/named";      
    };

logging {    
        channel default_debug {    
                file "data/named.run";    
                severity dynamic;    
            };

3、为每一个区域提供解析库      
    变量的定义      
    资源记录

 1 tail -10 /etc/named.rfc1912.zones 2 zone "luo.com" IN { 3     type master; 4     file "luo.com.zone"; 5 }; 6  7 zone "1.168.192.in-addr.arpa" IN { 8     type master; 9     file "192.168.1.zone";
10 };
 1 # cat /var/named/luo.com.zone  2 $TTL 3600  3 @    IN SOA     ns.luo.com.   admin.luo.com. ( 4             2014080601    ; serial 5                 2H    ; refresh 6                 10M    ; retry 7                 6D    ; expire 8                 7H )    ; minimum 9     IN    NS    ns
10     IN    NS    ns2
11     IN    MX 10    mail
12 ns    IN    A    192.168.1.19 13 ns2    IN    A    192.168.1.18 14 mail    IN    A    192.168.1.20 15 www    IN    A    192.168.1.21 16 ftp    IN    A    192.168.1.22 17 web    IN    CNAME    www
 1 cat /var/named/192.168.1.zone 2 $TTL 3600  3 @    IN SOA     ns.luo.com.   admin.luo.com. ( 4             2014080601    ; serial 5                 2H    ; refresh 6                 10M    ; retry 7                 6D    ; expire 8                 7H )    ; minimum 9     IN    NS    ns.luo.com.
10     IN    NS    ns2.luo.com.
11 18    IN    PTR    ns2.luo.com.
12 19    IN    PTR    ns.luo.com.
13 20    IN    PTR    mail.luo.com.
14 21    IN    PTR    www.luo.com.
15 22    IN    PTR    web.luo.com.

修改文件属性及检查语法

# chown root:named luo.com.zone 192.168.1.zone 
    # chmod 640 luo.com.zone 192.168.1.zone            
    # named-checkconf     检查主配置文件
    # service named configtest    检查配置文件
    # rndc  reload 重新载入配置文件

测试服务

客户端测试工具使用:      
    1、host -t RRType NAME [SERVER]

例如:host -t NS mageedu.com 172.16.100.7

2、nslookup  交互式查询互联网名称服务器,在windows上面也可以使用
   # nslookup>
        server IP:
        set type={A|SOA|NS|MX}
        name

3、dig    DNS查询工具
        dig -t TYPE name @server
            类型可使用:AXFR
            例如: dig -t AXFR mageedu.com  @172.16.100.7

        dig -t 资源记录类型 名称 [@dns_server_ip]     正解

        dig -x IP    反向解析

        dig +trace   显示全部解析的追踪过程

        dig -t axfr yh.com  对yh.com域进行完全区域传送

        dig -t NS   yh.com  查询yh.com的NS记录

dig -t NS . @[a-m].root-servers.net.     查询根域名称服务器(13个根节点),a~m字母都可以。

   4、rndc:

Remote Name Domain Contoller,远程名称控制器

选项:

reload   重新载入配置文件和区域资源记录文件

reconfig 只重读配置文件

stats    显示区域状态信息

stop     停止工作

flush    清空DNS缓存

querylog 打开查询日志,在使用service named restart就会被关闭,包括调试级别。

trace    多次重复执行此命令,依次增加调试级别,

notrace  关闭调试

trace  LEVEL  直接跟上调试级别,0表示关闭,1,2,3表示最高

DNS主从同步:      
    1、时间同步;      
        ntp: network time protocol

ntpdate NTP_SERVER

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

2、bind版本差异
        二者相同
        主低、从高

定义一个从区域:
    zone "ZONE_NAME" IN {
        type slave;
        file "slaves/ZONE_NAME.zone";
        masters { 172.16.100.7; };
    };

添加一个从服务器:
    1、到域名注册商那里添加一个NS记录
        父域的区域解析库中
        mageedu.com.    IN     NS      ns.mageedu.com.
        mageedu.com.      IN  NS      ns2.mageedu.com.
        ns.mageedu.com.  IN     A

2、编辑本地解析库,配置每个DNS服务器

3、安装从服务器,只配置区域定义即可

区域传送的限制功能:
    主、从

bind: 有内置的ACL
        none: 所有都不
        any: 任意
        localhost: 本机

allow-transfer { ip; ip; ip; ... };

实例:

主DNS服务器的区域配置:

 1 cat /etc/named.rfc1912.zones 2  3 acl localnet { 4         192.168.1.0/24; 5         172.16.0.0/16; 6 }; 7 zone "luo.com" IN { 8         type master; 9         file "luo.com.zone";
10         allow-transfer { localnet; };
11 };12 13 zone "1.168.192.in-addr.arpa" IN {
14         type master;
15         file "192.168.1.zone";
16 };

从DNS服务器

# yum install bind

# service named start

修改 目录权限

从DNS服务器的区域配置:

 1 # tail  /etc/named.rfc1912.zones  2 zone "luo.com" IN { 3     type slave; 4         file "slaves/luo.com.zone"; 5     masters { 192.168.1.19; }; 6 }; 7  8 zone "1.168.192.in-addr.arpa" In { 9     type slave;
10     file "slave/192.168.1";
11     masters { 192.168.1.19; };
12 };

测试

 1 # dig -t axfr "luo.com" @192.168.1.19 2  3 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.6 <<>> -t axfr luo.com @192.168.1.19  4 ;; global options: +cmd 5 luo.com.        3600    IN    SOA    ns.luo.com. admin.luo.com. 2014080601 7200 600 518400 25200  6 luo.com.        3600    IN    NS    ns.luo.com. 7 luo.com.        3600    IN    NS    ns2.luo.com. 8 luo.com.        3600    IN    MX    10 mail.luo.com. 9 ftp.luo.com.        3600    IN    A    192.168.1.22 10 mail.luo.com.        3600    IN    A    192.168.1.20 11 ns.luo.com.        3600    IN    A    192.168.1.19 12 ns2.luo.com.        3600    IN    A    192.168.1.18 13 web.luo.com.        3600    IN    CNAME    www.luo.com.
14 www.luo.com.        3600    IN    A    192.168.1.21 15 luo.com.        3600    IN    SOA    ns.luo.com. admin.luo.com. 2014080601 7200 600 518400 25200 16 ;; Query time: 2 msec
17 ;; SERVER: 192.168.1.19#53(192.168.1.19) 18 ;; WHEN: Thu Aug  7 02:35:20 2014 19 ;; XFR size: 11 records (messages 1, bytes 265)

后续更新

转载于:https://blog.51cto.com/luoshixin/1538264

DNS 服务器学习总结相关推荐

  1. Linux学习之CentOS(三十四)--配置域主DNS服务器

    在上一篇随笔里 Linux学习之CentOS(三十三)--DNS基础及域名系统架构,讲解了DNS的一些基础知识以及域名系统架构,在本篇随笔里将详细地讲解主DNS服务器的配置... 一.DNS服务器的类 ...

  2. 乐鑫Esp32学习之旅13 esp32 内置 dns 服务器,无需外网访问域名返回指定网页。(附带Demo)

    本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 1. 爬坑学习新旅程,虚拟机搭建esp32开发环境,打印 " ...

  3. 信安学习笔记之网络安全:Day-8【ftp和web以及dns服务器的配置、域名访问、交换机技术的综合应用】

    交换机的综合配置: 要求:全网配通 扩展学习: 服务器配置界面: pc机配置界面: DNS服务器的ip配置界面(感觉有DNS就可以先配DNS服务器,方便域名访问): DNS服务器的服务配置界面: ft ...

  4. 《网管员必读》学习笔记之DNS服务器的安装与配置

    重点: DNS服务器的主要作用 DNS域名称空间及规划 DNS正.反向查询工作原理 DNS递归和迭代查询原理 DNS服务器的存根区域解析.区域传送原理 DNS与AD集成的好处 DNS服务器安装前的规划 ...

  5. Linux DNS (2)搭建DNS服务器

    注意:实验很简单,环境很重要.大家在做实验的时候一定要注意环境的配置,不然实验做的再好最后的结果也和我们想的要的结果不一样的. 首先我们先准备环境: 虚拟机一个 RedHat5.9系统两个操作系统 我 ...

  6. DNS服务器全面解析--转

    引用地址:http://pangge.blog.51cto.com/6013757/1273087 基础认知篇 DNS服务的概述 DNS是Domain Name System 的缩写,即域名系统.DN ...

  7. IPIP地址、ipv4ipv6、子网掩码、网段计算、网络广播ID计算、默认网关、DNS服务器、DHCP服务器

    文章是学习各方知识的总结,力求言简意赅. IP和IP地址: IP(Internet Protocol)网络之间互连的协议(网协). 网络之间互连的协议:为计算机网络相互连接进行通信而设计的协议.在因特 ...

  8. ping得通dns却无法上网_一款好用的DNS服务器SmartDNS

    公司使用dnsmasq作为内网DNS服务器,前一段时间收到同事各种吐槽,弄得我颜面扫地.具体有下面几种异常: 解析超时,上游配置腾讯公共DNS aneirin@host-1:~$ dig @119.2 ...

  9. IP地址,子网掩码、默认网关,DNS服务器是什么意思

    IP地址,子网掩码.默认网关,DNS服务器是什么意思 2010-10-30 17:00:34|  分类: 网络基础知识|举报|字号 订阅 下载LOFTER我的照片书  | (一)  问题解析 001. ...

最新文章

  1. linux命令查看cpu负载,Linux下使用w命令和uptime命令查看系统负载
  2. Linux 执行文件 path,linux可执行文件添加到PATH环境变量的方法
  3. HDF5数据处理(一)python
  4. 基于zookeeper实现系统配置中心
  5. Android复习05【网络编程---WebView获取文章信息、保存用户名与密码、设置菜单样式、收藏文章列表】
  6. throttle_classes 60秒访问10次限制
  7. hdu 1806线段树 区间合并
  8. 如何找出SAP Fiori launchpad URL start_up请求发起的具体位置
  9. '[linux下tomcat 配置
  10. (篇一)作为一个程序猿,这些C语言实例你必须会!
  11. c# winform中datagridview空间添加序号和表头“序号”
  12. 计算机数值方法知识点,数值分析 全部 知识点.docx
  13. Blackman 窗函数
  14. php与mysql毕业设计_基于PHP的毕业设计管理系统设计与实现毕业论文+项目源码及数据库文件...
  15. 两个表格内容怎么合并
  16. python读取pcd文件_(一)读取PCD文件
  17. bouncycastle android,Android和BouncyCastle的IllegalAccessError
  18. vc++加载透明png图片方法——GDI+和CImage两种
  19. UED团队规范设计参考及建议
  20. class ts 扩展方法_ts各种类型和用法

热门文章

  1. 魔域本服务器未开开放爵位系统,《魔域觉醒》爵位系统攻略
  2. 「不灭的火,召唤梦想」青年程序员的一颗少年心
  3. 软考中常见的计算机英语全称
  4. 初中数学题目(实数)
  5. html文本框的各种用法,HTML文本框5种应用方式实现方法
  6. STM32量产智能网络机柜监测系统开发方案
  7. 小米系统shell_PC端通过Xshell 6连接Android(小米8)上的Termux
  8. 设置数据库服务器电脑固定IP,指定IP,静态IP的方法教程,WIn7电脑如何设置固定IP的方法,设置电脑的指定IP
  9. VMware 配置虚拟机固定IP
  10. ■天籟,來自台灣的聲音。