开发者社区> 余二五> 正文

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

简介:
+关注继续查看

概述: 
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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
27842 0
DNS服务器安装与配置(Linux)
1、yum install -y bind bind-utils bind-chroot bind-libs; 2、其中:/etc/named.conf 为主配置文件;/var/named 为解析文件 3、客户端的dns查询时的配置文件 /etc/hosts 默认优先查询这个 /etc/resolv.
941 0
Linux 服务器建站新手教程不需要敲一行命令【小白篇】
Linux 服务器配置、运行、不用敲命令 WordPress 建站攻略——助力新手快速利用Linux系统建立属于自己的站点——给新手节省宝贵的时间,避免采坑!
458 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
20042 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23532 0
+关注
20380
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载