Linux下使用Webmin搭建DNS服务器

  categories:资料  author:
搭建DNS服务器,对于系统、网络玩的熟的人,大概几十分钟就能搞定。对于玩的不熟的人来说,也许几个小时才能摸清门路。我就属于第二种,光了解概念就花了不少时间,总结一下吧。


先了解几个概念:
DNS 是计算机域名系统 (Domain NameSystem Domain Name Service) 的缩写,它是由解析器以及域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。DNS使用TCPUDP端口号都是53,主要使用UDP,服务器之间备份使用TCP当我们在浏览器的地址栏里敲入地址:www.163.com访问网易网站的时候,事实上www.163.com最终会被解析成218.60.31.75这个IP地址,而我们的浏览去访问这个IP地址,就可以登录网易的网站了。DNS是一个分布于全球各个角落的分布式数据库系统,类似于我们生活中的114电话查询系统。



解析分为:
正向解析,从域名–>IP
反向解析,从IP–>域名。

域名服务器大概可以分为:
Master server (主服务器) 某个区域的主DNS服务器。
Slave server (
从服务器) 从主服务器接收区域信息的DNS服务器。
Forwarder server (
转发服务器) 将未解析的DNS请求发送到该网络以外的服务器.它可以保持局域网上的其他服务器对因特网隐藏。
Caching on server (
缓冲服务器) 将从DNS服务器收到的DNS信息进行缓冲, 使用这种子缓冲信息来解析本地请求。
Stealth server (
秘密服务器) 没有被主DNS服务器列为名字服务器的区域DNS服务器。

常见的区域类型包括:
Master zone (主区域) 这是网络最基本的区域文件。此文件维护本网络中所有主机的域名和IP地址的映射关系。
Slave zone (
从区域) 他们是本网络上其他DNS服务器的引用文件。用户的网络可以有一个主DNS服务器和多个从DNS服务器,以协助执行任务,降低负载。DNS服务器会自动从主DNS服务器那里复制包括所有区域文件在内的配置文件。任何主服务器配置文件的修改都会导致配置文件自动下载到从DNS服务器。实际上,由于配置文件会自动地复制到从DNS服务器,所以只要管理主服务器上的配置文件即可。
Forward zone (
转发区域) 转发区域文件会列出本网络之外的名字服务器,如果本网络的名字服务器解析IP地址失败,它会搜索转发区域文件中的名字服务器以尽可能地解析域名。区域条目在named.conf文件中给出。可以在这里设置主,从,转发DNS服务器区域条目。除此之外, 还要设置下面提到的两个特殊的区域条目:
IN-ADDR.ARPA
区域每个主区域条目都有一个相应的名为IN-ADDR.ARPA的逆向映射区域条目,就象本地字段从主机地址开始,而不是网络。所以,对于192.168.1.4而言, 4是主机地址,其相应域地址是4.1.168.192,以逆序排列.。本地主机的逆向映射是0.0.127
.zone
此区域条目定义一个用来指定根名字服务器的线索区域。



本次试验利用Webmin搭建一个基于BindDNS主服务器,为了测试简单,不搞从服务器及缓存服务器。Linux下架设DNS服务器通常是使用Bind程序来实现的。BindBerkeley Internet Name Domain Service的简写,它是一款实现DNS服务器的开放源码软件。Webmin是目前功能最强大的基于WebUnix系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理动作。目前Webmin支持绝大多数的Unix系统,这些系统除了各种版本的linux以外还包括:AIXHPUXSolarisUnixwareIrixFreeBSD等。我就是因为使用命令搞了半天没搞定,才想起用Webmin的,确实是神器,超简便!


试验相关说明:
三个节点:


IP地址



域名



系统



biao



192.168.1.220



biao.oracle.com



CentOS  release 5.8 (Final)

 

 


biao1



192.168.1.221



biao1.oracle.com



Red Hat  Enterprise Linux Server release 5.3 (Tikanga)



biao2



192.168.1.222



Biao2.oracle.com



Red Hat  Enterprise Linux Server release 5.3 (Tikanga)


计划将主DNS服务器安装在biao节点上。


一、安装bind相关的软件包:

bind相关的软件包主要有四个:
bind,提供域名服务的主要程序及相关文件
bind-utils,提供对dns服务器的测试工具程序(如 nslookupdig等)
bind-chroot,为bind提供一个伪装的根目录以增强安全性
caching-nameserver,以配置bind作为缓存域名服务器提供必要的默认配置文件,这些文件配置主、从域名服务器时也可以作为参考。


  1. [root@biao ~]# rpm -qa | grep bind
  2. ypbind-1.19-12.el5_6.1
  3. bind-chroot-9.3.6-20.P1.el5_8.5
  4. bind-utils-9.3.6-20.P1.el5_8.5
  5. bind-9.3.6-20.P1.el5_8.5
  6. kdebindings-3.5.4-6.el5
  7. bind-libs-9.3.6-20.P1.el5_8.5

复制代码

 

 

我系统里相关的包都有了,没有的话可以通过yum安装。yum不好使的,可以参考:
Redhat/CentOS使用yum报错的完美解决方案http://f.dataguru.cn/forum.php?mod=viewthread&tid=44212&fromuid=4771


caching-nameserver,可以不用装,我目测了一下,只要装好了其他的包,模板文件在其他的目录下也有,可以通过以下命令查看的到:
  1. [root@biao ~]# rpm -ql bind

复制代码

当然,既然使用webmin,就不需要神马模板了。。

 

二、webmin相关配置:

1.下载:
  1. [root@biao ~]# wget http://prdownloads.sourceforge.net/webadmin/webmin-1.610-1.noarch.rpm
  2. –2013-01-12 14:07:16–  http://prdownloads.sourceforge.net/webadmin/webmin-1.610-1.noarch.rpm
  3. Resolving prdownloads.sourceforge.net… 216.34.181.59
  4. Connecting to prdownloads.sourceforge.net|216.34.181.59|:80… connected.
  5. HTTP request sent, awaiting response… 301 Moved Permanently
  6. Location: http://downloads.sourceforge.net/project/webadmin/webmin/1.610/webmin-1.610-1.noarch.rpm [following]
  7. –2013-01-12 14:07:57–  http://downloads.sourceforge.net/project/webadmin/webmin/1.610/webmin-1.610-1.noarch.rpm
  8. Resolving downloads.sourceforge.net… 216.34.181.59
  9. Connecting to downloads.sourceforge.net|216.34.181.59|:80… connected.
  10. HTTP request sent, awaiting response… 302 Found
  11. Location: http://nchc.dl.sourceforge.net/project/webadmin/webmin/1.610/webmin-1.610-1.noarch.rpm [following]
  12. –2013-01-12 14:08:18–  http://nchc.dl.sourceforge.net/project/webadmin/webmin/1.610/webmin-1.610-1.noarch.rpm
  13. Resolving nchc.dl.sourceforge.net… 211.79.60.17, 2001:e10:ffff:1f02::17
  14. Connecting to nchc.dl.sourceforge.net|211.79.60.17|:80… connected.
  15. HTTP request sent, awaiting response… 200 OK
  16. Length: 21497492 (21M) [application/octet-stream]
  17. Saving to: `webmin-1.610-1.noarch.rpm’
  18. 100%[===================================================================================>] 21,497,492  62.8K/s   in 8m 13s
  19. 2013-01-12 14:16:31 (42.6 KB/s) – `webmin-1.610-1.noarch.rpm’ saved [21497492/21497492]

复制代码



2.安装:
  1. [root@biao ~]# rpm  -ivh webmin-1.610-1.noarch.rpm
  2. warning: webmin-1.610-1.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 11f63c51
  3. Preparing…                ########################################### [100%]
  4. Operating system is CentOS Linux
  5.    1:webmin                 ########################################### [100%]
  6. Webmin install complete. You can now login to https://biao.oracle.com:10000/
  7. as root with your root password.

复制代码

 

 

如上所示,webmin安装成功了,默认端口是10000,可以检查下运行状态:
  1. [root@biao ~]# service webmin status
  2. Webmin (pid 27086) is running
  3. [root@biao ~]# chkconfig –list webmin
  4. webmin          0:off   1:off   2:on    3:on    4:off   5:on    6:off
3.登录:

 

 


默认用户是root用户,填写相应的用户名密码即可。登录后首页如下:

 

 

4.修改解析顺序:
点击“Networking》“Network Configuration》“Hostname and DNS Client


将解析顺序改为DNS–Hosts file


保存退出

 

 

5.BIND DNS SERVER
点击“Servers》“BIND DNS SERVER


安装完bind之后,默认不会创建相应named.confi的配置文件,需要初始化。
点击按钮创建

 

 

6.创建主区域:
在“Existing DNS Zones”里点击“Create master zone


Zone type:分为正向和反向两种,简单测试,只设置正向了就好了。
Domain name / Network:要解析的域名。
Master server:主服务器。
Email address:邮箱。
其他的默认就好。

 

 

点击create完成。

 

 

7.添加地址:
点击“Address

 

 

如下将biaobiao1biao2的地址都配置好。


 

 

再多加一个,用于测试:

 

 

记得点击create按钮创建,并且配置完后点击右上角的apply~




三、测试,

1.检查named服务状态:
  1. [root@biao ~]# service named status
  2. number of zones: 0
  3. debug level: 0
  4. xfers running: 0
  5. xfers deferred: 0
  6. soa queries in progress: 0
  7. query logging is OFF
  8. recursive clients: 0/1000
  9. tcp clients: 0/100
  10. server is up and running
  11. named (pid  28741) is running…

复制代码

 

 

2.修改dns配置:
把以前的DNS服务器删掉或者注释掉,配置为本次配置的DNS服务器地址
  1. [root@biao ~]# cat /etc/resolv.conf
  2. #nameserver 202.96.134.133
  3. #nameserver 167.140.11.15
  4. nameserver 192.168.1.220

复制代码

 

 

当然,也可以在webmin里更改,或者检查结果:

 

 

3.测试结果:


 

 

测试成功。


至此,一个简单的主DNS服务器搭建成功。


快乐成长 每天进步一点点