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.  
  61. Linux中DNS服务器的基本配置_DNS服务器

  62. [root@localhost etc]# chown root:named /etc/named.conf       #修改属主和属组 
  63.  
  64. [root@localhost etc]# chmod 640 /etc/named.conf       #修改权限 
  65. [root@localhost etc]# named-checkconf                  #检查语法是否有错误,不报信息就是最好的信息 
  66. [root@localhost etc]# named-checkzone "." /var/named/named.ca   
  67. zone ./IN: has 0 SOA records 
  68. zone ./INnot loaded due to errors. 
  69. [root@localhost etc]# named-checkzone "localhost" /var/named/named.localhost  
  70. zone localhost/IN: loaded serial 0 
  71. OK 
  72. [root@localhost etc]# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.loopback 
  73. zone 0.0.127.in-addr.arpa/IN: loaded serial 0 
  74. OK 
  75.  
  76. [root@localhost ~]# service named start               #启动DNS服务器 
  77. Starting named:                                            [  OK  ] 
  78.  
  79. 三、关闭 selinux 
  80.  
  81. [root@localhost ~]# getenforce                 #查看当前selinux状态          
  82. Enforcing                                       #开启 
  83. [root@localhost ~]# setenforce 0                #关闭selinux   
  84. [root@localhost ~]# getenforce     
  85. Permissive 
  86.  
  87. [root@localhost ~]# vim /etc/selinux/config   #修改配置文件永久有效 
  88. Linux中DNS服务器的基本配置_DNS服务器_02

  89.  
  90. 四、修改DNS服务器地址为本机地址,并让它开机自动运行 
  91.  
  92. [root@localhost ~]# vim /etc/resolv.conf            
  93. nameserver 172.16.86.1 
  94. search localdomain 
  95.  
  96. [root@localhost ~]# chkconfig --list named     
  97. named           0:off   1:off   2:off   3:off   4:off   5:off   6:off 
  98. [root@localhost ~]# chkconfig named on   #用此命令实现开机自动运行DNS服务器 
  99. [root@localhost ~]# chkconfig --list named 
  100. named           0:off   1:off   2:on    3:on    4:on    5:on    6:off 
  101.  
  102.  五、实现正向解析 
  103.  
  104. [root@localhost named]# vim /etc/named.conf    #编辑主配置文件,添加如下内容 
  105.  
  106. zone "magedu.com"  IN { 
  107.         type master; 
  108.         file "mageedu.com.zone"
  109. }; 
  110.  
  111. [root@localhost named]#vim mageedu.com.zone        #在/var/named目录下创建文件并编辑文件内容 
  112. $TTL 600 
  113. magedu.com.    IN  SOA  ns1.mageedu.com.  admin.mageedu.com. ( 
  114.                 2013040101 
  115.                 1H 
  116.                 5M 
  117.                 2D 
  118.                 6H ) 
  119.                 IN      NS       ns1.mageedu.com. 
  120.                 IN      MX   10  mail.mageedu.com. 
  121. ns1             IN      A        172.16.86.1 
  122. mail            IN      A        172.16.86.2 
  123. www             IN      A        172.16.86.1 
  124. ftp             IN     CNAME     www 
  125.                                          
  126. [root@localhost named]# chmod 640 mageedu.com.zone  
  127. [root@localhost named]# chown root:namedmageedu.com.zone  
  128.  
  129.  
  130. [root@localhost named]# named-checkzone "mageedu.com" /var/named/mageedu.com.zone  
  131. zonemagedu.com/IN: loaded serial 2013040101 
  132. OK 
  133.  
  134.  
  135. [root@localhost named]# service named restart           #重启DNS服务 
  136. Stopping named:                                            [  OK  ] 
  137. Starting named:                                            [  OK  ] 
  138.  
  139. 测试结果: 
  140.  
  141. Linux中DNS服务器的基本配置_DNS服务器_03

  142. [root@localhost named]# dig -t CNAME ftp.mageedu.com 
  143.  
  144. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t CNAME ftp.mageedu.com 
  145. ;; global options: +cmd 
  146. ;; Got answer: 
  147. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40718 
  148. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 
  149.  
  150. ;; QUESTION SECTION
  151. ;ftp.mageedu.com.       IN  CNAME 
  152.  
  153. ;; ANSWER SECTION
  154. ftp.mageedu.com.    600 IN  CNAME   www.mageedu.com. 
  155.  
  156. ;; AUTHORITY SECTION
  157. mageedu.com.        600 IN  NS  ns1.mageedu.com. 
  158.  
  159. ;; ADDITIONAL SECTION
  160. ns1.mageedu.com.    600 IN  A   172.16.86.1 
  161.  
  162. ;; Query time: 5 msec 
  163. ;; SERVER: 172.16.86.1#53(172.16.86.1) 
  164. ;; WHEN: Fri Mar 29 21:23:43 2013 
  165. ;; MSG SIZE  rcvd: 85 
  166.  
  167.  
  168. [root@localhost named]# dig -t NSmagedu.com 
  169.  
  170. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NSmagedu.com 
  171. ;; global options: +cmd 
  172. ;; Got answer: 
  173. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37572 
  174. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 
  175.  
  176. ;; QUESTION SECTION
  177. ;mageedu.com.           IN  NS 
  178.  
  179. ;; ANSWER SECTION
  180. mageedu.com.        600 IN  NS  ns1.mageedu.com. 
  181.  
  182. ;; ADDITIONAL SECTION
  183. ns1.mageedu.com.    600 IN  A   172.16.86.1 
  184.  
  185. ;; Query time: 13 msec 
  186. ;; SERVER: 172.16.86.1#53(172.16.86.1) 
  187. ;; WHEN: Fri Mar 29 21:24:29 2013 
  188. ;; MSG SIZE  rcvd: 63 
  189.  
  190.  
  191.  
  192. [root@localhost named]# dig -t MXmagedu.com 
  193.  
  194. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t MXmagedu.com 
  195. ;; global options: +cmd 
  196. ;; Got answer: 
  197. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57248 
  198. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 
  199.  
  200. ;; QUESTION SECTION
  201. ;mageedu.com.           IN  MX 
  202.  
  203. ;; ANSWER SECTION
  204. mageedu.com.        600 IN  MX  10 mail.mageedu.com. 
  205.  
  206. ;; AUTHORITY SECTION
  207. mageedu.com.        600 IN  NS  ns1.mageedu.com. 
  208.  
  209. ;; ADDITIONAL SECTION
  210. mail.mageedu.com.   600 IN  A   172.16.86.2 
  211. ns1.mageedu.com.    600 IN  A   172.16.86.1 
  212.  
  213. ;; Query time: 9 msec 
  214. ;; SERVER: 172.16.86.1#53(172.16.86.1) 
  215. ;; WHEN: Fri Mar 29 21:25:02 2013 
  216. ;; MSG SIZE  rcvd: 100 
  217.  
  218.  
  219. 六、实现反向解析 
  220.  
  221. [root@localhost named]vim /etc/named.conf 
  222. zone "86.16.172.in-addr.arpa"  IN { 
  223.                 type master; 
  224.                 file "172.16.86.zone"
  225.  
  226. [root@localhost named]# vim 172.16.86.zone 
  227. $TTL 600 
  228. @    IN  SOA  ns1.mageedu.com.  admin.mageedu.com. ( 
  229.                 2013040101 
  230.                 1H 
  231.                 5M 
  232.                 2D 
  233.                 6H ) 
  234.                 IN      NS      ns1.mageedu.com. 
  235. 1               IN      PTR     ns1.mageedu.com. 
  236. 1               IN      PTR     www.mageedu.com. 
  237. 2               IN      PTR     mail.mageedu.com. 
  238.  
  239. [root@localhost named]# chmod 640 172.16.86.zone  
  240. [root@localhost named]# chown root:named 172.16.86.zone                                                      
  241.  
  242. [root@localhost named]# named-checkzone "86.16.172.in-addr.arpr"  172.16.86.zone  
  243. zone 86.16.172.in-addr.arpr/IN: loaded serial 2013040101 
  244. OK 
  245.  
  246. [root@localhost named]# service named restart 
  247. Stopping named:                                            [  OK  ] 
  248. Starting named:                                            [  OK  ] 
  249.  
  250. [root@localhost named]# dig -x 172.16.86.1      #dig -x IP 根据IP查主机名 
  251.  
  252. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.1 
  253. ;; global options: +cmd 
  254. ;; Got answer: 
  255. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46711 
  256. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 
  257.  
  258. ;; QUESTION SECTION
  259. ;1.86.16.172.in-addr.arpa.  IN  PTR 
  260.  
  261. ;; ANSWER SECTION
  262. 1.86.16.172.in-addr.arpa. 600   IN  PTR www.mageedu.com. 
  263. 1.86.16.172.in-addr.arpa. 600   IN  PTR ns1.mageedu.com. 
  264.  
  265. ;; AUTHORITY SECTION
  266. 86.16.172.in-addr.arpa. 600 IN  NS  ns1.mageedu.com. 
  267.  
  268. ;; ADDITIONAL SECTION
  269. ns1.mageedu.com.    600 IN  A   172.16.86.1 
  270.  
  271. ;; Query time: 5 msec 
  272. ;; SERVER: 172.16.86.1#53(172.16.86.1) 
  273. ;; WHEN: Fri Mar 29 21:43:49 2013 
  274. ;; MSG SIZE  rcvd: 119 
  275.  
  276. [root@localhost named]# dig -x 172.16.86.2 
  277.  
  278. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.2 
  279. ;; global options: +cmd 
  280. ;; Got answer: 
  281. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50818 
  282. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 
  283.  
  284. ;; QUESTION SECTION
  285. ;2.86.16.172.in-addr.arpa.  IN  PTR 
  286.  
  287. ;; ANSWER SECTION
  288. 2.86.16.172.in-addr.arpa. 600   IN  PTR mail.mageedu.com. 
  289.  
  290. ;; AUTHORITY SECTION
  291. 86.16.172.in-addr.arpa. 600 IN  NS  ns1.mageedu.com. 
  292.  
  293. ;; ADDITIONAL SECTION
  294. ns1.mageedu.com.    600 IN  A   172.16.86.1 
  295.  
  296. ;; Query time: 2 msec 
  297. ;; SERVER: 172.16.86.1#53(172.16.86.1) 
  298. ;; WHEN: Fri Mar 29 21:44:16 2013 
  299. ;; MSG SIZE  rcvd: 106 
  300.  
  301. [root@localhost named]# dig -x 172.16.86.3 
  302.  
  303. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.3 
  304. ;; global options: +cmd 
  305. ;; Got answer: 
  306. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28749 
  307. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 
  308.  
  309. ;; QUESTION SECTION
  310. ;3.86.16.172.in-addr.arpa.  IN  PTR 
  311.  
  312. ;; ANSWER SECTION
  313. 3.86.16.172.in-addr.arpa. 600   IN  PTR www.mageedu.com. 
  314.  
  315. ;; AUTHORITY SECTION
  316. 86.16.172.in-addr.arpa. 600 IN  NS  ns1.mageedu.com. 
  317.  
  318. ;; ADDITIONAL SECTION
  319. ns1.mageedu.com.    600 IN  A   172.16.86.1 
  320.  
  321. ;; Query time: 6 msec 
  322. ;; SERVER: 172.16.86.1#53(172.16.86.1) 
  323. ;; WHEN: Fri Mar 29 21:44:29 2013 
  324. ;; MSG SIZE  rcvd: 105 
  325.  
  326.  
  327. 七、就这样一个简单的DNS服务器就做成了,是不是很简单啊 ,自己动手实现以下吧。