【概念】

DNS(Domain Name System),即域名系统,是互联网上为主机提供分配一个便于记忆的名称系统。

【需求】

计算机发展之初,仅仅是用IP进行主机的网络间通信,但单纯的记忆IP,这对人类的认知造成很大程度的困惑。所以为了解决这种情况,最早就出现了本机的localhost文件将IP和名称绑定。但随着网络的发展,接入的终端越来越多,本地的localhost文件已经无法承担这种几何数爆炸的发展趋势,所以就应运而生了IANA组织。它将网络中的主机名和IP绑定,并建立一个数据库提供查询。但终究不能最终解决问题。这就使得DNS出现在了人们的视野中。它基于C/S架构下,全球共提供了13台根节点服务器,下面又衍生出一级级的管理单元,每个管理单元只负责管理下级用户。这就使得主机的存在和查询得到了尽可能程度的缓和。下面我们就它的结构来做下说明。

【原理结构】

我们都知道DNS的结构相当于倒树状结构,最上面的是根,然后下面是各级管理单元,最后则是各类应用服务主机。

而它的查询方式一般可分为递归查询和迭代查询。所谓递归查询就是,我向你提出问题,你不管怎么样都要给我提供解决方案;迭代查询则是,我向你提出问题,你不知道结果,但你知道可以找谁问到结果,然后我就再去通过你说的,去找那个能给我结果的人。

而网络中通常都是使用递归+迭代查询来获得结果的。具体步骤如下:

总体结构图:

wKioL1Ph9FfQTsUgAAP05LkVuLM906.jpg

域内访问:

例如:www.liaria.com.要访问mail.liaria.com.,它只需要查询liaria.com.服务器即可。liaria.com.服务器查询到自己管辖内有mail.liaria.com.主机,直接把结果返回给www。

PS:域内访问时,只需要向上级DNS服务器发出一次查询就能得到结果,这就仅仅用到了递归查询。

域外访问:

例如:www.liaria.com.要访问www.sina.com.cn.,它只需要查询liaria.com.服务器即可。liaria.com.服务器查询到自己没有结果,即向根服务器.发出查询请求;

1.根服务器查询到是cn.管辖,就告诉liaria.com.说自己没有结果,找cn.服务器即可;

2.liaria.com.继续向cn.查询,cn.查过自己的记录后,告诉liaria.com.说去找com.cn.服务器;

3.liaria.com.继续向com.cn.查询,com.cn.查过自己的记录后,告诉liaria.com.说去找sina.com.cn.服务器;

4.liaria.com.继续向sina.com.cn.查询,sina.com.cn.查过自己的记录后,说www.sina.com.cn.就在自己的管辖下,IP是XXX;

5.lliaria.com.拿到www.sina.com.cn.的IP,告诉www.liaria.com.结果,www.liaria.com.即可通过结果返回的IP访问www.sina.com.cn.完成域外访问的全过程。

PS:域外访问时,主机向上级DNS服务器发出一次查询,上级DNS服务器就通过层层迭代得到结果。这就用到了递归和迭代两个阶段。

【DNS服务器的种类】

主DNS服务器:域内的主DNS服务器,可以修改或定期发送更新给从DNS服务器。

从DNS服务器:域内的从DNS服务器,可以接收主DNS服务器发送来的更新,并为主DNS分担一些负担。

缓存服务器:查询的过程是从本机localhost文件到缓存,最后再到网络中的递归或迭代。当缓存中有记录时,会直接调用缓存中的记录。缓存服务器就是起到这类操作的作用。

【配置结构】

DNS中的配置主要有两大类:

1.主配置文件

2.解析库文件

主配置文件是用户发出查询请求时,依照主配置文件的格式进行执行查询;

解析库文件是主配置文件按照用户的请求格式,来进行的调用查询;

因此常规配置只需要做好上述两块即可。而最关键的还是写好解析库文件的资源记录。

【资源记录】

资源记录的组成:

SOA起始授权服务器,即主DNS服务器;

NS名称服务器,如果有多台NS服务器,每一个都必须有对应的NS记录;对正向解析文件来说,NS后都必须跟一条A记录;

AAddress,用于记录服务器的IP地址;

MX定义邮件服务器,如果有多台,每一个都必须有对应的MX记录;而且各MX记录还有优先级属性;

CNAME定义服务器的别名;

PTR反向解析记录;

资源记录的格式:

name[TTL]INRRTypevalue

例如:

SOA:@INSOAns.lodey.com.admin.londey.com. ( 2014080601 1D 15M 7W 1D)

NS:@INNSns.londey.com.

A:www.INA192.168.100.1

MX:@INMX10mail.londey.com.

CNAME:web.londey.com.INCNAMEwww.londey.com.

PTR:1.in-addr.arpa.INPTRwww.londey.com.

【常规应用】

DNS的最常规应用应该属域的正向和反向解析。正向解析是将域名解析为IP,反向解析则是把IP解析为域名。

【实例】

正向解析:

1.安装bind:

#yum -y install bind

2.修改主配置文件:

#vi /etc/named.conf

options {

     directory       "/var/named";

       recursion yes;

};

zone "." IN {

   type hint;

     file "named.ca";//指定全球13台根服务器所在位置

};

include "/etc/named.rfc1912.zones";

3.在/etc/named.rfc1912.zones中创建区域信息:

#vi /etc/named.rfc1912.zone

zone "localhost" IN {    

type master;

file "localhost.zone";

};


zone "londey.com" IN {

type master;//自己添加的区域

file"londey.com.zone

};

4.在/var/named目录下创建区域文件“londey.com.zone"

#vi /var/named/londey.com.zone

$TTL 500

@500INSOAns.londye.com.admin.londey.com. ( 2014080401 1D 1H 1W 3H )

@500INNSns.londey.com.

@500INMX  10mail.londey.com.

ns500INA192.168.100.1

www500INA192.168.100.1

5.在/var/named目录下创建区域文件“localhost.zone”

$TTL 600

@INSOAlocalhost.admin.localhost. ( 2014090401 1D 1H 1W 3H )

INNSlocalhost.

INA127.0.0.1

6.修改文件属性并通过工具检查语法:

#chmod 640 londey.com.zone

#chown root:named londey.com.zone

#named-checkzone "londey.com.zone" /var/named/londey.com.zone


#chmod 640 localhost.zone

#chown root:named localhost.zone

#named-checkzone "localhost.zone" /var/named/localhost.zone

7.启动服务并测试:

#service named start

#ss -tunl | grep :53

#dig -t A www.londey.com

- - - - - - - - - - - - - - - - -

反向解析:

1.在named.rfc1912.zones建立反向区域:

#vi /etc/named.rfc1912.zones

zone "100.168.198.in-addr.arpa." IN {

type master;

file "192.168.100.zone";

};

2.检查语法:

named-checkconf

3.在解析库中建立反向区域文件:

#cd /var/named/

#vi 192.168.100.zone

$TTL 500

@500INSOAns.londye.com.admin.londey.com. ( 2014080401 1D 1H 1W 3H )

@500INNSns.londey.com.

1500INPTRns.londey.com.

4.检查语法错误:

named-checkzone "100.168.192.in-add.arpa" /var/named/192.168.100.zone

======================================================

主从配置:

wKioL1PiHoCQd4WkAACIT3g2Pqc948.jpg

【主DNS配置】

1.修改主配置文件:

#vi /etc/named.conf

acl mynetwork {

192.168.100.0;

}

options {

directory "/var/named";

allow-query {mynetwork;};

allow-recursion {mynetwokr};

};

zone "liaria.com" {

type master;

file "liaria.com.zone";

allow-update {yes};

allow-transfer {192.168.100.0;};

};

2.修改区域解析库文件:

#vi /var/named/liaria.com.zone

$TTL 600

$ORIGIN liaria.com.

@INSOAns.liaria.com.admin.liaria.com.( 2014080601 1D 15M 7W 1D)

INNSns.liaria.com.

INMX  10mail.liaria.com.

INNSns1.liaria.com.

nsINA192.168.100.1

ns1INA192.168.100.2

wwwINA192.168.100.1

ftpINA192.168.100.2

【从DNS配置】

1.修改从服务器的区域信息文件:

#vi /etc/named.rfc1912.zones

zone "liaria.com" IN {

type slave;

file "slaves/liaria.zone;

masters {192.168.100.1;};

};

======================================================

子域授权:

wKiom1PiHYHj4PwMAAC-DI5gdR4387.jpg

【主DNS配置】

1.配置区域解析文件:

#vi /usr/named/liaria.com.zone

$TTL 600

$ORIGIN liaria.com.

@INSOAns.liaria.com.admin.liaria.com. ( 2014080601 1D 15M 7W 1D)

INNSns

INNSns.ops

nsINA192.168.100.1

ns.opsINA192.168.100.2

【子域服务器配置】

1.增加子域信息文件:

#vi /etc/named.rfc1912.zones

zone "ops.liaria.com.zone" IN {

type master;

file "ops.liaria.com.zone";

allow-update {none;};

};

2.增加子域的解析文件:

#vi /var/nemd/ops.liaria.com.zone

$TTL 600

$ORIGIN ops.liaria.com.

@INSOAns.ops.liaria.com.admin.liaria.com. ( 2014080601 1D 15M 7W 1D)

INNSns

nsINA192.168.100.2

wwwINA192.168.100.2

ftpINA192.168.100.2

======================================================

智能DNS:

wKiom1PiHZLBYnm9AACXD9ri870293.jpg

【主DNS配置】

1.修改主配置文件:

#vi /etc/named.conf

acl liarianetwork {

172.16.0.0;

192.168.0.0;

};


options {

directory "/var/named";

allow-query { liarianetwork; };

allow-recursion { liarianetwork; };

};



2.修改域信息文件:

#vi /etc/named.rfc1912zones

view unicom {

match-clients { 172.16.0.0; };

zone XXX

};


view mobile {


match-clients { 192.168.0.0; };

zone XXX

};

======================================================