zoukankan      html  css  js  c++  java
  • 建立一个完整的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主从系统搭建完毕.

  • 相关阅读:
    Siege 3.0 正式版发布,压力测试工具
    Pomm 1.1.2 发布,专为 PG 设计的 ORM 框架
    Whonix 0.5.6 发布,匿名通用操作系统
    国内开源 java cms,Jspxcms 2.0 发布
    EZNamespaceExtensions.Net v2013增加对上下文菜单、缩略图、图标、属性表的支持
    GNU Guile 2.0.9 发布,Scheme 实现
    jdao 1.0.4 发布 轻量级的orm工具包
    OpenSearchServer 1.4 RC4 发布
    Percona Server for MySQL 5.5.3030.2
    Samba 4.0.5 发布
  • 原文地址:https://www.cnblogs.com/quail2333/p/12659957.html
Copyright © 2011-2022 走看看