• 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

    ```

  • 相关阅读:
    Leetcode Unique Binary Search Trees
    Leetcode Decode Ways
    Leetcode Range Sum Query 2D
    Leetcode Range Sum Query
    Leetcode Swap Nodes in Pairs
    Leetcode Rotate Image
    Leetcode Game of Life
    Leetcode Set Matrix Zeroes
    Leetcode Linked List Cycle II
    CF1321A
  • 原文地址:https://www.cnblogs.com/daisy118/p/10018057.html
Copyright © 2020-2023  润新知