Linux下DNS服务器建立详解51CTO博客 - 牛牛娱乐

Linux下DNS服务器建立详解51CTO博客

2019年04月01日14时53分24秒 | 作者: 问凝 | 标签: 效劳,解析,文件 | 浏览: 1109

 Linux下DNS效劳器建立详解

 DNS  即Domain Name System(域名系统)的缩写,它是一种将ip地址转化成对应的主机名或将主机名转化成与之相对应ip地址的一种机制。其间经过域名解分出ip地址的叫做正向解析,经过ip地址解分出域名的叫做反向解析。

下面临DNS的作业流程及原理进行扼要阐明

DNS的查询流程:需求解析效劳的Client先检查本机的/etc/hosts;若无成果,则client检查本地的DNS缓存效劳器;若无成果,则查找所属域的首选DNS效劳器;若此刻本地首选DNS效劳器仍无法解析,则会想根域名效劳器进行查询或挑选转发解析恳求。  

DNS的查询规矩:递归式查询,即client向支撑递归查询的DNS Server宣布解析恳求,则自DNS效劳器不论是本身直接解析仍是无法解析想根宣布恳求,总会由其向client回来一个成果;迭代式查询,即接纳client解析恳求的DNS Server,若其可以解析则直接回来成果,若其不能解析将把解析恳求交给其他DNS效劳器,而不是自己亲身将解析进程完结。 

 所谓的“根”效劳器:根效劳器首要用来办理互联网的主目录,全世界只需13台。1个为主根效劳器,放置在美国。其他12个均为辅根效劳器,其间9个放置在美国,欧洲2个,坐落英国和瑞典,亚洲1个,坐落日本。一切根效劳器均由美国政府授权的互联网域名与号码分配组织ICANN统一办理,担任全球互联网域名根效劳器、域名系统和IP地址等的办理。

DNS记载的类型:

A:Address 域名向ip地址转化的记载;

PTR:Printer ip地址向域名转化的记载;

NS:代表域内的dns效劳器;

MX:代表域内的邮件效劳器;

CNAME:域名的别号;

SOA:start of authority用于标明域内主DNS效劳器。

供给DNS效劳的软件:BIND即Berkeley Internet Name Domain有加州大学伯克利分校研制是当今供给dns效劳运用最广的软件。

下面让咱们进入正题,以下内容包含:DNS的缓存效劳器、主/从效劳器、子域授权、转发以及视图的装备过程。

 

DNS缓存效劳器

Ps:为了更好的领会和了解dns的装备文件和域解析文件,作者在此只装置bind包,以手动修正的办法生成这几个有必要的文件。

1.装置bind包

  1. yum install bind 

2.创立住装备文件/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;  #类型为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. chown :named /etc/named.conf 
  21. #修正属组给named 

3.创立3个解析文件

named.ca

  1. dig -t NS . > /var/named/named.ca 
  2. #向跟效劳器建议查询偏重定向到方针文件      

localhost.zone

  1. vim localhost. zone 
  2. $TTL 86400              
  3. #默许的ttl值 
  4. @               IN      SOA     localhost.  admin.localhost.     (
  5. #主DNS效劳器localhost.  
  6.                                                                         2011081601  
  7.  #时刻+序列号01
  8.                                                                         1H                  
  9. #改写时刻:每隔多久来master查询更新 
  10.                                                                         10M                 
  11. #重试时刻距离                                      
  12.                                                                         7D                  
  13. #过期时刻,假如7天仍找不到master,slave中止效劳                                   
  14.                                                                         1D                  
  15. #否定答案ttl值,表明查询不到再次查询需求时刻 
  16.                                                                            )                               
  17. @                   IN          NS          localhost.                                      
  18. #当时域的DNS效劳器是localhost.                                               
  19. localhost.          IN          A           127.0.0.1 

named.local

  1. vim named.local 
  2. $TTL 86400              
  3. @             IN      SOA     localhost.  admin.localhost.      ( 
  4.                                                                         2011081601   
  5.                                                                         1H                   
  6.                                                                         10M                                              
  7.                                                                         7D                                                       
  8.                                                                         1D                   
  9.                                                                         )                                
  10. @                    IN          NS          localhost. 
  11. 1                    IN          PTR         localhost

4.检测装备文件语法

  1. named-checkconf  
  2. named-checkzone “localhost” /var/named/localhost.zone 
  3. named-checkzone “0.0.127.in-addr.arpa” /var/named/named.local 

5.敞开效劳并测验

  1. service named start
  2. dig -t A  域名 #测验正解
  3. dig -x ip地址 #测验反解

 

主DNS效劳器装备

1.修正主装备文件

  1. vim /etc/name.conf 
  2. zone "a.org" IN { 
  3. type master; 
  4. file "a.org.zone"; 
  5. };   
  6. zone "0.168.192.in-addr.arpa" IN { 
  7. type master; 
  8. file "192.168.zone"; 
  9. };   

2.生成解析文件

/var/named/a.org.zone

  1. $TTL    1200 
  2. @               IN      SOA     ns1.a.org.      admin.a.org.    ( 
  3.                                                         2011081601 
  4.                                                         1H 
  5.                                                         10M 
  6.                                                         7D                                                        
  7.                  IN      NS      ns1.a.org.     #NS包含主从两台效劳器 
  8.                  IN      NS      ns2.a.org. 
  9.                  IN      MX  10  mail.a.org. 
  10. ns1.a.org.       IN      A       192.168.0.72      #两台效劳器的ip的ip地址,不然主效劳器无法向从效劳器同步数据 
  11. ns2.a.org.       IN      A       192.168.0.71 
  12. www.a.org.       IN      A       192.168.0.73 
  13. bbs.a.org.       IN      CNAME   www.a.org. 
  14. ftp.a.org.       IN      A       192.168.0.74 

/var/named/192.168.zone

  1. $TTL 1200 
  2. @               IN      SOA     ns1.a.org.      admin.a.org. ( 
  3.                                                         2011081601 
  4.                                                         1H 
  5.                                                         10M 
  6.                                                         7D 
  7.                                                         1D 
  8. @               IN      NS      ns1.a.org.           
  9.                 IN      NS      ns2.a.org. 
  10. 72              IN      PTR     ns1.a.org. 
  11. 71              IN      PTR     ns2.a.org. 
  12. 73              IN      PTR     www.a.org. 
  13. 74              IN      PTR     ftp.a.org. 

 

从DNS效劳器装备

1.装置bind包

  1. yum install bind 

2.仿制named.conf、localhost.zone和named.local到本地对应目录

  1. scp 192.168.0.72:/etc/named.conf /etc/named.conf 
  2. scp 192.168.0.72:/var/bind/localhost.zone /var/bind/localhost.zone 
  3. scp 192.168.0.72:/var/bind/named.local /var/bind/named.local

3.修正主装备文件/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 "a.org." IN { 
  21. type slave;  #声明从效劳器
  22. file "slaves/a.org.zone";  #同步文件保存途径
  23. masters { 192.168.0.72; };  #主效劳器ip
  24. };                       
  25.  
  26. zone "168.192.in-addr.arpa"  IN { 
  27. type slave; 
  28. file "slaves/192.168.zone"; 
  29. master { 192.168.0.72; }; 
  30. }; 

4.发动效劳

  1. service named start 

ps:效劳正常发动,且同步成功后/var/named/slaves/下会生成从主效劳器同步过来的两个解析文件

 

子域授权

所谓子域授权就是在原有域下声明子域DNS。

当时方位:Master DNS Server

在a.org这个域中参加子域DNS效劳器,tech.a.org.com

修正/var/named/a.org.zone内容

  1. $TTL    1200 
  2. $ORIGIN     .a.org. 
  3. @               IN      SOA     ns1.a.org.      admin.a.org.    (           #在父域中声明 
  4.                                                         2011081701 
  5.                                                         1H 
  6.                                                         10M 
  7.                                                         7D 
  8.                                                         1D 
  9.                     IN          NS              ns1.a.org. 
  10.                     IN          NS              ns2.a.org. 
  11.                     IN          MX  10       mail.a.org.      
  12. ns1                 IN          A               192.168.0.72 
  13. ns2                 IN          A               192.168.0.71 
  14. www                 IN          A               192.168.0.73 
  15. bbs                 IN          CNAME    www.a.org. 
  16. ftp                 IN          A               192.168.0.74         
  17. tech.a.org.         IN          NS           ns1.tech.a.org.     #声明子域DNS server的域名 
  18. ns1.tech.a.org.     IN          A               192.168.0.71        #声明子域DNS server的ip 

创立子域DNS

1.先创立一个缓存DNS效劳器,具体过程见上文

2.创立/var/named/tech.a.org

  1. $TTL    1200 
  2. $ORIGIN tech.a.org. 
  3. @               IN      SOA     ns1.tech.a.org.      admin.a.org.    ( 
  4.                                                         2011081701 
  5.                                                         1H 
  6.                                                         10M 
  7.                                                         7D 
  8.                                                         1D 
  9. )        
  10.                 IN          NS              ns1.tech.a.org. 
  11.                 IN          NS              ns2.tech.a.org. 
  12.                 IN          MX  10       mail.tech.a.org.     
  13. ns1             IN          A               192.168.0.71 
  14. ns2             IN          A               192.168.0.73  
  15. mail            IN          A               192.168.0.74 
  16. www             IN          A               192.168.1.75 
  17. ftp             IN          A               192.168.1.76         

3.测验

  1. dig -t A ns1.tech.a.org @192.168.0.72 
  2. #经过父域解析子域是可以完结的 
  3. dig -t A ns1.tech.a.org @192.168.0.71 
  4. #经过子域解析自己的也可以完结 
  5. dig -t A ns1.a.org  @192.168.0.71 
  6. #此刻经过子域解析父域就解析不到了 

要完结此功用就要依靠转发完结了。

 

DNS转发

彻底转发:只需DNS server无法解析的恳求就通通转发到option中界说的forwarders上。

部分转发:只转发已经在声明type forward; 所对应域的解析恳求,关于其他域的解析恳求按惯例办法处理。

forward {only|first} 选项only:假如不能完结解析恳求就向forwarder进行转发,且进行递归式转发(即不成功不中止);选项first:先恳求递归,若没有予以呼应,运用迭代去找根;

装备彻底转发

  1. vim /etc/named.conf 
  2. options {                       #界说在option则是彻底转发 
  3. directory "/var/named";         
  4. forward first;                  #转发形式运用first 
  5. forwarders { 192.168.0.72; };   #转发到192.168.0.72(转发至父域DNS server) 
  6. }; 

 

装备部分转发

  1. vim /etc/named.conf 
  2. zone "a.org" IN {                #声明一个区域 
  3. type forward;                    #界说此区域是一个转发域,即域名匹配a.org就决断转发至192.168.0.72的forwarders上 
  4. forwarders { 192.168.0.72; }; 
  5. }; 

 

视图View

完结:内网用户一套地址解析,外网拜访一套地址解析;来自不同的网络的用户,依据咱们的布置回来不同网络的主机。

意图:完结内网用户与外网用户经过视图DNS对应两套不同的解析战略

1.创立具有视图功用DNS效劳器的主装备文件/etc/named.conf

  1. acl internal {                          #声明内网网段 
  2.         192.168.0.0/24; 
  3.         127.0.0.0/8; 
  4. }; 
  5. acl external {                          #声明外网网段 
  6.         172.16.0.0/16; 
  7. }; 
  8.  
  9. options { 
  10.     directory "/var/named"; 
  11.     recursion yes; 
  12. };       
  13.          
  14. view "INNET" {                          #在试图中界说内网 
  15.     match-clients { internal; };     #界说匹配的client     
  16.     recursion yes;                      #是否递归(默许是答应) 
  17.          
  18.         zone "." IN {                   
  19.                     type hint; 
  20.                     file "named.ca"; 
  21.         }; 
  22.  
  23.  
  24.         zone "a.org"{ 
  25.                     type master; 
  26.                     file "a.org.internal";  #运用解析内网的文件 
  27.         }; 
  28. };     
  29.          
  30. view "EXNET" {                          #在试图中界说外网 
  31.     match-clients { external; };     #界说匹配的client     
  32.     recursion yes;                      #是否递归(默许是答应) 
  33.          
  34.         zone "." IN {                        
  35.                     type hint; 
  36.                     file "named.ca"; 
  37.         }; 
  38.  
  39.         zone "a.org"{ 
  40.                     type master; 
  41.                     file "a.org.external"; #运用解析外网的文件 
  42.         }; 
  43. };       

 

2.修正两套不同的解析文件

内网:

  1. vim /var/named/a.org.internal 
  2. $TTL    1200 
  3. $ORIGIN     .a.org. 
  4. @               IN      SOA     ns1.a.org.      admin.a.org.    (            
  5.                                                         2011081701 
  6.                                                         1H 
  7.                                                         10M 
  8.                                                         7D 
  9.                                                         1D 
  10.                         IN          NS              ns1.a.org. 
  11.                         IN          NS              ns2.a.org. 
  12.                         IN          MX  10       mail.a.org.      
  13. ns1                     IN          A               192.168.0.72 
  14. ns2                     IN          A               192.168.0.71 
  15. www                     IN          A               192.168.0.73 
  16. bbs                     IN          CNAME    www.a.org. 
  17. ftp                     IN          A               192.168.0.74 

外网:

  1. vim /var/named/a.org.external 
  2. $TTL    1200 
  3. $ORIGIN     .a.org. 
  4. @               IN      SOA     ns1.a.org.      admin.a.org.    (            
  5.                                                         2011081701 
  6.                                                         1H 
  7.                                                         10M 
  8.                                                         7D 
  9.                                                         1D 
  10.                         IN          NS              ns1.a.org. 
  11.                         IN          NS              ns2.a.org. 
  12.                         IN          MX  10       mail.a.org.      
  13. ns1                     IN          A               172.16.100.72 
  14. ns2                     IN          A               172.16.100.71 
  15. www                     IN          A               172.16.100.73 
  16. bbs                     IN          CNAME    www.a.org. 
  17. ftp                     IN          A               172.16.100.74 

反解文件修正与主从DNS反解文件相同,在此不再赘述。

3.测验

作者运用VMware虚拟机,在另一台虚拟机中装备两块虚拟网卡别离是192.168.0.0和172.16.100.0网段。

 

  1. dig -t A www.a.org @192.168.0.71 
  2. dig -t A www.a.org @172.16.100.71 
  3. #别离测验两网段的DNS解析 

 

可以回来两套不同的解析成果,阐明装备成功。

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表牛牛娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章