zoukankan      html  css  js  c++  java
  • Linux网络服务05-----DNS域名解析服务(二)

    八、构建缓存域名服务器

    缓存域名服务器通常架设在公司的局域网内,主要目的是提高域名解析的速度,减少对互联网访问的出口流量。

    ①. 建立主配置文件named.conf

    若使用范本文件创建named.conf,应注意修改或删除默认的监听设置、查询控制,以便能够为局域网段的客户机提供服务。另外,logging、view配置部分一般用不到,可以先注释以避免其干扰。

    [root@localhost ~]# vim /etc/named.conf

    options {

       listen-on port 53 { 192.168.200.111; };   //监听地址和端口

       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     { 192.168.200.0/24; }; //允许使用本DNS服务的网段

       recursion yes;

    };

    zone "." IN {                    //正向“.”根区域

            type hint;               //类型为根区域

            file "named.ca";          //区域数据文件为named.ca

    };

     上述配置内容中,dump-file、statistics-file、memstatistics-file等配置项用于指定缓存数据库文件、状态统计文件的位置。添加了“zone "." IN{ ……};”部分的根区域设置,尽管缓存服务器并没有自主控制的区域数据,但可以向根服务器进行迭代查询,并将最终获得的解析结果反馈给客户。

    有时候为了提高解析效率,也可以不向根区域查询,而是将来自客户端的查询请求转发给国内电信运营商的DNS服务器(如北京的202.106.0.20、 202.106.148.1),缓存服务器收到返回的查询结果后再传递给客户端。只要去掉“zone "." IN{ ……};”的设置,并在全局配置中正确设置forwarders参数即可实现该功能

    [root@localhost etc]# vim named.conf

    options {

       ……                                      //省略部分内容

       forwarders{202.106.0.20;   202.106.148.1;};

    };

     ②. 确认根域的区域数据文件named.ca

    根区域的区域数据文件默认位于文件/var/named/named.ca中,该文件记录了Internet中13台根域服务器的域名和IP地址等相关信息。

    [root@localhost ~]# ls /var/named/

    data  dynamic  named.ca  named.empty  named.localhost named.loopback  slaves

    ③. 启动named服务

    执行“systemctl start named”命令,启动named服务,并通过netstat命令确认named服务的端口监听状态。若服务启动失败或发现没有正常监听UDP53端口,可以根据错误提示信息(或者/var/log/messages文件中的日志记录)排除错误,然后再重启服务即可。

    [root@localhost ~]# systemctl start named

    [root@localhost ~]# systemctl enable named

    Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

    [root@localhost ~]# netstat -anpu | grep named

    udp        0      0 192.168.200.111:53      0.0.0.0:*                           63751/named

    ④. 验证缓存域名服务器

    在局域网内的客户机中,将首选DNS服务器的地址设为192.168.200.111.生效后,执行“nslookup

    www.baidu.com”命令对其进行解析,验证其是否能够获得该域名对应的IP地址信息

    九、构建主域名服务器

    下面首先讲解使用BIND构建主域名服务器的基本步骤。

    ①. 确认本机的网络地址、主机映射、默认DNS服务器地址。

    主域名服务器的IP地址设为192.168.200.111、主机名设为ns1.crushlinux.com,通过修改网络配置文件的方式进行。另外,为了提高域名解析效率,建议将两个DNS服务器的地址映射直接写入到/etc/hosts文件中,并在/etc/resolv.conf文件中指定两个DNS服务器的地址。

    [root@localhost ~]# tail -2 /etc/hosts

    192.168.200.111     nsl.crushlinux.com   nsl

    192.168.200.112     ns2.crushlinux.com   ns2

    [root@localhost ~]# tail -2 /etc/resolv.conf

    nameserver    192.168.200.111

    nameserver    192.168.200.112

    ②. 建立主配置文件named.conf

    新创建的named.conf主配置文件,由于只需要提供crushlinux.com域的正向解析和192.168.200.0/24网段的反向解析,因此相应地添加这两个区域即可。根区域、回环域等其他配置内容可以省略。

    [root@localhost ~]# cd /etc/

    [root@localhost etc]# vim named.conf

    options {

       directory "/var/named";  //区域数据文件的默认存放位置

    };

     

    zone "crushlinux.com" IN {           //正向"crushlinux.com"区域

    type master;                        //类型为主区域

    file "crushlinux.zheng"; //区域数据文件为crushlinux. com. zone

    allow-transfer { 192.168.200.112; };//允许下载的从服务器地址

    };

     

    zone "200.168.192.in-addr.arpa" IN {  //反向"192.168.200.0/24"区域

    type master;

    file "crushlinux.fan";

    allow-transfer { 192.168.200.112; };//允许从服务器地址下载反向域数据

    };

    不需要建立从域名服务器时,上述配置内容中的“allow-transfer ……”部分可以不添加,当不需要提供反向解析时,“zone "200.168.192.in-addr.arpa" IN { …… }”部分也可以去掉。

    ③. 建立正向、反向区域数据文件。

    根据named.conf中的zone区域设置,分别建立正向区域数据文件crushlinux.zheng.反向区域数据文件crushlinux.fan配置内容可以参考区域数据文件/var/named/named.localhost。

    [root@localhost ~]# cd /var/named/

    [root@localhost named]# vim crushlinux.zheng

    $TTL  86400     ;有效解析记录的生存周期

    @  IN SOA crushlinux.com. admin.crushlinux.com. ( ;SOA标记、域名、管理邮箱

       2011030501 ;更新序列号,可以是10位以内的整数

       3H        ;刷新时间,重新下载地址数据的间隔

       15M       ;重试延时,下载失败后的重试间隔

       1W        ;失效时间,超过该时间仍无法下载则放弃

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

    )

    @     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.112

    www IN A     192.168.200.111

    study  IN A     192.168.200.113

    *     IN A     192.168.200.111

     

    [root@localhost named]# vim crushlinux.fan

    $TTL  86400

    @  IN SOA crushlinux.com. admin.crushlinux.com. (

    2011030501

       3H

       15M

       1W

       1D

    )

    @     IN NS    ns1.crushlinux.com.

          IN NS    ns2.crushlinux.com.

    111   IN PTR    www.crushlinux.com.

    112   IN PTR    mail.crushlinux.com.

    113   IN PTR    study.crushlinux.com.

    111   IN PTR    ns1.crushlinux.com.

    112   IN PTR    ns2.crushlinux.com.

    ④. 启动named服务或重载配置。

    启动named服务,如果之前named服务已经在运行,也可以重启服务或重载配置。

    [root@localhost named]# chgrp named crushlinux.zhengcrushlinux.fan

    [root@localhost ~]# named-checkconf /etc/named.conf

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

    zone crushlinux.com/IN: loaded serial 2019010801

    OK

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

    zone crushlinux.com/IN: NS 'ns1.crushlinux.com' has no address records (A or AAAA)

    zone crushlinux.com/IN: NS 'ns2.crushlinux.com' has no address records (A or AAAA)

    zone crushlinux.com/IN: not loaded due to errors.

     

    [root@localhost named]# systemctl reload named

    [root@localhost ~]# chown :named /var/named/crushlinux.*

    [root@localhost ~]# named-checkconf -z /etc/named.conf

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

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

    [root@localhost ~]# systemctl restart named

    iptables -F

    systemctl stop firewalld

    setenforce 0

    ⑤. 验证主域名服务器。

    客户端将DNS服务器指向192.168.200.111 (主域名服务器的IP地址) ,使用nslookup命令验证DNS查询结果。例如,以下操作使用Windows 7客户机分别验证了正向解析、泛域名解析、反向解析的查询结果。

    C:UsersAdministrator> nslookup study.crushlinux.com      //验证正向域名解析

    服务器: nsl.crushlinux.com

    Address: 192.168.200.111

    名称: Study.crushlinux.com

    Address: 192.168.200.113

    C:UsersAdministrator>nslookup www.crushlinux.com

    服务器:  ns1.crushlinux.com

    Address:  192.168.200.111

     

    名称:    www.crushlinux.com

    Address:  192.168.200.111

     

    C: UsersAdministrator> nslookup xxyyzz.crushlinux.com   //验证泛域名解析

    服务器: nsl.crushlinux.com

    Address: 192.168.200.111.

    名称: xxyyzz.crushlinux.com

    Address: 192.168.200.111

    C:UsersAdministrator> nslookup192.168.200.112         //验证反向域名解析

    服务器: nsl.crushlinux.com

    Address: 192.168.200.111

    名称: mai1.crushlinux.com

    Address: 192.168.200.112

    十、构建从域名服务器

    ①. 确认本机的网络地址、主机映射、默认DNS服务器地址

    从域名服务器IP地址设为192.168.200.112,主机名设为ns2.crushlinux.com,通过修改网络配置文件的方式进行。另外,主机映射文件/etc/hostsDNS解析文件/etc/resolve.conf的内容与主服务器中的内容相同。

    [root@localhost ~]# cat /etc/resolv.conf

    # Generated by NetworkManager

    nameserver 192.168.200.111

    nameserver 192.168.200.112

    [root@localhost ~]# cat /etc/hosts

    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

    192.168.200.111 ns1.crushlinux.com

    192.168.200.112 ns2.crushlinux.com

    ②. 建立主配置文件named.conf

    在从域名服务器中,named.conf文件的内容与主服务器的内容大部分相同,只是不需要再设置“allow-transfer ……”,更关键的一点是, zone部分的区域类型应设置为“slave”,并添加“masters {  };”语句来指定主域名服务器的地址。

    [root@localhost ~]# yum -y install bind

    [root@localhost ~]# cd /etc/

    [root@localhost etc]# vim named.conf

    options {

       directory  "/var/named";

    };

     

    zone "crushlinux.com" IN {              //正向"crushlinux.com"区域

       type slave;                     //类型为从区域

       masters { 192.168.200.111; };        //指定主服务器的IP地址

    file "slaves/crushlinux.zheng";   //下载的区域文件保存到slave/crushlinux. com.

    };

     zone "200.168.192.in-addr.arpa" IN {       //反向"173.16.16.0/24"区域

       type slave;

       masters { 192.168.200.111; }; 

       file " slave/Crushlinux.fan";

    };

    但需要注意的是,named服务默认以名为“named”的用户身份运行,因此要确认named用户对存放目录有写入权限。

    [root@localhost ~]# ls -l /var/named/slaves/

    总用量 0

    ③. 启动named服务,查看区域数据文件是否下载成功

    从域名服务器中启动named服务,若配置无误,则named将会从主域名服务器中自动下载指定的区域数据文件,并保存到“slaves/”目录下。另外,通过系统日志文件/var/log/messages也可以观察到下载区域数据文件的过程。

    [root@localhost ~]# systemctl start named

    [root@localhost ~]# ls -l /var/named/slaves/

    总用量 8

    -rw-r--r-- 1 named named 483 1月   8 23:03 crushlinux.fan

    -rw-r--r-- 1 named named 538 1月   8 23:03 crushlinux.zheng

    iptables -F

    systemctl stop firewalld

    setenforce 0

    ④. 验证从域名服务器

    验证从域名服务器时,只需要将客户端的首选DNS服务器地址设为192.168.200.112(从域名服务器的IP地址),使用nslookup命令进行正常测试即可。例如,以下操作是使用Linux客户机的测试结果。

    [root@localhost etc]# nslookup study.crushlinux.com

    服务器:  mail.crushlinux.com

    Address:  192.168.200.112

     

    名称:    study.crushlinux.com

    Address:  192.168.200.113

     

    [root@localhost etc]# nslookup 192.168.200.112

    服务器:  mail.crushlinux.com

    Address:  192.168.200.112

     

    名称:    mail.crushlinux.com

    Address:  192.168.200.112

  • 相关阅读:
    Java基础语法(11)-面向对象之关键字
    Java基础语法(10)-面向对象之三大特征
    Java基础语法(9)-面向对象之类的成员
    Java基础语法(8)-数组中的常见排序算法
    Java基础语法(7)-数组
    Java基础语法(6)-注释
    Java基础语法(5)-特殊流程控制语句
    Java基础语法(4)-流程控制
    Java基础语法(3)-运算符
    sunset: dawn
  • 原文地址:https://www.cnblogs.com/liyurui/p/11402499.html
Copyright © 2011-2022 走看看