DNS:Domain Name Server

   DNS其功能是实现名称解析主要包括两个方面:

       正向解析:FQDN(完全主机名)--> IP

       逆向解析:IP --> FQDN(完全主机名)


   DNS查询只有有两种:

       1.迭代查询interation  (查找时会得到参考答案的为迭代查询,客户端到根域的查找过程为迭代查询)

       2.递归查询:recursion (查找时会得到最终答案的为递归查询)

DNS工作原理:

       场景:假设客户机查询www.magedu.com;则DNS系统查询主机名称解析过程如下图所示:

wKiom1MoPgThc9ewAAFngpEsB98909.jpg

DNS的记录:用于标明资源的作用。

   常见的资源类型:

       SOA:Start Of Authority(起始授权认证)

       NS:Name Server(域名服务器)

       MX:Mail eXchange(邮件服务器)

       A:Address(正向记录:主机名到IP地址)

       PTR:PointeR(反向记录:IP地址到主机名)

       AAAA:Address(主机名到Ipv6)

       CNAME:Canonicale Name(别名记录)


场景:

        注册一个域名: mageedu.com 对应的网段:172.16.19.且该DNS服务器提供以下服务:

           mail:172.16.19.2

           www  :172.16.19.3

           pop-->mail

           ftp-->www

           dns:172.16.0.1

       正确配置好yum源

   1.使用yum install 安装 bind


# yum install -y bind.i686

   2.查看所有安装文件


# rpm -ql bind.i6863

 3.编辑配置文件/etc/named.conf

      区域类型有 type:{hint(根)| master(主dns)| slave(辅助DNS)| forward(转发)}

//
// named.conf
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//全局选项
options {
directory       "/var/named";定义区域数据文件
recursion yes;               允许递归查询
};
// 定义日志
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
//定义根区域
zone "."IN {
type hint;
file "named.ca";
};
include"/etc/named.rfc1912.zones";


 4. 在/etc/named.rfc1912.zones文件最后加一个正向区域和一个添反向区域


zone "mageedu.com"IN {
type master;
file "mageedu.com.zone";
};
zone "19.16.172.in-addr.arpa"IN {
type master;
file "172.16.19.zone";
};

  5.为正向区域mageedu.com在/var/named目录下创建区域数据文件mageedu.com.zone

$TTL 86400
@       IN      SOA     dsn.mageedu.com. admin.mageedu.com (
2014031901;序列号,一般为十进制数不能超过十位通常为日期
1D ;刷新时间
12H ;重试时间,小于刷新时间
1D ;过期时间
12H ;否定答案的TTL)
IN      NS      dns
IN      MX 20mail
dns     IN      A       172.16.19.100
mail    IN      A       172.16.19.2
www     IN      A       172.16.19.3
pop     IN      CNAME   mail
ftp     IN      CNAME   www


   6.为反向区域19.16.172.in-addr.arpa在/var/named目录下创建区域数据文件172.16.19.zone

$TTL 86400
@       IN      SOA     dsn.mageedu.com. admin.mageedu.com (
2014031901
1D
12H
1D
12H )
IN      NS      dns.mageedu.com.
IN      MX 20mail.mageedu.com.
100IN      PTR     dns.mageedu.com.
2IN      PTR     mail.mageedu.com.
3IN      PTR     www.mageedu.com.


   7.改变文件的属组和属主以及权限

# chown  root:named /var/named/mageedu.com.zone /var/named/172.16.19.zone
# chmod 640/var/named/mageedu.com.zone /var/named/172.16.19.zone
# ls -l /var/named/mageedu.com.zone /var/named/172.16.19.zone
-rw-r----- 1root named 204Mar 1614:39/var/named/172.16.19.zone
-rw-r----- 1root named 225Mar 1614:38/var/named/mageedu.com.zone


   8.测试添加的区域和区域数据文件是否有错误

service named configtest
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
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: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0
zone mageedu.com/IN: loaded serial 2014031901
zone 19.16.172.in-addr.arpa/IN: loaded serial 2014031901

   9.启动named服务service named start 或 named -u named。

       我使用service named start启动服务失败,原因是不能产生足够的随机数,所以使用named -u named

# named -u named

   9.使用dig测试正向区域

# dig -t A www.mageedu.com @172.16.19.100
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t A www.mageedu.com @172.16.19.100
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17722
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;www.mageedu.com.       IN  A
;; ANSWER SECTION:
www.mageedu.com.    86400IN  A   172.16.19.3
;; AUTHORITY SECTION:
mageedu.com.        86400IN  NS  dns.mageedu.com.
;; ADDITIONAL SECTION:
dns.mageedu.com.    86400IN  A   172.16.19.100
;; Query time: 2msec
;; SERVER: 172.16.19.100#53(172.16.19.100)
;; WHEN: Sun Mar 1614:19:242014
;; MSG SIZE  rcvd: 83

  10.使用host测试反向区域

# host -t PTR 172.16.19.100
1.19.16.172.in-addr.arpa domain name pointer dns.mageedu.com.
# host -t PTR 172.16.19.2
2.19.16.172.in-addr.arpa domain name pointer mail.mageedu.com.
# host -t PTR 172.16.19.3
3.19.16.172.in-addr.arpa domain name pointer www.mageedu.com.


 11.模拟区域传送

# dig -t axfr mageedu.com
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> -t axfr mageedu.com
;; global options: +cmd
mageedu.com.        86400IN  SOA dsn.mageedu.com. admin.mageedu.com.mageedu.com. 201403190186400432008640043200
mageedu.com.        86400IN  NS  dns.mageedu.com.
mageedu.com.        86400IN  MX  20mail.mageedu.com.
dns.mageedu.com.    86400IN  A   172.16.19.100
ftp.mageedu.com.    86400IN  CNAME   www.mageedu.com.
mail.mageedu.com.   86400IN  A   172.16.19.2
pop.mageedu.com.    86400IN  CNAME   mail.mageedu.com.
www.mageedu.com.    86400IN  A   172.16.19.3
mageedu.com.        86400IN  SOA dsn.mageedu.com. admin.mageedu.com.mageedu.com. 201403190186400432008640043200
;; Query time: 2msec
;; SERVER: 172.16.19.100#53(172.16.19.100)
;; WHEN: Sun Mar 1615:12:072014
;; XFR size: 9records (messages 1, bytes 250)