zoukankan      html  css  js  c++  java
  • Linux_DNS_Bind服务的原理及部署

    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         MX         5 mail1.baidu.com.                     #配置邮箱服务器名称

    @        IN         MX         10 mail2.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

    aaa     IN    A     192.168.200.104

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

    mail1  IN   A   192.168.200.101                 #配置邮箱服务器地址

    mail2  IN   A   192.168.200.102

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

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

     

    [root@localhost named]# vim 192.168.200.arpa

    $TTL 86400

    @ SOA baidu.com. mail.com (

            20160301            #更新序列号

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

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

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

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

    )

    200.168.192.in-addr.arpa.     IN         NS        ns.200.168.192.in-addr.arpa.

    ns.200.168.192.in-addr.arpa. IN       A            127.0.0.1

    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 

    测试解析结果

    #测试A记录

     #测试CNAME记录

     #测试MX记录

  • 相关阅读:
    sfs2x 连接 mongodb
    java websocket
    webstorm 4.0 注册码
    解决 sfs2 admin tool 找不到扩展
    window 注册表五大类
    opengl 学习第二日
    java google Protobuf
    扩展 java sencha touch PhonegapPlugin
    sencha touch2 kryonet socket phonegap 通信 作者:围城
    sencha touch2 layout 笔记
  • 原文地址:https://www.cnblogs.com/linuxMA/p/11528128.html
Copyright © 2011-2022 走看看