DNS服务器

一、  DNS服务器:

  计算机网络系统只认识IP,但是,使用计算机时是否能记住网络上所有主机的IP呢?显然不可能。。。人脑对于数字组成的IP的记忆较差,相比起来,记住相应的主机名就容易的多。。这就发展成为现在的DNS服务器。

  DNS,Domin Name System 域名系统。是由柏克莱大学发展的BIND软件所提供的。基本上DNS最主要的工作就是将Host Name与IP相对应。

二、 DNS的查询过程
  
  1、DNS架构
   
一般最上层域名(Generic TLDs): .com、.org、.gov、.edu、.mil、.net等
国码或区码最上层域名(Country Code TLDs):.uk、.jp等
   域名及其意义:
   com        公司、行号、企业
   org        组织、机构
   edu        教育单位
   gov        政府单位
   net        网络、通信
   mil        军事单位
全球有13个根DNS服务器:(可以用# dig -t NS . 命令查看)
b.root-servers.net. 603213 IN A 192.228.79.201
c.root-servers.net. 603214 IN A 192.33.4.12
d.root-servers.net. 603214 IN A 128.8.10.90
d.root-servers.net. 603214 IN AAAA 2001:500:2d::d
e.root-servers.net. 603216 IN A 192.203.230.10
f.root-servers.net. 603216 IN A 192.5.5.241
f.root-servers.net. 603216 IN AAAA 2001:500:2f::f
g.root-servers.net. 603218 IN A 192.112.36.4
h.root-servers.net. 603218 IN A 128.63.2.53
h.root-servers.net. 603218 IN AAAA 2001:500:1::803f:235
i.root-servers.net. 603220 IN A 192.36.148.17
i.root-servers.net. 603219 IN AAAA 2001:7fe::53
j.root-servers.net. 603221 IN A 192.58.128.30
j.root-servers.net. 603220 IN AAAA 2001:503:c27::2:30
 
2、DNS的搜索流程
 (1)先查看本身有没有记录(查看本机Hosts文件)
 (2)向最顶层(root)查询
 (3)向第二层查询
 (4)向下层持续查询
 (5)记录暂存内存
本机缓存---本机hosts文件-----DNS服务器缓存-----DNS hosts文件-----DNS 所解析的主机--
3、DNS使用的端口号:
 DNS使用的是网络查询,即开通监听状态的端口。
 启动DNS的Named时,会同时启动TCP和UDP的53号端口。
# netstat -tunlp | grub :53 检查端口号
4、子域授权
设置方法:
 上层DNS授权,自己设置DNS主机
 直接请求上层DNS主机为自己设置DNS
三、DNS主机的详细设置
   详细设置:
   1、主要配置文件是/etc/named.conf
   2、每个正向解析、反向解析都需要一个文件,而文件名是由/etc/named.conf设置的。其所在路径是由/etc/named.conf定义的。
  3、目前的BIND程序可以进行chroot,其配置文件为/etc/sysconfig/named
  4、当DNS查询时,若本身没数据库,则前往root(.)或Forwarders主机查询。
  5、DNS服务器的架设需要上层DNS的授权才可以成为合法的DNS服务器。
  6、判断named是否启动成功,一定要查阅/var/log/messages内的信息。
注:没有向上层ISP注册合法的域名,就没有权利架设合法的DNS服务器。
四、简单的案例
 以RedHat系列主机上DNS的架设为例:
 1、首先查看本机上是否有DNS服务(若无这项服务并安装DNS服务):
# lsmod
# yum list all bind*
# yum install bind
 2、/etc/named.conf配置文件
 /etc/named.conf配置文件是整个Linux上DNS的核心,其主要有三部分:
    (1)规范DNS服务器的使用权限,包括能否查询、forward是否安装、Master/Slave架构等。
    (2)设置Zone(子域)以及Zone File的所在。
    (3)设置DNS本机管理接口以及其相关的金钥文件(Key File)。
具体设置为:
# vim /etc/named.conf
options {
   directory "/var/named";
};
 
zone "." IN  {
   type hint;
   file "named.ca";
};   
   
zone "localhost" IN  {
   type master;
   file "localhost.zone";
};  
 
zone "0.0.127.in-addr.arpr" IN  {
   type master;
   file "named.local";
};  
 
zone "magedu.com" IN {
   type master;
   file "magedu.com.zone";
};   
3、最上层DNS(root)数据库文件的设置
一般此文件的最上层DNS为13个根DNS服务器。
# dig -t A NS . > named.ca
4、正向解析数据库的设置
# vim /var/named/localhost.zone
$TTL 600
@           IN    SOA        localhost.      admin.localhost. (
                             2012030501
                             1H
                             10M
                             1W
                     1D)
                IN     NS        localhost.
localhost. IN     A         172.0.0.1
注:$TTL 用于设置当外部DNS服务器对自己的DNS领域进行查询时,记录会放置在对方DNS服务器内几秒钟。
    $ORIGIN 重新指定Zone的定义。
    @  这个符号代表Zone的意思。
    . 它代表一个完整的主机名称(FQDN),而不仅仅是Host Name。
   SOA SOA是Start Of Authority的简称,代表Master/Slave相关的认证、授权资料
   DNS自己的领域的名称解析器: A     正向解析标志
                               PTR   反向解析标志
                               NS    后面一定是主机名称,向后面的主机要求                                      Zone查询。
                               MX    Mail eXchanger: 邮件交换器
                                    (有优先级 0-99)
                               CNAME 正式名称。 建立主机别名
   2012030501   版本号
   1H         刷新时间为一个小时
   10M        重试时间为10分钟
   1W         超时时间为一个月
   1D         否定时间为一天
4、反向解析配置文件设置
# vim /var/named/named.local
$TTL 600
@     IN    SOA        localhost.      admin.localhost. (
                        2012030501
                        1H
                        10M
                        1W
                 1D)
IN          NS        localhost.
1           IN          PTR       localhost.
5、解析其它主机的配置文件的设置
# vim /var/named/magedu.com.zone
$TTL  600
$ORIGIN magedu.com
@          IN        SOA      ns.magedu.com.    admin.magedu.com.   (
                           2012030501
                              1H
                              10M
                              1W
                      1D)
                      IN       NS NS
                      IN       MX     10    mail
ns                    IN       A            172.16.100.1
mail                  IN       A            172.16.0.1
www                   IN       A            1.1.1.1
ftp                   IN       A            1.1.1.2
pop                   IN       CNAME        mail
www                   IN       A            1.1.1.10
imap                  IN       A            1.1.1.10
6、文件数组修改
把配置文件的数组修改为named。
# chown :named /etc/named
# chown :named /var/named/named.ca
# chown :named /var/named/localhost.zone
# chown :named /var/named/named.local
# chown :named /var/named/magedu.com.zone
7、DNS的启动与观察
测试配置文件是否有语法错误:
# service named configtest
DNS服务的启动:
# service named start
若修改了配置文件,添加DNS功能,可以重新载入数据文件:
# service named reload
五、DNS的查询指令:host、    nslookup、        dig。
host  -a  列出主机的所有相关信息,包括IP、TTL等。
host  -t  跟解析的标志。
nsloop  后可以跟上待查询的主机名称或IP等参数。
dig   -t  跟解析的标志。
dig +trace -t A 正向解析时显示其解析过程 
例如:   
# dig -t localhost
# dig -x 127.0.0.1
# dig -t A www.baidu.com
# dig +trace -t A www.baidu.com
# dig -t A www.magedu.com @172.16.100.1
# host -t A www.magedu.com
# host -t NS magedu.com
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章