zoukankan      html  css  js  c++  java
  • Linux网络服务第七章DNS域名解析服务

    端口:53

    一.DNS服务器

    正向解析:根据域名查IP地址,即将指定的域名解析为相对应的IP地址。域名的正向解析是DNS服务器最基本的功能,也是最常用的功能。

    反向解析:根据IP地址查域名,即将指定的IP地址解析为相对应的域名。域名的反向解析不是很常用,只在一些特殊场合才会用到,如可用于反垃圾邮件的验证。

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

    主域名服务器:维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器、官方服务器。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。

    从域名服务器:与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。对客户机来说,无论使用主域名服务器还是从域名服务器,查询的结果都是一样的。关键区别在于,从域名服务器提供的解析结果并不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。

    转发器:这台DNS发现非本机负责的查询请求时,不再向根域发起请求,而是直接转发给指定的一台或者多台服务器。自身并不缓存查询结果。

    二.DNS服务器的查询模式及域名解析

    域名解析过程:

    当一个用户的地址输入www.crushlinux.com时,DNS解析有大致是个过程:

    1.客户机想要获取ip地址,先找浏览器缓存,然后浏览器先检查自身缓存中中有没有被解析过这个域名,如果有解析结束。

    2.如果没有,再找hosts,hosts检查自己有没有解析过这个域名,如果有,解析结束

    3.如果没有,再找内网缓存服务器,来解析这个域名,

    4.如果没有,缓存服务器就会找根域名服务器请求解析,根域名无法解析,就返回给缓存服务器.com的顶级域

    5.缓存服务器再找.com的顶级服务器请求解析,.com域服务器也无法解析,返回给缓存服务器.crushlinux二级域

    6.缓存服务器再找.crushlinux.com二级域服务器请求解析,.crushlinux.com域服务器 可以解析,然后就给缓存服务器的ip地址。

    7.如果没有不可以解析,二级域会去找主机主服务器,www.crushlinux.com然后解析返回。

    三.搭建缓存服务器

    在CentOS7.x系统中,系统光盘自带了BIND服务的多个安装文件,各软件包的主要作用如下。

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

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

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

    bind-chroot:可选软件包,为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性。也称为jail(监牢)机制

    默认已安装bind-utils和bind-libs,所以只需要安装bind即可。

    (1)关闭相关安全机制:

    iptables -F

    systemctl stop firewalld

    setenforce 0

    (2)修改主配文件

    [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; };

    recursion yes;

    };

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

            type hint;//类型为根区域

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

    };

    有时候为了提高解析效率,也可以不向根区域查询,而是将来自客户端的查询请求转发给国内电信运营商的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;};

    };

    (3)启动服务

    systemctl start named

    四.搭建主从服务器

    (1)关闭相关安全机制:

    iptables -F

    systemctl stop firewalld

    setenforce 0

    主服务器:

    (1)安装bind

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

    (2)修改相关文件

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

    # Generated by NetworkManager

    nameserver 192.168.200.111

    nameserver 192.168.200.112

    [root@localhost ~]# vim /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

    (3.)修改主配文件

     

    [root@localhost ~]# vim/etc/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; };   //允许从服务器地址下载反向域数据

    };

    (4.)创建正向解析

    [root@localhost ~]# vim /var/named/crushlinux.zheng

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

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

    20190817       //更新序列号,可以是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.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

    (5)创建反向解析

    [root@localhost ~]# vim /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.

    (6)修改正反向解析的组

    [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

     

    ===============================================================================

    从服务器:

    (1)安装bind

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

    (2)修改相关关文件

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

    # Generated by NetworkManager

    nameserver 192.168.200.111

    nameserver 192.168.200.112

    [root@localhost ~]# vim/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

    (3.)修改主配文件

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

    options {

    directory "/var/named";

    };

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

    type slave;            //类型为从区域

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

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

    };

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

    type slave;

    file "slaves/crushlinux.fan";

    masters { 192.168.200.111; };

    };

    (4)开启服务

    [root@localhost ~]# systemctl restart named

  • 相关阅读:
    go 注释/说明/文档 标注
    go stack object escape
    ubuntu virtualBox windows10 CPU占用100%
    git 团队合作
    git 修改远程pull和push地址
    go 项目编译失败
    fork函数 linux创建子进程
    51nod1183 编辑距离
    各种平衡树
    redis 配置多个ip 解决方案
  • 原文地址:https://www.cnblogs.com/ZCQ123456/p/11445746.html
Copyright © 2011-2022 走看看