- DNS 是计算机域名(Domain Name System)的缩写,主要功能是将计算机域名与IP地址之间作转换。执行这一服务的网络主机就可以称作为DNS服务器,通常我们都认为DNS只是将域名转换成IP地址,然后再使用所查到的IP地址去连接(俗称“正向解析”)。事实上,将IP地址转换成域名的功能也是常使用到的,(俗称“逆向解析”)。下面就来用一个假设的域名(www.mageedu.com),ip地址为172.16.86.1,是本机IP地址,那我们就用本机来做DNS服务器来讲一下DNS的基本配置吧,很简单的哦。一学就会哦。
-
- 首先介绍一下基本知识:
- 数据库中的,每一个条目称作一个资源记录,资源记录类型:
-
- SOA(Start Of Authority): #起始授权记录
- 格式: ZONE NAME TTL IN SOA FQDN ADMINISTRATOR_MAILBOX (
- serial number:版本号或序列号
- refresh:刷新周期
- retry:重试时间
- expire:过期时长
- nagative ansver TTL:否定答案的缓存时长)
-
- 如: mageedeu.com 600 IN SOA ns1.mageedu.com. admin.mageedu.com. (
- 2013040101
- 1H
- 5M
- 1W
- 1D )
- 时间单位:M(分钟)、H(小时)、D(天)、W(周),默认单位是秒
- 邮箱格式:admin@mageedu.com -也可以写为->admin.mageedu.com
-
-
- NS(Name Server):#名称服务器
- 格式: Zone MAIN NAME
- 如: mageedu.com 600 IN NS ns1.mageedu.com.
- ns1.mageedu.com. 600 IN A 172.16.86.1
-
-
- MX(Mail eXchanger):#邮件交换器
- 格式: ZONE NAME TTL IN MX pri VALUE
- 优先级:0-99,数字越小级别越高
- 如: mageedu.com. 600 IN MX 10 mail.mageedu.com.
- mail.mageedu.com. 600 IN A 1.1.1.3
- A(address):FQDN
- AAAA(address):FQDN
- PTR(pointer):IP
- CNAME(Canonical NAME):FQDN
- 如 ftp.magedu.com. IN CNAME www.magedu.com.
-
-
- 一、 首先要配置yum源,我们是从本地服务器上下载的,你们可以用光盘或者镜像文件挂载本地也是可以的。我们就用bind97来介绍一下吧。
-
- [root@localhost ~]#cd /etc/yum.repos.d
- [root@localhost yum.repos.d]# wget ftp://172.16.0.1/pub/gls/server.repo
-
-
- 二、安装bind97,并添加或修改其主配置文件,我们这里就来自己编辑其配置文件。
-
- [root@localhost yum.repos.d]# rpm -e bind-libs bind-utils
- [root@localhost yum.repos.d]# yum install bind97-libs bind97-utils
- [root@localhost ~]# yum install bind97 -y #安装bind97主包
- [root@localhost ~]# cd /etc/
- [root@localhost etc]# cat named.conf #查看配置文件
- [root@localhost etc]# mv /etc/named.conf /etc/named.conf.orig #这里把原有的配置文件重命名或者删除都可以
- [root@localhost etc]# ll -l /etc/named.conf.orig #查看原配置文件的权限和属性
- -rw-r
-
- [root@localhost etc]# vim named.conf #编辑配置文件 创建缓存名称服务器
-

[root@localhost etc]# chown root:named /etc/named.conf #修改属主和属组 [root@localhost etc]# chmod 640 /etc/named.conf #修改权限 [root@localhost etc]# named-checkconf #检查语法是否有错误,不报信息就是最好的信息 [root@localhost etc]# named-checkzone
"." /var/named/named.ca zone ./
IN: has 0 SOA records zone ./
IN:
not loaded due
to errors. [root@localhost etc]# named-checkzone
"localhost" /var/named/named.localhost zone localhost/
IN: loaded serial 0 OK [root@localhost etc]# named-checkzone
"0.0.127.in-addr.arpa" /var/named/named.loopback zone 0.0.127.
in-addr.arpa/
IN: loaded serial 0 OK [root@localhost ~]# service named start #启动DNS服务器 Starting named: [ OK ]
三、关闭 selinux [root@localhost ~]# getenforce #查看当前selinux状态 Enforcing #开启 [root@localhost ~]# setenforce 0 #关闭selinux [root@localhost ~]# getenforce Permissive [root@localhost ~]# vim /etc/selinux/config #修改配置文件永久有效

四、修改DNS服务器地址为本机地址,并让它开机自动运行 [root@localhost ~]# vim /etc/resolv.conf nameserver 172.16.86.1 search localdomain [root@localhost ~]# chkconfig named 0:
off 1:
off 2:
off 3:
off 4:
off 5:
off 6:
off [root@localhost ~]# chkconfig named
on #用此命令实现开机自动运行DNS服务器 [root@localhost ~]# chkconfig named 0:
off 1:
off 2:
on 3:
on 4:
on 5:
on 6:
off 五、实现正向解析 [root@localhost named]# vim /etc/named.conf #编辑主配置文件,添加如下内容 zone
"magedu.com" IN { type master; file
"mageedu.com.zone"; }; [root@localhost named]#vim mageedu.com.zone #在/var/named目录下创建文件并编辑文件内容 $TTL 600 magedu.com.
IN SOA ns1.mageedu.com. admin.mageedu.com. ( 2013040101 1H 5M 2D 6H )
IN NS ns1.mageedu.com.
IN MX 10 mail.mageedu.com. ns1
IN A 172.16.86.1 mail
IN A 172.16.86.2 www
IN A 172.16.86.1 ftp
IN CNAME www [root@localhost named]# chmod 640 mageedu.com.zone [root@localhost named]# chown root:namedmageedu.com.zone [root@localhost named]# named-checkzone
"mageedu.com" /var/named/mageedu.com.zone zonemagedu.com/
IN: loaded serial 2013040101 OK [root@localhost named]# service named restart #重启DNS服务 Stopping named: [ OK ] Starting named: [ OK ] 测试结果:

[root@localhost named]# dig -t CNAME ftp.mageedu.com ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t CNAME ftp.mageedu.com ;;
global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40718 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION
SECTION: ;ftp.mageedu.com.
IN CNAME ;; ANSWER
SECTION: ftp.mageedu.com. 600
IN CNAME www.mageedu.com. ;; AUTHORITY
SECTION: mageedu.com. 600
IN NS ns1.mageedu.com. ;; ADDITIONAL
SECTION: ns1.mageedu.com. 600
IN A 172.16.86.1 ;; Query
time: 5 msec ;; SERVER: 172.16.86.1#53(172.16.86.1) ;;
WHEN: Fri Mar 29 21:23:43 2013 ;; MSG
SIZE rcvd: 85 [root@localhost named]# dig -t NSmagedu.com ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t NSmagedu.com ;;
global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37572 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; QUESTION
SECTION: ;mageedu.com.
IN NS ;; ANSWER
SECTION: mageedu.com. 600
IN NS ns1.mageedu.com. ;; ADDITIONAL
SECTION: ns1.mageedu.com. 600
IN A 172.16.86.1 ;; Query
time: 13 msec ;; SERVER: 172.16.86.1#53(172.16.86.1) ;;
WHEN: Fri Mar 29 21:24:29 2013 ;; MSG
SIZE rcvd: 63 [root@localhost named]# dig -t MXmagedu.com ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -t MXmagedu.com ;;
global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57248 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; QUESTION
SECTION: ;mageedu.com.
IN MX ;; ANSWER
SECTION: mageedu.com. 600
IN MX 10 mail.mageedu.com. ;; AUTHORITY
SECTION: mageedu.com. 600
IN NS ns1.mageedu.com. ;; ADDITIONAL
SECTION: mail.mageedu.com. 600
IN A 172.16.86.2 ns1.mageedu.com. 600
IN A 172.16.86.1 ;; Query
time: 9 msec ;; SERVER: 172.16.86.1#53(172.16.86.1) ;;
WHEN: Fri Mar 29 21:25:02 2013 ;; MSG
SIZE rcvd: 100
六、实现反向解析 [root@localhost named]vim /etc/named.conf zone
"86.16.172.in-addr.arpa" IN { type master; file
"172.16.86.zone"; [root@localhost named]# vim 172.16.86.zone $TTL 600 @
IN SOA ns1.mageedu.com. admin.mageedu.com. ( 2013040101 1H 5M 2D 6H )
IN NS ns1.mageedu.com. 1
IN PTR ns1.mageedu.com. 1
IN PTR www.mageedu.com. 2
IN PTR mail.mageedu.com. [root@localhost named]# chmod 640 172.16.86.zone [root@localhost named]# chown root:named 172.16.86.zone [root@localhost named]# named-checkzone
"86.16.172.in-addr.arpr" 172.16.86.zone zone 86.16.172.
in-addr.arpr/
IN: loaded serial 2013040101 OK [root@localhost named]# service named restart Stopping named: [ OK ] Starting named: [ OK ] [root@localhost named]# dig -x 172.16.86.1 #dig -x IP 根据IP查主机名 ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.1 ;;
global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46711 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION
SECTION: ;1.86.16.172.
in-addr.arpa.
IN PTR ;; ANSWER
SECTION: 1.86.16.172.
in-addr.arpa. 600
IN PTR www.mageedu.com. 1.86.16.172.
in-addr.arpa. 600
IN PTR ns1.mageedu.com. ;; AUTHORITY
SECTION: 86.16.172.
in-addr.arpa. 600
IN NS ns1.mageedu.com. ;; ADDITIONAL
SECTION: ns1.mageedu.com. 600
IN A 172.16.86.1 ;; Query
time: 5 msec ;; SERVER: 172.16.86.1#53(172.16.86.1) ;;
WHEN: Fri Mar 29 21:43:49 2013 ;; MSG
SIZE rcvd: 119 [root@localhost named]# dig -x 172.16.86.2 ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.2 ;;
global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50818 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION
SECTION: ;2.86.16.172.
in-addr.arpa.
IN PTR ;; ANSWER
SECTION: 2.86.16.172.
in-addr.arpa. 600
IN PTR mail.mageedu.com. ;; AUTHORITY
SECTION: 86.16.172.
in-addr.arpa. 600
IN NS ns1.mageedu.com. ;; ADDITIONAL
SECTION: ns1.mageedu.com. 600
IN A 172.16.86.1 ;; Query
time: 2 msec ;; SERVER: 172.16.86.1#53(172.16.86.1) ;;
WHEN: Fri Mar 29 21:44:16 2013 ;; MSG
SIZE rcvd: 106 [root@localhost named]# dig -x 172.16.86.3 ; <<>> DiG 9.7.0-P2-RedHat-9.7.0-6.P2.el5_7.4 <<>> -x 172.16.86.3 ;;
global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28749 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION
SECTION: ;3.86.16.172.
in-addr.arpa.
IN PTR ;; ANSWER
SECTION: 3.86.16.172.
in-addr.arpa. 600
IN PTR www.mageedu.com. ;; AUTHORITY
SECTION: 86.16.172.
in-addr.arpa. 600
IN NS ns1.mageedu.com. ;; ADDITIONAL
SECTION: ns1.mageedu.com. 600
IN A 172.16.86.1 ;; Query
time: 6 msec ;; SERVER: 172.16.86.1#53(172.16.86.1) ;;
WHEN: Fri Mar 29 21:44:29 2013 ;; MSG
SIZE rcvd: 105
七、就这样一个简单的DNS服务器就做成了,是不是很简单啊 ,自己动手实现以下吧 。