美文网首页
BIND的安装与使用

BIND的安装与使用

作者: 0_0啊 | 来源:发表于2017-12-14 18:18 被阅读56次

    一、BIND是什么

    BIND是互联网应用最为广泛的DNS软件。

    二、BIND的安装与使用

    以下内容转自 http://www.mamicode.com/info-detail-1546484.html

    bind安装

    在Linux上面﹐提供DNS服务的套件是叫bind﹐但执行服务程序名称则是named。可以yum安装或者手动编译安装,注意,手动编译安装,相关的配置文件要手动填写,这里使用yum安装,安装完成后设置服务启动,并且设置开机启动

    [root@localhost~]#service named status

    rndc:neither/etc/rndc.conf nor/etc/rndc.key was found

    named is stopped

    [root@localhost~]#service named start

    Generating/etc/rndc.key:[OK]

    Starting named:[OK]

    [root@localhost~]#chkconfig named on

    [root@localhost~]#chkconfig--list named

    named0:off1:off2:on3:on4:on5:on6:off

    DNS默认监听TCP、UDP的53端口

    我们知道,每台DNS服务器都知道根域的位置,安装完bind后,其根域的配置位于/var/namd/named.ca

    [root@localhost~]#cat/var/named/named.

    cat:/var/named/named.:No such file or directory

    [root@localhost~]#cat/var/named/named.ca

    ;This file holds the information on root name servers needed to

    ;initialize cache of Internet domain name servers

    ;(e.g. referencethisfile in the"cache."

    ;configuration file of BIND domain name servers).

    ;

    ;This file is made available by InterNIC

    ;under anonymous FTP as

    ;file/domain/named.cache

    ;on serverFTP.INTERNIC.NET

    ;-OR-RS.INTERNIC.NET

    ;

    ;last update:December01,2015

    ;related version of root zone:2015120100

    ;

    ; formerly NS.INTERNIC.NET

    ;

    .3600000NSA.ROOT-SERVERS.NET.

    A.ROOT-SERVERS.NET.3600000A198.41.0.4

    A.ROOT-SERVERS.NET.3600000AAAA2001:503:ba3e::2:30

    ;

    ; FORMERLY NS1.ISI.EDU

    ;

    .3600000NSB.ROOT-SERVERS.NET.

    B.ROOT-SERVERS.NET.3600000A192.228.79.201

    B.ROOT-SERVERS.NET.3600000AAAA2001:500:84::b

    ;

    ; FORMERLY C.PSI.NET

    ;

    .3600000NSC.ROOT-SERVERS.NET.

    C.ROOT-SERVERS.NET.3600000A192.33.4.12

    C.ROOT-SERVERS.NET.3600000AAAA2001:500:2::c

    ;

    ; FORMERLY TERP.UMD.EDU

    ;

    .3600000NSD.ROOT-SERVERS.NET.

    D.ROOT-SERVERS.NET.3600000A199.7.91.13

    D.ROOT-SERVERS.NET.3600000AAAA2001:500:2d::d

    ;

    ; FORMERLY NS.NASA.GOV

    ;

    .3600000NSE.ROOT-SERVERS.NET.

    E.ROOT-SERVERS.NET.3600000A192.203.230.10

    ;

    ; FORMERLY NS.ISC.ORG

    ;

    .3600000NSF.ROOT-SERVERS.NET.

    F.ROOT-SERVERS.NET.3600000A192.5.5.241

    F.ROOT-SERVERS.NET.3600000AAAA2001:500:2f::f

    ;

    ; FORMERLY NS.NIC.DDN.MIL

    ;

    .3600000NSG.ROOT-SERVERS.NET.

    G.ROOT-SERVERS.NET.3600000A192.112.36.4

    ;

    ; FORMERLY AOS.ARL.ARMY.MIL

    ;

    .3600000NSH.ROOT-SERVERS.NET.

    H.ROOT-SERVERS.NET.3600000A198.97.190.53

    H.ROOT-SERVERS.NET.3600000AAAA2001:500:1::53

    ;

    ; FORMERLY NIC.NORDU.NET

    ;

    .3600000NSI.ROOT-SERVERS.NET.

    I.ROOT-SERVERS.NET.3600000A192.36.148.17

    I.ROOT-SERVERS.NET.3600000AAAA2001:7fe::53

    ;

    ; OPERATED BY VERISIGN, INC.

    ;

    .3600000NSJ.ROOT-SERVERS.NET.

    J.ROOT-SERVERS.NET.3600000A192.58.128.30

    J.ROOT-SERVERS.NET.3600000AAAA2001:503:c27::2:30

    ;

    ; OPERATED BY RIPE NCC

    ;

    .3600000NSK.ROOT-SERVERS.NET.

    K.ROOT-SERVERS.NET.3600000A193.0.14.129

    K.ROOT-SERVERS.NET.3600000AAAA2001:7fd::1

    ;

    ; OPERATED BY ICANN

    ;

    .3600000NSL.ROOT-SERVERS.NET.

    L.ROOT-SERVERS.NET.3600000A199.7.83.42

    L.ROOT-SERVERS.NET.3600000AAAA2001:500:3::42

    ;

    ; OPERATED BY WIDE

    ;

    .3600000NSM.ROOT-SERVERS.NET.

    M.ROOT-SERVERS.NET.3600000A202.12.27.33

    M.ROOT-SERVERS.NET.3600000AAAA2001:dc3::35

    ; End of file

    由配置文件我们可以看到,有a-m 13台根服务器,还有其对应的IP地址,AAAA表示IPv6的地址。

    查看bind的主配置文件:/etc/namd.conf,【注意这是C语言的格式,注释使用“//”,每行结束要有“;”,/* ”与“ */ ”之间则批注一整段文字。】,该文件只包括Bind的基本配置,并不包含任何DNS的区域数据。这个配置文件,可以分为几部分:

          options{}:全局配置选项

          logging{}:日志子系统配置

          zone:定义了根域的文件位置

          include "/etc/named.rfc1912.zones";包含了/etc/named.rfc1912.zones这个配置文件,一般吧要添加的域写在/etc/named.rfc1912.zones,方便管理

          include "/etc/named.root.key";

    [21:02root@centos6.8~]#cat/etc/named.conf

    //

    // named.conf

    //

    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

    // server as a caching only nameserver (as a localhost DNS resolver only).

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    options {

    listen-on port53{127.0.0.1; };/*DNS监听的本机IP地址和端口,默认是本机的环回地址*/

    listen-on-v6 port53{::1; };

    directory"/var/named";/*指定了named的资源记录( RR - Resource Record )档案目录所在位置“/var/named”﹔也就是说﹐它会到这个目录下面寻找DNS记录档案。*/

    dump-file"/var/named/data/cache_dump.db";/*当执行rndc dumpdb时服务器dump文件的路径*/

    statistics-file"/var/named/data/named_stats.txt";

    memstatistics-file"/var/named/data/named_mem_stats.txt";

    allow-query{ localhost; };/*允许查询RR表的机器,localhost表示是本机的所有IP地址*/

    recursion yes;

    dnssec-enable yes;

    dnssec-validation yes;

    /* Path to ISC DLV key */

    bindkeys-file"/etc/named.iscdlv.key";

    managed-keys-directory"/var/named/dynamic";

    };

    logging {

    channel default_debug {

    file"data/named.run";

    severity dynamic;

    };

    };

    zone"."IN {//在这个文件中是用zone关键字来定义域区的,一个zone关键字定义一个域区,但是为表规范,通常我们在/etc//named.rfc1912.zones文件添加相应的域名记录

    type hint;/*在这里type类型有三种,它们分别是master,slave和hint它们的含义分别是:

    master:表示定义的是主域名服务器

    slave :表示定义的是辅助域名服务器

    hint:表示是互联网中根域名服务器

    */

    file"named.ca";/*由于上面已经定义directory是/var/named目录,所以这里是相对路径表示,表示是/*var/namd/namd.ca*/

    };

    include"/etc/named.rfc1912.zones";

    include"/etc/named.root.key";

    搭建DNS服务器

    正向解析步骤:

    (1)按需修改named.conf,这里修改默认的监听IP,将默认127.0.0.1改成local本机所有IP地址,并且允许所有机器能查询,将allow-query的值改为any,表示允许所有机器IP查询

    (2)建立需要添加的域名,这里在/etc/namd.rfc1912.zones文件添加相应的域名记录

    (3)添加相应的资源记录表格,根据配置文件的定义,在/var/named目录下建立相应的RR

    (4)修改RR的属主属组为named,同时修改相关权限,重启DNS服务即可生效

    修改named.conf文件

    [21:28root@centos6.8~]#cat!$

    cat/etc/named.conf

    //

    // named.conf

    //

    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

    // server as a caching only nameserver (as a localhost DNS resolver only).

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    options {

    //listen-on port 53 { 127.0.0.1; };修改的地方,注释掉该行

    listen-on-v6 port53{::1; };

    directory"/var/named";

    dump-file"/var/named/data/cache_dump.db";

    statistics-file"/var/named/data/named_stats.txt";

    memstatistics-file"/var/named/data/named_mem_stats.txt";

    allow-query{ any; };//修改的地方

    recursion yes;

    dnssec-enable yes;

    dnssec-validation yes;

    /* Path to ISC DLV key */

    bindkeys-file"/etc/named.iscdlv.key";

    managed-keys-directory"/var/named/dynamic";

    };

    logging {

    channel default_debug {

    file"data/named.run";

    severity dynamic;

    };

    };

    zone"."IN {

    type hint;

    file"named.ca";

    };

    include"/etc/named.rfc1912.zones";

    include"/etc/named.root.key";

    添加测试域名nihao.com

    [21:33root@centos6.8~]#cat!$

    cat/etc/named.rfc1912.zones

    // named.rfc1912.zones:

    //

    // Provided by Red Hat caching-nameserver package

    //

    // ISC BIND named zone configuration for zones recommended by

    // RFC 1912 section 4.1 : localhost TLDs and address zones

    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

    // (c)2007 R W Franks

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    zone"localhost.localdomain"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"localhost"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"1.0.0.127.in-addr.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"0.in-addr.arpa"IN {

    type master;

    file"named.empty";

    allow-update { none; };

    };

    zone"nihao.com"IN {

    type master;

    file"nihao.zone"

    };

    添加RR

    [21:46root@centos6.8~]#cat!$

    cat/var/named/nihao.zone

    $TTL86400

    @IN SOA dns.nihao.com. admin.nihao.com. (

    2016092301

    1H

    30M

    1W

    1D )

    @IN NS dns.nihao.com.

    dns.nihao.com.IN A172.18.16.137

    @IN MX mail

    mailIN A1.1.1.2

    wwwIN A119.75.218.70

    重启DNS服务后测试成功

    [21:48root@centos6.8~]#service named restart

    Stopping named:[OK]

    Starting named:[OK]

    [root@localhost~]#dig www.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>www.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:33430

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;www.nihao.com.INA

    ;; ANSWER SECTION:

    www.nihao.com.86400INA119.75.218.70

    ;; AUTHORITY SECTION:

    nihao.com.86400INNSdns.nihao.com.

    ;; ADDITIONAL SECTION:

    dns.nihao.com.86400INA172.18.16.137

    ;; Query time:3msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Fri Sep2322:37:462016

    ;; MSG SIZErcvd:81

    [root@localhost~]#dig mail.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>mail.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:45751

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;mail.nihao.com.INA

    ;; ANSWER SECTION:

    mail.nihao.com.86400INA1.1.1.2

    ;; AUTHORITY SECTION:

    nihao.com.86400INNSdns.nihao.com.

    ;; ADDITIONAL SECTION:

    dns.nihao.com.86400INA172.18.16.137

    ;; Query time:1msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Fri Sep2322:37:542016

    ;; MSG SIZErcvd:82

    反向解析步骤:注意:由于正向解析和反向解析用的是不同的数据库,所以必须要新建一个zone和对应的RR资源记录

            (1)按需修改named.conf,与正向保持一致即可

            (2)建立需要添加的域名,这里在/etc/namd.rfc1912.zones文件添加相应的域名记录

    【注意:改域名的名字不能顺便起,要按相应的IP或IP段反写,并加上.in-addr.arpa,否则反向解析会不成功】

            (3)添加相应的资源记录表格,根据配置文件的定义,在/var/named目录下建立相应的RR

    【注意:SOA记录与正向保持一致即可,另外不需要添加A记录,但是需要要有NS记录,同时VALUE值要写上全称,否则会加上默认的@GENERATE:第二步取的反向域名的名字】

            (4)修改RR的属主属组为named,同时修改相关权限,重启DNS服务即可生效

    在最后添加反向解析域名:

    [11:03root@centos6.8/var/named]#cat/etc/named.rfc1912.zones

    // named.rfc1912.zones:

    //

    // Provided by Red Hat caching-nameserver package

    //

    // ISC BIND named zone configuration for zones recommended by

    // RFC 1912 section 4.1 : localhost TLDs and address zones

    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

    // (c)2007 R W Franks

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    zone"localhost.localdomain"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"localhost"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"1.0.0.127.in-addr.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"0.in-addr.arpa"IN {

    type master;

    file"named.empty";

    allow-update { none; };

    };

    zone"nihao.com"IN {

    type master;

    file"nihao.zone";

    };

    zone"16.18.172.in-addr.arpa"IN {

    type master;

    file"172.18.16.zone";

    };

    新建反向解析的RR

    [11:11root@centos6.8/var/named]#cat172.18.16.zone

    $TTL86400

    @IN SOA dns.nihao.com. admin.nihao.com. (

    2016092301

    1H

    30M

    1W

    1D )

    @IN NS dns.nihao.com.//NS记录是必须的

    @INMX10mail.nihao.com.//要写上全程,否则会自动补上方向域名:16.18.172.in-addr.arpa.

    111IN PTRwww.nihao.com.

     222IN PTR mail.nihao.com.

    重启服务测试,正常:

    [root@localhost~]#dig-x172.18.16.111@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>-x172.18.16.111@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:60893

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;111.16.18.172.in-addr.arpa.INPTR

    ;; ANSWER SECTION:

    111.16.18.172.in-addr.arpa.86400INPTRwww.16.18.172.in-addr.arpa.

    ;; AUTHORITY SECTION:

    16.18.172.in-addr.arpa.86400INNSdns.nihao.com.

    ;; ADDITIONAL SECTION:

    dns.nihao.com.86400INA172.18.16.137

    ;; Query time:2msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Sat Sep2410:52:482016

    ;; MSG SIZErcvd:105

    [root@localhost~]#dig-x172.18.16.222@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>-x172.18.16.222@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:48589

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;222.16.18.172.in-addr.arpa.INPTR

    ;; ANSWER SECTION:

    222.16.18.172.in-addr.arpa.86400INPTRmail.nihao.com.

    ;; AUTHORITY SECTION:

    16.18.172.in-addr.arpa.86400INNSdns.nihao.com.

    ;; ADDITIONAL SECTION:

    dns.nihao.com.86400INA172.18.16.137

    ;; Query time:2msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Sat Sep2411:03:092016

    ;; MSG SIZErcvd:106

    3、搭建主从DNS服务器

    所谓的主从,并不是指主DNS服务器解析不出来进而到从DNS服务器请求解析,而是当主DNS服务器down机了,才会到从DNS服务器请求解析,因为所有的DNS数据库在所有的DNS服务器都是相同的,一台DNS服务器解析不出来,其他的DNS服务也解析不出来

    有几点需要注意:

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

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

    因此主从DNS服务器的部署很简单(这里仅演示正向查询,反向查询再添加一个反向zone记录即可):

          (1)主DNS的RR记录添加一天指向从DNS的NS记录

          (2)从DNS添加相同zone,并且把RR记录放置在/var/named/slaves/目录中即可

    定义从区域的方法:

    zone "ZONE_NAME" IN {

    type slave;

    masters { MASTER_IP; };

    file "slaves/ZONE_NAME.zone";

    };

          (3)修改相关的属组属主和权限,重启named服务即可

    DNS添加NS指向从DNS

    [11:31root@centos6.8/var/named]#cat!$

    cat nihao.zone

    $TTL86400

    @IN SOA dns.nihao.com. admin.nihao.com. (

    2016092301

    1H

    30M

    1W

    1D )

    @IN NS dns.nihao.com.

    @IN NS dns1.nihao.com.

    dnsIN A172.18.16.137

    dns1IN A172.18.16.113

    wwwIN A172.18.16.111

    @IN MX10mail

    mailIN A172.18.16.222

    设置从DNSzone

    [11:38root@localhost.localdomain~]#cat/etc/named.rfc1912.zones

    // named.rfc1912.zones:

    //

    // Provided by Red Hat caching-nameserver package

    //

    // ISC BIND named zone configuration for zones recommended by

    // RFC 1912 section 4.1 : localhost TLDs and address zones

    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

    // (c)2007 R W Franks

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    zone"localhost.localdomain"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"localhost"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"1.0.0.127.in-addr.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"0.in-addr.arpa"IN {

    type master;

    file"named.empty";

    allow-update { none; };

    };

    zone"nihao.com"IN {

    type slave;

    file"slaves/nihao.com.zone";

    masters {172.18.16.137; };

    };

    [11:37root@localhost.localdomain~]#service named restart

    Stopping named:.[OK]

    Starting named:[OK]

    [11:38root@localhost.localdomain~]#ll/var/named/slaves/

    total4

    -rw-r--r--.1named named379Sep2411:38nihao.com.zone#已经自动同步RR记录

    测试:主机down(停掉DNS服务),从DNS正常工作

    [11:40root@centos6.8/var/named]#service named stop

    Stopping named:.[OK]

    [11:41root@centos6.8/var/named]#dig www.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>www.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; connection timed out; no servers could be reached

    [11:41root@centos6.8/var/named]#dig www.nihao.com@172.18.16.113

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>www.nihao.com@172.18.16.113

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:57600

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;www.nihao.com.INA

    ;; ANSWER SECTION:

    www.nihao.com.86400INA172.18.16.111

    ;; AUTHORITY SECTION:

    nihao.com.86400INNSdns.nihao.com.

    ;; ADDITIONAL SECTION:

    dns.nihao.com.86400INA172.18.16.137

    ;; Query time:9msec

    ;; SERVER:172.18.16.113#53(172.18.16.113)

    ;; WHEN:Sat Sep2411:42:512016

    ;; MSG SIZErcvd:81

    4、实现DNS子域

    子域授权的实现:假我们一家公司获得了某一个域的使用权、而我们想在这个域下分出几个子域来分别分给一些部门使用、这样也方便管理、举个例子:nihao.com下有两个子域、分别是tech.nihao.com、fin.nihao.com、而他们两个下面也他别有自己的www和mail等主机、而每一个域内最主要的一台主机就是dns主机、所谓子域授权就是在父域的配置文件中添加如下项:

    实现DNS子域步骤:

          (1)要授权给谁要明确说明、也就是授权的子区域名称:在父域RR中添加一条NS指向子域的DNS

          (2)按照前面的步骤配置子域的DNS服务器即可

    就是这么简单,下面来实验演示:

    在父域RR中添加一条NS指向子域的DNS

    [13:38root@centos6.8/var/named]#cat/var/named/nihao.zone

    $TTL86400

    @IN SOA dns.nihao.com. admin.nihao.com. (

    2016092301

    1H

    30M

    1W

    1D )

    @IN NS dns.nihao.com.

    dnsIN A172.18.16.137

    wwwIN A172.18.16.111

    @IN MX10mail

    mailIN A172.18.16.222

    techIN NS dns.tech

    dns.techIN A172.18.16.113

    在子域DNS服务器建立zone和RR

    [13:38root@localhost.localdomain~]#cat/etc/named.rfc1912.zones

    // named.rfc1912.zones:

    //

    // Provided by Red Hat caching-nameserver package

    //

    // ISC BIND named zone configuration for zones recommended by

    // RFC 1912 section 4.1 : localhost TLDs and address zones

    // and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt

    // (c)2007 R W Franks

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    zone"localhost.localdomain"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"localhost"IN {

    type master;

    file"named.localhost";

    allow-update { none; };

    };

    zone"1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"1.0.0.127.in-addr.arpa"IN {

    type master;

    file"named.loopback";

    allow-update { none; };

    };

    zone"0.in-addr.arpa"IN {

    type master;

    file"named.empty";

    allow-update { none; };

    };

    zone"tech.nihao.com"IN {

    type master;

    file"tech.nihao.com.zone";

    };

    [13:45root@localhost.localdomain~]#cat/var/named/tech.nihao.com.zone

    $TTL1D

    @IN SOA dns.tech.nihao.com. admin.nihao.com. (

    2016092401

    1H

    30M

    1W

    1D

    )

    @IN NS dns

    dnsIN A172.18.16.113

    wwwIN A1.1.1.1

    @IN MX10mail

    mailIN A2.2.2.2

    测试解析子域机器成功

    [13:37root@localhost.localdomain~]#dig www.tech.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>www.tech.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:44573

    ;; flags:qr rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:0

    ;; QUESTION SECTION:

    ;www.tech.nihao.com.INA

    ;; ANSWER SECTION:

    www.tech.nihao.com.86400INA1.1.1.1

    ;; AUTHORITY SECTION:

    tech.nihao.com.86400INNSdns.tech.nihao.com.

    ;; Query time:241msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Sat Sep2413:38:182016

    ;; MSG SIZErcvd:70

    [13:38root@localhost.localdomain~]#dig mail.tech.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>mail.tech.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:6140

    ;; flags:qr rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:0

    ;; QUESTION SECTION:

    ;mail.tech.nihao.com.INA

    ;; ANSWER SECTION:

    mail.tech.nihao.com.86400INA2.2.2.2

    ;; AUTHORITY SECTION:

    tech.nihao.com.86400INNSdns.tech.nihao.com.

    ;; Query time:4msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Sat Sep2413:38:282016

    ;; MSG SIZErcvd:71

    5、实现DNS视图view

    Bind 9开始,bind支持视图功能。什么是视图呢?就是以某种特殊的方式根据用户来源的不同而返回不同的查询结果。比如同样是访问www.baidu.com,DNS返送给电信用户和联通用户的IP地址是不一样的,这样既可以达到分流效果,也提高了用户的访问速度,在CDN中应用较广泛。

    需要注意的是:

          (1)、如果使用了视图的功能,那么配置文件中的所有zone区域都要必须写在视图里面,如,配置文件里默认要配置的三个区域,根、127.0.0.1、1.0.0.127.in-addr.arpa都要写入视图。

          (2)、在acl中定义IP地址,IP地址的写法可以是单个IP地址也可以是一个IP地址段加掩码,如:192.168.0.0/24。

          (3)、视图是根据配置文件从上往下匹配的,所以希望优先访问的资源记录文件,区域应该尽量写前面。

          (4)、如果定义的若干个视图的IP地址不全的话,那么可以在最后定义一个默认视图,match-clients选项中的IP地址写上any,代表如果此次访问的IP地址上面没有一个能匹配到,则在此处归类。

    因此,实现DNS试图view步骤:

          (1):修改配置文件named.conf,,定义相应的acl和view

          (2):创建每个view的zone对于的RR文件

          (3):重启DNS服务后测试

    下面来进行模拟实验:

    规划:172.18.16.137的这个用户访问www.nihao.com的IP地址是1.1.1.1

    172.18.16.113的这个用户访问www.nihao.com的IP地址是2.2.2.2(我的机器少只能模拟两个主机,这里写上网段也可以)

    说明,这里仅实验最简单的view,只实现正向查询,并没有包括根和反向查询,想添加直接写上相应的内容即可

    编辑named.conf文件,创建相应的acl和view:

    [15:56root@centos6.8/var/named]#cat/etc/named.conf

    //

    // named.conf

    //

    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

    // server as a caching only nameserver (as a localhost DNS resolver only).

    //

    // See /usr/share/doc/bind*/sample/ for example named configuration files.

    //

    acl Anet {

    172.18.16.137;

    };

    acl Bnet {

    172.18.16.113;

    };

    options {

    listen-on port53{ any; };

    listen-on-v6 port53{::1; };

    directory"/var/named";

    dump-file"/var/named/data/cache_dump.db";

    statistics-file"/var/named/data/named_stats.txt";

    memstatistics-file"/var/named/data/named_mem_stats.txt";

    allow-query{ any; };

    recursion yes;

    dnssec-enable yes;

    dnssec-validation yes;

    /* Path to ISC DLV key */

    bindkeys-file"/etc/named.iscdlv.key";

    managed-keys-directory"/var/named/dynamic";

    };

    view Anet {

    match-clients { Anet; };

    zone"nihao.com"IN {

    type master;

    file"Anet.nihao.com.zone";

    };

    };

    view Bnet {

    match-clients { Bnet;};

    zone"nihao.com"IN {

    type master;

    file"Bnet.nihao.com.zone";

    };

    };

    view Default {

    match-clients {any;};

    zone"nihao.com"IN {

    type master;

    file"Bnet.nihao.com.zone";

    };

    };

    创建每个view的zone对于的RR文件

    [15:59root@centos6.8/var/named]#cat/var/named/Anet.nihao.com.zone

    $TTL86400

    @IN SOA ns.nihao.com. admin.nihao.com. (

    2016092401

    30M

    10M

    1W

    1D

    )

    @IN NS ns

    nsIN A172.18.16.137

    wwwIN A1.1.1.1

    [15:59root@centos6.8/var/named]#cat/var/named/Bnet.nihao.com.zone

    $TTL86400

    @IN SOA ns.nihao.com. admin.nihao.com. (

    2016092401

    30M

    10M

    1W

    1D

    )

    @IN NS ns

    nsIN A172.18.16.137

    wwwIN A2.2.2.2

    测试,同样是访问www.nihao.com,,但是DNS返回的IP不一样,实现了所谓的智能DNS效果

    [15:59root@centos6.8/var/named]#ifconfig

    eth0Link encap:EthernetHWaddr00:0C:29:7D:87:20

    inet addr:172.18.16.137Bcast:172.18.16.255Mask:255.255.255.0

    inet6 addr:fe80::20c:29ff:fe7d:8720/64Scope:Link

    UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1

    RX packets:481348errors:0dropped:0overruns:0frame:0

    TX packets:18543errors:0dropped:0overruns:0carrier:0

    collisions:0txqueuelen:1000

    RX bytes:44699057(42.6MiB)TX bytes:2262423(2.1MiB)

    loLink encap:Local Loopback

    inet addr:127.0.0.1Mask:255.0.0.0

    inet6 addr:::1/128Scope:Host

    UP LOOPBACK RUNNINGMTU:65536Metric:1

    RX packets:325errors:0dropped:0overruns:0frame:0

    TX packets:325errors:0dropped:0overruns:0carrier:0

    collisions:0txqueuelen:0

    RX bytes:32316(31.5KiB)TX bytes:32316(31.5KiB)

    [16:00root@centos6.8/var/named]#digwww.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>www.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:46531

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;www.nihao.com.INA

    ;; ANSWER SECTION:

    www.nihao.com.86400INA1.1.1.1

    ;; AUTHORITY SECTION:

    nihao.com.86400INNSns.nihao.com.

    ;; ADDITIONAL SECTION:

    ns.nihao.com.86400INA172.18.16.137

    ;; Query time:2msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Sat Sep2416:01:032016

    ;; MSG SIZErcvd:80

    [15:56root@localhost.localdomain~]#ifconfig

    eth0Link encap:EthernetHWaddr00:0C:29:90:2E:03

    inet addr:172.18.16.113Bcast:172.18.16.255Mask:255.255.255.0

    inet6 addr:fe80::20c:29ff:fe90:2e03/64Scope:Link

    UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1

    RX packets:60372errors:0dropped:0overruns:0frame:0

    TX packets:10143errors:0dropped:0overruns:0carrier:0

    collisions:0txqueuelen:1000

    RX bytes:16734660(15.9MiB)TX bytes:1024521(1000.5KiB)

    loLink encap:Local Loopback

    inet addr:127.0.0.1Mask:255.0.0.0

    inet6 addr:::1/128Scope:Host

    UP LOOPBACK RUNNINGMTU:65536Metric:1

    RX packets:99errors:0dropped:0overruns:0frame:0

    TX packets:99errors:0dropped:0overruns:0carrier:0

    collisions:0txqueuelen:0

    RX bytes:11851(11.5KiB)TX bytes:11851(11.5KiB)

    [15:56root@localhost.localdomain~]#dig www.nihao.com@172.18.16.137

    ;<<>>DiG9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6<<>>www.nihao.com@172.18.16.137

    ;; global options:+cmd

    ;; Got answer:

    ;;->>HEADER<<-opcode:QUERY, status:NOERROR, id:63334

    ;; flags:qr aa rd ra; QUERY:1, ANSWER:1, AUTHORITY:1, ADDITIONAL:1

    ;; QUESTION SECTION:

    ;www.nihao.com.INA

    ;; ANSWER SECTION:

    www.nihao.com.86400INA2.2.2.2

    ;; AUTHORITY SECTION:

    nihao.com.86400INNSns.nihao.com.

    ;; ADDITIONAL SECTION:

    ns.nihao.com.86400INA172.18.16.137

    ;; Query time:3msec

    ;; SERVER:172.18.16.137#53(172.18.16.137)

    ;; WHEN:Sat Sep2415:56:532016

    ;; MSG SIZErcvd:80

    三、动态更新域名

    可以使用nsupdate命令动态更新域名。

    a)使用格式(http://www.xiaobo.li/?p=254)

          > server 192.168.0.1 53

          local address [ port ]

          发送nsupdate请求时,使用的本地地址和端口.

          zone zonename

          指定需要更新的区名.

          class classname

          指定默认类别.默认的类别是IN.

          key name secret

          指定所有更新使用的密钥.

          prereq nxdomain domain-name

          要求domain-name中不存在任何资源记录.

          prereq yxdomain domain-name

          要求domain-name存在,并且至少包含有一条记录.

          prereq nxrrset domain-name [class ] type

          要求domain-name中没有指定类别的资源记录.

          prereq yxrrset domain-name [class ] type

          要求存在一条指定的资源记录.类别和domain-name必须存在.

          update delete domain-name [ ttl] [ class ] [ type [ data... ] ]

          删除domain-name的资源记录.如果指定了type和data,仅删除匹配的记录.

          update add domain-name ttl [class ] type data…

          添加一条资源记录.

          show

          显示自send命令后,所有的要求信息和更新请求.

          send

          将要求信息和更新请求发送到DNS服务器.等同于输入一个空行.

    b)遇到的问题

          在使用nsupdate的过程中,在输入正确命令的情况下仍返回REFUSE的错误,日志给的提示是,jnl文件不能创建,在查找了一些资料后,发现是BIND数据目录(BIND存放zone文件的目录)没有设置好权限,在敲入chmod命令给目录设置更高权限后,问题得到解决。

    相关文章

      网友评论

          本文标题:BIND的安装与使用

          本文链接:https://www.haomeiwen.com/subject/rnzkwxtx.html