高速缓存DNS

来源:互联网 发布:js中的选择器 编辑:程序博客网 时间:2024/05/29 04:01


################高速缓存DNS###############

 DNS -权威名称服务器

存储并提供某区域 ( 整个DNS域或DNS域的一部分)的实际数据。权威名称服务器的类型包括:

Master : 包含原始区域数据。有时称作主要名称服务器

Slave : 备份服务器 , 通过区域传送从Master服务器获得的区域数据的副本。有时称作次要名称服务

非权威 /递归名称服务器

客户端通过其查找来自权威名称服务器的数据。递归名称服务器的类型包括仅缓存名称服务器:仅用于查找,对于非重要数据之外的任何内容都不具有权威性

DNS 查找

客户端上的Stub解析器 将查询发送至/etc/resolv.conf中的名称服务器

如果名称服务器对于请求的信息具有权威性 ,会将权威答案发送至客户端

否则 ,如果名称服务器在其缓存中有请求的信息,则会将非权威答案发送至客户端

如果缓存只能该没有信息 ,名称服务器将搜索权威名称服务器以查找信息,从根区域开始,按照

DNS 层次结构向下搜素 , 直至对于信息具有权威性的名称服务器,以此为客户端获得答案。在此情况中

, ch称服务器将信息传递至客户端并在自己的缓存中保留一个副本,以备以后查找www.westos.orgDNS资源记录

• DNS 区域采用资源记录的形式存储信息。每条资源记录均具有一个类型, 表明其保留的数据类型

– A : 名称至 IPv4 地址

– AAAA : 名称至 IPv6 地址

– CNAME : 名称至 规范名称“ (包含A/AAAA记录的另

一个名称 )

– PTR : IPv4/IPv6地址至名称

– MX : 用于名称的邮件交换器( 向何处发送其电子邮件)

– NS : 域名的名称服务器

– SOA :” 授权起始 “ , DNS 区域的信息(管理信息)

www.westos.orgDNS排错

它显示来自 DNS 查找的详细信息,其中包括

为什么查询失败 :

– NOERROR : 查询成功

– NXDOMAIN : DNS服务器提示不存在这样的名称

– SERVFAIL : DNS服务器停机或DNSSEC响应

验证失败

– REFUSED : DNS服务器拒绝回答( 也许是出于

访问控制原因 )

www.westos.orgdig输出的部分内容

标题指出关于查询和答案的信息, 其中包括

响应状态和设置的任何特殊标记 ( aa表示

权威答案 ,等等)

– QUESTION : 提出实际的DNS 查询

– ANSWER : 响应 ( 如果有)

– AUTHORITY : 负责域/ 区域的名称服务器

– ADDITIONAL : 提供的其他信息 , 通常是关于名称服务器

底部的注释指出发送查询的递归名称服务器以及获得响应所花费的时间

www.westos.org缓存DNS服务器

BIND 是最广泛使用的开源名称服务器。在RHEL ,通过bind软件包提供

防火墙开启端口 53/TCP53/UDP

BIND 的主配置文件是 /etc/named.conf

/var/named 目录包含名称服务器所使用的其他数据文件

www.westos.org/etc/named.conf的语法

• // #至行末尾是注释;/**/ 之间的文本也是注释( 可以跨越多行)

指令以分号结束 (;)

许多指令认为地址匹配列表放在大括号中、以CIDR表示法表示的IP地址或子网列表中,或者命名的ACL(例如 any; [所有主机 ]none; [无主机] )

文件以 options块开始,其中包含控制named

如何运作的指令

• zone 块控制 named 如何查对于其具有权威性的

根名称服务器和区域

www.westos.org一些重要的options指令

•listen-on 控制 named 侦听的IPv4地址

•listen-on-v6 控制named 侦听的IPv6地址

•allow-query 控制哪些客户端可以向DNS 服务器询问信息

•forwarders 包含 DNS 查询将转发至的名称服务器的列表

( 而不是直接联系外部名称服务器; 在设有防火 墙的情况中

很有用 )

所有这些指令会将打括号中以分号分隔的元素视为地址匹配

列表 .

– listen-on { any; };

– allow-query { 127.0.0.1; 10.0.0.0/8 };

www.westos.org配置名称服务器

安装 bind软件包

– yum install -y bind

编辑 /etc/named.conf

listen-on port 53 { any; };

listen-on-v6 port 53 { any; };

allow-query { any; };

forwarders { 172.25.254.254; };

启动并启用 DNS 服务器

• systemctl start named

• systemctl enable named

desktopX进行测试

– dig classroom.example.com

 

 

1.配置dns服务

 服务端

[root@dns-server ~]# yum install bind -y

[root@dns-server ~]# systemctl restart named

[root@dns-server ~]# systemctl stop firewalld

[root@dns-server ~]# vim /etc/named.conf   ##主配置文件

[root@dns-server ~]# systemctl restart named

[root@dns-server ~]# cat /etc/named.conf

options {

    listen-onport 53 { any; };      ##访问主机的53端口

    listen-on-v6port 53 { ::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; };    ##允许任何地址来访问

       forwarders  { 172.25.254.250};   ##访问250服务器解析域名

   dnssec-enableyes;

  dnssec-validationno;

 

客户端

[root@dns-client ~]# yum install bind -y

[root@dns-client ~]# systemctl stop firewalld

[root@dns-client ~]# systemctl start named

[root@dns-client ~]# vim /etc/resolv.conf

[root@dns-client ~]# cat /etc/resolv.conf

# Generated by NetworkManager

search example.com

nameserver 172.25.254.200

[root@dns-client ~]# dig www.baidu.com  ##查询百度的ip

 

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> www.baidu.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 4729

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

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.baidu.com.INA

 

;; Query time: 4010 msec

;; SERVER: 172.25.254.200#53(172.25.254.200)

;; WHEN: Tue May 09 08:57:42 EDT 2017

;; MSG SIZE  rcvd: 42

 

2.dns解析

1)正向解析

服务端

[root@dns-server ~]# vim /etc/named.rfc1912.zones

[root@dns-server ~]# cat /etc/named.rfc1912.zones

zone "westos.com" IN {

    type master;

    file"westos.com.zone";

    allow-update{ none; };

[root@dns-server named]# cd /var/named

[root@dns-server named]# cp -p named.localhost westo.com.zone

[root@dns-server named]# vim westos.com.zone

[root@dns-server named]# cat westos.com.zone

$TTL 1D

@   IN SOA  dns.westos.com. rootwestos.com. (

                    0   ; serial

                    1D  ; refresh

                    1H  ; retry

                    1W  ; expire

                    3H)    ; minimum

         NS    dns.westos.com.

dns    A     172.25.254.200     ##dns服务器

www   A       172.25.254.100  ##指定www.westos.com的ip

music CNAME music.a.westos.com ##域名规范

music.a  A   172.25.254.200

music.a  A    172.25.254.100

westos.com. MX 1  172.25.254.100 ##邮件dns,MX1为邮件等级

 

[root@dns-server named]# systemctl restart named

客户端

[root@dns-client ~]# dig www.westos.com

 

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> www.westos.com

;; global options: +cmd

;; Got answer:

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

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

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;www.westos.com.INA

 

;; ANSWER SECTION:

www.westos.com.86400INA172.25.254.100

 

;; AUTHORITY SECTION:

westos.com.86400INNSdns.westos.com.

 

;; ADDITIONAL SECTION:

dns.westos.com.86400INA172.25.254.200

 

;; Query time: 1 msec

;; SERVER: 172.25.254.200#53(172.25.254.200)

;; WHEN: Tue May 09 09:55:38 EDT 2017

;; MSG SIZE  rcvd: 93

 

dig -t mx westos.com  ##查看邮件接收方的ip

mail root@westos.com  ##给westos.com 发送邮件

ctrl+d  ##结束

mailq ##查看邮件发送状态


*)多项解析dns服务器:(不同网段的客户机解析出的IP也不同)
 服务端:给server虚拟机增加一块网卡eth1,ip为172.25.2.11

     systemctl restart network
    cd /var/named
    cp -p westos.com.zonewestos.com.inter
    vim westos.com.inter

$TTL 1D

       @       IN SOA  dns.westos.com. root.westos.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )   ; minimum
                NS      dns.westos.com.
        dns             A       172.25.2.200
        www             A       172.25.2.100
        music           CNAME   music.a.westos.com.
        music.a         A      172.25.2.100
        music.a         A      172.25.2.200
        westos.com.     MX 1   172.25.2.100

       cp -p /etc/named.rfc1912.zones/etc/named.rfc1912.inter
    vim /etc/named.conf     ##主配置文件将原来的zone"."那一段注释掉,添加以下内容:

        view localnet {
            match-clients {172.25.254.0/24; };  ##254网段
            zone "." IN {
            type hint;
            file "named.ca";
            };
            include"/etc/named.rfc1912.zones";
        };

        view inter {
            match-clients {172.25.2.0/24; };  ##2网段
            zone "." IN {
            type hint;
            file"named.ca";
            };
            include"/etc/named.rfc1912.inter";
        };

       systemctl restart named
测试:
服务端:vim /etc/resolv.conf
     nameserver 172.25.254.200
     dig www.westos.com      ##查询的结果是172.25.254.100
真机:
    vim /etc/resolv.conf
    nameserver 172.25.2.11

    dig www.westos.com      ##查询的结果是172.25.2.100

(2)反向解析


服务端

[root@dns-server named]# vim /etc/named.rfc1912.zones

 50

 51 zone "254.25.172.in-addr.arpa" IN {     ##反向地址

 52         type master;

 53         file "westos.com.ptr";

 54         allow-update { none; };

 55 };

[root@dns-server named]# cd /var/named

[root@dns-server named]# ls

data     named.ca     named.localhost  slaves            westos.com.zone

dynamic  named.empty  named.loopback   westos.com.inter

[root@dns-server named]# cp -p named.loopback westos.com.ptr

[root@dns-server named]# vim westos.com.ptr

$TTL 1D

@       IN SOA  dns.westos.com. root.westos.com. (

                                        0       ; serial

                                        1D      ; refresh

                                        1H      ; retry

                                        1W      ; expire

                                        3H )    ; minimum

        NS      dns.westos.com.

dns     A       172.25.254.200

111     PTR     www.westos.com.

 

[root@dns-server named]# systemctl restart named

客户端

[root@dns-client ~]# dig -x 172.25.254.111

 

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> -x 172.25.254.111

;; global options: +cmd

;; Got answer:

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

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

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;111.254.25.172.in-addr.arpa.INPTR

 

;; ANSWER SECTION:

111.254.25.172.in-addr.arpa. 86400 INPTRwww.westos.com.

 

;; AUTHORITY SECTION:

254.25.172.in-addr.arpa. 86400INNSdns.westos.com.

 

;; ADDITIONAL SECTION:

dns.westos.com.86400INA172.25.254.200

 

;; Query time: 1 msec

;; SERVER: 172.25.254.200#53(172.25.254.200)

;; WHEN: Tue May 09 11:08:08 EDT 2017

;; MSG SIZE  rcvd: 118

 

3. dns更新

*)[root@dns-server named]# cp -p /var/named/westos.com.zone /mnt  ##备份源文件

[root@dns-server named]# vim /etc/named.rfc1912.zones

 25

 26 zone "westos.com" IN {

 27         type master;

 28         file "westos.com.zone";

 29         allow-update { 172.25.254.100; };  ##允许100这台主机更新

 30 };

 

[root@dns-server named]# chmod 770 /var/named   ##给用户和组77权限

[root@dns-server named]# setsebool -p named_write_master_zones 1  ##允许写入

 

*)Check

[root@dns-client ~]# nsupdate

> server 172.25.254.200       

> update add hello.westos.com 86400 A 172.25.254.222   ##增加域名     >update delete ##删除域名

> send

>

*)测试

[root@dns-server named]# vim /etc/resolv.conf

[root@dns-server named]# systemctl restart network

[root@dns-server named]# dig hello.westos.com

 

; <<>> DiG 9.9.4-RedHat-9.9.4-14.el7 <<>> hello.westos.com

;; global options: +cmd

;; Got answer:

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

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

 

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 4096

;; QUESTION SECTION:

;hello.westos.com.INA

 

;; ANSWER SECTION:

hello.westos.com.86400INA172.25.254.222      ##证明已更新

 

;; AUTHORITY SECTION:

westos.com.86400INNSdns.westos.com.

 

;; ADDITIONAL SECTION:

dns.westos.com.86400INA172.25.254.200

 

;; Query time: 0 msec

;; SERVER: 172.25.254.200#53(172.25.254.200)

;; WHEN: Tue May 09 11:31:27 EDT 2017

;; MSG SIZE  rcvd: 95

 systemctl restart named

vim /var/named/westos.com.zone  ##可看到更新同步

4. dnskey 更新

*)mk kilefile    ##制作钥匙

[root@dns-server named]# dnssec-keygen -a HMAC-MD5 -b 256 -n HOST westoskey   ##需要在server主机无规则敲击命令生成密码 256个字符

Kwestoskey.+157+35861

[root@dns-server named]# ls

data                           named.empty       westos.com.ptr

dynamic                        named.localhost   westos.com.zone

Kwestoskey.+157+35861.key      named.loopback    westos.com.zone.jnl

Kwestoskey.+157+35861.private  slaves

named.ca                       westos.com.inter

[root@dns-server named]# cat Kwestoskey.+157+35861.private

Private-key-format: v1.3

Algorithm: 157 (HMAC_MD5)

Key: Bl+NYzpuHiiWcSBzZHnBw74uaBvQdew22jYYiiEDxkI=

Bits: AAA=

Created: 20170509154111

Publish: 20170509154111

Activate: 20170509154111

 

*)mk key configfile

[root@dns-server named]# cp -p /etc/rndc.key /etc/westos.key

[root@dns-server named]# vim /etc/westos.key

 

  1 key "westoskey" {      ##钥匙名

  2         algorithm hmac-md5;

  3         secret "Bl+NYzpuHiiWcSBzZHnBw74uaBvQdew22jYYiiEDxkI="; ##钥匙

  4 };

 

*)config dns

 Vim /etc/named.conf

 43 include "/etc/westos.key";  ##添加此行

 Vim /etc/named.rfc1912.zones

 26 zone "westos.com" IN {

 27         type master;

 28         file "westos.com.zone";

 29         allow-update { key westoskey; }; ##允许密钥更新

 30 };

 

*)check

[root@dns-server named]# scp Kwestoskey.+157+35861.*root@172.25.254.100:/mnt

[root@dns-client mnt]# ls

Kwestoskey.+157+35861.key  Kwestoskey.+157+35861.private

[root@dns-client mnt]# nsupdate -k /mnt/Kwestoskey.+157+35861.private

> server 172.25.254.200

> update add hello.westos.com 86400 A 172.25.254.111

> send

 

5.dhcpd自动解析

 服务端

[root@dns-server ~]#yum install dhcp -y

[root@dns-server ~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

cp: overwrite‘/etc/dhcp/dhcpd.conf’? y

[root@dns-server ~]#vim /etc/dhcp/dhcpd.conf

7 option domain-name"westos.com";     ##域名

8 optiondomain-name-servers 172.25.254.200;  ##dns服务器

30 subnet 172.25.254.0netmask 255.255.255.0 {

31  range172.25.254.188 172.25.254.199;  ##ip池,任意分配

32  option routers172.25.254.254;  ##网关

14 ddns-update-styleinterim;   ##允许钥匙更新

34 key westos {

35    algorithm hmac-md5;

36      secret Bl+NYzpuHiiWcSBzZHnBw74uaBvQdew22jYYiiEDxkI=;

37 };

38

39 zone westos.com.{

40       primary 127.0.0.1;  ##回环接口ip

41       key westos;

42 }

[root@dns-server ~]#systemctl restart dhcpd

[root@dns-server ~]#systemctl restart named

[root@dns-server ~]#systemctl restart dhcpd

 客户端

[root@dns-client mnt]#hostnamectl set-hostname test.westos.com

[root@hhh ~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=dhcp

ONBOOT=yes

[root@dns-client mnt]# systemctl restart network

[root@dns-client mnt]# ifconfig

eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet172.25.254.188  netmask 255.255.255.0  broadcast 172.25.254.255

        inet6fe80::5054:ff:fe00:2a0b  prefixlen 64  scopeid 0x20<link>

        ether52:54:00:00:2a:0b  txqueuelen 1000  (Ethernet)

        RXpackets 6519  bytes 3169691 (3.0 MiB)

        RXerrors 0  dropped 0  overruns 0  frame 0

        TXpackets 2478  bytes 299400 (292.3 KiB)

        TXerrors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo:flags=73<UP,LOOPBACK,RUNNING>  mtu 65536

        inet127.0.0.1  netmask 255.0.0.0

        inet6::1  prefixlen 128  scopeid 0x10<host>

        loop txqueuelen 0  (Local Loopback)

        RXpackets 1575  bytes 136754 (133.5 KiB)

        RXerrors 0  dropped 0  overruns 0  frame 0

        TXpackets 1575  bytes 136754 (133.5 KiB)

        TXerrors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@dns-client mnt]# digserver.westos.com

; <<>> DiG9.9.4-RedHat-9.9.4-14.el7 <<>> server.westos.com

;; global options: +cmd

;; Got answer:

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

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

;; OPT PSEUDOSECTION:

; EDNS: version: 0,flags:; udp: 4096

;; QUESTION SECTION:

;test.westos.com. INA

;; ANSWER SECTION:

test.westos.com. 300IN A 172.25.254.188

;; AUTHORITY SECTION:

westos.com. 86400 IN NSdns.westos.com.

;; ADDITIONAL SECTION:

dns.westos.com. 86400IN A172.25.254.200

;; Query time: 1 msec

;; SERVER:172.25.254.200#53(172.25.254.200)

;; WHEN: Tue May 09 11:58:27 EDT 2017

;; MSG SIZE  rcvd:96

 

0 0