天天看点

DNS基础配置+实例

概述:

任何主机要想在网络上通信都要借助IP地址来实现,IP地址是以数字的形式出现,如:202.202.96.39,但是人们使用网络时难于记忆这样的数字,这给网络的发展带来了不便,后来人们想出了一个办法:用具有实际意义的名字来代替IP地址,这就与网络通信相矛盾了?必须要设计出一种能在名字与IP地址相互转换的机制,DNS(域名解析系统)就是在这样的一个需求环境下出现的。当我们在浏览器地址栏里输入

www.wudionline.com时,它会主动查询DNS服务器索要www.wudionline.com的IP地址,然后根据返回的IP地址找寻找相应的网页,再把浏览结果回传给客户端浏览器。

DNS(Domain Name System)域名系统将主机名解析成IP地址使用了一个层次结构的分布式数据库系统,数据库层次性允许将域名空间划分成独立的管理区域,这样各域名服务器可以实现独立的管理,它是以点分的形式出现,通常划分时按照地址域和通用域划分,如:cn代表中国、tw代表台湾、hk代表香港、com代表商业机构、edu代表教育机构、org代表非利组织等,完整的域名像一模倒挂的树,由点来分隔,最右边代表根域(实际上当点出现在最右边时常常省略掉),从后面起第一个区域名叫顶级域、第二个区域名叫二级域...,协议后第一个名称叫主机名。如

www.wudionline.com www是主机名,wudionline叫二级域、com叫顶级域

工作原理:

1、客户端提出请求并将请求发送给本地域名服务器

2、本地域名服务器收到请求后,先查询本地缓存是否有客户端请求的记录地址,如果有就直接把查询结果返回给客户端

3、如果本地缓存没有相应的记录,则本地服务器直接把请求发送给根域名服务器

4、根域名服务器根据查询的记录返回一个所查询域(子域)的IP地址,直到查询到该域服务器

5、该域服务器根据请求的主机名返回该主机对应的IP地址

6、本地域名服务器收到返回的IP地址后将其存入本地缓存中,备下次使用不用再重复上述过程

7、把结果返回给客户端

常用的域名服务器软件为BIND(Berkeley Internet Name Domain),一般分为三种类型的服务器:唯缓冲服务器(caching-forward)、主域名服务器(server)、辅助域名服务器(second server)

唯缓存服务器:唯缓存服务器有一块缓存空间用来缓存DNS的对应记录,当接收到请后先是查看自己的缓存空间是否有对应的记录,如果有就直接返回,如果没有就转发到指定的服务器查询,自己就相当于一台DNS客户端,每次都将查询的结果保留一份到缓存空间里,以便下次不用再重复查询,适当设置唯缓存服务器可以减少网络的负担和提高访问速度(唯缓存服务器不具有权威性)

主域名服务器:主域名服务器负责查询本区域域名解析服务(它是最权威的服务器)

辅助域名服务器:辅助域名服务器负责本区域主域服务器的备份工作,当主域名服务器遇到故障时辅助服务器可以代替主域服务器工作

NDS在Linux下的守护进程名称叫named,它开放tcp、udp53端口,如果开启了防火墙就要允许tcp、udp53端口,开启端口方法:

iptables -A FORWARD --dport 53 -j ACCEPT

安装DNS的包文件:

bind-9.3.3-7.el5 主程序文件

ypbind-1.19-7.el5

bind-libs-9.3.3-7.el5

bind-chroot-9.3.3-7.el5 牢笼程序,可以把BIND限制在笼子里,加强安全

bind-utils-9.3.3-7.el5 所需的单元文件

bind-sdb-9.3.3-7.el5

caching-nameserver-9.3.3-7.el5

安装好后所涉及的文件:

主程序文件/etc/rc.d/init.d/named

named.conf主配置文件

named.caching-nameserver.conf

named.ca指明根域名服务器IP地址

named.local回送文件

启动named:

1、service named start

2、/etc/rc.d/init.d/named start

查看是否启动成功:

1、service named status 查看运行状态

2、netstat -anp |grep named 查看开启端口号

开机自动启动:

chkconfig --level 345 named on 如果要取消开机自启动把on改成off即可

ntsysv

配置文件:

配置文件存放在/etc目录下,如果安装了牢笼(chroot)的支持,配置文件放在/var/named/chroot/etc目录下,区域文件(区域数据库)存放

在/var/named/chroot/var/named目录下,注意:named配置文件权限需要加入named组才能正确运行.为方便我们可以直接复制、修改原来配置文件,不要忘记权限啊:).

cp -p /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf

打开配置文件:

cd /var/named/chroot/etc

vi named.conf

options {

        listen-on port 53 { any; }; 监听端口

        listen-on-v6 port 53 { ::1; }; 在IP_V6上监听的端口号

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

        query-source    port 53; 在ip_V4上查询端口

        query-source-v6 port 53; 在ip_V6上查询端口

        allow-query     { 192.168.2.0/24; }; 允许查询的客户端,一般企业内部用时,为提高安全性通常指定允许范围

        version "unsupported on this platform"; 指明DNS版本号,最好别让有心之人知道具体版本号,为提高安全性

};

logging {

        channel default_debug {

                file "data/named.run";

                severity dynamic;

        };

view localhost_resolver {

        match-clients      { localhost; };

        match-destinations { localhost; };

        recursion yes;

#       include "/etc/named.rfc1912.zones"; 这个行本来是有,可以注释掉,加入根域就够了

zone "." { 指明是根域

type hint;

file "named.ca"; 根域文件名

zone "wudionline.com" IN { 正向解析文件

type master; 区域数据库文件类型

file "wudionline.com.zone"; 区域数据库文件名

allow-update {none;}; 是否允许更新

zone "2.168.192.in-addr.arpa" IN { 反向解析文件,.in-addr.arpa不要写错啊

type master; 类型

file "192.168.2.zone"; 区域数据库文件名

这个是主配置文件,还有两个区域数据库文件,正向区域文件名:wudionline.com.zone,反向区域解析文件名:192.168.2.zone

vi /var/named/chroot/var/named/192.168.2.zone

$TTL    86400

@       IN      SOA     localhost. root.localhost.  (

                                      2009053100 ; 同步号

                                      28800      ; 刷新时间

                                      14400      ; 重试时间

                                      3600000    ; 过期时间

                                      86400 )    ; 最小生存时间

         IN      NS      www.wudionline.com.

12       IN      PTR     wudionline.com.

12       IN      PTR     www.wudionline.com.

12       IN      PTR     ftp.wudionline.com.

12       IN      PTR     mail.wudionline.com.

解释:

$TTL 后面跟记录生存时间,是秒为单位

@       IN      SOA     localhost. root.localhost.

@ 相当于本域名

IN定义记录类型,记录类型可以有SOA、PTR、A、MX,SOA是起始授权记录,PTR是反向域名解析、A是正向域名解析、MX是邮件交换记录

SOA 起始授权记录,任何区域都需要SOA记录,且一般列在第一个资源记录

localhost.是本机完全合格域名,不要忘记后面有个点

root.localhost是管理区域数据文件的管理邮箱地址,为防止与前面的@混淆,特地把@定义成.(点)

2009053100 ; 同步号,同步主、辅助域名服务器的编号,辅助服务器根据编号来确认是否要更新区域数据库内容

28800      ; 刷新时间,每隔2880秒同步一次

14400      ; 重试时间,如果同步失败,则经过14400秒再重试一次

3600000    ; 过期时间,当第一次重试失败后3600000秒,如果仍无法同步主域服务器,则放弃

86400 )    ; 最小生存时间,记录生存时间

IN      NS      www.wudionline.com. 说明本区域由www.wudionline.com这台服务器负责,后面有点号

12       IN      PTR     wudionline.com. 反向解析地址,指明IP地址为192.168.2.12对应的域名是wudionline.com,注意后面的点号

vi /var/named/chroot/var/named/wudionline.com.zone

@               IN SOA  localhost root (

                IN NS           localhost

wudionline.com. IN A            192.168.2.12

www (也可以写成www.wudionline.com.)   IN A     192.168.2.12

ftp             IN A            192.168.2.12

wudionline.com. IN MX 5         mail.wudionline.com

mail            IN A            192.168.2.12

同上,IN A记录说明是正向解析

wudionline.com. IN A            192.168.2.12,这句说明wudionline.com对应的IP地址是192.168.2.12,当用完全合格域名是请不要忘记域

名后面跟一个点号

www             IN A            192.168.2.12当简化域化域名时只写主机名,后面不加点号

还有一种类型:IN CNAME 它是定义别名的写法,格式如下:

别名        IN    CNAME    完全合格域名(或主机名)

MX邮件记录:

区域名   IN   MX   邮件记录优先级   邮件服务器的完全合格域名

测试:

测试区域文件的正确性:named-checkzone

测试配置文件的正确性:named-checkconf

如果没有问题的话会显示“OK“字样

把DNB设置为自己的DNS服务器地址

vi /etc/resolv.com

nameserver 192.168.2.12  192.168.2.12是DNS服务器的IP地址

host www.wudionline.com

host ftp.wudionline.com

host -t mx wudionline.com

host 192.168.2.12

nslookup www.wudionline.com

nslookup ftp.wudionline.com

nslookup

set t=mx

wudionline.com

下一篇将介绍实例操作

继续阅读