1. DNS 是计算机域名(Domain Name System)的缩写,主要功能是将计算机域名与IP地址之间作转换。执行这一服务的网络主机就可以称作为DNS服务器,通常我们都认为DNS只是将域名转换成IP地址,然后再使用所查到的IP地址去连接(俗称“正向解析”)。事实上,将IP地址转换成域名的功能也是常使用到的,(俗称“逆向解析”)。下面就来用一个假设的域名(www.mageedu.com),ip地址为172.16.86.1,是本机IP地址,那我们就用本机来做DNS服务器来讲一下DNS的基本配置吧,很简单的哦。一学就会哦。 
  2.  
  3. 首先介绍一下基本知识: 
  4. 数据库中的,每一个条目称作一个资源记录,资源记录类型: 
  5.  
  6. SOA(Start Of Authority):    #起始授权记录    
  7. 格式: ZONE NAME  TTL   IN   SOA   FQDN  ADMINISTRATOR_MAILBOX ( 
  8.         serial number:版本号或序列号 
  9.         refresh:刷新周期 
  10.         retry:重试时间 
  11.         expire:过期时长 
  12.         nagative ansver TTL:否定答案的缓存时长) 
  13.          
  14. 如:  mageedeu.com       600   IN    SOA     ns1.mageedu.com.   admin.mageedu.com. (  
  15.                     2013040101 
  16.                     1H 
  17.                     5M 
  18.                     1W 
  19.                     1D )         
  20.     时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒 
  21.     邮箱格式:admin@mageedu.com -也可以写为->admin.mageedu.com 
  22.      
  23.      
  24. NS(Name Server):#名称服务器 
  25. 格式: Zone MAIN NAME -->FQDN    
  26. 如:  mageedu.com      600   IN   NS   ns1.mageedu.com. 
  27.         ns1.mageedu.com. 600   IN   A    172.16.86.1 
  28.          
  29.      
  30. MX(Mail eXchanger):#邮件交换器 
  31. 格式: ZONE NAME   TTL  IN   MX   pri   VALUE 
  32.         优先级:0-99,数字越小级别越高 
  33. 如:  mageedu.com.       600  IN   MX  10  mail.mageedu.com. 
  34.         mail.mageedu.com.  600  IN   A       1.1.1.3 
  35. A(address):FQDN-->IPv4    #这里是由IPv4地址解析到域名 
  36. AAAA(address):FQDN-->IPv6    
  37. PTR(pointer):IP-->FQDN     #反向解析由IP解析域名 
  38. CNAME(Canonical NAME):FQDN-->FQDN     #别名记录 
  39. 如   ftp.magedu.com.    IN    CNAME     www.magedu.com. 
  40.  
  41.  
  42. 一、 首先要配置yum源,我们是从本地服务器上下载的,你们可以用光盘或者镜像文件挂载本地也是可以的。我们就用bind97来介绍一下吧。 
  43.  
  44. [root@localhost ~]#cd /etc/yum.repos.d     
  45. [root@localhost yum.repos.d]# wget ftp://172.16.0.1/pub/gls/server.repo 
  46.  
  47.  
  48. 二、安装bind97,并添加或修改其主配置文件,我们这里就来自己编辑其配置文件。 
  49.  
  50. [root@localhost yum.repos.d]# rpm -e bind-libs bind-utils 
  51. [root@localhost yum.repos.d]# yum install bind97-libs bind97-utils 
  52. [root@localhost ~]#  yum  install bind97 -y          #安装bind97主包 
  53. [root@localhost ~]# cd /etc/ 
  54. [root@localhost etc]# cat named.conf     #查看配置文件 
  55. [root@localhost etc]# mv /etc/named.conf /etc/named.conf.orig  #这里把原有的配置文件重命名或者删除都可以 
  56. [root@localhost etc]# ll -l /etc/named.conf.orig          #查看原配置文件的权限和属性 
  57. -rw-r----- 1 root named 930 Mar 29 20:03 /etc/named.conf.orig 
  58.  
  59. [root@localhost etc]# vim named.conf           #编辑配置文件 创建缓存名称服务器 
  60.  

[root@localhost etc]# chown root:named /etc/named.conf       #修改属主和属组    [root@localhost etc]# chmod 640 /etc/named.conf       #修改权限  [root@localhost etc]# named-checkconf                  #检查语法是否有错误,不报信息就是最好的信息  [root@localhost etc]# named-checkzone "." /var/named/named.ca    zone ./IN: has 0 SOA records  zone ./INnot loaded due to errors.  [root@localhost etc]# named-checkzone "localhost" /var/named/named.localhost   zone localhost/IN: loaded serial 0  OK  [root@localhost etc]# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback  zone 0.0.127.in-addr.arpa/IN: loaded serial 0  OK    [root@localhost ~]# service named start               #启动DNS服务器  Starting named:                                            [  OK  ]    三、关闭 selinux   [root@localhost ~]# getenforce                 #查看当前selinux状态           Enforcing                                       #开启  [root@localhost ~]# setenforce 0                #关闭selinux    [root@localhost ~]# getenforce      Permissive    [root@localhost ~]# vim /etc/selinux/config   #修改配置文件永久有效 

  四、修改DNS服务器地址为本机地址,并让它开机自动运行   [root@localhost ~]# vim /etc/resolv.conf             nameserver 172.16.86.1  search localdomain    [root@localhost ~]# chkconfig --list named      named           0:off   1:off   2:off   3:off   4:off   5:off   6:off  [root@localhost ~]# chkconfig named on   #用此命令实现开机自动运行DNS服务器  [root@localhost ~]# chkconfig --list named  named           0:off   1:off   2:on    3:on    4:on    5:on    6:off      五、实现正向解析    [root@localhost named]# vim /etc/named.conf    #编辑主配置文件,添加如下内容    zone "magedu.com"  IN {          type master;          file "mageedu.com.zone";  };    [root@localhost named]#vim mageedu.com.zone        #在/var/named目录下创建文件并编辑文件内容  $TTL 600  magedu.com.    IN  SOA  ns1.mageedu.com.  admin.mageedu.com. (                  2013040101                  1H                  5M                  2D                  6H )                  IN      NS       ns1.mageedu.com.                  IN      MX   10  mail.mageedu.com.  ns1             IN      A        172.16.86.1  mail            IN      A        172.16.86.2  www             IN      A        172.16.86.1  ftp             IN     CNAME     www                                            [root@localhost named]# chmod 640 mageedu.com.zone   [root@localhost named]# chown root:namedmageedu.com.zone       [root@localhost named]# named-checkzone "mageedu.com" /var/named/mageedu.com.zone   zonemagedu.com/IN: loaded serial 2013040101  OK      [root@localhost named]# service named restart           #重启DNS服务  Stopping named:                                            [  OK  ]  Starting named:                                            [  OK  ]    测试结果:   

[root@localhost named]# dig -t CNAME ftp.mageedu.com    ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t CNAME ftp.mageedu.com  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40718  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1    ;; QUESTION SECTION:  ;ftp.mageedu.com.       IN  CNAME    ;; ANSWER SECTION:  ftp.mageedu.com.    600 IN  CNAME   www.mageedu.com.    ;; AUTHORITY SECTION:  mageedu.com.        600 IN  NS  ns1.mageedu.com.    ;; ADDITIONAL SECTION:  ns1.mageedu.com.    600 IN  A   172.16.86.1    ;; Query time: 5 msec  ;; SERVER: 172.16.86.1#53(172.16.86.1)  ;; WHEN: Fri Mar 29 21:23:43 2013  ;; MSG SIZE  rcvd: 85      [root@localhost named]# dig -t NSmagedu.com    ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NSmagedu.com  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37572  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1    ;; QUESTION SECTION:  ;mageedu.com.           IN  NS    ;; ANSWER SECTION:  mageedu.com.        600 IN  NS  ns1.mageedu.com.    ;; ADDITIONAL SECTION:  ns1.mageedu.com.    600 IN  A   172.16.86.1    ;; Query time: 13 msec  ;; SERVER: 172.16.86.1#53(172.16.86.1)  ;; WHEN: Fri Mar 29 21:24:29 2013  ;; MSG SIZE  rcvd: 63        [root@localhost named]# dig -t MXmagedu.com    ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t MXmagedu.com  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57248  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2    ;; QUESTION SECTION:  ;mageedu.com.           IN  MX    ;; ANSWER SECTION:  mageedu.com.        600 IN  MX  10 mail.mageedu.com.    ;; AUTHORITY SECTION:  mageedu.com.        600 IN  NS  ns1.mageedu.com.    ;; ADDITIONAL SECTION:  mail.mageedu.com.   600 IN  A   172.16.86.2  ns1.mageedu.com.    600 IN  A   172.16.86.1    ;; Query time: 9 msec  ;; SERVER: 172.16.86.1#53(172.16.86.1)  ;; WHEN: Fri Mar 29 21:25:02 2013  ;; MSG SIZE  rcvd: 100      六、实现反向解析    [root@localhost named]vim /etc/named.conf  zone "86.16.172.in-addr.arpa"  IN {                  type master;                  file "172.16.86.zone";    [root@localhost named]# vim 172.16.86.zone  $TTL 600  @    IN  SOA  ns1.mageedu.com.  admin.mageedu.com. (                  2013040101                  1H                  5M                  2D                  6H )                  IN      NS      ns1.mageedu.com.  1               IN      PTR     ns1.mageedu.com.  1               IN      PTR     www.mageedu.com.  2               IN      PTR     mail.mageedu.com.    [root@localhost named]# chmod 640 172.16.86.zone   [root@localhost named]# chown root:named 172.16.86.zone                                                         [root@localhost named]# named-checkzone "86.16.172.in-addr.arpr"  172.16.86.zone   zone 86.16.172.in-addr.arpr/IN: loaded serial 2013040101  OK    [root@localhost named]# service named restart  Stopping named:                                            [  OK  ]  Starting named:                                            [  OK  ]    [root@localhost named]# dig -x 172.16.86.1      #dig -x IP 根据IP查主机名    ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.1  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46711  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1    ;; QUESTION SECTION:  ;1.86.16.172.in-addr.arpa.  IN  PTR    ;; ANSWER SECTION:  1.86.16.172.in-addr.arpa. 600   IN  PTR www.mageedu.com.  1.86.16.172.in-addr.arpa. 600   IN  PTR ns1.mageedu.com.    ;; AUTHORITY SECTION:  86.16.172.in-addr.arpa. 600 IN  NS  ns1.mageedu.com.    ;; ADDITIONAL SECTION:  ns1.mageedu.com.    600 IN  A   172.16.86.1    ;; Query time: 5 msec  ;; SERVER: 172.16.86.1#53(172.16.86.1)  ;; WHEN: Fri Mar 29 21:43:49 2013  ;; MSG SIZE  rcvd: 119    [root@localhost named]# dig -x 172.16.86.2    ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.2  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50818  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1    ;; QUESTION SECTION:  ;2.86.16.172.in-addr.arpa.  IN  PTR    ;; ANSWER SECTION:  2.86.16.172.in-addr.arpa. 600   IN  PTR mail.mageedu.com.    ;; AUTHORITY SECTION:  86.16.172.in-addr.arpa. 600 IN  NS  ns1.mageedu.com.    ;; ADDITIONAL SECTION:  ns1.mageedu.com.    600 IN  A   172.16.86.1    ;; Query time: 2 msec  ;; SERVER: 172.16.86.1#53(172.16.86.1)  ;; WHEN: Fri Mar 29 21:44:16 2013  ;; MSG SIZE  rcvd: 106    [root@localhost named]# dig -x 172.16.86.3    ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.3  ;; global options: +cmd  ;; Got answer:  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28749  ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1    ;; QUESTION SECTION:  ;3.86.16.172.in-addr.arpa.  IN  PTR    ;; ANSWER SECTION:  3.86.16.172.in-addr.arpa. 600   IN  PTR www.mageedu.com.    ;; AUTHORITY SECTION:  86.16.172.in-addr.arpa. 600 IN  NS  ns1.mageedu.com.    ;; ADDITIONAL SECTION:  ns1.mageedu.com.    600 IN  A   172.16.86.1    ;; Query time: 6 msec  ;; SERVER: 172.16.86.1#53(172.16.86.1)  ;; WHEN: Fri Mar 29 21:44:29 2013  ;; MSG SIZE  rcvd: 105      七、就这样一个简单的DNS服务器就做成了,是不是很简单啊 ,自己动手实现以下吧 。