Linux服务器篇------DNS(1)

  1. 云栖社区>
  2. 博客>
  3. 正文

Linux服务器篇------DNS(1)

余二五 2017-11-23 16:52:00 浏览789
展开阅读全文

概述: 
DNS工作在OSI七层参考模型中的应用层,监听在TCP/UDP的53端口,全球一共有13个根节点DNS服务器。由于对于当前的IPv4对人们而言就很难记忆,而IPv6正在迅速的蔓延,所以DNS是Internet的一项核心服务;DNS的工作采用的是分层结构,不用的DNS服务器负责着不同的域,而整个域名空间的层次结构类似一个倒置的树,在域名层次结构中,每一层称作为一个域,每一个域都有一个域名,域又可以进一步划分成子域,最高层是根,最底层是主机。

查询分类: 
递归查询:发起一次请求就可以得到结果。 
迭代查询:发起n次请求后才可以得到结果。 
DNS查询内容分为:

正向查询:IP-->FQDN 
反向查询:FQDN-->IP

解析流程: 
Client:缓存-->hosts-->dns 
Server:1.如果查询请求是本机所负责区域中的数据的话,要通过查询区域数据文件返回结果。
    2.如果查询请求不是本机所负责的区域中的数据的话,就查询缓存。
    3.如果缓存中没有答案,则向根发起查询请求。

DNS服务器类型: 
主DNS---master 
辅助DNS---slave 
转发器---forward 
缓存服务器

DNS资源记录类型: 
SOA:起始授权记录,在一个区域内必须是唯一的,定义了区域的全局参数 
NS:名称服务器(name server),记录某个区域的授权服务器 
●MX:邮件交换器(mail exchanger) 
CNAME:别名记录,也被成为规范名字 
A:正向查找记录 
PTR:反向查找记录

特征: 
安装包为:bind.i386 
运行的进程:named 
服务的协议类型:dns 
配置文件:/etc/named.conf 
区域文件(工作目录):/var/named/ 
注:全局配置文件和工作目录中的区域配置文件的属组全部应该是"named"

全局配置文件书写格式:/etc/named.conf 
options {                             ###options 用于指定BIND服务参数 
    
directory "/var/named";             ###指定其工作目为"/var/named" 
};

zone "." IN {                            ###定义BIND所管辖的区域 
    
type hint;                            ###类型为hint,只有根的类型为hint 
    
file "named.ca";                     ###指定区域配置文件名,此处的"named.ca"为固定写法,这里的路径都是相对路径,相对于options块中的directory 
};

zone "localhost" IN {                   ###定义localhost区域 
    type master;                         ###类型为master 
    file "localhost.zone;               ###区域文件名。redhat中通常将其命名为localhost.zone 
};

zone "0.0.127.in-addr-arpa" IN {       ###定义反向区域,将IP地址的所在的网段倒置写,其中".in-addr-arpa"是固定写法 
    type master;                         ###类型为master 
    file "named.local";                ###区域文件名。redhat中通常将其命名为named.local 
};

注:在全局配置文件中,除了花括号的左边,其他的新行全部都要使用分号";"结尾

区域配置文件的书写格式: 
在BIND中定义资源记录的基本格式如下: 
[名称] [TTL] [网络类型] 资源记录类型 数据 
名称:指资源记录引用的对象名,可以是主机也可以是域名,对象名可以是相对名称或完整名称,安正名称必须使用"."结束。如果连续的资源记录是同一个对象名,则第一条资源记录后的资源记录可以省略对象名。 
TTL:指定资源记录存放在告诉缓存中的时间。 
网络类型:指网络类型,通常为"IN" 
资源类型:说明资源记录的类型,通常有"SOA NS MX CNAME A PTR",一般SOA记录应为整个区域文件的第一行,NS记录第二行,其他记录可任意排列。 
SOA: 
区域名称  记录类型  SOA  主域名服务器  管理员邮件地址  (序列号 刷新间隔 重试间隔 过期间隔 TTL) 
序列号:最多为十位,一般用时间+版本号 
刷新时间:指辅助服务器请求主服务器同步的等待时间 
重试时间:辅助服务器在请求失败后等待多长时间重试 
过期时间:当这个时间到期后,辅助服务器还无法于主服务器进行区域传输,则辅助服务器会把它的本地数据当作不可靠数据 
TTL:区域的默认生存时间和缓存是否应答名称查询的最大间隔 
●NS:NS后面一定有要跟上一个A记录 
区域名称  TTL  IN  NS  FQDN

●MX:只出现在正向查找区域文件中,后面也要跟上一个A记录 
区域名  TTL  IN  MX  优先级(0-99)  邮件服务器的A记录

●CNAME: 
别名  TTL  IN  CNAME  对应A记录

●A: 
FQDN  TTL  IN  A  IP地址

●PTR: 
IP地址  TTL  IN  PTR  FQDN 

编辑全局配置文件:/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 "localhost.zone"
  13. }; 
  14.  
  15. zone "0.0.127.in-addr.arpa" IN { 
  16.         type master; 
  17.         file "named.local"
  18. }; 
  19.  
  20. zone "magedu.com" IN { 
  21.         type master; 
  22.         file "magedu.com.zone"
  23. }; 
  24.  
  25. zone "16.172.in-addr.arpa" IN { 
  26.         type master; 
  27.         file "172.16.zone"
  28. }; 

编辑对应的区域文件"/var/named/named.ca"


  1. ; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> -t NS . 
  2. ;; global options:  printcmd 
  3. ;; Got answer: 
  4. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52493 
  5. ;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 8 
  6.  
  7. ;; QUESTION SECTION
  8. ;.                              IN      NS 
  9.  
  10. ;; ANSWER SECTION
  11. .                       515139  IN      NS      g.root-servers.net. 
  12. .                       515139  IN      NS      h.root-servers.net. 
  13. .                       515139  IN      NS      i.root-servers.net. 
  14. .                       515139  IN      NS      j.root-servers.net. 
  15. .                       515139  IN      NS      k.root-servers.net. 
  16. .                       515139  IN      NS      l.root-servers.net. 
  17. .                       515139  IN      NS      m.root-servers.net. 
  18. .                       515139  IN      NS      a.root-servers.net. 
  19. .                       515139  IN      NS      b.root-servers.net. 
  20. .                       515139  IN      NS      c.root-servers.net. 
  21. .                       515139  IN      NS      d.root-servers.net. 
  22. .                       515139  IN      NS      e.root-servers.net. 
  23. .                       515139  IN      NS      f.root-servers.net. 
  24.  
  25. ;; ADDITIONAL SECTION
  26. a.root-servers.net.     603239  IN      A       198.41.0.4 
  27. a.root-servers.net.     603239  IN      AAAA    2001:503:ba3e::2:30 
  28. b.root-servers.net.     603240  IN      A       192.228.79.201 
  29. e.root-servers.net.     603220  IN      A       192.203.230.10 
  30. f.root-servers.net.     603220  IN      A       192.5.5.241 
  31. f.root-servers.net.     603220  IN      AAAA    2001:500:2f::f 
  32. m.root-servers.net.     603244  IN      A       202.12.27.33 
  33. m.root-servers.net.     603244  IN      AAAA    2001:dc3::35 

也可已使用命令:

#dig -t NS . > /var/named/named.ca

编辑对应的正向解析区域文件"/var/named/localhost.zone"


  1. $TTL 600 
  2. @               IN      SOA     localhost.      admin.localhost. ( 
  3.                                 2012030601 
  4.                                 20M 
  5.                                 5M 
  6.                                 5D 
  7.                                 1D ) 
  8. localhost.              IN      NS      localhost. 
  9. localhost.              IN      A       127.0.0.1 

编辑对应的反向解析区域文件"/var/named/named.local"


  1. $TTL 600 
  2. @               IN      SOA     localhost.      admin.localhost. ( 
  3.                                 2012030601 
  4.                                 20M 
  5.                                 5M 
  6.                                 5D 
  7.                                 1D ) 
  8. @                       IN      NS      localhost. 
  9. 1                       IN      PTR     localhost. 

编辑对应的正向解析区域文件"/var/named/magedu.com.zone"


  1. $TTL 600 
  2. $ORIGIN magedu.com. 
  3. @               IN      SOA     dns.magedu.com. admin.magedu.com. ( 
  4.                                 2012030701 
  5.                                 20M 
  6.                                 5m 
  7.                                 5D 
  8.                                 1D ) 
  9.                 IN      NS      dns 
  10.                 IN      NS      ns 
  11. mail            IN      MX  10  mail 
  12. dns             IN      A       172.16.100.1 
  13. ns              IN      A       172.16.100.1 
  14. mail            IN      A       172.16.0.1 

编辑对应的反向解析区域文件"/var/named/172.16.zone"


  1. $TTL 600 
  2. @               IN      SOA     dns.magedu.com. admin.magedu.com. ( 
  3.                                 2012030701 
  4.                                 20M 
  5.                                 5m 
  6.                                 5D 
  7.                                 1D ) 
  8.                 IN      NS      dns 
  9.                 IN      NS      ns 
  10. 1.100           IN      PTR     dns.magedu.com 
  11. 1.100           IN      PTR     ns.magedu.com 
  12. 0.1             IN      PTR     mail.magedu.com 

到此记得将这些文件的属组修改为named,之后DNS的初始配置就完成了!

#chown :named /var/named/*








本文转自 向阳草米奇 51CTO博客,原文链接:http://blog.51cto.com/grass51/798875,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
余二五
+ 关注