zoukankan      html  css  js  c++  java
  • Linux系统——DNS

     DNS系统的作用
    1. DNS服务器
    Internet中,大部分网站、邮件服务等服务器都使用了域名形式的地址,这种地址形式要比使用IP地址形式更加直观,更加容易被用户记住。
    FQDN格式(完整域名格式):在常见域名后添加“.”(根域)。
    DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名:与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解析。
    (1)正向解析:根据域名查IP地址,是DNS服务最常用的基本功能
    分类:
    a)A记录
    b)Cname(别名解析、多个域名同一IP解析)
    (2)反向解析:根据IP查域名,不是很常用,应用于例如反垃圾邮件的验证等
    a)PTR反向解析
    每台DNS服务器都负责管理有个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为“zone”(区域)。

    2. DNS服务器的分类
    根据管理的区域地质数据的来源不同,DNS系统可以分为不同的类型:
    (1)缓存域名服务器
    只提供域名解析结果的缓存功能,本身并不能解析
    (2)主域名服务器
    自主维护一个域名的解析记录本
    (3)从域名服务器
    与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。
    对客户机来说,无论使用主域名服务器还是从域名服务器,查询结果是一样的。
    (4)智能解析服务器
    根据不同访问地域的用户返回给他不同的解析响应包

    3. DNS服务器的查询方式(以www.baidu.com为例)
    (1)DNS服务器递归查询:
    当客户机向DNS 服务器发出解析请求,DNS服务器先在DNS的本地缓存和hosts映射文件中查看。若没有,客户机会向LDNS求助,LDNS先查看LDNS的本地缓存及hosts映射文件。若还没有,查看DNS为什么类别,若是缓存域名解析服务器,通过网络查找,若为主域名服务器,查看LDNS域名解析记录本;若仍没有,通过DNS服务迭代查询查找。
    (2)DNS服务器迭代查询:
    LDNS先去求助点(.)域名服务器,(.)域名服务器不知道www.baidu.com在哪,于是将(.com)服务器位置告诉LDNS,(.com)服务器在将baidu.com服务器的位置告诉LDNS,baidu.com服务器将www.baidu.com的域名解析返回给LDNS,LDNS将解析记录存在本地并将其发送给客户机。

    4. DNS端口
    TCP 53端口
    UDP 53端口
    ### 配置缓存域名服务器
    #### BIND的安装和控制
    1. RPM包的主要作用
    bind:提供了域名服务器的主要程序及相关文件
    bind-utils:提供了对DNS服务器的测试工具程序,如nslookup等
    bind-libs:提供了bind、bind-utils需要使用的库函数
    bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot文件夹作为BIND的根目录)以提高安全性。也成为jail(监牢)机制。
    BIND安装以后,会自动增加一个名为named的系统服务
    ```
    [root@localhost ~]# mount /dev/sr0 /media/cdrom
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@localhost ~]# yum -y install bind bind-chroot bind-utils

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

    ```
    [root@localhost ~]# cp /etc/named.conf{,.bak}
    [root@localhost ~]# vim /etc/named.conf
    options {
    listen-on port 53 { 192.168.214.154; }; #监听IP
    listen-on-v6 port 53 { ::1; };
    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";
    allow-query { any; }; #允许连接本机的IP范围
    forwarders {202.106.0.20} #告诉DNS去什么位置解析(另一个DNS的IP地址)
    recursion yes; # 是否迭代查询
    }
    [root@localhost etc]# named-checkconf /etc/named.conf
    [root@localhost etc]# /etc/init.d/named start
    Generating /etc/rndc.key: [ OK ]
    Starting named: [ OK ]

    ```
    解析配置文件

    ```
    [root@localhost ~]# vim /etc/resolv.conf
    ; generated by /usr/sbin/dhclient-script
    search localdomain
    nameserver 192.168.214.145
    [root@localhost ~]# ping www.baidu.com
    PING www.a.shifen.com (220.181.112.244) 56(84) bytes of data.
    64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=1 ttl=128 time=4.89 ms
    64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=2 ttl=128 time=5.16 ms
    64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=3 ttl=128 time=4.95 ms
    64 bytes from 220.181.112.244 (220.181.112.244): icmp_seq=4 ttl=128 time=5.70 ms


    ```
    配置主域名解析
    1. 正向解析
    ```
    [root@localhost etc]# vim named.conf

    //
    // named.conf
    //
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    // server as a caching only nameserver (as a localhost DNS resolver only).
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //

    options {
    listen-on port 53 { 192.168.214.163; };
    // listen-on-v6 port 53 { ::1; };
    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";
    allow-query { any; }; #允许所有用户访问
    forwarders { 202.106.0.20; }; #手动添加,指定到哪个DNS下解析
    recursion yes;
    // dnssec-enable yes; #注释掉
    // dnssec-validation yes; #注释掉
    // dnssec-lookaside auto; #注释掉

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";
    };

    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };

    zone "." IN {
    type hint;
    file "named.ca";
    };
    zone "yunjisuan.com" IN { #手动添加的,正向解析
    type master; #主域名解析
    file "yunjisuan.com.zone"; #解析记录本 allow-transfer { } 允许哪个从域名连接
    };
    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";

    [root@localhost etc]# cd /var/named/ # 记录本的位置
    [root@localhost named]# ls
    chroot dynamic named.empty named.loopback
    data named.ca named.localhost slaves
    [root@localhost named]# cp -p named.empty yunjisuan.com.zone #复制模板
    [root@localhost named]# vim yunjisuan.com.zone
    $TTL 3H #时间周期
    @ IN SOA yunjisuan.com. root.ns1.yunjisuan.com. ( #两部分:要解析的域名(以.结尾)管理员的邮箱(用户.当前DNS的主机名.)
    20181125 ; serial #当前日期(如果主域名服务器的数字比主域名的大,从域名就会找主域名下载解析记录本)
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS ns1.yunjisuan.com #DNS解析位置
    ns1 A 192.168.214.163
    www A 192.168.214.2
    news A 102.168.214.1
    bbs CNAME news
    * A 192.168.214.161
    [root@localhost named]# named-checkzone yunjisuan.com yunjisuan.com.zone
    zone yunjisuan.com/IN: loaded serial 20181125
    OK
    [root@localhost named]# /etc/init.d/named start
    Starting named: named: already running [ OK ]
    [root@localhost named]# vim /etc/resolv.conf
    ; generated by /sbin/dhclient-script
    search localdomain
    nameserver 192.168.214.163

    ```
    2. 反向解析

    ```
    [root@localhost etc]# vim named.conf

    //
    // named.conf
    //
    // Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
    // server as a caching only nameserver (as a localhost DNS resolver only).
    //
    // See /usr/share/doc/bind*/sample/ for example named configuration files.
    //

    options {
    listen-on port 53 { 192.168.214.163; };
    // listen-on-v6 port 53 { ::1; };
    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";
    allow-query { any; }; #允许所有用户访问
    forwarders { 202.106.0.20; }; #手动添加,指定到哪个DNS下解析
    recursion yes;
    // dnssec-enable yes; #注释掉
    // dnssec-validation yes; #注释掉
    // dnssec-lookaside auto; #注释掉

    /* Path to ISC DLV key */
    bindkeys-file "/etc/named.iscdlv.key";

    managed-keys-directory "/var/named/dynamic";
    };

    logging {
    channel default_debug {
    file "data/named.run";
    severity dynamic;
    };
    };

    zone "." IN {
    type hint;
    file "named.ca";
    };
    zone "yunjisuan.com" IN { #手动添加的,正向解析
    type master; #主域名解析
    file "yunjisuan.com.zone"; #解析记录本 allow-transfer { } 允许哪个从域名连接
    };
    zone "214.168.192. in-addr.arpa" IN { #IP地址反着写,反向解析
    type master;
    file "192.168.214.arpa";
    };

    include "/etc/named.rfc1912.zones";
    include "/etc/named.root.key";
    [root@localhost named]# named-checkconf /etc/named.conf
    [root@localhost named]# cd /var/named/
    [root@localhost named]# ls
    chroot dynamic named.empty named.loopback yunjisuan.com.zone
    data named.ca named.localhost slaves
    [root@localhost named]# cp -p named.empty 192.168.214.arpa
    [root@localhost named]# vim 192.168.214.arpa
    $TTL 3H
    @ IN SOA yunjisuan.com. root.ns1.yunjisuan.com. (
    20181125 ; serial
    1D ; refresh
    1H ; retry
    1W ; expire
    3H ) ; minimum
    NS ns1.yunjisuan.com.
    2 PTR www.yunjisuan.com.
    79 PTR ns1.yunjisuan.com.
    [root@localhost named]# /etc/init.d/named restart
    [root@localhost named]# nslookup www.yunjisuan.com

    ```

  • 相关阅读:
    从联想昭阳到MacBook Pro,致我的那些败家玩意——电脑
    讲真,这两款idea插件,能治愈你英语不好的病
    大专学历以后就职会不会有瓶颈
    恕我直言,我怀疑你并不会生成随机数
    一文教会你如何在 Spring 中进行集成测试,太赞了
    30岁开始学编程晚吗?
    delphi下TList的用法
    在Delphi下基于MapWinGIS添加和删除图层标注的方法
    SMS模型格网转换为MIKE21的格网源代码
    样条曲线的Fortran程序
  • 原文地址:https://www.cnblogs.com/daisy118/p/10018057.html
Copyright © 2011-2022 走看看