DNS域名解析系统简介



DNS域名解析


域名解析的目的是将方便用户使用的网站名称转化为TCP/IP协议真正能够使用的IP地址,hostname只是方便人们记忆,毕竟IP这种纯数字的地址对用户非常的不友好。但计算机在使用TCP/IP通信时是通过IP地址+port端口号来实现的,因此,当我们在浏览器键入一个主机名时,最终还需要将它转化为IP地址的形式才可以真正访问到源服务器。

/etc/hosts:通过在Client端的文件内输入主机名称对应的IP来查询;

DNS系统:利用额外的DNS服务,让Client端可以通过名称解析来取得目的主机的IP。

一个url地址如下,它包括几个部分:协议名称、主机名称、端口号等。


http://www.google.com.hk:80
-------------------------------
scheme host name domain name   port
http     google         com.hk   80 is default value




域名的层次结构:top域名:如.com、.mil、.net、org、.gov、.edu等或国码(如.cn、.jp、.uk、.us等)。

DNS采用分层架构,任何一台DNS服务器都仅记录下一层主机名称对应的IP地址。
以http://www.google.com.hk:80为例,浏览器会根据Client的设置访问一台DNS服务器(假设名称为X),DNS X服务器首先会查找本身有没有对应的记录,如果有被检索的IP就直接返回给Client,否则将向其它DNS服务器进一步查询,整个过程如下:
1、先到root主机查询,查找到这是.hk这台机器的数据;
2、到.hk查询,而该台机器管理的仅有.edu.hk、.com.hk、.gov.hk等几台主机,经过对比发现,我们要的是.com.hk的网段,所以这时.hk告诉我们应该去.com.hk这个网段的主机哪里查询;
3、这样一步步下来,.com.hk可以查到管理google.com.hk的主机IP地址;

4、查到google的IP地址之后,DNS X服务器不会在下次有人查询google.com.hk时再经历一次这样的流程,因为这太浪费时间和网络带宽了。DNS X服务器现在自己的缓存中记录一份google.com.hk对应IP的信息,以便下一次他人对同一个主机名称的查询请求,最后将结果回报给Client端。

当然,记忆在缓存中的数据是有时间性的,当过了DNS设置的记忆时间后(比如24小时),该记录会被释放。在DNS的缓存内存记录中,由于有时间限制,当源服务器名称在DNS中被修改后,由于之前的旧信息还记忆在其他DNS主机的内存缓存里,所以,可能通过别人的DNS主机来查询源服务器名称时会得到先前的旧信息,这个延时通常在2天左右。



DNS监听的端口号是53(在/etc/services文件中可以查询到),它是以UDP这个较快的数据传输协议来查询的。但是万一没有办法查询到完整的信息,就会再次以TCP协议重新查询,所以启动DNS的daemon(即named)时,会同时启动TCP及UDP的53号端口。

DNS系统最主要的功能就是互查主机名与IP,由于计算机在网络上只认识IP地址,所以,一般来说,由主机名查找IP的过程为正解;由IP查询得到主机名为反解。
DNS的主要配置文件是/etc/named.conf,这个文件记录了每一个Zone的配置文件名。实际上,hostname与IP的对应就是记录在各个Zone的配置文件内。
/etc/named.conf:配置文件;
/etc/sysconfig/named:由该文件控制是否启动chroot及额外的参数,该文件是由/etc/init.d/named启动时读入的;
/var/named/:数据库文件默认放在次目录中;
/var/run/named:named程序执行时默认将pid-file放置在此目录内;


下面转载一篇关于DNS相关配置文件的说明文档:

. /etc/host.conf
当系统中同时存在DNS域名解析和/etc/hosts主机表机制时,由该/etc/host.conf确定主机名解释顺序。示例:
order hosts,bind    #名称解释顺序
multi on            #允许主机拥有多个IP地址
nospoof on          #禁止IP地址欺骗
order是关键字,定义先用本机hosts主机表进行名称解释,如果不能解释,再搜索bind名称服务器(DNS)。

. /etc/resolv.conf
该文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。resolv.conf的关键字主要有四个,分别是:
nameserver   #定义DNS服务器的IP地址
domain       #定义本地域名
search       #定义域名的搜索列表
sortlist     #对返回的域名进行排序
/etc/resolv.conf的一个示例:
domain ringkee.com
search www.ringkee.com ringkee.com
nameserver 202.96.128.86
nameserver 202.96.128.166
最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。

. /etc/hosts
设置IP地址与主机名对应表,可用该文件来进行主机名称解释。如:
#格式:IP地址     主机名       别名
127.0.0.1 localhost localhost.localdomain
192.168.1.1 debian debian
192.168.0.2 t02 t02.tiger
192.168.0.4 t04 t04.tiger


./etc/name.conf
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
  这一部分是你安装了bind软件后系统自动产生的named.conf文件的原始内容。“directory”指定了dns记录文件的存放目录是/var/named。“//”开头的文字是说明文字,不用管它。接着的两个“zone”语句定义了dns服务器的根和对应的反向查询域,并指出根的记录文件是“name.ca”,根的反向查询域的记录文件是“named.local”。这两个记录文件也是系统自带的,不用去改动它。named.conf文件的这一部分内容,我们不必去改动它。
  但我们可以在“diretory”下添加一行:forwarders {202.96.134.133;}。202.96.134.133是我这里电信的dns服务器的地址,forwarders参数指明了其后的ip所在的服务器作为备选的dns服务器。也就是说,把本机的dns不能解析的主机发送到这个备选的dns服务器上,让它来进行解析。
zone "zrs.com" IN {
type master;
file "named.zrs.com";
allow-update { none; };
};
zone "0.0.10.in-addr.arpa" IN {
type master;
file "named.zrs.com.rev";
allow-update { none; };
};
  这一部分是手工添加的。定义了“zrs.com”这个域和对应的反向查询域。“type master”说明本机是“zrs.com”和“0.0.10.in-addr.arpa”这两个域的主dns服务器(primary name server)。“named.zrs.com”和“named.zrs.com.rev”是域的记录文件。这两个文件也是自己创建的,下面我们就来看看这两个文件。


./var/named/naemd.***.com
资源记录文件,位于/var/named目录下。这个目录是named.conf中定义的。
1、named.zrs.com文件内容如下:
@ IN SOA netfinity.zrs.com. root.netfinity.zrs.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS netfinity.zrs.com.
IN MX 10 netfinity.zrs.com.
netfinity IN A 10.0.0.211
lily IN A 10.0.0.139
www IN CNAME netfinity.zrs.com.
pop3 IN CNAME netfinity.zrs.com.
smtp IN CNAME netfinity.zrs.com.
  在这个记录文件中,出现了5种类型的记录。SOA 是授权起始(Start Of Authority)的缩写,后面接着写你的dns服务器的主机名,这里是“netfinity.zrs.com.”。(注意,主机名称后面的小圆点。凡是出现在记录文件了的主机名,记得都要加上这各小圆点。)NS 是名称服务器资源记录,指明域中的名称服务器,这里就是dns服务器。MX是邮件交换者资源记录,指明这个域的邮件服务器。你可以写多个MX记录,指明多个邮件服务器,优先级别由MX后的数字决定,数字越小,邮件服务器优先权越高。A是主机记录,把主机和ip地址对应起来。CNAME是别名记录,它赋予一个主机不同的名称,如
www.zrs.com
、pop3.zrs.com其实都是指向同一台主机netfinity.zrs.com。


./var/named/naemd.***.com.rev
named.zrs.com.rev文件内容:
@ IN SOA netfinity.zrs.com. root.netfinity.zrs.com. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS netfinity.zrs.com.
211 IN PTR netfinity.zrs.com.
139 IN PTR lily.zrs.com.
  这是“zrs.com”的反向域记录文件,它让dns服务器提供由ip地址查找主机名的服务。PTR记录把ip和主机名对应起来。由于一些程序会要求反向查询,所以反向查询域的记录文件最好不要省略。
到此为止,你已经成功配置了一个dns服务器,它能够解析“zrs.com”这个域了。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值