DNS域名解析系统:

递归查询:只需要发送一次请求就能获取最终结果
迭代查询:需要发送多次请求才能获取最终结果

正解:域名-->IP
反解:IP-->域名

DNS RR资源记录类型:
A:正向解析
PTR: 指针记录,反向解析
SOA:start of authority 起始授权记录
NS:Name Server 名称服务器
MX:mail exchanger 邮件交换器
priority:0-99

CNAME:正式名称
x CNAME y # x的正式名称是y,则x是别名

一个IP可以有多个域名!
eg:
www.baidu.com A 1.1.1.1
www.google.com.hk A 1.1.1.1

1.1.1.1 ptr www.baidu.com
1.1.1.1 prt www.google.com.hk


Zone : 物理概念
domain :逻辑概念

子域授权:

DNS服务器的类型:
主DNS
辅助DNS
缓存服务器DNS
转发器DNS

配置DNS服务器:
域名:

IANA

域名服务商:
万网
www.net.cn
新网
www.xinnet.com

www.godaddy.com

一台域名服务器可以同时解析多个域名

一、安装软件包
# yum list all bind*
# yum install caching-nameserver
# yum install bind-libs
# yum install bind-utils
bind(berkeley internet name domian)
bind-chroot (该软件包是将bind软件默认安装目录改为/var/named,root这里代表根目录)
bind的配置软件是:
/etc/named.conf :主配置文件
/etc/sysconfig/named :该文件控制是否启动chroot及额外参数
/var/named :数据库文件默认在此目录中
/var/run/named :namde程序执行时默认将pid-file放置在此目录中

rndc:远程控制named (默认在本地执行)/etc/rndc.conf
stop
status :显示服务器的状态信息
flush
reload :重新载入配置文件和区域文件
reload zone:重新载入某区域文件
freeze
reconfig: 重新载入主配置文件和发生更新过的配置文件
retransfer:重新载入传送配置文件
status:将统计数据写入统计文件中


# setenforce 0 关闭selinux
# setenforce 1 开启selinux

二、自己定义配置文件
1)
=============================================================
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.arpa" IN { //127.0.0.* 反向解析区域
type master;
file "named.local"; // 127.0.0.* 反向解析区域配置文件
};
=============================================================
#dig -t NS . > name.ca
#chown :named /etc/named.ca

宏定义
$TTL 600 #当外部DNS服务器访问你的DNS领域进行查询是,记录会放在对方的DNS服务器上几秒钟
$ORIGIN localhost #指定zone的定义

@ #代表zone的意思,这里代表localhost的意思
. #代表一个完整的主机名称FQDN
SOA #代表master/slave 相关的认证、授权资料
NS #标志参数 [zone] IN NS [主机名称] ,NS后面一定是主机名称,代表的意思是请向后面的这台主机要求zone的查询

A #这是正解的符号,参数是[hostname] IN A [IP]
CNAME #建立主机名。参数为[hostname] IN CNAME [主机名称]

PTR #参数为 [IP] IN PTR [主机名称] ,反解

DNS启动:
/etc/init.d/named start 或者
service named start

启动后需要去查看日志从而确认named的启动“
tail -n 20 /var/log/message | grep named











resource record
name [TTL] IN RECORD_TYPE VALUE
#IN 代表使用资源记录RR resource record的意思,TTl代表这次记录会放置到DNS服务器缓存的时间,单位是秒

SOA 起始受权记录
magedu.com. 600 IN SOA ns.magedu.com. admin.magedu.com.(
2012030501 #版本号
20M #20分钟检查一次,刷新时间
5M #重试时间,重试时间不能超过检查时间
5D #超时时间
1D #缓存时间,否定回答
)



NS
magedu.com. 600 IN NS ns.magedu.com
magedu.com. 600 IN NS ns2.magedu.com
ns.magedu.com. 600 IN A 1.1.1.1
ns.magedu.com. 600 IN A 1.1.1.2


MX:一般只出现在正向文件
magedu.com. 600 IN MX 10 mail.magedu.com
mail.magedu.com 600 IN A 1.1.1.3

service named configtest #测试named配置文件是否有语法错误



区域传送:
完全区域传送axfr
增量区域传送ixfr

client --> DNS Server
/etc/resolv.conf
nameserver SERVER

local cache --> /etc/hosts --> DNS Server

DNS Server :
1、如果查询请求是本机所负责区域中的数据的话,要通过查询区域数据文件返回结果
2、如果查询请求不是本机所负责区域中的数据的话,就查询缓存

3、如果缓存中没有答案,则向根发起查询请求

DNS 服务器类型:
主:
辅助
缓存
转发器

# vi /etc/named.conf
allow transfer{none}; #是否允许传送zone,默认不可,除非有slave DNS





实践步骤:
一、
vi /etc/named.conf

options {
directory "/var/named";
allow-quenry{any;};
allow-transfer{172.16.33.5;};
};


Zone "." {
type Hinet;
file "name.root";
};

Zone "localhost" {
type Master;
file "named.localhost";
};

Zone "0.0.127.in-addr.arpa" {
type Master;
file "named.127.0.0";
};

Zone "magedu.com" {
type Master;
file "named.magedu.arpa";
};

Zone "33.16.172.in-addr.arpa" {
type Master;
file "named.172.16.33";
};


二、建立正解数据库位置
vi /var/named/named.localhost


$TTL 600

@ IN SOA localhost. root.localhost.(

2012030715;
20M;
5M;
5D;
1D;
)


@ IN NS localhost.
localhost. IN A 127.0.0.1



vim /var/named/chroot/var/named/named.magedu.com

$TTL 600
@ IN SOA magedu.com. root.magedu.com (2012030715 20M 5M 5D 1D)
@ IN NS magedu.com.
magedu.com IN A 172.16.33.5
@ IN MX 10 magedu


三、为本地主机localhost建立反解数据库

vi /var/named/named.127.0.0

@ IN SOA localhost. root.localhost. (2012030715 20M 5M 5D 1D)


@ IN NS localhost.
1 IN PTR localhost.

四、为172.16.33建立反解数据库

vi /var/named/name.172.16.33

$TTL 600


@ IN SOA magedu.com. root.magedu.com. (
2012030715 20M 5M 5D 1D )


@ IN NS magedu.com.
5 IN PTR magedu.com.