zoukankan      html  css  js  c++  java
  • DNS域名解析服务(一)

    一、DNS 系统的作用

    1、DNS服务器概述

    FQDN格式(完整域名格式):在常见域名后添加 "." (根域)。列如:www.baidu.com.

    DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名;与IP地址的对应关系,以便为客户程序

    提供正向或反向的地址查询服务,即正向解析与反向解析。

    (1)正向解析:根据域名查IP地址,是DNS服务最常用的基本功能

    (2)反向解析:根据IP地址查域名,不是很常用,应用于例如反垃圾邮件的验证等

    每台DNS服务器都负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址

    称为 " zone "(区域)。

    主机名结构

    主机名.二级域名.顶级域名.(根域)

    2、DNS服务器的常见分类

    根据地址解析的方向不同,DNS区域相应的分为正向区域(包含域名到IP地址的解析记录)和反向区域(包含IP地址到域名的解析记录)。

    根据管理的区域地址数据的来源不同,DNS系统可以分为不同的类型:

    (1)缓存域名服务器

    只提供域名解析结果的缓存功能,目的在于提高数据查询速度和效率,但是没有自己控制的区域地址数据。构建缓存域名服务器时,必须设置

    根域或指定其他DNS服务器作为解析来源。

    (2)主域名服务器

    维护某一个特定DNS区域的地址数据库,对其中的解析纪录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,

    需要自行建立所有负责区域的地址数据文件。

    (3)从域名服务器

    与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询结果

    都是一样的。

    PS:同一台DNS服务器,可以是 " .chinaunix.net " 区域的主域名服务器,同时也可以是 " .cublog.cn " 区域的从域名服务器。

    3、DNS服务器的查询模式

    (1)DNS服务器递归查询:当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的唯高速缓存中查询出结果,反馈给客户机,此过程称为

    递归查询,即Client-Server。

    (2)DNS服务器迭代查询:当客户机向DNS服务器发出解析请求,DNS服务器从服务器本地的唯高速缓存中查询发现没有结果,此时该DNS服务器以

    DNS客户的身份向其他DNS服务器发送解析请求或向根域名服务器发送请求,此过程称为迭代查询,即Server-Server。

    PS:DNS协议运行在TCP/UDP协议上,端口:TCP/UDP 53 端口 。

    4、DNS解析过程

    1、浏览器先检查自身缓存中有没有被解析过的这个域名对应的IP地址,如果有,解析结束。同时域名被缓存的时间也可通过TTL属性来重置。

    2、如果浏览器缓存中没命中,浏览器会检查操作系统缓存中有没有对应的已解析过的结果。而操作系统也有一个域名解析的过程。在 windows 中可通过 c 盘里 hosts 文件来设置,

    如果你在这里指定了一个域名对应的IP地址,那浏览器会首先使用这个IP地址。但是这种操作系统级别的域名解析规程也被很多黑客利用。通过修改你的 hosts 文件里的内容把特定

    的域名解析到他指定的IP地址上,造成所谓的域名劫持。所以在 windows7 中将 hosts 文件设置成了 readonly,防止被恶意篡改。(Windows   C盘/windows/system32/drivers/etc/hosts)

    3、如果至此还没有命中域名,才会真正的请求本地域名服务器(LDNS)来解析这个域名,这台服务器一般在你的城市的某个角落,距离你不会很远,并且这台服务器的性能都很好,

    一般都会缓存域名解析结果,大约80%的域名解析到这里就完成了。

    4、如果 LDNS 仍然没有命中,就直接跳到根域名服务器请求解析。

    5、根域名服务器返回给 LDNS 一个所查询域的主域名服务器(GTLD Server, 国际顶尖域名服务器,如 .com 、.cn、.org等)地址。

    6、此时 LDNS 再发送请求给上一步返回的 GTLD 。

    7、接受请求的 GTLD 查找并返回这个域名对应的 Name Server 的地址,这个 Name Server 就是网站注册的域名服务器。

    8、Name Server 根据映射关系表找到目标IP,返回给 LDNS。

    9、LDNS 缓存这个域名和对应的IP。

    10、LDNS 把解析的结果返回给用户,用户根据 TTL 值缓存到本地系统缓存中,域名解析过程完毕。

    二、BIND 的安装和控制

    1、RPM 包的主要作用

            bind:提供了域名服务器的的主要的程序与相关文件

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

       bind-libs:提供了 bind、bind-utils 需要使用的库函数

       bind-chroot:为 BIND 服务提供一个伪装的根目录(将/var/named/chroot文件夹作为 BIND 的根目录)以提高安全性。

    也称为 jail(监牢)机制。(没什么用,可选软件包)

       BIND 安装以后,会自动增加一个名为 named 的系统服务

    2、主配置文件 /etc/named.conf

    [root@localhost ~]vi /etc/named.conf
    "/etc/named.conf" 18L, 430C

    options {

      listen-on port 53 { 192.168.66.13; };

      directory"/var/named";

      dump-file"/var/named/data/cache_dump.db";

      statistics-file "/var/named/data/named_stats.txt";

      memstatistics-file "/var/named/data/named_mem_stats.txt";

      recursing-file "/var/named/data/named.recursing";

      secroots-file "/var/named/data/named.secroots";

      allow-query { any; };

      recursion yes;

    };
    zone "." IN {

      type hint;

      file "named.ca";
    };


    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :wq "/etc/named.conf" 18L, 430C written
    [root@localhost ~]# named-checkconf /etc/named.conf
    [root@localhost ~]#

    [root@localhost ~]# cat /etc/named.conf
    options {
                 directory "/var/named";
    };

    zone "crushlinux.com" IN {
                     type master;
                     file "crushlinux.zheng";
                     allow-transfer { 192.168.200.112; };
    };

    zone "200.168.192.in-addr.arpa" IN {
                     type master;
                     file "crushlinux.fan";
                     allow-transfer { 192.168.200.112; };
    };

    [root@localhost ~]# named-checkconf /etc/named.conf     //检查语法

    3、区域数据文件

    区域文件用于存放某个DNS区域的地址解析记录(正向或方向记录)

    (1)正向区域文件

    [root@localhost ~]# cat /var/named/crushlinux.zheng
    $TTL 86400
    @   IN   SOA   crushlinux.com.   admin.crushlinux.com. (
          20190817                         // serial    序号
           3H                                 // refresh    更新间隔时间   
            15M                                // retry     更新失败再次尝试的间隔时间
             1W                                // expire    若一直失败,尝试1周后放弃
                             1D                                // minimum    失败解析记录缓存时间
    )
       IN   NS       ns1.crushlinux.com.
          IN        NS       ns2.crushlinux.com.
               IN        MX 10       mail.crushlinux.com.
    ns1     IN         A              192.168.200.111
    ns2     IN         A              192.168.200.112
    mail    IN         A              192.168.200.113
    www   IN         A              192.168.200.114
    study  IN         A              192.168.200.115
    *         IN         A              192.168.200.111
    ftp       IN         CNAME    www

    (2)反向区域文件

    [root@localhost ~]# cat /var/named/crushlinux.fan
    $TTL 86400                                                               管理员邮箱
    @   IN   SOA   crushlinux.com.   admin.crushlinux.com. (
          20190817
             3H
            15M
            1W
            1D
    )
         IN     NS     ns1.crushlinux.com.
         IN     NS        ns2.crushlinux.com.
         IN     MX 10     mail.crushlinux.com.
    111     IN   PTR     ns1.crushlinux.com.
    112     IN   PTR    ns2.crushlinux.com.
    113  IN   PTR    mail.crushlinux.com.
    114  IN   PTR    www.crushlinux.com.
    115  IN   PTR    study.crushlinux.com.
    111  IN   PTR    ns1.crushlinux.com.

    (3)区域数据文件修改后检查更新

    [root@localhost ~]# named-checkzone  域名  区域数据文件的路径

    [root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.zheng
    [root@localhost ~]# named-checkzone crushlinux.com /var/named/crushlinux.fan

    (4)区域数据配置文件的特殊应用

    1>基于域名解析的负载均衡

    同一域名可以对应到多个IP地址     //缓解单个服务器的压力

    2>泛域名解析

    找不到精确对应的 A 记录时,使用 “ * ” 进行匹配

  • 相关阅读:
    代码1
    js中级第13天
    dom 浏览器模型
    js中级第12天
    js中级第11天
    js中级第十天
    js中级第九天
    js中级第8天
    js中级第六天
    js中级第七天
  • 原文地址:https://www.cnblogs.com/2567xl/p/11375425.html
Copyright © 2011-2022 走看看