人心不同 各如其面 如之奈何 如之奈何

——引子


  我们的目标很明了——构建一个具有根的、私有的DNS(Domain Name System)。

这里不会陈述太多关于DNS与BIND的基础知识,如果您需要查看一些基础性的文章,文章末尾附录之中有传送门。

上图摘自《DNS与BIND》中文第四版。

上图便是我们整个DNS系统的鸟瞰,您需要特别注意,由于我们整个过程需要启动6个相互关联的、位于GNU/Linux操作系统上的DNS服务器,一个小小的失误,极可能导致最终的失败,所以,在接下来的“游戏”里,您应该时刻知道我们目前处于系统的哪个位置。

此次实验共有6台服务器参与,他们皆位于VMnet2:192.168.31.0/24网络中,当然,如果加上Host主机,就是7台。

Host主机的IP地址默认为192.168.31.1,我们将Clone 1的IP设置为192.168.31.98,他将担负根DNS服务器的职责。Clone 2至Clone 6便直接对应设置为192.168.31.2依次至192.168.31.6。

下面,我们便开始此次游历。

Step root:

  目前位置——服务器Clone 1,192.168.31.98,职能为根DNS服务器。

各配置文件如下。

# /etc/named.conf
 acl listen_acl
{
any;
};
acl allow_query_acl
{
any;
};
acl allow_recursion_acl
{
none; # allow_recursion none
};
acl allow_transfer_acl
{
none;
};
acl allow_update_acl
{
none;
};
options
{
listen-on port { listen_acl; };
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 { allow_query_acl; };
allow-recursion { allow_recursion_acl; };
allow-transfer { allow_transfer_acl; };
allow-update { allow_update_acl; };
}; zone "." IN {
type master; #master
file "root.zone";
};
# /var/named/root.zone
 .         IN      SOA     dns-.dns.mil.  dns.mail.dns.mil.      

 .                    IN      NS      dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98 cc. IN NS dns-cc-.dns.cc.
dns-cc-.dns.cc. IN A 192.168.31.3
org. IN NS dns-org-.dns.org.
dns-org-.dns.org. IN A 192.168.31.3 ;根域划分 子域授权

确认、启动根DNS服务。

Step cc & Step org

目前位置——顶级域DNS服务器Clone 3,192.168.31.3,我们将cc与org域的DNS服务皆放在Clone 3服务器上,其将担负顶级域DNS服务器的职能。

各配置文件如下。

# /etc/named.conf
 acl listen_acl
{
any;
};
acl allow_query_acl
{
any;
};
acl allow_recursion_acl
{
none;
};
acl allow_transfer_acl
{
none;
};
acl allow_update_acl
{
none;
};
options
{
listen-on port { listen_acl; };
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 { allow_query_acl; };
allow-recursion { allow_recursion_acl; };
allow-transfer { allow_transfer_acl; };
allow-update { allow_update_acl; };
};
zone "." IN {
type hint; #hint
file "root.cache"; #指定root DNS服务器的IP地址与FQDN
};
zone "cc" IN {
type master;
file "cc.zone";
};
zone "org" IN {
type master;
file "org.zone";
};
# /var/named/root.cache
 .                    IN      NS      dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
# /var/named/cc.zone
 $TTL 

 cc. IN SOA dns-cc-.dns.cc. dns-cc.mail.dns.cc.  (

         3H
15M
3D
1D
); cc. IN NS dns-cc-.dns.cc.
dns-cc-.dns.cc. IN A 192.168.31.3 eecs.cc. IN NS dns.eecs.cc.
dns.eecs.cc. IN A 192.168.31.4
# /var/named/org.zone
 $TTL 

 org. IN SOA dns-org-.dns.org. dns-org.mail.dns.org.  (

         3H
15M
3D
1D
); org. IN NS dns-org-.dns.org.
dns-org-.dns.org. IN A 192.168.31.3 free.org. IN A 192.168.31.3 just.org. IN NS dns.just.org.
dns.just.org. IN A 192.168.31.5

确认、启动顶级域DNS服务。

  Step eecs.cc

目前位置——eecs.cc域DNS服务器Clone4,192.168.31.4。

各配置文件如下。

# /etc/named.conf
 # /etc/named.conf
acl listen_acl
{
any;
};
acl allow_query_acl
{
any;
};
acl allow_recursion_acl
{
none;
};
acl allow_transfer_acl
{
none;
};
acl allow_update_acl
{
none;
};
options
{
listen-on port { listen_acl; };
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 { allow_query_acl; };
allow-recursion { allow_recursion_acl; };
allow-transfer { allow_transfer_acl; };
allow-update { allow_update_acl; };
}; zone "." IN {
type hint;
file "root.cache";
};
zone "eecs.cc" IN {
type master;
file "eecs.cc.zone";
};
# /var/named/root.cache
 ; /var/named/root.cache
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
# /var/named/eecs.cc.zone
 ; /var/named/eecs.cc.zone
$TTL eecs.cc. IN SOA dns.eecs.cc. dns.mail.eecs.cc. ( 3H
15M
3D
1D
); eecs.cc. IN NS dns.eecs.cc.
dns.eecs.cc. IN A 192.168.31.4 eecs.cc. IN A 192.168.31.4
mail.eecs.cc. IN A 192.168.31.4
www.eecs.cc. IN A 192.168.31.4
ftp.eecs.cc. IN A 192.168.31.4
cs.eecs.cc. IN A 192.168.31.4

确认、启动eecs.cc域DNS服务。

Step just.org

  目前位置——just.org域DNS服务器Clone 5,192.168.31.5。

各配置文件如下。

# /etc/named.conf
 # /etc/named.conf
acl listen_acl
{
any;
};
acl allow_query_acl
{
any;
};
acl allow_recursion_acl
{
none;
};
acl allow_transfer_acl
{
none;
};
acl allow_update_acl
{
none;
};
options
{
listen-on port { listen_acl; };
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 { allow_query_acl; };
allow-recursion { allow_recursion_acl; };
allow-transfer { allow_transfer_acl; };
allow-update { allow_update_acl; };
}; zone "." IN {
type hint;
file "root.cache";
};
zone "just.org" IN {
type master;
file "just.org.zone";
};
# /var/named/root.cache
 ; /var/named/root.cache
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
# /var/named/just.org.zone
 ; /var/named/just.org.zone
$TTL just.org. IN SOA dns.just.org. dns.mail.just.org. ( 3H
15M
3D
1D
); just.org. IN NS dns.just.org.
dns.just.org. IN A 192.168.31.5 www.just.org. IN A 192.168.31.5
mail.just.org. IN A 192.168.31.5

确认、启动just.org域DNS服务。

Step DNS Server

目前位置——递归DNS服务器Clone 6,192.168.31.6,此服务器直接向用户提供DNS服务。

各配置文件如下。

# /etc/named.conf
 acl listen_acl
{
any;
};
acl allow_query_acl
{
any;
};
acl allow_recursion_acl
{
any; # allow_recursion any
};
acl allow_transfer_acl
{
none;
};
acl allow_update_acl
{
none;
};
options
{
listen-on port { listen_acl; };
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 { allow_query_acl; };
allow-recursion { allow_recursion_acl; };
allow-transfer { allow_transfer_acl; };
allow-update { allow_update_acl; }; }; zone "." IN {
type hint;
file "root.cache";
};
# /var/named/root.cache 
 ; /var/named/root.cache
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98
. IN NS dns-.dns.mil.
dns-.dns.mil. IN A 192.168.31.98

确认、启动递归DNS服务。

至此,整个系统构建完成。

我们使用Clone 2主机对我们的DNS系统进行测试。

1.编辑/etc/resolv.conf文件,已达到设置系统默认nameserver的目的;

2.进行测试,结果如下图:

附录:

基础资料传送门:http://www.cnblogs.com/smilenana/p/3414077.html http://www.cnblogs.com/xiaoluo501395377/tag/CentOS/  

构建一个完整的DNS系统的更多相关文章

  1. 构建一个简单的Linux系统 MenuOs —— start_kernel到init进程(20135304刘世鹏)

    构建一个简单的Linux系统 MenuOs —— start_kernel到init进程 作者:刘世鹏20135304 <Linux内核分析>MOOC课程http://mooc.study ...

  2. 第三周——构建一个简单的Linux系统MenuOS

    [洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周  构建一个 ...

  3. 快速构建一个完整的Selenium框架

    今天跟大家细讲如何构建一个完整的selenium框架,当你学会了这一篇你就也可以说自己会selenium自动化测试了. 1.新建项目,结构如图: 注意:整个项目除了最外层的是文件夹,其他的都是包(pa ...

  4. 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...

  5. Java程序员如何运用所掌握的技术构建一个完整的业务架构

    1.通用架构概述 创业之初,我们往往会为了快速迭代出产品,而选择最简单的技术架构,比如LAMP架构,SSH三层架构.这些架构可以适应初期业务的快速发展,但是,随着业务变得越来越复杂,我们会发现这些架构 ...

  6. 20135323符运锦----第三周:构建一个简单的Linux系统MenuOS

    相关知识点 1.arch目录 占据相当庞大的空间,X86目录下代码需要重点关注. 2.init目录 内核启动的相关代码基本都在此目录下,内含MAIN.C,文件中START_KERNEL是整个LINUX ...

  7. 【MEF】构建一个WPF版的ERP系统

    原文:[MEF]构建一个WPF版的ERP系统 引言 MEF是微软的一个扩展性框架,遵循某种约定将各个部件组合起来.而ERP系统的一大特点是模块化,它们两者的相性很好,用MEF构建一个ERP系统是相当合 ...

  8. 转载自 BotVS 「 珍藏版 」如何搭建一个完整的交易框架

    [img]http://dn-filebox.qbox.me/8c218c119046b2a25df2d9c7b00c1e0fa6899bdd.png[/img]NO:01 交易策略 ≠ 交易系统. ...

  9. Linux下一个简单的日志系统的设计及其C代码实现

    1.概述 在大型软件系统中,为了监测软件运行状况及排查软件故障,一般都会要求软件程序在运行的过程中产生日志文件.在日志文件中存放程序流程中的一些重要信息, 包括:变量名称及其值.消息结构定义.函数返回 ...

随机推荐

  1. 开发Java web应用程序的介绍

    本文将介绍使用Eclipse来开发web应用程序的基础知识.它演示了如何创建一个简单的web应用程序,将其部署到服务器,查看其呈现在浏览器中.应用程序使用JavaServer Pages™(JSP)页 ...

  2. __weak、__strong这样的关键词和weak、strong有哪些区别

    ios4 设备上最好就不要使用 ARC... strong,weak 用来修饰属性.strong 用来修饰强引用的属性:@property (strong) SomeClass * aObject;  ...

  3. flask第十六篇——Response【2】

    今天来介绍自定义返回对象: 现在我们假定有一个需求:所有的视图函数都要返回json格式的对象我们先看一下Response的源码: 发现只有一行default_mimetype='text/html', ...

  4. numpy 排序, 查询功能

    https://docs.scipy.org/doc/numpy/reference/routines.sort.html  

  5. vs2013 快捷键

      //////////////// 编辑:   ctrl+-(shift+ctrl+-):移动光标到上次位置或相反,比如定位一个函数,转到函数定义后想回到函数使用处,则用ctrl+-,若又想回到函数 ...

  6. YUYV&YV12&mtk6763

    stImgInOut.stImgInfo.enImageType = UV_IMAGE_TYPE_YV12; stImgInOut.stImgInfo.as32Pitch[0] = pStreamIm ...

  7. sql server2008升级

    安装了试用版的sql server2008,要升级为正式企业版.仅仅须要使用安装程序的 维护-升级 功能.在升级时输入企业版序列号,就能升级为正式版.以下给两个序列号 开发版: PTTFM-X467G ...

  8. 收藏一下mybatis全局参数配置

    http://blog.csdn.net/shaoduo/article/details/54285981

  9. 虚拟路由冗余协议VRRP

    一.VRRP简介 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网 ...

  10. 虚拟主机wordpress文件上传大小限制更改

    默认的wp文件上传的大小都是2M 登录阿里云进入控制面板找到你的虚拟机实例 点击管理 改成10M,最大也就是10,虚拟机的睾丸之处.保存,去页面新媒体添加可以看到最大限制为10M了