【概念】
DNS(Domain Name System),即域名系统,是互联网上为主机提供分配一个便于记忆的名称系统。
【需求】
计算机发展之初,仅仅是用IP进行主机的网络间通信,但单纯的记忆IP,这对人类的认知造成很大程度的困惑。所以为了解决这种情况,最早就出现了本机的localhost文件将IP和名称绑定。但随着网络的发展,接入的终端越来越多,本地的localhost文件已经无法承担这种几何数爆炸的发展趋势,所以就应运而生了IANA组织。它将网络中的主机名和IP绑定,并建立一个数据库提供查询。但终究不能最终解决问题。这就使得DNS出现在了人们的视野中。它基于C/S架构下,全球共提供了13台根节点服务器,下面又衍生出一级级的管理单元,每个管理单元只负责管理下级用户。这就使得主机的存在和查询得到了尽可能程度的缓和。下面我们就它的结构来做下说明。
【原理结构】
我们都知道DNS的结构相当于倒树状结构,最上面的是根,然后下面是各级管理单元,最后则是各类应用服务主机。
而它的查询方式一般可分为递归查询和迭代查询。所谓递归查询就是,我向你提出问题,你不管怎么样都要给我提供解决方案;迭代查询则是,我向你提出问题,你不知道结果,但你知道可以找谁问到结果,然后我就再去通过你说的,去找那个能给我结果的人。
而网络中通常都是使用递归+迭代查询来获得结果的。具体步骤如下:
总体结构图:
域内访问:
例如: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
======================================================
主从配置:
【主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;};
};
======================================================
子域授权:
【主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:
【主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
};
======================================================
DNS简述及配置