DNS服务器
在访问特定网站的时候,不仅可以通过网站的
IP地址打开所需网页,还可以通过英文和数字组成的网址,甚至是网站的部分关键字来打开网页,完成这些工作的“幕后英雄”就是
DNS(域名解析系统)。
DNS域名解析将
IP地址的一长串数字映射为容易记忆的的英文格式,使用户访问
internet更加方便,更体现了网络的实用性。
DNS (Domain Name Server,域名服务器
)是为了便于访问
Internet而采用的的一种分布式的域名到
IP地址映射查询和管理方法。
DNS的最主要功能是实现主机名到
IP地址的转换,除此之外,还提供了主机别名、邮件服务器别名、负载分担等。
DNS系统包含
DNS服务器和
DNS客户端两部分。
DNS服务器是指提供
DNS服务的主机,又被称为域名服务器。
DNS客户端是指提出“域名查询”请求的主机,
DNS客户端同样也拥有简单的
DNS查询功能,通过本地的
3个配置文件
--------/etc/host.conf 、
resolv.conf 和
hosts实现。
客户端发送的每条查询信息都包括指定的查询类型、
DNS域名的类别及合格的
DNS域名(
FQDN)
.
当需要域名解析时,先在本机进行域名解析,如果查询不到,就将这个请求发送给自己的域名解析服务器,并不是直接就到
DNS域名服务器上进行解析。
本地域名解析
不同系统的本地域名解析机制有所不同。
Windows系统会先查询
Windows\system32\drivers\etc中的
host文件,如果包含相关条目,则直接使用其
IP地址。而
Linux系统则需要按照主机上
/etc/host.conf文件的定义,来决定域名查询的顺序。
/etc/host.conf文件中默认的设置是:通过
/etc/hosts文件进行域名解析,如果解析不到,再到
DNS服务器进行域名解析。其声明语句如:
order hosts,bind
DNS服务查询历程
本地不能解析的域名,客户端会将该域名发送到
DNS服务器进行解析。有二种情况:
1、 本地
DNS服务器能够解析客户端发来的请求,服务器直接将答案返回给客户机。
2、 本地
DNS服务器不能解析客户端发来的请求,分为两种解析方法
1、采用产递归的解析方法。本地
DNS服务器向根域名服务器发出请求,根域名服务器对本地域名服务的请求进行解析,得到答案在给本地
DNS服务器,本地
DNS服务器将答案记录在缓存中,并将答案返给客户机。
2、采用迭代的解析方法。本地
DNS服务器向根域名服务器发出请求,根域名服务器返回给本地域名服务器一个能够解析请求的根的下一级域名服务器的地址,本地域名服务器在向根返回的
IP地址发出请求,最终得到请求的答案。
DNS 的配置文件在
/etc/named.conf
DNS 的区域数据文件在
/var/named/目录下
下面通过实验来对
DNS服务进行认识
1、 实验规划
a. 本地域名服务器
ip地址是
192.168.0.179
b. 域名是
wang.com
2.、开始实验
1、把
192.168.0.179的主机名改为
MASTER
Vim /etc/sysconfig/network 中的主机名改为
MASTER包存并退出
2、对主配置文件进行编辑
Options {
#目录是必须要有的
Directory “/var/named”;
};
Zone “.” IN {
Type hint;
File “name.ca”;
};
Zone “localhost” IN {
Type master;
File “localhost.zone”;
};
Zone “0.0.127.in-addr.arpa” IN {
Type master;
File “named.local”;
};
Zone “wang.com” IN {
Type master;
File “wang.com.zone”;
};
3、安装
caching-nameserver.i386包
4、
vim /var/named/wang.com.zone
$TTL 86400
@ IN SOA ns root (
1 ;该区域的序列号
3H ;刷新时间
15M ;刷新时联系不上服务器后隔多久联系
7D ;主域名服务器不工作多久从服务器停止服务
1D ;否定回答的缓存时间)
IN NS ns
Ns IN A 192.168.0.179
www IN A 192.168.0.254
包存退出
修改文件的属组,和其它用户的权限
Chown :named /var/named/wang.com.zone
Chmod o-r /var/named.wang.com.zone
5、重启服务
service named restart
6、把客户机的
DNS指向
192.168.0.179
Vim /et/resolv.conf
把
nameserver 的
ip改为
192.168.0.179
7、测试
A.
ping www.wang.com
b. dig �Ct NS wang.com
dig �Ct A www.wang.com
二.在一个域里做主、从域名服务器
我们把上一个实验的主机做为主域名服务器
从域名服务器的
IP地址为
172.16.4.1
1、 把
172.16.4.1 的主机名改为
slave
2、 配置从域名服务器的主配置文件
Options {
#目录是必须要有的
Directory “/var/named”;
};
Zone “.” IN {
Type hint;
File “name.ca”;
};
Zone “localhost” IN {
Type master;
File “localhost.zone”;
};
Zone “0.0.127.in-addr.arpa” IN {
Type master;
File “named.local”;
};
Zone “wang.com” IN {
Type slave;
File “slaves/wang.com.zone”;
};
3、修改主域名服务器
/var/named/wang.com.zone文件
在里面添加一条记录
IN NS ns2
Ns 2 IN A 172.16.4.1
把从服务器的
DNS指向自己
3、 测试
4、
Dig �Ct A www.wang.com
Dig �Ct NS wang.com
三、在一个域内做父域和子域
把
master主机做父域名服务器
slave做子域名服务器
1、 在父域名服务器的
/var/named/wang.com.zone里面添加两条记录
Tech.wang.com. IN NS ns.tch.wang.com.
Ns.tech.wang.com. IN A 172.16.4.1
2、 子域名服务的主配置里添加
tech.wang.com域
Zone “tech.wang.com” IN {
Type master;
File “tech.wang.com.zone”;
};
3、 为了让子域能够直接解析父域里面的主机
在子域的主配置里添加一个指向域
Zone “wang.com” IN {
Type forward;
Forwarders { 192.168.0.179; };
Forward only;
};
4、 在子域服务器的
/var/named/下创建
tech.wang.com.zone
$TTL 84600
@ IN SOA ns root (
2011112401
1H
5M
7D
1H )
IN NS ns
ns IN A 172.16.4.1
www IN A 172.16.4.1
修改
tech.wang.com.zone的属组和其它的权限
Chown :named /var/named/tech.wang.com.zone
Chmod o-r /var/named/tech.wang.com.zone
5、 父子域服务器重启服务
Service named restart
6、 测试
Dig �Ct A www.tech.wang.com.zone
Dig �Ct NS wang.com