• 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记录

  • 相关阅读:
    谷歌浏览器network请求时间(stalled,DNS Lookup,Waiting)分析以及解决方案
    Maven项目下启动后Eclipse报错:org.springframework.web.context.ContextLoaderListener
    探讨ES6的import export default 和CommonJS的require module.exports
    Node.js+websocket+mongodb实现即时聊天室
    slider轮播插件的多种写法
    原生canvas写的飞机游戏
    vue父组件如何向子组件中传递数据?
    vue计算属性VS侦听属性
    vue等单页面应用优缺点
    vue自定义过滤器的创建与使用
  • 原文地址:https://www.cnblogs.com/linuxMA/p/11528128.html
Copyright © 2020-2023  润新知