• 建立一个完整的DNS服务器


    DNS服务器的作用和原理

    DNS是在互联网上进行域名解析到对应IP地址的服务器,保存互联网上所有的IP与域名的对应信息,然后将我们对网址的访问,解析成IP地址并返回,然后电脑再去通过IP地址去访问服务器,获得数据。

    首先就要讲一下域名,这里我拿百度的地址来进行讲解:
    www.baidu.com.

    完整的域名,后面都是有一个“.”的,但是一般使用中都是默认省略点了,这是一个完整的域名。通过 "." 来进行分割成三个部分:

    www: www是 主机名

    baidu: baidu是 域名

    com:  com是 类型

    但是平时,我们习惯将整 域名+类型合起来成为域名,主机名,称之为子域名。 而实际上并不是这样的。严格来说就是 主机名域名类型

    然后,当我们访问www.baidu.com时,电脑会先去dns服务器上查找与这个网址对应的ip并返回。这个过程就是DNS解析。而DNS服务器又分为下面几种:

    ".":完整网址中最后的那个“.”  就代表DNS的根服务器,根服务器是DNS服务器中最上层的服务器,分布在全球各地。其中保存着该区域的所有 的类型DNS服务器的IP地址

    com:com是一个DNS类型,像常见的com,net,org,edu,gov是政府的规定的正式类型,还有常见的商用类型等。里面保存着的都是类型为 com 的域名服务器的IP地址。

    baidu.com:baidu为域名,是com的下级dns服务器,里面保存着域名为 baidu.com 的所有主机对应的IP地址

    当我们访问 www.baidu.com 时,会先去 根服务器中 查找所有的 com类型服务器的地址,然后再去com类型的服务器上查找所有 baidu.com 域名的服务器地址,最后再去 所有baidu.com的域名服务器上找到 www.baidu.com 这个网址对应的IP地址,然后返回给访问www.baidu.com的电脑主机。 然后主机就用这个IP与服务器建立连接。

    另外,所有这些不同层级DNS服务器都一般是由多台服务器同时提供服务,做一个冗余好可用,负载均衡。 在这上面分为:

    主服务器: 又名master服务器,所有其他从服务器和缓存服务器的域名解析信息都是由master服务器上抓取下来的,所有的修改都直接在master上修改就行了,别的自动同步

    从服务器: 又名slave服务器,是作为master服务器的冗余备份,让master故障后,slave还能继续提供服务。

    缓存服务器: 主要作用就是缓存DNS信息,提供服务给用户查询,并不能自定义域名配置进行解析。

    然后再DNS服务器上进行查询的时候,分为两种查询模式,递归查询和循环查询:

    递归查询 :就时去去到一个dns服务器查询到结果后,就将结果返回给查询者,查询者再去查询别的DNS服务器,这样一次一次的进行查询返回,直到找到数据。

    循环查询: 循环查询就是查询者像一个DNS服务器发起查询后,由这个DNS服务器去查询别的服务器A,A又去查询别的服务器B,直到找到结果,然后返回B,B返回给A,A   再返回给查询者。

    一般情况下,是我们个人主机,向我们网络配置中配置的DNS服务器进行查询,使用循环查询,由指定的DNS服务器代替我们用递归查询去网络上查询得到结果。然后返回给个人用户主机。   这就是DNS服务器的工作原理。

    搭建完整的DNS服务器

    环境准备

    • Master
      • CentOS 7
      • 192.168.150.174
    • Slave
      • CentOS 7
      • 192.168.150.168
    • Test
      • Windows server 2008 R2(测试机)
      • 192.168.150.

    搭建DNS-Master

    • 关闭SeLinuxfirewalld
    [root@dns-master ~]# service firewalld stop
    Redirecting to /bin/systemctl stop  firewalld.service
    [root@dns-master ~]# systemctl disable firewalld
    Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
    [root@dns-master ~]# firewall-cmd --state
    not running
    [root@dns-master ~]# setenforce 0
    
    • 安装bindbind-chroot
    [root@dns-master Packages]# rpm -ivh bind-9.9.4-37.el7.x86_64.rpm bind-libs-9.9.4-37.el7.x86_64.rpm
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:bind-libs-32:9.9.4-37.el7        ################################# [ 50%]
       2:bind-32:9.9.4-37.el7             ################################# [100%]
    [root@dns-master Packages]# rpm -ivh bind-chroot-9.9.4-37.el7.x86_64.rpm
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:bind-chroot-32:9.9.4-37.el7      ################################# [100%]
    
    • 修改配置文件,为了更好地理解,所以我们自己新建配置文件
    [root@dns-master etc]# mv named.conf1 named.conf.bak ; touch named.conf
    
    • 修改新的named.conf内容如下
    options {
    directory "/var/named";
    };
    zone "quail.com" {
    type master;
    file "quail.com.zone";
    };
    

    • 编辑DNS数据库文件 /var/named/quail.com.zone
    [root@dns-master etc]# [root@dns-master etc]# cat /var/named/quail.com.zone
    $TTL 7200
    quail.com. IN SOA quail.com. root.quail.com. (2020040800 1H 15M 1W 1D)
    quail.com. IN NS www.quail.com.
    www.quail.com. IN A 192.168.150.174
    
    • 重启DNS服务
    [root@dns-master etc]# service named restart
    Redirecting to /bin/systemctl restart  named.service
    
    • 测试正向区域

    因为我是最小化安装,所以需要安装一下

    [root@dns-master Packages]# rpm -ivh bind-utils-9.9.4-37.el7.x86_64.rpm
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:bind-utils-32:9.9.4-37.el7       ################################# [100%]
    [root@dns-master Packages]# nslookup www.quail.com
    Server:         192.168.150.174
    Address:        192.168.150.174#53
    
    Name:   www.quail.com
    Address: 192.168.150.174
    

    搭建DNS-Slave

    • 安装bindbind-chroot
    • 修改配置文件vim /etc/named.conf
    options {
    directory "/var/named";
    };
    zone "quail.com" IN {
    type slave;
    file "slaves/quail.com.zone";
    masters { 192.168.150.174; };
    allow-notify { 192.168.150.174; };
    };
    

    • 重启named.service
    [root@dns-slave slaves]# systemctl restart named
    
    • 查看是否正常同步
    [root@dns-slave slaves]# ll
    total 4
    -rw-r--r-- 1 named named 193 Apr  8 19:30 quail.com.zone
    
    • 查看能否成功解析
    [root@dns-slave slaves]# nslookup
    > www.quail.com
    Server:         192.168.150.168
    Address:        192.168.150.168#53
    
    Name:   www.quail.com
    Address: 192.168.150.174
    

    至此,DNS主从系统搭建完毕.

  • 相关阅读:
    综合练习-词频统计
    组合数据类型综合练习
    Python综合练习
    PostOrder_Traversal 二叉树的非递归后序遍历
    PAT甲级-1152-Google Recruitment(20 分)
    PAT甲级-1007-Maximum Subsequence Sum (25 分)
    macOS MOjave运行pygame不显示图像-解决方案
    PAT甲级-1004-Counting Leaves(30 分)
    Python进阶-Numpy科学计算库(简单入门)
    回文日期
  • 原文地址:https://www.cnblogs.com/quail2333/p/12659957.html
Copyright © 2020-2023  润新知