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)
上一篇 2016-11-07 10:30
下一篇 2016-11-07 10:34

相关推荐

  • Linux下的进程调度与作业管理

    Linux下的进程调度与作业管理 一、概述 1.1 进程的相关概念: 通过前面的几个章节,我们几乎已经学习了很多的linux的基础,这个章节我们讲一下linux下的进程管理,就像windows 下的进程一样,我们知道windows 下有一个任务管理器,专门用来管理进程,我们首先看一下windows 的任务管理器: 从这2个图我们可以看出,windows 下的…

    Linux干货 2016-10-17
  • 学习宣言

    我是喻成,我参加了马帮第22期的linux运维网络班,于2016年8月开始跟随马哥学习linux, 我的学习宣言是:要享受学习的每一刻,我思故我在。

    Linux干货 2016-08-15
  • 实验:yum、编译安装、swap

    实验:在centos7实现光盘yum源 1yum install autofs 2现在启动systemctl start autofs 3开机启动systemctl enable autofs 4 cat /etc/yum.repos.d/base.repo[centos7]name=centos7 repobaseurl=file:///misc/cdgp…

    Linux干货 2017-04-25
  • 马哥教育网络班21期+第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 2、编辑/etc/group文件,添加组hadoop。 3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。 4、复制/etc/sk…

    Linux干货 2016-07-07
  • 开源堡垒机-01-JumpServer的安装

    前段时间曾经用过JumpServer帮助一个客户完成了他的关于堡垒机的需求,由于当时赶进度,没来得及将整个过程记录和完善,现在抽时间慢慢整理下。 1)JumpServer的介绍 Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能。基于ssh协议来管理,客户端无需安装agent。 支持常见系统: Cent…

    Linux干货 2016-07-22
  • openssl、openssh

    openssl 传输层协议:TCP,UDP,SCTPport:进程地址,进程向内核注册使用某端口(独占) 同一主机上的进程间通信:IPC, message queue, shm, semerphor 不同主上的进程间通信:socket cip:port <– –> sip:port cip:55673 <&#8211…

    Linux干货 2017-05-31