区域传输
完全传输:传送整个解析库
增量传输:传递解析库变化的那部分内容
Domain: Fully Qualified Domain Name 完全域名解析
正向解析:FQDN --> IP
反向解析: IP --> FQDN
负责本地域名的正向和反向解析库:
正向区域
反向区域
DNS解析
一次完整的查询请求经过的流程:
Client -->hosts文件-->DNS Service Local Cache --> DNS Server (recursion) --> Server Cache --> iteration(迭代) --> 根--> 顶级域名DNS-->二级域名DNS…
解析答案:
肯定答案:
否定答案:请求的条目不存在等原因导致无法返回结果
权威答案:aa
非权威答案
资源记录定义的格式
语法:name [ttl(缓存时间)] IN 资源记录类型(RRtype) Value
例如:
www 600(单位s) IN A 1.2.3.4
www.magedu.com. 600 IN A 1.2.3.4
注意:
(1) TTL可从全局继承
(2) @可用于引用当前区域的名字
(3) 同一个名字可以通过多条记录定义多个不同的值;此时DNS服务器会以轮询方式响应
(4) 同一个值也可能有多个不同的定义名字;通过多个不同的名字指向同一个值进行定义;此仅表示通过多个不同的名字可以找到同一个主机
A记录:只能定义在正向区域数据文件中
name: 某主机的FQDN,例如www.magedu.com.
value: 主机名对应主机的IP地址;
例如:
www.magedu.com. IN A 1.1.1.1
www.magedu.com. IN A 2.2.2.2
mx1.magedu.com. IN A 3.3.3.3
mx2.magedu.com. IN A 4.4.4.4
$GENERATE 1-254 HOST$ A 1.2.3.$
*.magedu.com. IN A 5.5.5.5
magedu.com. IN A 6.6.6.6
避免用户写错名称时给错误答案,可通过泛域名解析(*)进行解析至某特定地址
但凡以FQDN做为其值的记录,应该给这个值做一条A记录
其它记录
AAAA:
name: FQDN
value: IPv6
PTR: IP --> FQDN
只能定义在反向区域数据文件中,反向区域名称为逆向网络地址加.in.addr.arpa.后缀组成
name: IP,有特定格式,把IP地址反过来写,1.2.3.4,要写作4.3.2.1;
而有特定后缀:in-addr.arpa.,所以完整写法为:4.3.2.1.in-addr.arpa.
value: FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com
简写成:如1.2.3为网络地址,可省
4 IN PTR www.magedu.com.
注意:网络地址及后缀可省略;主机地址依然需要反着写
子域
子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权
类似根域授权tld:
.com. IN NS ns1.com.
.com. IN NS ns2.com.
ns1.com. IN A 2.2.2.1
ns2.com. IN A 2.2.2.2
magedu.com. 在.com的名称服务器上,解析库中添加资源记录:
magedu.com. IN NS ns1.magedu.com.
magedu.com. IN NS ns2.magedu.com.
magedu.com. IN NS ns3.magedu.com.
ns1.magedu.com. IN A 3.3.3.1
ns2.magedu.com. IN A 3.3.3.2
ns3.magedu.com. IN A 3.3.3.3
glue record:粘合记录,父域授权子域的记录
配置文件
主配置文件:
全局配置:options {};
日志子系统配置:logging {};
区域定义:本机能够为哪些zone进行解析,就要定义哪些zone;
zone "ZONE_NAME" IN {};
注意:任何服务程序如果期望其能够通过网络被其它主机访问,至少应该监听在一个能与外部主机通信的IP地址上
缓存名称服务器的配置:
监听外部地址即可;
dnssec: 建议关闭dnssec,设为no
配置主DNS服务器
主DNS名称服务器:
(1) 在主配置文件中定义区域
zone "ZONE_NAME" IN {
type {master|slave|hint|forward};
file "ZONE_NAME.zone";
};
(2) 定义区域解析库文件
出现的内容:
宏定义;
资源记录;
主配置文件语法检查:
named-checkconf
解析库文件语法检查:
named-checkzone "magedu.com" /var/named/magedu.com.zone
rndc status|reload; service named reload 重载文件
主区域示例
$TTL 86400
$ORIGIN magedu.com.
@ IN SOA ns1.magedu.com. admin.magedu.com (
2015042201
1H
5M
7D
1D )
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 172.16.100.11
ns2 IN A 172.16.100.12
mx1 IN A 172.16.100.13
mx2 IN A 172.16.100.14
websrv IN A 172.16.100.11
websrv IN A 172.16.100.12
www IN CNAME websrv
nslookup 命令:nslookup[-option] [name | -] [server]
交互式模式:
nslookup>
server IP: 指明使用哪个DNS server进行查询
set q=RR_TYPE: 指明查询的资源记录类型
NAME: 要查询的名称
反向区域
反向区域:
区域名称:网络地址反写.in-addr.arpa.
172.16.100. --> 100.16.172.in-addr.arpa.
(1) 定义区域
zone "ZONE_NAME" IN {
type {master|slave|forward};
file "网络地址.zone"
};
(2) 定义区域解析库文件
注意:不需要MX,以PTR记录为主
反向区域示例
$TTL 86400
$ORIGIN 100.16.172.in-addr.arpa.
@ IN SOA ns1.magedu.com. admin.magedu.com. (
2015042201
1H
5M
7D
1D )
IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
11 IN PTR ns1.magedu.com.
11 IN PTR www.magedu.com.
12 IN PTR mx1.magedu.com.
12 IN PTR www.magedu.com.
13 IN PTR mx2.magedu.com.
从服务器
1、应该为一台独立的名称服务器
2、主服务器的区域解析库文件中必须有一条NS记录指向从服务器
3、从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目录中
4、主服务器得允许从服务器作区域传送
5、主从服务器时间应该同步,可通过ntp进行;
6、bind程序的版本应该保持一致;否则,应该从高,主低
定义从区域的方法:
zone "ZONE_NAME" IN {
type slave;
masters { MASTER_IP; };
file "slaves/ZONE_NAME.zone";
};
子域
子域授权:分布式数据库
正向解析区域子域方法:
定义一个子区域:
ops.magedu.com. IN NS ns1.ops.magedu.com.
ops.magedu.com. IN NSns2.ops.magedu.com.
ns1.ops.magedu.com. IN A 1.1.1.1
ns2.ops.magedu.com. IN A 1.1.1.2
fin.magedu.com. IN NS ns1.fin.magedu.com.
fin.magedu.com. IN NS ns2.fin.magedu.com.
ns1.fin.magedu.com. IN A 3.1.1.1
ns2.fin.magedu.com. IN A 3.1.1.2
注意:关闭dnssec功能:
dnssec-enable no;
dnssec-validation no;