Linux配置DNS以及dns常用测试工具使用

Doman name Server 域名服务器

协议(53/udp 53/tcp)

Tcp:面向连接协议

Udp:无连接协议

本地解析配置文件:hosts

/etc/host  //linux下

%windows%/system32/drivers/etc/hosts  //window下

一级域:

Com,edu,mil,gov,net,org,int
 

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

 根服务器:全球共13组跟服务器。

DNS服务器的类型:

 主DNS服务器

 辅助DNS服务器

 缓存DNS服务器

 转发器

{主DNS:维护所负责解析的域内解析库服务器,解析库有管理维护;

从DNS:从主DNS服务器或者其他的DNS服务器“复制”来的(区域传送)解析库}

 

序列号:解析库版本号,每次更改之后,主服务器的版本+1;

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

重试时间:从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔;

过期时间:在某时间内,主服务器没相应,从服务器罢免所有解析服务;

 

区域传送的两种方式:完全传送和增量传送。

递归查询:发送一次请求即可完成查询。缓存服务器属于递归查询。

迭代查询:发送一次请求,会有答案,或对或错。

 

一次完成DNS查询:

   客户端-->hosts文件-->dns server递归查询(recursion) /local cache/server cache-->迭代查询(interation)

 

区域解析库-资源记录组成

 记录类型:

Soa:起始授权记录,一个区域解析库有且仅能有一个soa,必须出现在第一条。

A:正向 fqdn-ip

Ptr:反向解析 ip-fqdn

NS:表明当前区域的DNS服务器

Cname:别名

Mx:邮件交换记录

 

资源记录定义的格式:

语法:name [ttl]  IN rr_type  value

 

注意:

1.ttl可以从全局继承

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

3.一个域名指向多ip,此时DNS会轮询方式响应。

4.多域名可以指向一个ip.

SOA记录:

    Name:当前区域的名称,linuxsec.cn

    Value:有多部分组成

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

(2)当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用.替换,如:admin.linux.cn

(3)主从服务器协调属性的定义以及否定的答案统一的TTL

如:

Linuxsec.cn   86400  in   soa  ns.linuxsec.cn  admin.linusec.cn.(

001;序列号

2h ;刷新时间

10m;重试时间

1w ;过期时间

1d ;否定答案的ttl

)

Ns记录:

 name:当前区域的名字

 value:当前区域的某个DNS服务器的名字,如:ns.linusec.cn 一个区域可有多个

 

如:

linuxsec.cn in ns ns1.linuxsec.cn

    linuxsec.cn in ns ns2.linuxsec.cn

注意:

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

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

 

Mx记录:

 name:当前区域

 value:当前区域某个邮件服务器的主机

 一个区域内,MX可以有多个,但是每个记录的value值之前都应该有个数据(1-99),表示优先级。

 

如:

linuxsec.cn  in mx 10 mx1.linuxsec.cn

             in mx 20 mx2.linuxsec.cn

注意:

1.相对Mx记录而言,任何一个Mx记录后面的服务器名称,都应该在后续有一个A记录

A记录:

 name:某主机的fqdn,如:www.linuxsec.cn

 value:主机对应主机的ip地址

如:

www.linuxsec.cn.  in a 1.1.1.1

www.linuxsec.cn.  in a 1.1.1.2

 

www.linuxsec.cn in a 1.1.1.3

www.linuxsec.cn in a  1.1.1.4

 

注意:可以使用*域名解析  

*.linuxsec.cn in a 1.1.1.4

避免用户输入错误名称时候给的错误答案,可以通过泛域名解析到指定地址。

AAAA记录:ipv6

ptr记录:

 name:ip,有特定格式,把ip反过来写,1.2.3.4,写4.3.2.1,特定后缀in-addr-arpa ,4.3.2.1.in-addra.arpa

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

cname记录:

name:别名fqdn.

value:正名的dqdn

如:

web.linuxsec.cn  in cname  www.linuxsec.cn

 

bind服务安装前配置:

# yum list  all  bind* 查看bind的安装包

# rpm -qi bind-libs 查看libs安装包

# rpm -qlbind-utils 查看工具包 dig nslookup host

# yum info  bind-chroot  查看未安装包的信息

# rpm -ql bind |less  查看bind的安装完成之后相关文件

bind

/etc/rc.d/init.d/named 脚本文件路径

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

/var/named/zone_name.zone 区域解析库文件

/etc/sysconfig/named 脚本的配置文件

rndc:remote name domain controller 远程域名控制 (默认和bind安装在同一服务器,且只能通过127.0.0.1来连接named进程,提供辅助性的管理)

 

注意:

1.一台物理服务器可以同时为多个区域文件提供解析

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

3.应该有两个特殊区域。实现localhost和本地回环地址的解析库。localhost本地/loopback回环

bind.x86_64   主要安装包

bind-chroot.x86_64 程序目录限制 /var/named/chroot/

bind-utils.x86_64  DNS测试的工具包

bind-libs.i686  库文件

 

一.bind服务的安装

# yum install bind  -y

# rpm -ql bind |less 查看生成的配置文件

 

/etc/named.conf  主配置文件

全局:option {};

日志:logging{};

区域:本机为哪些区域解析,就要定义哪些区域,zone "zone_name" in {};

include 定于区域文件的路径

#service named reload //重新加载配置文件

#endc reload  重新载入配置文件

ss -tunlp | grep :53 //查看53端口

# cp -v /etc/named.conf{,.bak} 复制named.conf配置文件

修改配置文件中的监听地址:listen-on port 53 { 127.0.0.1;192.168.118.128; };

# /etc/init.d/named  restart  重启之后查看端口

# ss -an | grep :53

LISTEN     0      3                       ::1:53                      :::*    

LISTEN     0      3           192.168.118.128:53                       *:*    

LISTEN     0      3                 127.0.0.1:53                       *:*  

修改相关配置文件

        allow-query    { any; };

recursion yes; //是否开启递归查询

        dnssec-enable no;

        dnssec-validation no;

        dnssec-lookaside auto;

        /* Path to ISC DLV key */

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

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

二.配置主DNS服务器:

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

zone "linuxsec.cn" IN {

        type {master|slave|hint|foward};

        file"linuxsec.cn.zone";

};

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

1.宏定义:@ttl

2.资源记录:

 

linuxsec.cn.zone 位置是相对于配置文件中的/var/named/**.zone

 

 

$ttl 1d

@       IN      SOA     ns1.linuxsec.cn admin.linuxsec.cn (

                        001

                        1h

                        5m

                        7d

                        1d)

        IN      NS      ns1.linuxsec.cn.

        IN      NS      ns2.linuxsec.cn.

        IN      MX  20  mx2.linuxsec.cn.

ns1     IN      A       192.168.118.128

ns2     IN      A       192.168.118.129

www     IN      A       192.168.118.128

ftp     IN      CNAME   www

~

 

# named-checkconf 检查DNS配置文件是否有错

# named-checkzone  "linuxsec.cn.zone"  /var/named/linuxsec.cn.zone 检查DNS区域文件是否有错

zone linuxsec.cn.zone/IN: loaded serial 1

 

# ps aux | grep named 查看named服务运行状态

# ll /etc/named.conf -l

-rw-r-----. 1 root named 1021 4月  25 08:22 /etc/named.conf

 

安全期间把文件权限修改640,和把该文件的属组改成named

# chmod  640 /var/named/linuxsec.cn.zone

# chown  :named linuxsec.cn.zone

# rndc status  查看服务器当前的系统状态

 

重启之后在真机测试:

C:\Users\Administrator>nslookup

DNS request timed out.

    timeout was 2 seconds.

默认服务器:  UnKnown

Address:  192.168.118.128

 

> www.linuxsec.cn

服务器:  UnKnown

Address:  192.168.118.128

 

名称:    www.linuxsec.cn

Address:  192.168.118.128

 

 

反向区域:

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

192.168.118.128.in-addr.arpa

1)定义区域

zone "zone_name"  in {

    type {master | slave| forward};

    file "网络地址.zome"

};

 

zone "linuxsec.cn"IN {

        type master;

        file "linuxsecptr.cn.zone";

 

};

2)提供区域解析库文件

注意:不需要mx和A,以ptr为主

 

vim -o linuxsec.cn.zone  linuxptr.cn.zone 对照编写。ctrl+o 跳转下面

 

$ttl 1d

$origin  118.168.192.in-addr-arpa.

@       IN      SOA     ns1.linuxsec.cn admin.linuxsec.cn. (

                        001

                        1h

                        5m

                        7d

                        1d)

        IN      NS      ns1.linuxsec.cn.

        IN      NS      ns2.linuxsec.cn.

128     IN      PTR     ns1.linuxsec.cn.

128     IN      PTR     www.linuxsec.cn.

127     IN      PTR     www.linuxsec.cn.

修改目录权限和文件属组

# chmod  640  linuxptr.cn.zone

# chmod :named  linuxptr.cn.zone

 

 

dig 命令:

dig用于测试dns系统,因为不会查询host文件进行解析。

# dig --help

Invalid option: --help

Usage:  dig [@global-server] [domain] [q-type] [q-class] {q-opt}

            {global-d-opt} host [@local-server] {local-d-opt}

            [ host [@local-server] {local-d-opt} [...]]

 

Use "dig -h" (or "dig -h | more") for complete list of options

dig的使用:

dig -t -A www.linuxsec.cn @DNS地址  查询A记录

dig  -t -A  linuxsec.cn  +trace跟踪解析过程  

dig  -t -recurse 递归解析,前提服务器需要开启递归

dig -t axfr    linuxsec.cn  @ 192.168.118.128  模拟区域传送

在本地测试:

[root@local named]# dig    -t -A www.linuxsec.cn  @192.168.118.128

;; Warning, ignoring invalid type -A

 

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6_6.2 <<>> -t -A www.linuxsec.cn @192.168.118.128

;; global options: +cmd

;; Got answer:

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

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

 

;; QUESTION SECTION:

;www.linuxsec.cn.               IN      A

 

;; ANSWER SECTION:

www.linuxsec.cn.        86400   IN      A       192.168.118.121

www.linuxsec.cn.        86400   IN      A       192.168.118.128

 

;; AUTHORITY SECTION:

linuxsec.cn.            86400   IN      NS      ns2.linuxsec.cn.

linuxsec.cn.            86400   IN      NS      ns1.linuxsec.cn.

 

;; ADDITIONAL SECTION:

ns1.linuxsec.cn.        86400   IN      A       192.168.118.128

ns2.linuxsec.cn.        86400   IN      A       192.168.118.129

 

;; Query time: 1 msec

;; SERVER: 192.168.118.128#53(192.168.118.128)

;; WHEN: Sat Apr 25 09:11:26 2015

;; MSG SIZE  rcvd: 133

 

host命令:

# host --help

host: illegal option -- -

Usage: host [-aCdlriTwv] [-c class] [-N ndots] [-t type] [-W time]

            [-R number] [-m flag] hostname [server]

       -a is equivalent to -v -t ANY

       -c specifies query class for non-IN data

       -C compares SOA records on authoritative nameservers

       -d is equivalent to -v

       -l lists all hosts in a domain, using AXFR

       -i IP6.INT reverse lookups

       -N changes the number of dots allowed before root lookup is done

       -r disables recursive processing

       -R specifies number of retries for UDP packets

       -s a SERVFAIL response should stop query

       -t specifies the query type

       -T enables TCP/IP mode

       -v enables verbose output

       -w specifies to wait forever for a reply

       -W specifies how long to wait for a reply

       -4 use IPv4 query transport only

       -6 use IPv6 query transport only

       -m set memory debugging flag (trace|record|usage)

如:

host -t -A  linuxsec.cn 192.168.118.128

host -t NS  linuxsec.cn 192.168.118.128

host -t MX  linuxsec.cn 192.168.118.128

 

nslookup命令:

server  8.8.8.8 使用Dns服务器的地址

 set q=mx   指定查询资源的类型

name  要查询的命令

 

word文档下载:点击下载

CentOS-Base.repo下载

 


发表评论

登录 后发表评论.