Linux DNS (2)搭建DNS服务器

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

首先我们先准备环境:

  1. 虚拟机一个
  2. RedHat5.9系统两个操作系统
  3. 我们把他们的网路连接在同一个“VMnet”里
  4. 配置IP地址,都配置在一个网段的IP。

注释:

  1. DNS有几点要注意的
  2. DNS可以一个域名对应很多IP
  3. DNS可以一个IP对应很多域名

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

[[email protected] ~]#  /etc/init.d/iptables  stop

[[email protected] ~]#  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地址。

[[email protected] ~]#  ifconfig  eth0  192.168.0.1

1)安装DNS的相关软件:

[[email protected] ~]#  yum  -y  install  bind

[[email protected] ~]#  yum  -y  install  bind-chroot

[[email protected] ~]#  yum  -y  install  bind-utils

[[email protected] ~]#  yum  -y  install  caching-nameserver

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

[[email protected] ~]#  rpm  -q   bind

bind-9.3.6-20.P1.el5_8.5

[[email protected] ~]#  rpm  -q   bind-chroot

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

[[email protected] ~]#  rpm  -q   bind-utils

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

[[email protected] ~]#  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”

[[email protected] ~]#  cd  /var/named/chroot/etc/

[[email protected] etc]#  cp  -p  named.caching-nameserver.conf   named.conf

[[email protected] 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行。定义区域配置文件。

[[email protected] 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)配置完成以后我们在检测一下配置文件的语法是否正确,如果没有提示任何信息,表明语法正确。

[[email protected] etc]#  named-checkconf  named.conf

[[email protected] etc]#  named-checkconf  named.rfc1912.zones



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

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

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

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

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

[[email protected] etc]#  cd  /var/named/chroot/var/named/

[[email protected] named]# cp  -p  named.local baidu.com.zone

[[email protected] named]# cp  -p  named.local 192.168.0.arpa

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

[[email protected] 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

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

[[email protected] 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” 是我们的域名。

[[email protected] named]# named-checkzone  baidu.com  baidu.com.zone

zone baidu.com/IN: loaded serial 1997022700

OK

[[email protected] named]# named-checkzone  baidu.com  192.168.0.arpa

zone baidu.com/IN: loaded serial 1997022700

OK

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

[[email protected] named]# service    named  restart

[[email protected] named]# chkconfig  named  on



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

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

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

[[email protected] ~]# vim  /etc/resolv.conf

nameserver  192.168.0.1

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

[[email protected] 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地址

[[email protected] 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地址

[[email protected] 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地址

[[email protected] etc]#  host   dns01.baidu.com

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

[[email protected] etc]#  host   www.baidu.com

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

[[email protected] etc]#  host   bbs.baidu.com

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

结果证明我们配置正确。

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

[[email protected] 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地址

[[email protected] 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地址

[[email protected] 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地址

[[email protected] 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地址:

[[email protected] ~]# ifconfig  eth0  192.168.0.3

图“1”

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

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

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

[[email protected] ~]# vim /etc/resolv.conf

nameserver      192.168.0.1

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

[[email protected] ~]#  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地址

[[email protected] ~]#  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地址

[[email protected] ~]#  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地址

[[email protected] ~]#  host  www.baidu.com

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

[[email protected] ~]#  host  bbs.baidu.com

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

[[email protected] ~]#  host  dns01.baidu.com

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

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

[[email protected] ~]#  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.          # 解析出对应的域名

[[email protected] ~]#  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.            # 解析出对应的域名

[[email protected] ~]#   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.      # 解析出对应的域名

[[email protected] ~]#   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的原理,工作流程,以及怎么显实现的过程。

Linux DNS (2)搭建DNS服务器,布布扣,bubuko.com

时间: 2024-12-11 13:59:55

Linux DNS (2)搭建DNS服务器的相关文章

Linux虚拟机上搭建ftp服务器

Linux虚拟机上搭建ftp服务器 实验介绍:本文主要介绍在虚拟机的Linux系统上搭建ftp服务器,并且最终可以在另外一台win7虚拟机中能够正常上传和下载文件,并建立访问用户的黑白名单,以及虚拟账户功能. 1.首先打开Linux虚拟机,配置IP地址,本文的Linux的IP地址为192.168.1.16/24,直接通过系统光盘自带的vsftpd软件包安装.(前提是已经挂载了光盘镜像文件) 2.安装成功后,开启vsftpd服务,在win7虚拟机上(IP地址192.168.1.100)就可以访问L

linux使用dnsmasq搭建DNS服务器

介绍:什么是DNS服务器就不说了,至于搭建dns服务器,在linux上有很多的服务可以搭建的,比如:bind.dnsmasq.unbound....等:直接上干货: 搭建环境:redhat7.0,yum源挂载的是redhat7.0的光盘: 一.Dnsmasq安装?? ?yum install dnsmasq -y 二.Dnsmasq配置 1.Dnsmasq的配置文件为:/etc/dnsmasq.conf 2.编辑/etc/dnsmasq.conf 找到下列参数修改或添加: ?? ?resolv-

Linux学习随笔——Linux环境中搭建DHCP服务器

2015.8.30    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要用途:给内部网络或网络服务供应商自动分配IP地址.DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为dhcp server和dhcp client的服务端口      DHCP服务器需要安装TCP/IP协议,需要设置静态IP地址 子网掩码和默认网关 搭建DHCP服务器: 一.设置DHCP服务器

腾讯云服务器linux centOS7.4 搭建ftp服务器 vsftpd

腾讯云服务器linux centos 7.4 搭建ftp服务器 vsftpd # 安装 vsftpd $ yum install vsftpd -y # 启动 $ service vsftpd start && systemctl restart vsftpd.service # 查看 $ netstat -nltp | grep 21 /*目前 FTP 服务登陆允许匿名登陆,也无法区分用户访问,我们需要配置 FTP 访问权限vsftpd 的配置目录为 /etc/vsftpd,包含下列的配

Linux下快速搭建DNS服务器

一.术语解释:TTL Time To Live 缓冲保留时间ORIGIN 属于哪个域@ 代指域IN 开头需要空格SOA 一行记录类型的开始参数:forwarders {} 指向自己无法解析的域名跳转到外部dns服务测试方法:host 域名(host IP) 使用nslookup方法测试 使用dig @ns ip或域名测试邮件服务 dig 域名 mxmx 邮件交换记录 IN MX 10 域名------------------------------------------------------

嵌入式Linux利用Wifi搭建无线服务器(物联网实践之无线网关)

在 http://www.cnblogs.com/heat-man/p/4564539.html中,在嵌入式Linux开发板上我们从最底层实现了一个智能家居的远程控制系统,然而采取的是用网线连接到交换机上的,感觉老土.巧的是,来北京找工作,找到一家做Wifi模组的公司,这几天老大给我的任务是在min210上开发板上跑我们的Wifi模块,以便熟悉环境,好不容易昨天刚搞好,就把自己写的服务器架上试了试,md,无线的感觉就是不一样呀! 下面整理一下思路: 首先你需要一些硬件设施: ARM开发板,计算机

LINUX下怎样搭建FTP服务器

 FTP服务器的简介 关于ftp的介绍大家也一定不陌生了我就直接把百度百科上的介绍拿过来和大家一起温习一下概念 FTP是FileTransferProtocol(文件传输协议)的英文简称而中文简称为文传协议用于Internet上的控制文件的双向传输同时它也是一个应用程序(Application)基于不同的操作系统有不同的FTP应用程序而所有这些应用程序都遵守同一种协议以传输文件在FTP的使用当中用户经常遇到两个概念"下载"(Download)和"上传"(Upload

在linux上手动搭建svn服务器

svn服务器的搭建 环境: linux CentOS 7 安装: 1.安装svn服务器 1 yum install subversion 2.查看版本 1 svnserve --version 3.创建版本库 先创建目录 1 mkdir /var/svn 创建版本库 1 cd /var/svn //先进入svn目录 2 3 svnadmin create /var/svn/proname //用svn管理员创建proname库 4 5 cd proname //进入库 6 7 ls //查看库中

Linux系统简单搭建DHCP服务器

当局域网络中有大量的主机时,如果逐个为每一台主机手动设置IP地址.默认网关.DNS服务器地址等网络参数,显然是一个费力也未必讨好的办法.而DHCP(动态主机配置协议)服务器的应用,正好可以解决这一问题DHCP主要负责集中分配各种网络地址参数(主要包括IP地址.子网掩码.广播地址.默认网关地址.DNS服务器地址):其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程1.安装配置DHCP服务器1)安装 DHCP服务器2)备份配置文件3)修改DHCP的主

linux(centos)上搭建pppoe服务器

搭建pppoe,成功了的话,就觉得TM超级简单,在centos更是5步左右就能搞定 1.安装pppoe,安装完成后,会有pppoe-server命令 yum install rp-pppoe 2.安装完成后,会在动在/etc/ppp目录下生成pppoe-server-options文件,文件内容如下,照着改就可以了 写道 # PPP options for the PPPoE server # LIC: GPL require-pap require-chap login lcp-echo-in