一.DNS的基本概念

DNS:domain name server
域名:www.baidu.com(主机名,FQDN,full qualified domain name,完全限定域名)


二.DNS的类型
主DNS服务器:数据的修改

DNS服务器类型
辅助DNS服务器:请求数据的同步
serial number
refresh
retry
expire
nagative answer TTL

缓存dns服务器
转发器


三.资源记录

数据库中的,每一个条目称作一个资源记录(resource record RR)
资源记录的格式:

NAME [TTL] IN RRT VALUE

www.magedu.com. IN A 192.168.1.1
192.168.1.1 INI PTR www.magedu.com.


资源记录类型:

SOA(START OF AUTHORITY)表明一个区域内部,主从DNS服务是如何同步数据以及起始授权对象是谁
 zone-name  TTL  IN  SOA  FQDN(起始授权主机,一般为主DNS服务器的FQDN) ADMINISTRATOR_MAILBOX(管理员邮箱地址) (
            serail number
            refresh
            retry
            expire
            nagative answer TTL   )
@表示当前区域的区域名称
时间单位:M(分钟) H(小时) D(天) W(周)默认单位为秒
管理员的邮箱格式为:admin.magedu.com.
 magedu.com.  600   IN   SOA   ns1.magedu.com.   admin.magedu.com. (
                  20170112 ;serial number
                  5H    ;refresh
                  5M    ;retry
                  1W    ;expire
                  2D    ;nagative answer TTL )


NS:name server zone name-->fqdn
 magedu.com.   400   IN   ns   ns.magedu.com.
 ns.magedu.com. 400   IN   A    1.1.1.1


MX(Mail eXchanger):zone name-->fqdn
 zone name   TTL   IN   MX   priority   fqdn
 magedu.com.  600   IN   MX   10   mail.magedu.com.
 mail.magedu.com. 600   IN  A  1.1.1.2
 priority:0-99,数字越小优先级越高


A:adress :FQDN-->IP IPV4
AAAA: FQDN-->OPV6
PTR:pointer:IP-->FQDN

CNAME:(canonical name ):FQND-->FQDN 别名记录
www1.magedu.com.  600   IN  CNAME  www.magedu.com.


解释zone和domain
站在DNS的角度来看,domain是逻辑概念,zone是物理概念
一个DNS服务器内包含正向解析区域和反向解析区域


建立两个区域文件:
例如:FQDN:www.magedu.com. 网段为:192.168.0.0/24
正向区域文件
magedu.com.  600  IN  SOA  
www.magedu.com. 600 IN A 192.168.0.1
简写为:
www  600  IN   A   192.168.0.1
省略的是区域名称zone name

反向区域文件
方向区域文件的zone name为网段的反写.in-addr.arpa.
0.168.192.in-addr.arpa.  IN  SOA
1.0.168.192.in-addr.arpa.  IN  PTR  www.magedu.com.
简写为
1   IN  PTR  www.magedu.com.


MX记录只能定义在正向区域文件中,不能定义到反向区域文件中
NS记录正方向区域文件都可以定义

区域传送的类型:
完全区域传送:axfr all transfer
增量区域传送:ixfr increment transfer

(数据传送)区域类型:
主区域:master
从区域:slave
提示区域:hint 定义根域的位置
转发区域:forward  例如:直接告诉.com的位置

====================================================
安装配置DNS服务器
DNS软件:bind,berkely internet name domain
bind网站:www.isc.org isc,internet systems consortium

1.查看所有的bind的软件包
#yum list all | grep "^bind"

2.这里安装bind97,故将bind 9.3版本的卸载掉
#rpm -e bind-libs bind-utils
备注:bind97为服务器端包

3.安装bind97的bind-libs和bind-utils和bind97服务器端包
#yum -y install bind97-libs bind97-utils
#yum -y install bind97

4.bind97的配置文件
/etc/named.conf
 bind进程的工作属性的定义;区域定义
 
/etc/rndc.key rndc用来远程控制DNS服务的密钥文件
rndc,remote name domain controller
rndc的配置文件: /etc/rndc.conf

5.DNS解析的来源为区域数据文件且位于
/var/named/

6.bind97的服务脚本
/etc/rc.d/init.d/named start|stop|restart|status|reload|

bind97的进程名称为named

7.bind97-devle为开发包,bind97-chroot将DNS的运行在切换到的 目录下,保证DSN被攻击后系统不受到影响;
 caching-nameserver:缓存DNS服务器包
 配置DNS服务器的过程:缓存DNS-->master dns-->slave dns
 
8.检测配置文件语法和检测zone命令
/usr/sbin/named-checkconf
/usr/sbin/named-checkzone

9.查看根域的位置,存放的是互联网根服务器的地址信息
/etc/named/named.ca

10.dig命令
#dig -t type
-t type :指定资源类型
#dig -t NS . @a.root-servers.net.

11.启动DNS服务
#service named start

12.DNS服务监听的端口号及协议
53/udp
53/tcp
953/tcp,rndc

13.纯手工编写/etc/named.conf文件
13.1注意/etc/named.conf文件的权限及属主和属组
-rw-r----- 1 root named 930 Feb 15  2010 /etc/named.conf

区域的定义
zone "zone name" IN {
 type {master|slave|hint|forward}
};

主区域:
file "区域数据文件“

从区域:
file "区域数据文件”
masters {master1_ip;}

#vim /etc/named.conf
  1 options {
  2         directory "/var/named";
  3 };
  4
  5 zone "." IN {
  6         type hint;
       file "named.ca";
  7 };
  8
  9 zone "localhost" IN {
 10         type master;
 11         file "named.localhost";
 12 };
 13
 14 zone "0.0.127.in-addr.apra" IN {
 15         type master;
 16         file "named.loopback";
 17 };
 
 检查/etc/named.conf配置文件的语法错误
 #named-checkconf
 
 检测区域文件的语法
 #named-checkzone "localhost" /var/named/named.localhost
 #named-checkzone "0.0.127.in-addr.apra" /var/named/named.loopback
 用法:named-checkzone "zoneName" "zonedatafile"
 
 修改/etc/named.conf文件的属组和属主及其权限
 #chown root:named /etc/named.conf
 #chmod 640 /etc/named.conf
 
 临时性的关闭selunix
 #getenforce 0
 临时性的开启selunix
 #setenforce 1
 查看selinux
 #getenforce
 selinux的配置文件
 /etc/selinux/config
 
 设置named服务开机自启动
 #chkconfig named on
 #chkconfig --list named
 
 测试本机DSN服务,将/etc/resolv.conf 文件中的nameserver指向自己IP,前提设备可以正常上网
 
 以上一个缓存DSN制作完成
 规划:
 区域:mageedu.com. 192.168.1.0/24
 
 编辑/etc/named.conf文件
 options {
 directory "/var/named";
};

zone "." IN {
 type hint;
 file "named.ca";
};

zone "localhost" IN {
 type master;
 file "named.localhost";
};

zone "0.0.127.in-addr.apra" IN {
 type master;
 file "named.loopback";
};

zone "mageedu.com" IN {
 type master;
 file "mageedu.com.zone";
};

zone "1.168.192.in-addr.arpa" IN {
 type master;
 file "192.168.1.zone";
};
检查/etc/named.conf的语法
#named-checkconf

编辑"mageedu.com"的区域数据文件,/var/named/maeedu.com.zone
  1 $TTL    600
  2 mageedu.com.    IN      SOA     ns1.mageedu.com.        admin.mageedu.com. (
  3                                 2017011301
  4                                 1D
  5                                 5M
  6                                 2D
  7                                 1D )
  8                 IN      NS      ns1
  9                 IN      MX  10  mail
 10 ns1             IN      A       192.168.1.155
 11 mail            IN      A       192.168.1.150
 12 www             IN      A       192.168.1.151
 13 www             IN      A       192.168.1.152
 14 ftp             IN      CNAME   www
 
 编辑"1.168.192.in-addr.arpa"的区域数据文件,/var/named/192.168.1.zone
  1 $TTL    600
  2 @               IN      SOA     ns1.mageedu.com.        admin.mageedu.com. (
  3                                 2017011301
  4                                 1D
  5                                 5M
  6                                 2D
  7                                 1D )
  8                 IN      NS      ns1.mageedu.com.
  9 155             IN      PTR     ns1.mageedu.com.
 10 150             IN      PTR     mail.mageedu.com.
 11 151             IN      PTR     www.mageedu.com.
 12 152             IN      PTR     www.mageedu.com.
                                                 
 检查/var/named/maeedu.com.zone的语法
 #named-checkzone "mageedu.com" /var/named/maeedu.com.zone
 
 更改/var/named/maeedu.com.zone文件的权限和属主属组
 #chmod 640 /var/named/maeedu.com.zone
 #chown root:named /var/named/maeedu.com.zone
 
 重启named服务
 #service named restart
 
 dig命令的用法
 dig -t RRT NAME @IP
 dit -x ip //根据IP差早FQDN
 -t RRt 指定资源记录类型
 @IP 通过指定的DNS去查询
 
 host -t RRt NAME:查询名称的解析结果
 
 测试DNS
 #dig -t A www.mageedu.com
 
nslookup 交互式
nslookup> server IP //将指定的IP作为DNS服务器
nslookup> set q=RRT //指定查找的资源类型
nslookup> NAME