Linux之DNS服务

DNS服务

DNS: Domain Name Service,协议(C/S, 53/udp, 53/tcp)应用层协议

BIND:BekerleyInternatName Domain, ISC (www.isc.org)

本地名称解析配置文件:hosts

    /etc/hosts

    %WINDIR%/system32/drivers/etc/hosts

        例如:

        1.1.1.1 www.magedu.com

        2.2.2.2 www.apple.com

DNS域名

根域

    一级域名::Top Level Domain: tld

        组织域:.com,.org,.mil,.gov,.edu,

        国家域:.cn,.hk,.tw,.jp,.us,.uk

     反向域:.in-addr.arpa

     二级域名

    三级域名

    最多127级域名

ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构,负责在全球范围内对互联网通用顶级域名(gTLD)以及国家和地区顶级域名(ccTLD)系统的管理、以及根服务器系统的管理。

DNS解析

DNS查询类型:

    递归查询:逐层解析(根DNS拒绝回答递归问题)

    迭代查询:DNS才会迭代

名称服务器:域内负责解析本域内的名称的主机;

    根服务器:13组服务器 (可以在/var/named/named.ca文件里面看到)

解析类型:

    FQDN –> IP

    IP –> FQDN

注意:正反向解析是两个不同的名称空间,是两棵不同的解析树

DNS服务器类型

    主DNS服务器

    从DNS服务器

    缓存DNS服务器(转发器)

主DNS服务器:管理和维护所负责解析的域内解析库的服务器

从DNS服务器:从主服务器或从服务器“复制”(区域传输)解析库副本

    序列号:解析库版本号,主服务器解析库变化时,其序列递增

    刷新时间间隔:从服务器从主服    务器请求同步解析的时间间隔

    重试时间间隔:从服务器请求同步失败时,再次尝试时间间隔

    过期时长:从服务器联系不到主服务器时,多久后停止服务

“通知”机制:主服务器解析库发生变化时,会主动通知从服务器

区域传输

    完全传输:传送整个解析库

    增量传输:传递解析库变化的那部分内容

Domain: Fully Qualified Domain Name 完全域名解析

    正向解析:FQDN –> IP

    反向解析: IP –> FQDN

负责本地域名的正向和反向解析库:

    正向区域

    反向区域

DNS解析

一次完整的查询请求经过的流程:

    Client –>hosts文件–>DNS Service Local Cache –> DNS Server (recursion) –> Server Cache –> iteration(迭代) –> 根–> 顶级域名DNS–>二级域名DNS…

解析答案:

    肯定答案:

    否定答案:请求的条目不存在等原因导致无法返回结果

    权威答案:aa

    非权威答案

资源记录

区域解析库:由众多RR组成:

    资源记录:Resource Record, RR

    记录类型:A, AAAA, PTR, SOA, NS, CNAME, MX

SOA:Start Of Authority,起始授权记录;一个区域解析库有且仅能有一个SOA记录,必须位于解析库的第一条记录

A:internet Address,作用,FQDN –> IP

AAAA: FQDN –> IPv6

PTR: PoinTeR,IP –> FQDN

NS: Name Server,专用于标明当前区域的DNS服务器

CNAME:Canonical Name,正式名称(别名记录)

MX:Mail eXchanger,邮件交换器

资源记录定义的格式

    语法:name [ttl(缓存时间)] IN  资源记录类型(RRtype)  Value

    例如:

       www  600(单位s) IN     A     1.2.3.4

       www.magedu.com.  600     IN     A     1.2.3.4

注意:

(1) TTL可从全局继承

(2) @可用于引用当前区域的名字

(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应

(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机

SOA记录

name: 当前区域的名字,例如“magedu.com.”

value: 有多部分组成

(1) 当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;

(2) 当前区域管理员的邮箱地址;但地址中不能使用@符号,一般用.替换,例如linuxedu.magedu.com

(3) 主从服务区域传输相关定义以及否定的答案的统一的TTL

例如:

@  600   IN  SOA  na.magedu.com.  管理员邮箱(dnsadmin.magedu.com.)(

             序列号(serial number) ;注释内容,十进制数据,不能超过10位,通常使用日期,例如2014031001

             刷新时间(refresh time) ;即每隔多久到主服务器检查一次

             重试时间(retry time) ;应该小于refresh time

             过期时间(expire time)

             netgative answer ttl ;否定答案的ttl

                                       )

NS记录

name: 当前区域的名字,通常可以简写为@

value: 当前区域的某DNS服务器的FQDN名字,例如ns.magedu.com.;

注意:一个区域可以有多个NS记录;

    例如:

    magedu.com. IN NS ns1.magedu.com.

    magedu.com. IN NS ns2.magedu.com.

注意:

    (1) 相邻的两个资源记录的name相同时,后续的可省略

    (2) 对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录

MX记录,可以有多个

name: 当前区域的名字

value: 当前区域的某邮件服务器(smtp服务器)的主机名

一个区域内,MX记录可有多个;但每个记录的value之前应该有一个数字(0-99),表示此服务器的优先级;数字越小优先级越高

例如:

    magedu.com.IN MX 10 mx1.magedu.com.

    IN MX 20 mx2.magedu.com.

注意:

    (1) 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录

A记录:只能定义在正向区域数据文件中

name: 某主机的FQDN,例如www.magedu.com.

value: 主机名对应主机的IP地址;

例如:

    www.magedu.com.  IN  A  1.1.1.1

    www.magedu.com.  IN  A  2.2.2.2

    mx1.magedu.com.  IN  A  3.3.3.3

    mx2.magedu.com.  IN  A  4.4.4.4

    $GENERATE  1-254  HOST$  A  1.2.3.$

    *.magedu.com.    IN  A  5.5.5.5

    magedu.com.     IN  A  6.6.6.6

避免用户写错名称时给错误答案,可通过泛域名解析(*)进行解析至某特定地址

但凡以FQDN做为其值的记录,应该给这个值做一条A记录

其它记录

AAAA:

    name: FQDN

    value: IPv6

PTR: IP –> FQDN

只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in.addr.arpa.后缀组成

name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;

    而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.

value: FQDN

例如:

    4.3.2.1.in-addr.arpa. IN PTR www.magedu.com

    简写成:如1.2.3为网络地址,可省

    4 IN PTR www.magedu.com.

注意:网络地址及后缀可省略;主机地址依然需要反着写

别名记录

CNAME:

    name: 别名的FQDN

    value: 真正名字的FQDN;

    例如:

    www.magedu.com. IN CNAME websrv.magedu.com

子域

子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权

类似根域授权tld:

    .com.    IN  NS      ns1.com.

    .com.    IN  NS      ns2.com.

    ns1.com.   IN  A     2.2.2.1

    ns2.com.   IN  A     2.2.2.2

magedu.com. 在.com的名称服务器上,解析库中添加资源记录:

    magedu.com.  IN  NS     ns1.magedu.com.

    magedu.com.  IN  NS     ns2.magedu.com.

    magedu.com.  IN  NS     ns3.magedu.com.

    ns1.magedu.com.  IN  A   3.3.3.1

    ns2.magedu.com.  IN  A   3.3.3.2

    ns3.magedu.com.  IN  A   3.3.3.3

glue record:粘合记录,父域授权子域的记录

互联网域名

域名注册:

    代理商:万网, 新网;godaddy

注册完成以后,想自己用专用服务来解析

    管理后台:把NS记录指向的服务器名称,和A记录指向的服务器地址

BIND安装

    BIND的安装配置:

    dns服务程序包:bind,unbound

    程序名:named,unbound

    程序包:yum list all bind*

        bind:服务器

        bind-libs:相关库

        bind-utils:客户端

        bind-chroot: /var/named/chroot/

bind服务器

服务脚本和名称:/etc/rc.d/init.d/named,unbound.service

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

解析库文件:/var/named/ZONE_NAME.ZONE

注意:

    (1) 一台物理服务器可同时为多个区域提供解析;

    (2) 必须要有根区域文件;named.ca

    (3) 应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库

rndc: remote name domain controller,

    默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程

    提供辅助性的管理功能;953/tcp

rndc密钥

    rndc:持有一半密钥,保存于rndc的配置文件中

    BIND:持有一办密钥,保存在主配置文件中

    rndc的配置文件/etc/rndc.conf

    生成密钥 rndc-confgen

配置文件

主配置文件:

    全局配置:options {};

    日志子系统配置:logging {};

    区域定义:本机能够为哪些zone进行解析,就要定义哪些zone;

    zone "ZONE_NAME" IN {};

注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上

缓存名称服务器的配置:

    监听外部地址即可;

    dnssec: 建议关闭dnssec,设为no

配置主DNS服务器

主DNS名称服务器:

    (1) 在主配置文件中定义区域

    zone "ZONE_NAME" IN {

    type {master|slave|hint|forward};

    file "ZONE_NAME.zone";

    };

    (2) 定义区域解析库文件

        出现的内容:

        宏定义;

        资源记录;

主配置文件语法检查:

named-checkconf

解析库文件语法检查:

named-checkzone "magedu.com" /var/named/magedu.com.zone

rndc status|reload;  service named reload 重载文件

主区域示例

$TTL 86400

$ORIGIN magedu.com.

@       IN     SOA    ns1.magedu.com.  admin.magedu.com (

                            2015042201

                            1H

                            5M

                             7D

                            1D )

       IN    NS    ns1

       IN    NS    ns2

       IN    MX     10    mx1

       IN    MX     20    mx2

ns1    IN    A    172.16.100.11

ns2    IN    A    172.16.100.12

mx1    IN    A    172.16.100.13

mx2    IN    A    172.16.100.14

websrv   IN    A    172.16.100.11

websrv   IN    A    172.16.100.12

www    IN    CNAME  websrv

测试命令

dig

    dig [-t type] name [@SERVER] [query options]

    dig只用于测试dns系统,不会查询hosts文件进行解析

查询选项:

    +[no]trace:跟踪解析过程: dig +trace magedu.com

    +[no]recurse:进行递归解析

    测试反向解析:

        dig -x IP = dig –t ptr reverseip.in-addr.arpa

    模拟区域传送:

        dig -t axfrZONE_NAME @SERVER

        dig -t axfrmagedu.com @10.10.10.11

        dig –t axfr100.1.10.in-addr.arpa @172.16.1.1

        dig -t NS . @114.114.114.114

        dig -t NS . @a.root-servers.net

host [-t type] name [SERVER]

    host –t NS magedu.com @172.16.0.1

    host –t soa magedu.com

    host –t mx magedu.com

    host –t axfr magedu.com

    host 1.2.3.4

nslookup 命令:nslookup[-option] [name | -] [server]

交互式模式:

    nslookup>

    server IP: 指明使用哪个DNS server进行查询

    set q=RR_TYPE: 指明查询的资源记录类型

    NAME: 要查询的名称

反向区域

反向区域:

    区域名称:网络地址反写.in-addr.arpa.

    172.16.100. –> 100.16.172.in-addr.arpa.

(1) 定义区域

    zone "ZONE_NAME" IN {

    type {master|slave|forward};

    file "网络地址.zone"

    };

(2) 定义区域解析库文件

    注意:不需要MX,以PTR记录为主

反向区域示例

$TTL 86400

$ORIGIN 100.16.172.in-addr.arpa.

@    IN    SOA    ns1.magedu.com. admin.magedu.com. (

                        2015042201

                        1H

                        5M

                        7D

                        1D )

    IN    NS    ns1.magedu.com.

    IN    NS    ns2.magedu.com.

11    IN    PTR    ns1.magedu.com.

11    IN    PTR    www.magedu.com.

12    IN    PTR    mx1.magedu.com.

12    IN    PTR    www.magedu.com.

13    IN    PTR    mx2.magedu.com.

从服务器

1、应该为一台独立的名称服务器

2、主服务器的区域解析库文件中必须有一条NS记录指向从服务器

3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中

4、主服务器得允许从服务器作区域传送

5、主从服务器时间应该同步,可通过ntp进行;

6、bind程序的版本应该保持一致;否则,应该从高,主低

    定义从区域的方法:

    zone "ZONE_NAME" IN {

    type slave;

    masters { MASTER_IP; };

    file "slaves/ZONE_NAME.zone";

    };

rndc命令

rndc:

    rndc–> rndc(953/tcp)

    rndc COMMAND

COMMAND:

    reload:      重载主配置文件和区域解析库文件

    reload zone:    重载区域解析库文件

    retransfer zone: 手动启动区域传送过程,而不管序列号是否增加

    notify zone:    重新对区域传送发通知

    reconfig:     重载主配置文件

    querylog:     开启或关闭查询日志文件/var/log/message

    trace:       递增debug一个级别

    trace LEVEL:   指定使用的级别

    notrace:    将调试级别设置为0

    flush:     清空DNS服务器的所有缓存记录

区域传送

   辅助DNS服务器从主DNS服务器或其他的辅助DNS服务器请求数据传输过程

       完全区域传送:传送区域的所有数据,AXFR

       增量区域传送:传送区域中改变的数据部分,IXFR

   用dig模拟完全区域传送

        dig -t axfr 区域名称 @server

   主从同步:

       /etc/resolv.conf

   主从:

    主:bind版本可以低于从的

    主从可以不再同一网段

   向区域中添加从服务器的关键两步

      在上级获得授权

      在区域数据文件中为从服务器添加一条NS记录和对应的A或PTR记录

      masters{ip;};

区域传送安全控制

    allow-transfer{127.0.0.1;127.16.100.1}

子域

子域授权:分布式数据库

正向解析区域子域方法:

定义一个子区域:

    ops.magedu.com. IN NS ns1.ops.magedu.com.

    ops.magedu.com. IN NSns2.ops.magedu.com.

    ns1.ops.magedu.com. IN A 1.1.1.1

    ns2.ops.magedu.com. IN A 1.1.1.2

    fin.magedu.com. IN NS ns1.fin.magedu.com.

    fin.magedu.com. IN NS ns2.fin.magedu.com.

    ns1.fin.magedu.com. IN A 3.1.1.1

    ns2.fin.magedu.com. IN A 3.1.1.2

注意:关闭dnssec功能:

    dnssec-enable no;

    dnssec-validation no;

转发服务器

注意:被转发的服务器需要能够为请求者做递归,否则转发请求不予进行

(1) 全局转发: 对非本机所负责解析区域的请求,全转发给指定的服务器

    在/etc/named.conf 下面编辑

    Options {

    forward first(先转发在找根)|only(仅转发);

    fowwarders{ Dns_Server_ip;};

    };

(2) 特定区域转发:仅转发对特定的区域的请求,比全局转发优先级高

    在/etc/named.rfc1912.conf 下面编辑

    zone "ZONE_NAME" IN {

    type forward;

    forward first|only;

    forwarders { Dns_Server_ip;};

    };

注意:转发必须对方服务器支持递归

   关闭dnssec功能:

     dnssec-enable no;

     dnssec-validation no;

bind中ACL

bind中基础的安全相关的配置:

    acl: 把一个或多个地址归并为一个集合,并通过一个统一的名称调用

格式:

    acl acl_name{

    ip;

    net/prelen;

    ……

    };

示例:

    acl mynet{

        172.16.0.0/16;

        10.10.10.10;

    };

bind有四个内置的acl:

    none: 没有一个主机

    any: 任意主机

    localhost: 本机

    localnet: 本机的IP同掩码运算后得到的网络地址

注意:只能先定义,后使用;因此一般定义在配置文件中,处于options的前面

安全控制访问控制

访问控制的指令:

   allow-query {}:此项仅用于服务器是缓存名称服务器时,只开放查询功能给本地客户端,白单;

   allow-transfer {}:通常都需要启用,从服务器,允许区域传送的主机;白名单,

   allow-recursion {}: 允许递归的主机的白名单,建议全局使用,可以使用网段

   allow-update {}: 允许更新区域数据库中的内容的主机白名单

bind view

    view:视图,逻辑的DNS服务器,一个bind服务器可定义多个view,每个view中可定义一个或多个zone

    每个view用来匹配一组客户端;

    多个view内可能需要对同一个区域进行解析,但使用不同的区域解析库文件

格式:

    view VIEW_NAME {

        match-clients { };

    };

注意:

    (1) 一旦启用了view,所有的zone都只能定义在view中

    (2) 仅在允许递归请求的客户端所在view中定义根区域

    (3) 客户端请求到达时,是自上而下检查每个view所服务的客户端列表

CDN: Content Delivery Network

智能DNS:(主要用来解决南北电信网络相互访问慢的问题)

    dnspod

    dns.la

例如:

     acl telecom{

     1.2.0.0/16

     4.5.8.0

     }

     acl unicom{

     6.4.0.0/16

     4.5.3.0

     }

    view view_name {

        match-clients{ telecom; }

       zone"magelinux.com" IN{

       type master;

        file "magelinux.com.telcom";

       }

     }

    view view_name {

        match-clients{ unicom; }

       zone"magelinux.com" IN{

       type master;

        file "magelinux.com.unicom";

       }

     }

      view view_name {

        match-clients{ any; }

       zone"magelinux.com" IN{

       type master;

        file "magelinux.com.unicom";

       }

     }

     只要写入view,所有的都应该写在view中

     自上而下匹配

综合示例:模拟互联网DNS服务器

wKiom1f0UNTDWTJvAABA59Yt08s336.png

要求:

1.搭建根dns服务器(10.1.156.156)

2.搭建com的dns服务器(10.1.156.68)

3.搭建magedu.com的dns服务器,分别有主从dns服务器(10.1.156.69;10.1.156.70),web服务器(10.1.156.69;10.1.156.70).邮件mail服务器(10.1.156.73),dns服务器上面设置了acl规则,当北京的主机访问www.magedu.com网站的时候,用户访问会指向10.1.156.71的主机,当上海的主机访问www.magedu.com网站的时候,用户访问会指向10.1.156.72的主机。

4.搭建北京网公共dns服务器114dns(10.1.114.114)

5.搭建上海网公共dns服务器8dns(10.1.8.8),该服务器查询magedu.com域名的时候不用通过根DNS转发

第一步:搭建magedu.com的ns1服务器

启动dnf服务,如果此处还没有安装named服务,请执行yum命令安装bind包

wKioL1f0Uu-QyqLoAAAVDwuWPSA215.png

编辑/etc/named.conf文件

wKiom1f0UvDD-wJIAAAKtgjsxvg284.png

修改options里面的

监听端口此处可以屏蔽掉,默认会监听主机所有的ip.或者此处可以修改为localhost

允许查询此处可以屏蔽掉,默认允许所有主机查询,或者此处可以修改为any

添加allow-transfer的ip信息,此处的ip为从dns服务器的ip,此处不添加的话,别人可以抓取该dns里面的所有dns信息,对于黑客来说提供攻击的目标,所以务必添加此处

wKiom1f0UvSSkYmGAAA_gHFGNtI050.png

编辑/etc/named.rfc1912.zones文件

wKioL1f0UvDD0zgoAAAK5yHiGY8763.png

在空白处添加magedu.com的正向解析信息

wKiom1f0UvGAOy1kAAANJdZ-hb4173.png

在空白处添加magedu.com的反向解析信息

wKiom1f0VQfQaZvvAAAN9tjs0p0718.png

添加magedu.com.zone的正向解析信息,如下所示

wKioL1f0UvHwXmHTAAAOR7PBpf0491.png

wKioL1f0UvGTIpcnAABcvjoGk88730.png

此处需要注意的是文件的权限。需要把文件的属组修改为named,权限为640

wKiom1f0UvLxvhmQAABAwofU06k945.png

创建完以后,检查一下配置文件和magedu.com的域是否有格式上面的错误

wKiom1f0UvLTMIRfAAAdjxN981s282.png

添加magedu.com.zone的反向解析信息,如下所示

wKiom1f0UvOjBGP2AAAJfORZq6w469.png

wKioL1f0UvPwX1NvAABNwxcaaUs174.png

同样需要修改文件的属组为namrd和默认权限为640

wKiom1f0UvSC8hXFAAAsIZi0dlw376.png

检查反向解析格式是否有问题

wKioL1f0UvPAveizAAAWNhBYD2E068.png

最后配置实现智能dns

此处编辑/etc/named.conf文件,并且acl需要写在文档的最上方

设置acl抓取北京网的ip

设置acl抓取上海网的ip

其他未定义的ip段设置为any

wKioL1f0UvWyBhlrAAAXre6r3LA148.png

在/etc/name.conf文件的下方添加view的信息,来匹配所有刚acl的记录

添加view匹配shanghainet的信息

添加view匹配beijingnet的信息

添加view匹配othernet的信息,此处需要注意的是由于其他any的网段此处属于默认的,需要把

include “/etc/named.rfc1912.zones” 的信息写入到此处,如下所示

wKioL1f0WHuB_MiXAABaskUO_gE449.png

因为zone "."的信息默认是匹配所有的用户,

所以此处需要把这个信息写到/etc/named.rfc1912.zones文件里面,不然的话会报错

wKioL1f0UvaRaJbEAAAKJxRElVw779.png

wKioL1f0UvfCmtQgAAAJskWJ-8g127.png

创建acl对应匹配的shanghainet的用户的zone

wKiom1f0UvWQBW2lAAALeEig2Mg839.png

wKioL1f0UvWS-jlWAAA4ZwlYd-w362.png

创建acl对应匹配的beijingnet的用户的zone

wKiom1f0UvaBXkrzAAAMhFd_HAU777.png

wKiom1f0UvaT-3z7AABEtc14aEU517.png

最后重载dns配置文件,或者此处可以执行service named restart命令(生产环境中慎用)

wKioL1f0UvLBFxOkAAAJ1eQwtVc544.png

第二步:搭建magedu.com的ns2服务器

首先第一步是安装bind包,并且启用named的服务(此处省略图)

编辑/etc/named文件

wKioL1f0WbfgRv10AAAH8-i4yXg895.png

修改options里面的

监听端口此处可以屏蔽掉,默认会监听主机所有的ip.或者此处可以修改为localhost

允许查询此处可以屏蔽掉,默认允许所有主机查询,或者此处可以修改为any

添加allow-transfer的ip信息,此处的ip为设置为none即可,此处不添加的话,别人可以抓取该dns里面的所有dns信息,对于黑客来说提供攻击的目标,所以务必添加此处

wKiom1f0WbjxN2uqAAA-F4qIvjY548.png

编辑/etc/named.rfc1912.zones文件

wKiom1f0WbjDXa5UAAAJtDyTp6Q570.png

添加magedu.com的信息。并且设置type类型为slave表示为从服务器

wKioL1f0WbmQNqVFAAAmvvDz79k705.png

配置完以上检查配置文件是否有错误

wKioL1f0WbmDj741AAAHSoX3Tgw288.png

以上没问题,重载dns的配置文件,或者重启服务(生产环境慎用)

wKiom1f0Wbmy2-TyAAAJ7Jvhmkg135.png

重载dns文件以后,过了一会,我们可以在/var/named/slaves/目录下面多了两个文件,是主dns服务器传送过来的,并且此处应该需要文件权限的问题,下图还没有修改权限,应该需要修改,去掉other的r权限

wKiom1f0WbqCSdO-AAA_U_l0Slk241.png

查看一下正向解析zones区域信息确认一下有没问题

wKiom1f0XFvBuc5tAACzIy9NXyQ306.png

查看一下反向解析zones区域信息确认一下有没问题

wKiom1f0WbvRnQDpAAB3J7IF04o376.png

第三步:搭建magedu.com的子域mail服务器(仅用于环境模拟),此处就不上图了

此处服务器检查设置ip地址和设置hostname即可,仅是用户环境模拟

搭建测试完以上步骤,需要测试一下dns服务器是否正常,在生成环境当中,应该一般也就以上的主从dns服务器需要搭建。

在ns1服务器上面和ns2服务器上面都使用自身ip解析一下网站看有没有问题,如果有问题,需要排查

查询ns记录,可以看见第5行那有flags:里面的aa信息,表示为权威记录,即从本dns服务器上面查询才有的信息,从其他dns服务器上面查询的话并不会带有此信息。

wKiom1f0Xz7zWfspAACD6Z8tTqA437.png

查看A记录

wKioL1f0Xz7jkKHIAACUB_aWkaQ625.png

查询子域信息看有没有报错

wKioL1f0Xz7BafHaAACLmqYXTpQ498.png

第四步:搭建root根dns服务器

首先第一步是安装bind包,并且启用named的服务(此处省略图)

编辑/etc/named文件

Linux之DNS服务

修改options里面的

监听端口此处可以屏蔽掉,默认会监听主机所有的ip.或者此处可以修改为localhost

允许查询此处可以屏蔽掉,默认允许所有主机查询,或者此处可以修改为any

wKioL1f0cICCIx5SAAAxmUCllKM799.png

关闭dnssec功能

wKiom1f0cIHwTXMDAAAHcbipvAk327.png

删除掉原有的根信息,自己指定一个根的zone

wKioL1f0cIHTjvwvAAAVcHGQqyk240.png

编辑/var/named/root.zone文件信息,如下图所示

wKiom1f0cIHxaZE8AAAxUvRTdPc437.png

注意文件的属组和权限的问题

wKioL1f0cIHhhdC-AAB1xDvM7ZA452.png

修改/var/named/named.ca文件,如下所示

wKiom1f0cIKgFEIUAAAJ0PdZeIs554.png

wKioL1f0cIKQ15K_AAAY5NyL0Zo155.png

把named.ca文件复制到其他主机,不然的话其他主机找不到根

wKiom1f0cIOyNKblAACuqEWrsd4857.png

第五步:搭建com的dns服务器

首先第一步是安装bind包,并且启用named的服务(此处省略图)

编辑/etc/named文件

wKiom1f0cIDCT0BvAAAIgAJHwTU675.png

修改options里面的

监听端口此处可以屏蔽掉,默认会监听主机所有的ip.或者此处可以修改为localhost

允许查询此处可以屏蔽掉,默认允许所有主机查询,或者此处可以修改为any

wKiom1f0c7CCJdxaAAA_0Nr97yE481.png

关闭dnssec功能

wKiom1f0cIHwTXMDAAAHcbipvAk327.png

编辑/etc/named.rfc1912.com文件

wKioL1f0dHKTzBs1AAAJshYYAgM382.png

添加com的区域信息

wKiom1f0dIOBTuxaAAAKcZQQREk739.png

编辑com的区域的文件信息,还有注意权限和属组的问题,这里就不截图了

Linux之DNS服务

wKioL1f0c7DSIrA9AAA2ThKhkBc447.png

编辑完,检查一下配置文件有没格式错误

wKiom1f0c7HAcIcnAAAaaOtigy4139.png

查看一下根文件有没有错误

wKioL1f0c7GQ6pUpAAAm93sDg_A135.png

检查没有问题,重载配置即可

wKiom1f0Wbmy2-TyAAAJ7Jvhmkg135.png

第六步:搭建bj114dns的dns服务器

首先第一步是安装bind包,并且启用named的服务(此处省略图)

编辑/etc/named文件

wKiom1f0cIDCT0BvAAAIgAJHwTU675.png

修改options里面的

监听端口此处可以屏蔽掉,默认会监听主机所有的ip.或者此处可以修改为localhost

允许查询此处可以屏蔽掉,默认允许所有主机查询,或者此处可以修改为any

wKiom1f0c7CCJdxaAAA_0Nr97yE481.png

关闭dnssec功能

wKiom1f0cIHwTXMDAAAHcbipvAk327.png

查看一下根文件有没有错误

Linux之DNS服务

检查没有问题,重载配置即可

Linux之DNS服务

第七步:搭建sh8dns的dns服务器

首先第一步是安装bind包,并且启用named的服务(此处省略图)

编辑/etc/named文件

wKiom1f0cIDCT0BvAAAIgAJHwTU675.png

修改options里面的

监听端口此处可以屏蔽掉,默认会监听主机所有的ip.或者此处可以修改为localhost

允许查询此处可以屏蔽掉,默认允许所有主机查询,或者此处可以修改为any

wKiom1f0c7CCJdxaAAA_0Nr97yE481.png

关闭dnssec功能

wKiom1f0cIHwTXMDAAAHcbipvAk327.png

编辑/etc/named.rfc.1912.zones

Linux之DNS服务

添加magedu.com的转发信息,这样的话,当通过此服务器访问magedu.com的时候,将不再会去查看根,然后直接转发magedu.com的信息到指定的服务器。

Linux之DNS服务

检查配置文件有没有问题,确认named.ca文件,没问题就重载配置

Linux之DNS服务

第八步,测试dns服务器

在客户端上面,测试一下能不能找到根

Linux之DNS服务

追踪到根的路径

Linux之DNS服务

测试访问magedu.com的NS记录

Linux之DNS服务

测试访问www.magedu.com.此时web服务器显示的ip为10.1.156.71,表示智能dns配置成功

Linux之DNS服务

追踪到magedu.com的网络路径8dns服务器->根dns->com_dns->ns1.magedu.com

Linux之DNS服务

查看一下能不能到达邮件服务器,也正常

Linux之DNS服务

在bj_host的主机上面测试访问www.magedu.com.此时显示的ip为10.1.156.72,表示智能dns也生效了

Linux之DNS服务

追踪一下到magedu.com的网络路径,114dns服务器->根dns->com_dns->ns1.magedu.com

Linux之DNS服务

原创文章,作者:~微风~,如若转载,请注明出处:http://www.178linux.com/49930

(0)
上一篇 2016-10-05 16:37
下一篇 2016-10-05 20:21

相关推荐

  • linux基础知识之nmcli

           CentOS7才有的功能网络组:将多块网卡聚合在一起的方法,从而实现冗错和提高吞吐量        网络组不同于旧版中的bonding技术,提供了更好的性能和扩展性        网路组由内核驱动和teamd守护进程实现 &n…

    Linux干货 2016-09-07
  • 文本工具

    本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的

    2017-11-25
  • linux进程管理相关工具

    linux进程管理相关工具: pstree ,ps ,pidof ,pgrep ,top ,htop ,glances ,pmap ,vmstat ,kill ,killall ,job ,bg ,fg ,nohup ,nice ,renice ,pkill…… 1、pstree:查看进程树 2、ps:显示执行命令时间的进程状态信息 /proc 目录下存放内…

    Linux干货 2016-09-11
  • Linux基础知识(六)-vim编辑器,crontab计划任务,bash脚本循环

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp [root@localhost ~]# vim&nbs…

    Linux干货 2016-10-31
  • BASH编程基础之变量、条件判断

    一、前言 在linux中,通常我们所指的脚本编程,指的是bash的脚本编程。 bash作为一种过程式的编程语言来说,它应该具备编程语言所应该具备的基本元素,即:变量,流程,函数,数组。今天我们介绍变量以及流程之一的条件判断。 二、变量 1、初识变量 在编程语言中,编程语言有两大种,强类型语言和弱类型语言。强类型语言中,要求变量的使用要严格符合定义,所有变量都…

    Linux干货 2015-07-06
  • iptables基础概念

    iptables基本概念梳理 前言 netfilter/Iptables (其中包括netfilter和Iptables两个组件)组 成了Linux平台下的包过滤防火墙,它与大多数的Linux自带软 件一样,这个防火墙是免费提供的,它可以代替昂贵的企业级 防火墙来解决实际问题与实际方案,完成封包过滤,封包重定 向和网络地址转换等功能。 一、工作原理 数据包从…

    Linux干货 2016-12-19