注意:实验很简单,环境很重要。大家在做实验的时候一定要注意环境的配置,不然实验做的再好最后的结果也和我们想的要的结果不一样的。

首先我们先准备环境:

  1. 虚拟机一个

  2. RedHat5.9系统两个操作系统

  3. 我们把他们的网路连接在同一个“VMnet”里

  4. 配置IP地址,都配置在一个网段的IP。

注释:

  1. DNS有几点要注意的

  2. DNS可以一个域名对应很多IP

  3. DNS可以一个IP对应很多域名

注意:首先要关闭防火墙和selinux

[root@localhost ~]#  /etc/init.d/iptables  stop

[root@localhost ~]#  setenforce  0


搭建DNS的目的

DNS是Domain Name System (域名系统)的简称,DNS可以为计算机,服务以及接入互联网或局域网的任何资源提供分层的名称解析功能。DNS提供了很多功能其中最重要的功能就是进行域名与IP地址之间的解析。在互联网中标记唯一一台计算机使用的是IP地址,通过合法的IP地址,我们可以与全世界任何一台主机进行通信。然而在当今计算机如此普及的情况下,以人类的智慧与记忆力很难将大量的IP地址背捅下来,这时使用域名系统就可以将难以记忆的数字IP地址与容易记忆的域名建立映射关系,用户通过输入域名,计算机会寻找指定的DNS服务器,请求服务器帮助解析该域名对应的IP地址,成功解析后,将获得该域名对应的真实IP地址,然后使用该IP地址与对方通信。


安装DNS软件:

提供DNS服务的软件有很多,而伯克利加州大学研发的 BIND (Berkeley Internet Name Domain)是目前应用最广的DNS服务器系统。该项目软件除了BIND主程序外,在Linux 平台下还提了“chroot”与

“utils”软件包,“bind-chroot”软件包的主要功能室使BIND软件可以运行在“chroot”模式下,这样BIND运行在相对路径的根路径,而不是Linux系统的真正的根路径,即使有人对BIND软件进行***与破坏,影响的也仅仅是操作系统中的一个子目录,不会影响整个操作系统平台,以此来提升系统烦人安全性。通过yum安装“bind-chroot”后,对“bind”而言,"/var/named/chroot"目录就是根路径,所有BIND软件的配置文件都在跟下的某某路径下。“bind-chroot”软件包提供了一些DNS查询工具。

如:dig,host,nslookup 等。

注意首先给“dns01.baidu.com”配置IP。

baidu.com                           # 这个是我们所定义的域名。

www.baidu.com    192.168.0.1        # 这个是我们定义的域名和对于的IP地址。

bbs.baidu.com    192.168.0.2        # 这个是我们定义的域名和对于的IP地址。

dns01.baidu.com  192.168.0.1        # 这个事本机定义的域名,和对于的IP地址。

[root@localhost ~]#  ifconfig  eth0  192.168.0.1

1)安装DNS的相关软件我们可以使使用“YUM”来安装:

bind               # BIND服务器软件包

bind-chrooot       # 为BIND提供 chroot 机制的软件包

bind-utils         # DNS测试程序软件包

caching-nameserver # 这个包是提供模板的,在Linux6.版本系统就没有这个包了。

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

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

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

[root@localhost ~]#  yum  -y  install  caching-nameserver

2)我们使用“rpm -q ”查询一下是否安装上相关的软件:

[root@localhost ~]#  rpm  -q   bind

bind-9.3.6-20.P1.el5_8.5

[root@localhost ~]#  rpm  -q   bind-chroot

bind-chroot-9.3.6-20.P1.el5_8.5

[root@localhost ~]#  rpm  -q   bind-utils

bind-utils-9.3.6-20.P1.el5_8.5

[root@localhost ~]#  rpm  -q   caching-nameserver

caching-nameserver-9.3.6-20.P1.el5_8.5

这样证明我们所需要的软件已经安装上了。如果没有安装上会提示这样的信息“package asdas is not installed”。

3)现在我们来配置DNS的的配置文件

注释:我们使用“cp”命令

-p : 的意思是保持原来的属性

这里要要注意的就是主配置文件的所有者是“root”所属组“named”

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

[root@localhost etc]#  cp  -p  named.caching-nameserver.conf   named.conf

[root@localhost etc]#  vim  named.conf

//

// named.caching-nameserver.conf

//

// Provided by Red Hat caching-nameserver package to configure the

// ISC BIND named(8) DNS server as a caching only nameserver

// (as a localhost DNS resolver only).

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

// DO NOT EDIT THIS FILE - use system-config-bind or an editor

// to create named.conf - edits to this file will be lost on

// caching-nameserver package upgrade.

//

options {

listen-on port 53 { 192.168.0.1; };    #  这里改成本机的IP地址

listen-on-v6 port 53 { ::1; };

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";

// Those options should be used carefully because they disable port

// randomization

// query-source    port 53;

// query-source-v6 port 53;

allow-query       { any; };            # 这里改成“any”意思是允许所有。

allow-query-cache { any; };            # 这里改成“any”意思是允许所有。

};

logging {

channel default_debug {

file "data/named.run";

severity dynamic;

};

};

view localhost_resolver {

match-clients      { any; };            # 这里改成“any”意思是允许所有。

match-destinations { any; };            # 这里改成“any”意思是允许所有。

recursion yes;

include "/etc/named.rfc1912.zones";

};


4)我们在配置这个文件:在最后的加上10行。定义区域配置文件。

[root@localhost etc]# vim  named.rfc1912.zones

// named.rfc1912.zones:

//

// Provided by Red Hat caching-nameserver package

//

// ISC BIND named zone configuration for zones recommended by

// RFC 1912 section 4.1 : localhost TLDs and address zones

//

// See /usr/share/doc/bind*/sample/ for example named configuration files.

//

zone "." IN {

type hint;

file "named.ca";

};

zone "localdomain" IN {

type master;

file "localdomain.zone";

allow-update { none; };

};

zone "localhost" IN {

type master;

file "localhost.zone";

allow-update { none; };

};

zone "0.0.127.in-addr.arpa" IN {

type master;

file "named.local";

allow-update { none; };

};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

type master;

file "named.ip6.local";

allow-update { none; };

};

zone "255.in-addr.arpa" IN {

type master;

file "named.broadcast";

allow-update { none; };

};

zone "0.in-addr.arpa" IN {

type master;

file "named.zero";

allow-update { none; };

};

zone "baidu.com" IN {                     #  把这里修改成我们所定义的域名,这个是正向解析

type master;

file "baidu.com.zone";            #  这个是域名的名字。记住一定要和我们在区域文件名

allow-update { none; };              字一样,不一样在启动的时候会报错。

};

zone "0.168.192.in-addr.arpa" IN {        #  把这里修改成我们所定义的域名,这个是反向解析

type master;

file "192.168.0.arpa";            #  这个是域名的名字。记住一定要和我们在区域文件名

allow-update { none; };              字一样,不一样在启动的时候会报错。

};

注意:最下面的这10行是从上面复制下来的模板。把复制的模修改一下就可以了。

5)配置完成以后我们在检测一下配置文件的语法是否正确,如果没有提示任何信息,表明语法正确。

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

[root@localhost etc]#  named-checkconf  named.rfc1912.zones


6)接下来配置区域配置文件,我们切换到区域的路径下:

注释:我们使用“cp”命令

-p 的意思是保持原来的属性

我们复制一个正向文件和一个反向解析文件。

这里要要注意的就是主配置文件的所有者是“root”所属组“named”

[root@localhost etc]#  cd  /var/named/chroot/var/named/

[root@localhost named]# cp  -p  named.local baidu.com.zone

[root@localhost named]# cp  -p  named.local 192.168.0.arpa

这个是正向解析的配置文件:

[root@localhost named]# vim  baidu.com.zone

$TTL    86400

@       IN      SOA     localhost. root.localhost.  (

1997022700 ; Serial

28800      ; Refresh

14400      ; Retry

3600000    ; Expire

86400 )    ; Minimum

IN      NS      dns01.baidu.com.        #  这个域名可以没有的。

dns01   IN      A       192.168.0.1

www     IN      A       192.168.0.1

bbs     IN      A       192.168.0.2

这个事反向解析的配置文件:

[root@localhost named]#  vim  192.168.0.arpa

$TTL    86400

@       IN      SOA     localhost. root.localhost.  (

1997022700 ; Serial

28800      ; Refresh

14400      ; Retry

3600000    ; Expire

86400 )    ; Minimum

IN      NS      dns01.baidu.com.

1       IN      PTR     dns01.baidu.com.

1       IN      PTR     www.baidu.com.

2       IN      PTR     bbs.baidu.com.

7)现在检测语法看看是否配置正确,“baidu.com” 是我们的域名。

[root@localhost named]# named-checkzone  baidu.com  baidu.com.zone

zone baidu.com/IN: loaded serial 1997022700

OK

[root@localhost named]# named-checkzone  baidu.com  192.168.0.arpa

zone baidu.com/IN: loaded serial 1997022700

OK

8)现在就可以启动DNS服务了,在加入开机启动项。

[root@localhost named]# service    named  restart

[root@localhost named]# chkconfig  named  on


9)现在我们就可以来测试了。我们可以使用客户端或者是本机来测试,方法如下。

我们苦役使用:host nslookup 等命令来测试。

首先也要在本机指定DNS,是为了我们来测试DNS。

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

nameserver  192.168.0.1

(1)本机测试方法如下:

[root@localhost etc]#  nslookup  www.baidu.com

Server:         192.168.0.1

Address:        192.168.0.1#53                                    #“53”代表监控的端口

Name:   www.baidu.com

Address: 192.168.0.1                                              # 解析出对应的IP地址

[root@localhost etc]#  nslookup  bbs.baidu.com

Server:         192.168.0.1

Address:        192.168.0.1#53                                    #“53”代表监控的端口

Name:   bbs.baidu.com

Address: 192.168.0.2                                              # 解析出对应的IP地址

[root@localhost etc]#  nslookup  dns01.baidu.com

Server:         192.168.0.1

Address:        192.168.0.1#53

Name:   dns01.baidu.com

Address: 192.168.0.1                                              # 解析出对应的IP地址

[root@localhost etc]#  host   dns01.baidu.com

dns01.baidu.com has address 192.168.0.1                           #  解析出对应的IP地址

[root@localhost etc]#  host   www.baidu.com

www.baidu.com has address 192.168.0.1                             #  解析出对应的IP地址

[root@localhost etc]#  host   bbs.baidu.com

bbs.baidu.com has address 192.168.0.2                             #  解析出对应的IP地址

结果证明我们配置正确。

10)下面是测试反向解析的方法:

[root@localhost etc]#  nslookup  192.168.0.1

Server:         192.168.0.1

Address:        192.168.0.1#53

1.0.168.192.in-addr.arpa        name = www.baidu.com.             # 解析出对应的IP地址

1.0.168.192.in-addr.arpa        name = dns01.baidu.com.           # 解析出对应的IP地址

[root@localhost etc]#  nslookup  192.168.0.2

Server:         192.168.0.1

Address:        192.168.0.1#53

2.0.168.192.in-addr.arpa        name = bbs.baidu.com.             # 解析出对应的IP地址

[root@localhost etc]#  host  192.168.0.1

1.0.168.192.in-addr.arpa domain name pointer dns01.baidu.com.     # 解析出对应的IP地址

1.0.168.192.in-addr.arpa domain name pointer www.baidu.com.       # 解析出对应的IP地址

[root@localhost etc]#  host  192.168.0.2

2.0.168.192.in-addr.arpa domain name pointer bbs.baidu.com.       # 解析出对应的IP地址


11)现在我们在客户机上测试

注释:要测试DNS,首先要在客户端设置指定DNS

  1. 在测试前首先来配置一下客户端的环境。

  2. 要配置IP和DNS服务器一个网段的IP地址。

  3. 在把两台连接到一个虚拟的网段。如图“1”

在客户机上配置IP地址:

[root@localhost ~]# ifconfig  eth0  192.168.0.3

图“1”

我们可以点击虚拟机设置来设置两台虚拟机的网段。

12)现在可以来测试DNS是否可以解析我们设置的域名或者把IP解析成域名。方法如下:

首先在客户端指定DNS,我们在这个文件里添加一行,来指定DNS

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

nameserver      192.168.0.1

13)现在我们来测试正向解析,把域名解析成IP地址。

[root@localhost ~]#  nslookup  www.baidu.com

Server:         192.168.0.1

Address:        192.168.0.1#53

Name:   www.baidu.com

Address: 192.168.0.1                                             # 解析出对应的IP地址

[root@localhost ~]#  nslookup  bbs.baidu.com

Server:         192.168.0.1

Address:        192.168.0.1#53

Name:   bbs.baidu.com

Address: 192.168.0.2                                             # 解析出对应的IP地址

[root@localhost ~]#  nslookup  dns01.baidu.com

Server:         192.168.0.1

Address:        192.168.0.1#53

Name:   dns01.baidu.com

Address: 192.168.0.1                                             # 解析出对应的IP地址

[root@localhost ~]#  host  www.baidu.com

www.baidu.com has address 192.168.0.1                            # 解析出对应的IP地址

[root@localhost ~]#  host  bbs.baidu.com

bbs.baidu.com has address 192.168.0.2                            # 解析出对应的IP地址

[root@localhost ~]#  host  dns01.baidu.com

dns01.baidu.com has address 192.168.0.1                          # 解析出对应的IP地址

14)现在我们来测试反向解析,把IP地址解析成域名。

[root@localhost ~]#  nslookup  192.168.0.1

Server:         192.168.0.1

Address:        192.168.0.1#53

1.0.168.192.in-addr.arpa        name = www.baidu.com.            # 解析出对应的域名

1.0.168.192.in-addr.arpa        name = dns01.baidu.com.          # 解析出对应的域名

[root@localhost ~]#  nslookup  192.168.0.2

Server:         192.168.0.1

Address:        192.168.0.1#53

2.0.168.192.in-addr.arpa        name = bbs.baidu.com.            # 解析出对应的域名

[root@localhost ~]#   host  192.168.0.1

1.0.168.192.in-addr.arpa domain name pointer dns01.baidu.com.    # 解析出对应的域名

1.0.168.192.in-addr.arpa domain name pointer www.baidu.com.      # 解析出对应的域名

[root@localhost ~]#   host  192.168.0.2

2.0.168.192.in-addr.arpa domain name pointer bbs.baidu.com.      # 解析出对应的域名

测试完毕。结果证明我们所测试的结果是正确的。


总结

通过对DNS的测试我们基本现实了。域名解析IP,或者是IP解析域名的目的。简化了我们人对IP地址的记忆困难,从而使我们通过记忆域名来记忆那些IP地址。这样的话我们人就可以记忆更多的域名来访问更多的网站了,通过实验我们可以从这个实验可以看出几点不足的地方。

  1. 在企业里如果这台DNS服务器坏的话,我们又要怎么解析域名那 ?

  2. 我们是不是可以做好几台DNS服务器那?

  3. 做好几台DNS服务器是为什么啊 ?

  4. 通过搭建DNS服务器这个实验我们学到了什么?我们的收获是什么 ?

我们有什么更好的方法把这个DNS服务器做的更好那?

实验有什么不足的地方大家给予意见,我会还好好接受的 。

注释:我们学的不是怎么做实验,而是学习DNS的原理,工作流程,以及怎么显实现的过程。

转载于:https://blog.51cto.com/1208073155/1429352

Linux DNS (2)搭建DNS服务器相关推荐

  1. linux怎样搭建DNS服务器,Linux下快速搭建DNS服务器

    摘要 腾兴网为您分享:Linux下快速搭建DNS服务器,作业盒子,优学堂,湘税社保,悟空识字等软件知识,以及初中英语app,新榜编辑器,神界原罪2,少儿英语点读app,minecraft皮肤编辑器, ...

  2. Nginx的安装基础配置(windows、linux)以及搭建图片服务器(windows、阿里云),文件上传

    Nginx的安装基础配置(windows.linux)以及搭建图片服务器(windows.阿里云),文件上传 本文目录 文章目录 Nginx的安装基础配置(windows.linux)以及搭建图片服务 ...

  3. linux 使用gitblit搭建git服务器

    linux使用gitblit搭建git服务器 安装的过程不是很复杂,首先在官网下载gitblit的安装包,下载版本为gitblit-1.8.0. 解压文件到当前路径 tar -zxvf gitblit ...

  4. linux(centOS)下搭建node服务器之一、 安装Node.js

    本例系统环境:腾讯云 CentOS 7.4 64位 一.找相应node版本,复制链接 1. 打开网址 http://nodejs.cn/download/; 2. ctrl+shift+i(打开开发者 ...

  5. Linux基于Bind9搭建dns服务器

    Bind9简介 Bind是Berkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件.Bind已经成为世界上使用最为广泛的DNS服务器软件 ...

  6. [DNS]ubuntu搭建DNS服务器(bind9)- IPv6

    前言 公司AP系统增加IPv6功能,为测试基于域名-IPv6的放行规则,需要搭建支持IPv6的DNS服务器. Ubuntu采用bind9配置DNS服务器,并增加IPv6部分内容.本文以bind9作为D ...

  7. Linux环境下搭建Apache服务器(完整版)

    Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权, ...

  8. Linux系统下搭建常用服务器

    1.搭建telnet服务器 2.搭建DHCP服务器 3.搭建DNS服务器 4.搭建sendmail服务器 5.搭建FTP服务器 6.搭建web服务器 安装 apache tomcat 7.搭建samb ...

  9. Windows和Linux环境下搭建SVN服务器

    --------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...

  10. 网络打印服务器 linux,在Linux环境下搭建网络打印服务器

    一台旧的打印机没有网口,为方便大家使用决定搭建网络打印服务器.能使用的电脑是古董了,只好使用TinyCore安装使用作为打印服务器了.     先下载最新的tinycore 9.0版,使用usbwri ...

最新文章

  1. 流程控制--for序列
  2. pycharm 离线安装插件
  3. python文件夹目录_Python 操作文件、文件夹、目录大全
  4. webpack快速学习2
  5. 【Elasticsearch】Elasticsearch的IndexSorting:一种查询性能优化利器
  6. css3中的transition与animation中的delay问题
  7. dart参数传方法_Dart是值传递还是引用传递?
  8. N720 拨号上网遇到的问题 /var/lock/LCK
  9. 程序员女朋友都是在哪找的?
  10. python实现jpeg转jpg
  11. 微信开放平台注册和添加应用操作指南
  12. 大学数据库创建与查询实战
  13. 案例:游戏次数(重点内容)
  14. Caffeine使用篇 - Eviction
  15. 一个不错的shell 脚本教程 (国)
  16. 正点原子阿波罗STM32F429开发板资料发布,采用底板+核心板
  17. 分布式存储系统 之 数据备份
  18. RSA非对称加密和解密(同时生成密钥)
  19. 国家、省、市、县 四级联动 JS源码
  20. 【Java】多态的理解与使用

热门文章

  1. 瑞星播报:3月8日需警惕“灰鸽子变种AWM”病毒
  2. ??ArcGIS server公交线路动态分段问题
  3. CF741D Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths
  4. 提高开发效率之VS Code基础配置篇
  5. 初始 DQN 程序 所遇到的问题
  6. 20160406作业
  7. 设计模式学习总结-迭代器模式(Iterator Pattern)
  8. 高效编程所需要做的14件事
  9. org.apache.struts2.dispatcher.FilterDispatcher的四个功能
  10. Tweaked Identical Binary Trees - Medium