DNS服务基础

DNS服务:是一种工作在应用层的特定应用,也是.c/s架构模式的,DNS的是一种应用层协议,他的端口是UPD协议的53号端口,()根据应用场景不同也会用到tcp协议)这就意味着DNS是默认通过UDP协议进行通信的

我们访问任何一个网站都是通过主机名的方式进行访问的;例如www.baidu.com,这是个主机名.称之为FQDN(完全限定域名)

常见的顶级域中的组织域有:.com,.net,.org,.gov,.edu,.mil

常见的顶级域中的国家域有:.iq,.tw,.jp,.cn…

DNS查询类型:
递归查询:
迭代查询:
DNS名称解析方式:
名称 --> IP:正向解析
IP --> 名称:单向解析
注意:二者的名称空间,非为同一个空间;即非为同一颗树,因此,也不是同一个解析库
DNS服务器类型:
负责解析至少一个域:
    主名称服务器
    辅助名称服务器
不负责域解析:
    缓存名称服务器
一次完整的查询请求经过的流程:
client --> hosts文件 --> DNS Loscal Cache --> DNS Server(recursion,递归) -->
自己负责解析的域:直接查询数据库并返回答案;
不是自己负责域:server cache --> iteration(迭代)

解析答案:
    肯定答案:
    否定答案:不存在查询的键,因此,不存在与其查询对应的值

    权威答案:由直接负责的DNS服务器返回的答案
    非权威答案:

主-辅DNS服务器

主DSN服务器:维护所负责解析的域的数据库的那台服务器,读写操作均可进行
从DNS服务器:从主DNS服务器那里或其他的从服务器那里"复制"一份解析库,但只能进行读操作
    "复制"操作的实施方式
        序列号:也即是数据库的版本号,主服务器数据库内容发生变化时,其版本号递增
        刷新时间间隔:从服务器每多久到主服务器检查序列号更新状况
        重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔
        过期时长:从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据,停止提供服务
        否定答案的缓存时长:

        注意:主服务器数据发送更新以后,主服务器会"通知"从服务器随时更新数据,忽略刷新时间间隔机制进行
    同步方式:
        区域传送:
            全量传送:传送整个数据库;
            增量传送:仅传送变化的数据
区域和域的区别:
    以magedu.com域为例
        FQDN --> IP 
            正向解析库:正向解析区域
        IP --> FQDN
            反向解析库:反向解析区域
区域数据库文件:
资源记录:简称rr
    记录有类型:A,AAA,PTR,SOA,NS,CHAME,MX
    SOA:起始授权记录,一个区域解析库有且只能有一个SOA记录;而且只能放在第一条
    NS:域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主
    A:地址记录,从FQDN解析为IPV4地址记录
    AAAA:地址记录,从FQDN解析为IPV6地址记录
    CNAME:别名记录
    PTR:把IP地址解析成FQDN,所以PTR记录是用来反向解析的记录
    MX:邮件交换器
        优先级:0-99,数字越小优先级越高
资源记录的定义格式:
    语法: name    [ttl]   IN  RR_TYPE value
多种不同的资源记录他们的名称和值的特点要求,如下;
SOA:
    name:当前区域的名字;例如"magedu.com",或者"2.3.4.in-addr.arpa"
    value:有多部分组成
        1)当前区域的区域名称(也可以使用主DNS服务器名称)
        2)当前区域的管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代
        3)(朱从的服务协调属性的定义以及否定答案的TTL)

            例如:
                magedu.com. 86400   IN  SOA magedu.com. admin.magedu.com. (
                    2017010801 ;serial
                    2H         ;refresh
                    10m        ;retry
                    1w         ;expire
                    1D         ;negative answer ttl
                )
NS:
    name:当前区域的区域名称
    value:当前区域的某DNS服务器的名字,例如ns.magedu.com
        注意:一个区域可以用多个ns记录
    例如:
        magedu.com. 86400   IN  NS  ns1.magedu.com.
        magedu.com. 86400   IN  NS  ns2.magedu.com.

MX:
    name:当前区域的区域名称
    value:当前区域某邮件交换器的主机名
        注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级
    例如:
        magedu.com. 86400   IN  MX  10  mx1.magedu.com.
        magedu.com. 86400   IN  MX  20  mx2.magedu.com.
A:
    name:某FQDN,例如www.magedu.com.
    value:某IPV4地址
    例如:
        www.magedu.com. IN  A   1.1.1.1
        www.magedu.com. IN  A   1.1.1.2
        bbs.magedu.com. IN  A   1.1.1.1
AAAA:
    name:FQDN
    value:IPV6
PTR:
    name:IP地址,有特点格式:IP反过来写,而且加特别后缀;
    例如:1.2.3.4的记录应该写为4.3.2.1.in-addr.arpa.
    value:FQDN
    例如:
        4.3.2.1.in-addr.arpa.   IN  PTR www.magedu.com
CNAME:
    name:FQDN格式的别名
    value:FQDN格式的正式名字
    例如:
        web.magedu.com. IN  CNAME   www.magedu.com

注意:
    1)TTL值可以全局继承;不用每个都定义
    2)@表示当前区域的名称
    3)相邻的两条记录其name相同时,后面的可省略
    4)对于正向区域来说,各MX,NS等 类型的记录的value为FQDN,此FQDN应该有一个A记录

DNS and Bind

如何安装配置使用DNS服务

BIND:伯克利互联网域名,BIN是DNS协议的一种实现,BIND这个程序运行起来的进程名叫named.

dns:协议
bind:dns协议的一种实现
named:bind程序的运行的进程名
BIND的安装配置:
bind-libs:被bind和bind-utils包中的程序共同用到的库文件
bind-utils:bind客户端程序集,例如dig,host,nslookup等
bind:提供的dns server程序,以及几个常用的测试程序
bind-chroot:选装程序,让named运行于jail(监狱)模式下

主配置文件

/etc/named.conf
或包含其他文件;
    /etc/named.iscdlv.key
    /etc/named.rfc1912.zones
    /etc/named.root.key

解析库文件;

/var/named/目录下;
    一般名字为:ZONE_NAME.zone
注意:1)一台DNS服务器可同时为多个区域提供解析;
    2)必须要有根区域解析库文件:named.ca
    3)还应该有两个区域解析库文件:localhost和127.0.0.1正反向解析库
        正向:named.localhost
        反向:named.loopback

rndc:远程名称域控制器

rndc默认情况下工作在tcp的953端口,但默认监听于127.0.0.1地址,因此仅允许本地使用.BIND安装在同一主机,bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门复杂解析的区域,直接即可启动服务;

开启

centos6:service named start
centos7:systemctl start named.service

主配置文件格式:

全局配置段:
    options{...}
日志配置段:
    logging{...}
区域配置段:
    zone{...}
        那些由本机负责解析的区域,或转发的区域
    注意:每个配置语句必须以分号结尾 
缓存名称服务器的配置:
    监听能与外部主机通信的地址
        listen-on port 53;
        listen-on port 53{ 172.16.100.67; };

    学习时,建议关闭dnssec
        dnssec-enable no;
        dnssec-validation no;
        dnssec-lookaside no;
检查配置文件的语法错误;
    named-checkconf [/etc/named.conf]
测试工具:dig,host,nslookp
    dig命令:
        dig [-t RR_TYPE] name [@SERVER] [query options]
            用于测试dns系统,因此其不会查询hosts文件
            查询选项:
                +[no]trace:跟踪解析过程
                +[no]recures:进行递归解析
            注意:反向解析测试
                dig -x ip
            模拟完全区域传送
                dig -t axfr DOMAIN [@server]

    host命令:
        host [-t RR_TYPE] name SERVER_IP

    nslookup命令
        nslookuop [-options] [name] [server]

    交互式模式:
        nslookup>
            server IP:以指定的IP为DNS服务器进行查询
            set q=RR_TYPE:要查询的资源记录类型
            name:要查询的名称

原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58133

(0)
M20-1马星M20-1马星
上一篇 2016-11-07 10:30
下一篇 2016-11-07 10:34

相关推荐

  • 马哥教育网络班22期+第1周课程练习

    第1周课程练习 一、描述计算机的组成及其功能。     CPU (运算器+控制器), 存诸器(内存与外部存储),输入输出设备。      运算器:对数据进行处理(包括算述运算与逻辑运算)。      控制器:负责从存储器取出指令,按指令的要求发出控制信号,使各…

    Linux干货 2016-08-15
  • Linux发展史

    Linux 操作系统是UNIX操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX类操作系统,并且使用人数还在迅猛增长。下文简要介绍了Linux发展史。 1969年,美国贝尔实验室的Ken.Thompson和D…

    Linux干货 2016-10-17
  • 网络接口配置–Bonding

    网络接口配置–Bonding Bonding        就是讲到快网卡绑定到同一IP地址对外服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡被修改为同一MAC地址。 一 Bonding …

    Linux干货 2017-05-07
  • mongodb的复制集实现

    简介:  mongodb有两种类型的复制,第一种是同于MySQL的主从复制模式,第二种是复制集,提供了自动故障转移的主从复制集群。其中复制集没有固定的主节点,当一个主机的故障后从节点会重新“选举”出一个新的主节点,从而提高的系统的可用性 一、实验环境: (1)各节点信息: node1: 172.16.2.12 node2: 172.16.2.13 …

    Linux干货 2015-09-05
  • Nginx 功能概述与基础应用!

           本篇博客主要有三个部分组成,目的在于让大家了解ningx的主要功用及作为web server的基础配置;通过本篇博客能够让您对nginx理解更加深入,以便于更好的使用它!                  …

    2017-05-14
  • Linux学习总结&day07-正则表达式&文本处理工具

    第一部分、正则表达式     1、什么是正则表达式     正则表达式就是处理字符串的方法,它是以行为单位来进行字符串的处理行为,正则表达式通过一些特殊符号的辅助,可以让用户轻易的达到查找、删除、替换某特定字符串的处理程序。     正则表…

    Linux干货 2016-08-08