首页 > 代码库 > 缓存DNS服务器和主DNS服务器的快速搭建详解

缓存DNS服务器和主DNS服务器的快速搭建详解

缓存DNS服务器和主DNS服务器的快速搭建详解
一、设定配置内容
假设我们已经在网上注册了wangej.com域名,得到的IP网络是172.16.12.0/24
ns服务器是:172.16.12.1
www服务器:172.16.12.1,另外一个地址:172.16.12.3
mail服务器:172.16.12.2
ftp主机在www服务器上,即ftp为www的别名

二、准备工作:
这里我们使用bind97来搭建我们的DNS服务器,首先需要安装好bind97.i386、bind97-libs.i386、bind97-utils.i386这三个软件包。软件包可以在https://www.isc.org/wordpress/downloads/官方网站下载。(此为源码)
三、配置文件详解
/etc/named.conf为BIND服务进程的主配置文件
BIND进程的工作属性
区域的定义

  1. options {                                       #定义选项 
  2.     directory "/var/named";                     #定义数据文件目录 
  3.   };                                                 
  4.    
  5.   zone "." IN {                                 #定义区域 
  6.     type hint;                                  #定义区域类型为根 
  7.     file "named.ca";                            #定义数据文件 
  8.   };                                                 
  9.    
  10.   zone "localhost" IN {                         #定义本地解析区域 
  11.     type master;                                #定义区域类型为主 
  12.     file "named.localhost";                     #定义数据文件 
  13.   }; 
  14.    
  15.   zone "0.0.127.in-addr.arpa" IN {              #定义反向解析区域 
  16.     type master;                                #定义区域类型为主 
  17.     file "named.loopback";                      #定义数据文件 
  18.   }; 

/etc/rndc.key为rndc服务的密钥文件
rndc:Remote Name Domain Controller远程名称服务控制器
/etc/rndc.conf为rndc服务的密钥文件
/var/named/目录
目录中存储的均为区域数据文件
/etc/rc.d/init.d/named BIND的服务控制脚本,用来在rhel5中使用service调用开关的。
四、资源记录类型和字符含义
  1. SOA(Start Of Authority起始授权记录) 
  2.     ZONE NAME    TTL    IN    SOA FQDN(主DNS)   ADMINISTRATOR_MAILBOX( 
  3.                                                 serial number           #版本号 
  4.                                                 refresh                 #定义检查周期时间 
  5.                                                 retry                   #定义重试时间 
  6.                                                 expire                  #定义过期时间 
  7.                                                 nagative answer TL      #定义否定答案的缓存时长 
  8.     时间单位:M(分钟)、H(小时)、D(天)、W(周)、默认单位是秒 
  9.     邮箱格式:admin@magedu.com. -写为-> admin.magedu.com. 
  10.      
  11.     magedu.com.   600    IN    SOA   ns1.wangej.com.   admin.wag.com.   ( 
  12.                                                 20130401(最长10为数) 
  13.                                                 1H 
  14.                                                 5M 
  15.                                                 1W 
  16.                                                 1D) 
  17. NS(Name Server):区域名称-->主机名 
  18.     magedu.com.     600    IN    NS     ns.magedu.com. 
  19.     ns.magedu.com.  600    IN    A      1.1.1.2 
  20. MX(Mail eXchange):ZONE NAME --> FQDN 
  21.     优先级 0-99:数字越小级别越高 
  22.     ZONE NAME     TTL    IN    MX  pri    VALUE 
  23.     magedu.com.   600    IN    MX  10     mail.magedu.com. 
  24.     mail.magedu.com.  600 IN   A          1.1.1.3 
  25. A(address): FQDN-->IPv4 
  26. AAAA:FQDN-->IPv6 
  27. PTR(pointer): IP-->FQDN   指针记录 
  28. CNAME(Canonical NAME): FQDN-->FQDN  别名记录 

五、配置缓存DNS服务器
1、vim /etc/named.conf



  1. options {     #定义选项 
  2.     directory "/var/named";   #定义数据文件目录 
  3.   }; 
  4.    
  5.   zone "." IN {   #定义区域 
  6.     type hint;    #定义区域类型为根 
  7.     file "named.ca";              #定义数据文件 
  8.   };  
  9.    
  10.   zone "localhost" IN {   #定义本地解析区域 
  11.     type master;      #定义区域类型为主 
  12.     file "named.localhost";   #定义数据文件 
  13.   }; 
  14.    
  15.   zone "0.0.127.in-addr.arpa" IN {    #定义反向解析区域 
  16.     type master;      #定义区域类型为主 
  17.     file "named.loopback";    #定义数据文件 
  18.   }; 
  
检查语法是否错误:
named-checkconf
检查named.conf文件的属主属组和权限
  1. [root@localhost named]# chmod  640 /etc/named.conf 
  2. [root@localhost named]# chown  root:named  /etc/named.conf 
  3. [root@localhost named]# ll /etc/named.conf 
  4. -rw-r----- 1 root named 369 Apr  1 22:08 /etc/named.conf 

2、这里我们需要关闭SELinux,以确保linux的安全机制不会对BIND服务造成什么影响。
查看SELinux当前状态:

  1. [root@localhost named]# getenforce                  #查看SELinux当前的开启状态 
  2. Enforcing                                           #SELinux开启状态 
  3. [root@localhost named]# setenforce 0                #临时性关闭SELinux服务 
  4. [root@localhost named]# getenforce                  #再次查看SELinux 
  5. Permissive 

临时性关闭SELinux:
# setenforce 0
开启SELinux服务
# setenforce 1

永久关闭SELinux就需要配置: vim /etc/selinux/
这里我们关闭SELinux服务
# setenforce 0
3、测试服务是否正常
重启named服务service named restart然后我们ping一个EQDN测试是否成功
  1. [root@localhost named]# service named restart 
  2. Stopping named:                                            [  OK  ] 
  3. Starting named:                                            [  OK  ] 
使用dig命令查看一下根域
dig -t NS . @172.16.12.1   通过我们自己设置的DNS服务器查看根域名服务器。
  1. [root@localhost named]# dig -t NS . @172.16.12.1 
  2.  
  3. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NS . @172.16.12.1 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64807 
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14 
  8.  
  9. ;; QUESTION SECTION: 
  10. ;.              IN  NS 
  11.  
  12. ;; ANSWER SECTION: 
  13. .           487177  IN  NS  a.root-servers.net. 
  14. .           487177  IN  NS  f.root-servers.net. 
  15. .           487177  IN  NS  m.root-servers.net. 
  16. .           487177  IN  NS  h.root-servers.net. 
  17. .           487177  IN  NS  k.root-servers.net. 
  18. .           487177  IN  NS  b.root-servers.net. 
  19. .           487177  IN  NS  i.root-servers.net. 
  20. .           487177  IN  NS  l.root-servers.net. 
  21. .           487177  IN  NS  d.root-servers.net. 
  22. .           487177  IN  NS  e.root-servers.net. 
  23. .           487177  IN  NS  j.root-servers.net. 
  24. .           487177  IN  NS  c.root-servers.net. 
  25. .           487177  IN  NS  g.root-servers.net. 
  26.  
  27. ;; ADDITIONAL SECTION: 
  28. a.root-servers.net. 573577  IN  A   198.41.0.4 
  29. a.root-servers.net. 573577  IN  AAAA    2001:503:ba3e::2:30 
  30. b.root-servers.net. 573577  IN  A   192.228.79.201 
  31. c.root-servers.net. 573577  IN  A   192.33.4.12 
  32. d.root-servers.net. 573577  IN  A   199.7.91.13 
  33. d.root-servers.net. 573577  IN  AAAA    2001:500:2d::d 
  34. e.root-servers.net. 573577  IN  A   192.203.230.10 
  35. f.root-servers.net. 573577  IN  A   192.5.5.241 
  36. f.root-servers.net. 573577  IN  AAAA    2001:500:2f::f 
  37. g.root-servers.net. 573577  IN  A   192.112.36.4 
  38. h.root-servers.net. 573577  IN  A   128.63.2.53 
  39. h.root-servers.net. 573577  IN  AAAA    2001:500:1::803f:235 
  40. i.root-servers.net. 573577  IN  A   192.36.148.17 
  41. i.root-servers.net. 573577  IN  AAAA    2001:7fe::53 
  42.  
  43. ;; Query time: 5 msec 
  44. ;; SERVER: 172.16.12.1#53(172.16.12.1) 
  45. ;; WHEN: Tue Apr  2 19:51:37 2013 
  46. ;; MSG SIZE  rcvd: 512 

 
4、为named服务添加开机启动
chkconfig on named

  1. [root@localhost named]# chkconfig --list named 
  2. named           0:off   1:off   2:off   3:off   4:off   5:off   6:off 
  3. [root@localhost named]# chkconfig named on 
  4. [root@localhost named]# chkconfig --list named 
  5. named           0:off   1:off   2:on    3:on    4:on    5:on    6:off 
OK,到这里缓存DNS就已经配置正常,能够正常使用了。
六、配置主DNS服务器
1、为/etc/named.conf添加主区域文件配置和反向区域解析
  1. zone "wangej.com" IN {                           #定义wangej.com区域 
  2.     type master;                                #定义区域类型为主 
  3.     file "wangej.com.zone";                     #定义数据文件 
  4.   }; 
  5.    
  6.   zone "12.16.172.in-addr.arpa" IN {            #定义wangej.com反向解析区域 
  7.     type master;                                #定义区域类型为主 
  8.     file "172.16.12.zone";                      #定义数据文件 
  9.   }; 

2、添加区域文件
vim wangej.com.zone
  1. vim wangej.com.zone 
  2. $TTL 1H 
  3. wangej.com.     IN   SOA   ns1.wangej.com.   admin.wangej.com. ( 
  4.                 1 
  5.                 1H 
  6.                 5M 
  7.                 2D 
  8.                 6H ) 
  9.          IN   NS    ns1 
  10.          IN   MX 10 mail 
  11. ns1      IN   A     172.16.12.1 
  12. mail     IN   A  172.16.12.2 
  13. www      IN   A     172.16.12.1 
  14. www      IN   A     172.16.12.3 
  15. ftp      IN  CNAME  www 

vim 172.16.12.zone
  1. $TTL 1H 
  2. @               IN   SOA   ns1.wangej.com.   admin.wangej.com. ( 
  3.                 1 
  4.                 1H 
  5.                 5M 
  6.                 2D 
  7.                 6H ) 
  8.          IN   NS    ns1.wangej.com. 
  9. 1               IN   PTR   ns1.wangej.com. 
  10. 1               IN   PTR   www.wangej.com. 
  11. 2               IN   PTR   mail.wangej.com. 
  12. 3              IN   PTR   www.wangej.com. 

3、检查文件的语法错误和属主属组及权限
  1. named-checkzone "wangej.com" /var/named/wangej.com.zone 
  2. named-checkzone "172.16.12.zone" /var/named/172.16.12.zone 
  3. -rw-r----- 1 root  named  321 Apr  1 22:43 172.16.12.zone 
  4. -rw-r----- 1 root  root   289 Apr  1 22:42 wangej.com.zone 
4、测试服务是否能够正常使用
  1. [root@localhost ~]# dig -t A www.wangej.com @172.16.12.1 
  2.  
  3. ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t A www.wangej.com @172.16.12.1 
  4. ;; global options: +cmd 
  5. ;; Got answer: 
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43339 
  7. ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 
  8.  
  9. ;; QUESTION SECTION: 
  10. ;www.wangej.com.            IN  A 
  11.  
  12. ;; ANSWER SECTION: 
  13. www.wangej.com.     3600    IN  A   172.16.12.1 
  14.  
  15. ;; AUTHORITY SECTION: 
  16. wangej.com.     3600    IN  NS  ns1.wangej.com. 
  17.  
  18. ;; ADDITIONAL SECTION: 
  19. ns1.wangej.com.     3600    IN  A   172.16.12.1 
  20.  
  21. ;; Query time: 4 msec 
  22. ;; SERVER: 172.16.12.1#53(172.16.12.1) 
  23. ;; WHEN: Tue Apr  2 20:05:27 2013 
  24. ;; MSG SIZE  rcvd: 82 
5、如此一个主DNS就已经搭建成功了。
七、单单一个主DNS就已经能够满足我们对于DNS域名解析的需求了么?
不是,不仅不够,我们还要需要更多的内容用来满足DNS的冗余、DNS的智能分配、DNS的acl控制、还有DNS的日志公用,以便让我们能够尽快的定位到错误和查看一些恶意的操作。所以,未完待续。
PS: 亲,明天见……
  • 相关文章推荐:
  • Anonymous攻击DNS服务器的武器有哪些?
  • CentOS 5.6 x86 64 下搭建DNS服务器
  • 如何正确测试DNS服务器的响应速度
  • DNS服务器知识点整理
  • 本文来自:爱好技术网
  • 本文链接:http://www.ahlinux.com/server/dns/7687.html
 

缓存DNS服务器和主DNS服务器的快速搭建详解