DNS,全称Domain Name System,即域名解析系统。DNS帮助用户在互联网上寻找路径。在互联网上的每一个计算机都拥有一个唯一的地址,称作“IP地址”(即互联网协议地址)。由于IP地址(为一串数字)不方便记忆,DNS允许用户使用一串常见的字母(即“域名”)取代。
dns作用:实现名称和地址之间的解析
名称---》地址 正向解析
地址---》名称 反向解析
应用范围:
hosts :小型
dns服务器:大型
dns服务器的实现:1.bind 2.powerdns 3.mydns
fqdn:完全合格的名称
主机表示: www.cisco.com.
域表示: cisco.com.
Dns服务的工作过程
当DNS 客户机需要查询程序中使用的名称时,它会查询本地DNS 服务器来解析该名称。客户机发送的每条查询消息都包括3条信息,以指定服务器应回答的问题。
●指定的 DNS 域名,表示为完全合格的域名 (FQDN) 。
●指定的查询类型,它可根据类型指定资源记录,或作为查询操作的专门类型。
● DNS域名的指定类别。
对于DNS 服务器,它始终应指定为 Internet 类别。例如,指定的名称可以是计算机的完全合格的域名,如im.qq.com,并且指定的查询类型用于通过该名称搜索地址资源记录。
DNS 查询以各种不同的方式进行解析。客户机有时也可通过使用从以前查询获得的缓存信息就地应答查询。DNS 服务器可使用其自身的资源记录信息缓存来应答查询,也可代表请求客户机来查询或联系其他 DNS 服务器,以完全解析该名称,并随后将应答返回至客户机。这个过程称为递归。
另外,客户机自己也可尝试联系其他的 DNS 服务器来解析名称。如果客户机这么做,它会使用基于服务器应答的独立和附加的查询,该过程称作迭代,即DNS服务器之间的交互查询就是迭代查询。
服务器类型
1. 主dns服务器 存放原始记录 可以删除 修改 添加
2. 辅助dns服务器 存放记录副本 不能删除 修改 添加记录
3. caching-only
4. 存根dns服务器
区域类型
正向解析域:名称解析地址
反向解析域 :地址解析名称
正向域
SOA 3种信息{ 主dns服务器 管理员邮箱 刷新策略}
NS 该域dns服务器
@ IN NS ns.abc.com.
ns IN A 192.168.3.100
A
abc.com
www IN A 1.1.1.1
CNAME
abc.com
mail IN A 2.2.2.2
smtp IN CNAME mail
pop3 IN CNAME mail
MX
abc.com
mail INA 2.2.2.2
@ INMX 10 mail
反向域
SOA 3种信息{ 主dns服务器 管理员邮箱 刷新策略}
NS 该域dns服务器
PTR
10.168.192.in-addr.arpa
10 PTR www.baidu.com.
资源记录(RR)的保存方式
1.文本
优点:加载到内存,查询速度快
缺点:加载慢,文件改动需要重新加载
2.数据库
优点:改动后立即生效
缺点:磁盘io频繁
dns服务器的端口:udp 53 查询 tcp 53 同步
主要目录
1. /var/named/chroot
2. /var/named/chroot/etc/ dns服务器的配置文件
3. /var/named/chroot/var/named 区域文件
客户端解析工具
windows :nslookup
linux :nslookup dig host
案例1 简单域名解析
a) 在/var/named/chroot/etc/named.rfc1912.zones下做域的声明
zone "a.com" IN {
type master;
file "a.com.zone";
allow-update { none; };
};
b) 在/var/named/下创建a.com.zone文件
$TTL 1D
@ IN SOA ns.a.com. master.a.com. (
3 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
@ IN NS ns.a.com.
ns IN A 192.168.3.48
www IN A 1.1.1.1
ftp IN A 2.2.2.2
mail IN A 3.3.3.3
smtp IN CNAME mail
pop3 IN CNAME mail
@ IN MX 10 mail
c) 在/etc/resolv.conf 修改DNS指向
Nameserver 192.168.3.48
案例 2 主辅同步 (注意主辅服务器的时钟同步)
Linux主机做主DNS服务器:
a) 在/var/named/chroot/etc/named.rfc1912.zones下做域的声明
zone "a.com" IN {
type master;
file "a.com.zone";
allow-update { none; };
};
b) 在/var/named/下创建a.com.zone文件
$TTL 1D
@ IN SOA ns.a.com. master.a.com. (
3 ; serial
2M ; refresh
1M ; retry
1W ; expire
3H) ; minimum
@ IN NS ns.a.com.
@ IN NS ns2.a.com.
ns IN A 192.168.3.48
ns2 IN A 192.168.3.200
www IN A 1.1.1.1
ftp IN A 2.2.2.2
mail IN A 3.3.3.3
smtp IN CNAME mail
pop3 IN CNAME mail
@ IN MX 10 mail
Linux主机做辅助DNS服务器:
c) 在/var/named/chroot/etc/named.rfc1912.zones下做域的声明
zone "b.com" IN {
type slave;
masters { 192.168.3.200; };
file "slaves/b.com.zone";
};
/var/named/chroot/etc/named.conf
option {
allow-transfer { 辅助dns服务器地址; };
} //配置对所有的域都有效
/var/named/chroot/etc/named.rfc1912.zone
zone " 域名 fqdn" IN{
allow-transfer { 辅助dns服务器地址; };
//配置仅仅只对所在域有效
案例3 授权 转发器概念
当子域的DNS服务器不能解析父域的资源记录时:可以添加根提示或者通过转发器来实现。
linux主机上配置转发器
【无条件转发】/var/named/chroot/named.conf
option {
forwarders { 转发的目标服务器地址; }; }
【有条件转发】 /var/named/chroot/etc/named.rfc1912.zon zone "域名" IN {
type forward;
forwardes { 转发的目标服务器地址; }; }
a) 在/var/named/chroot/etc/named.rfc1912.zones下做域的声明
zone "c.com" IN {
type forward;
forward { 192.168.3.200 }
};
zone "sh.c.com" IN {
type master;
file "sh.c.com.zone";
allow-update { none; };
};
b) 在/var/named/下创建sh.c.com.zone文件
$TTL 1D
@ IN SOA ns.sh.c.com. master.c.com. (
3 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns.sh.c.com.
ns IN A 192.168.3.48
www IN A 1.1.1.1
mail IN A 3.3.3.3
smtp IN CNAME mail
@ IN MX 10 mail
Linux实现授权:
a) 在/var/named/下创建d.com.zone文件
$TTL 1D
@ IN SOA ns.d.com. master.d.com. (
3 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
@ IN NS ns.d.com.
ns IN A 192.168.3.48
sh.d.com. IN NS ns.sh.d.com.
ns.sh.d.com. IN A 192.168.3.200
www IN A 1.1.1.1
mail IN A 3.3.3.3
smtp IN CNAME mail
@ IN MX 10 mail