Linux_DNS_Bind服务的原理及部署

夙愿已清 提交于 2019-11-29 19:17:08

Dns介绍:

域名系统(英文:Domain Name System,缩写:DNS)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址

即解决的是IP地址和域名的映射问题。DNS是多层命名服务器构成的分布式数据库,属于应用层协议,DNS使用TCP和UDP端口53。

当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符,是Internet的核心功能。

 

Dns解析过程:

以客户端访问www.qq.com为例

  1. 首先查找本地hosts文件及本地dns解释器缓存
  2. 查找LDNS(local dns)服务器(缓存) 202.106.0.20
  3. 查找根域服务器
  4. 查找.com顶级域服务器
  5. LDNS请求.com服务器找到qq.com服务器
  6. LDNS请求qq.com服务
  7. qq.com服务器返回www.qq.com域名的ip解析记录给LDNS
  8. LDNS返回给客户机解析记录及缓存到本地

 

Dns域名空间结构:

域名系统作为一个层次结构和分布式数据库,包含各种类型的数据,包括主机名和域名。DNS数据库中的名称形成一个分层树状结构称为域命名空间。

 

根域:DNS域名使用中规定由尾部句点'.'来指定名称位于根或者更高层次的域层次结构。

顶级域:用来指示某个国家、地区或者组织。采用三个字符,如com -> 商业公司,edu -> 教育机构,net -> 网络公司,gov -> 非军事政府机构等等。

二级域:个人或者组织在Internet使用的注册名称。采用两个字符,如:cn -> 代表中国,jp -> 日本,uk -> 英国,hk -> 香港等等。

主机:主机名处于域名空间结构中的最底层,主机名和域名结合构成FQDN,主机名是FQDN最左端的部分。

 

Dns可以做的操作:

1.域名向IP地址的翻译 
2. 主机别名 
3. 邮件服务器别名 
4. 负载均衡:Web服务器

据2006年12月统计,现在顶级域名TLD(Top Level Domain)已有265个,分为三大类:

(1)国家顶级域名nTLD:采用ISO3166的规定。如:cn代表中国,us代表美国,uk代表英国,等等。国家域名又常记为ccTLD(cc表示国家代码contry-code)。

(2)通用顶级域名gTLD:最常见的通用顶级域名有7个,即:com(公司企业),net(网络服务机构),org(非营利组织),int(国际组织),gov(美国的政府部门),mil(美国的军事部门)。

(3)基础结构域名(infrastructure domain):这种顶级域名只有一个,即arpa,用于反向域名解析,因此称为反向域名。

 

DNS安装过程:

[root@localhost ~]# yum -y install bind*

已安装:

  bind.x86_64 32:9.9.4-61.el7                                    bind-chroot.x86_64 32:9.9.4-61.el7                   

  bind-dyndb-ldap.x86_64 0:11.1-4.el7                     bind-libs.x86_64 32:9.9.4-61.el7                     

  bind-pkcs11.x86_64 32:9.9.4-61.el7                       bind-pkcs11-libs.x86_64 32:9.9.4-61.el7              

  bind-pkcs11-utils.x86_64 32:9.9.4-61.el7               bind-utils.x86_64 32:9.9.4-61.el7   

 

(1)bind:提供了域名服务的主要程序及相关文件

(2)bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等。

(3)bind-libs:提供了bind。bind-utils需要使用的库函数

(4)bind-chroot为bind服务提供了一个伪装的根目录,已提供安全性。

默认已经安装了bind-utils和bind-libs,所以只需要安装bind和bind-chroot即可。

 

修改主配置文件:

[root@localhost ~]# vim /etc/named.conf

13         listen-on port 53 { any; };

19         allow-query     { any; };

51 zone "baidu.com" IN {                       #正向区域

 52     type master;                                  #类型为master(主服务器) 

 53     file "baidu.com.zone";                 #区域数据文件名为baidu.com

 54     allow-update { none; };

 55 };     

 56 zone "200.168.192.in-addr.arpa" IN {  #反向区域

 57         type master;                                #类型为master(主服务器)

 58         file "192.168.200.arpa";              #区域数据文件名为192.168.200.arpa

 59 };

修改区域配置文件

[root@localhost ~]# cd /var/named/

[root@localhost named]# vim baidu.com.zone

$TTL 86400

@ SOA baidu.com. mail.baidu.com (

        20160301                   #更新序列号

        4H                              #刷新时间:重新下载数据的间隔

        30M                            #重试延时:下载失败后的重试间隔

        12H                            #失效时间,超过该时间仍无法下载则放弃

        1D                              #无效解析记录的生存周期

)

@   IN   NS   dns1.baidu.com. 

@   IN   NS   dns2.baidu.com.                     #这里要写DNS服务器的IP地址,写DNS的主机名

@        IN         NS         mail.baidu.com.                     #配置邮箱服务器名称

dns1   IN   A    192.168.200.103                     #配置权威服务器的地址

dns2   IN   A       192.168.200.105             

www   IN   A    192.168.200.102                    #配置域名的A记录

aaa     IN    A     192.168.200.103

bbb  IN    CNAME  aaa.baidu.com.                 #配置域名的别名

mail  IN    NS   192.168.200.101                 #配置邮箱服务器地址

 

第一行TTL配置用于设置默认生存周期。即缓存解析结果的有效时间

SOA记录部分用于设置区域名称,管理邮箱,以及为从域名服务器指定更新参数。

 

[root@localhost named]# vim 192.168.200.arpa

$TTL 86400

@ SOA baidu.com. mail.com (

        20160301            #更新序列号

        4H                        #刷新时间:重新下载数据的间隔

        30M                      #重试延时:下载失败后的重试间隔

        12H                      #失效时间,超过该时间仍无法下载则放弃

        1D                        #无效解析记录的生存周期

)

@        IN       NS                     dns1.baidu.com.

@        IN       NS                     dns2.baidu.com.

dns1   IN   A               192.168.200.103                     #配置权威服务器的地址

dns2   IN   A                  192.168.200.105 

103       IN       PTR                    www.baidu.com.

 

开启dns服务

[root@localhost named]# systemctl start named

[root@localhost named]# netstat -anpt |grep named

tcp        0      0 192.168.200.105:53         0.0.0.0:*               LISTEN      1532/named         

tcp        0      0 127.0.0.1:53                     0.0.0.0:*               LISTEN      1532/named         

tcp        0      0 127.0.0.1:953                   0.0.0.0:*               LISTEN      1532/named         

tcp6      0      0 ::1:53                                   :::*                    LISTEN      1532/named         

tcp6      0      0 ::1:953 

 

 

测试解析结果:

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!