DNS and Bind
windows的host文件
liunx的host文件
DNS相关概念
1、DNS域名称空间:它指定用于组织名称的域的层次结构
2、资源记录(RR):它将DNS域名映射到特定类型的资源信息,以供在名称空间中注册或解析名称时使用。在Linux系统中,通常“名称解析库(文本文件,位于/var/named/)”中的每一行称作一个资源记录。
3、DNS服务器:它存储和应答资源记录的名称查询
4、DNS客户端(解析程序):它查询从服务器来的搜索及将名称解析为查询中指定的资源记录类型。
DNS系统的作用
正向解析:根据主机名称(域名)查找对应的IP地址
反向解析:根据IP地址查找对应的主机域名
DNS系统的分布式数据结构
全球13台根节点服务器
A INTERNIC.NET(美国,弗吉尼亚州) 198.41.0.4
B 美国信息科学研究所(美国,加利弗尼亚州) 128.9.0.107
C PSINet公司(美国,弗吉尼亚州) 192.33.4.12
D 马里兰大学(美国马里兰州) 128.8.10.90
E 美国航空航天管理局(美国加利弗尼亚州) 192.203.230.10
F 因特网软件联盟(美国加利弗尼亚州) 192.5.5.241
G 美国国防部网络信息中心(美国弗吉尼亚州) 192.112.36.4
H 美国陆军研究所(美国马里兰州) 128.63.2.53
I Autonomica公司(瑞典,斯德哥尔摩) 192.36.148.17
J VeriSign公司(美国,弗吉尼亚州) 192.58.128.30
K RIPE NCC(英国,伦敦) 193.0.14.129
L IANA(美国,弗吉尼亚州) 198.32.64.12
M WIDE Project(日本,东京) 202.12.27.33
DNS查询方式:
递归查询
大多数客户机向DNS服务器解析域名的方式
迭代查询
大多数DNS服务器向其他DNS服务器解析域名的方式
优先级取决于模块文件
域名解析服务器
DNS服务器类型
主域名服务器(权威)
特定DNS区域的官方服务器,具有唯一性
负责维护该区域内所有域名->IP地址的映射记录
对区域的所有更新都通过此服务器进行;
从域名服务器
也称为 辅助域名服务器
其维护的 域名->IP地址记录 来源于主域名服务器
只从同一个区域的主服务器或其它从服务器同步区域数据文件;
缓存域名服务器(非权威)
也称为 唯高速缓存服务器
通过向其他域名服务器查询获得域名->IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度
主从协调过程
DNS服务器的主从如何协调?
区域数据文件有版本号(序列号): serial
刷新时间(检查周期):refresh
重试时间(重试周期): retry
过期时间(失效时长): expire
否定应答的TTL值;
协调过程:
从服务器在间隔达到refresh指定的时长后发起同步请求至主服务器;主服务器响应serial,从服务器与本地的serial进行比较;如果主服务器serial大于本地,意味主服务器区域数据文件更新了,因此请求同步;
区域解析数据库
资源记录:resource record(rr)
资源记录类型:resource record type
SOA: Start Of Authority,起始授权记录;一个区域文件有且只能一个SOA记录;SOA还必须是第一条资源记录;
NS:Name Server,名称服务器
MX:Mail eXchanger,邮件交换器
A: Address,FQDN-->IPv4
AAAA: Address, FQDN-->IPv6
PTR: Pointer,指针,IP-->FQDN
CNAME: Cononical NAME,正式名称
资源记录的定义格式:
语法:name[ttl] IN rr_type value
例如:magedu.com. 60 IN SOA magedu.com. dns.magedu.com. (
2014120901 ;serial number
1H
5M
7D
1D )
NS配置语法:
NS: 一个区域数据文件可以有多个NS记录;
name: 区域名称,可使用@替换;
value:dns服务的FQDN;
例如:
magedu.com. IN NS dns1.magedu.com.
IN NS dns2.magedu.com.
注意:
1、相邻的资源记录name相同时,后面的可省略;
2、任何一个value中指定的FQDN,在其域的正向解析文件中应该有A记录;
MX记录
MX:一个区域数据文件可以有多个MX记录;
name: 区域名称,可使用@表示;
value: 邮件服务器的FQDN
value之前需要一个数字表示其优先级(0-99, 数字越小优先级越高)
例如:
@IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
A记录解析
A, AAAA: 应用于正向区域文件
name: FQDN
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 1.1.1.1
pop3.magedu.com. IN A 1.1.1.1
PTR反向解析
PTR: 应用于反向区域文件
name: IP地址的逆向格式,并附加in-addr.arpa.后缀
value: FQDN
例如:
6.100.16.172.in-addr.arpa. IN PTR www.magedu.com.
CNAME:
name: 别名FQDN
value: 正名FQDN
例如:
web.magedu.com. IN CNAME www.magedu.com.
BIND(Berkeley Internet Name Daemon)
伯克利Internet域名服务
官方站点:https://www.isc.org/
相关软件包
bind-9.8.2-0.30.rc1.el6
bind-utils-9.8.2-0.30.rc1.el6.x86_64
bind-chroot-9.3.3-7.el6
BIND服务器端程序
主要执行程序:/usr/sbin/named
服务脚本:/etc/init.d/named
默认监听端口:53
主配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named/
全局配置部分
设置DNS服务器的全局参数
包括监听地址/端口、数据文件的默认位置等
使用 options { …… }; 的配置段
例如:
options {
listen-on port 53 { 172.16.16.1; };
directory "/var/named";
allow-query { 192.168.1.0/24; 173.16.16.0/24; };
recursion yes;
};
主配置文件/etc/named.conf
区域配置部分
倒序网络地址.in-addr.arpa 的形式表示反向区域
zone "magedu.com" IN {
type master;
file ”magedu.com.zone";
allow-transfer { 173.16.16.2; };设置允许下载该区域解析记录到从域名服务地址
allow-update { none; }; 是否允许动态更新哪些客户机地址,none表示全部禁止
};
zone "16.16.173.in-addr.arpa" IN { 表示针对173.16.16.0/24网段的反向解析区域
type master;
file "173.16.16.arpa";
};
注意:
典型正向区域、反向区域的zone配置段,其中type、file是必须有的,allow-transfer、allow-update等是可选配置
区域设置中的部分配置内容(如allow-transfer、allow-update等)也可以放在全局配置里
反向区域的表示方法,“倒序网络地址.in-addr.arpa
全局TTL配置项及SOA记录
$TTL(Time To Live,生存时间)记录
SOA(Start Of Authority,授权信息开始)记录
分号“;”开始的部分表示注释信息
例如:
$TTL 86400 ; 有效地址解析记录的默认缓存时间
@ IN SOA magedu.com. admin.magedu.com. (
2009021901 ;更新序列号
3H ;刷新时间
15M ;重试延时
1W ;失效时间
1D ;无效地址解析记录的默认缓存时间
)
域名解析记录
NS域名服务器(Name Server)记录
MX邮件交换(Mail Exchange)记录
A地址(Address)记录,只用在正向解析的区域数据文件中
CNAME别名(Canonical Name)记录
例如:
@IN NS ns1.magedu.com.
IN MX 10 mail.magedu.com.
ns1IN A 173.16.16.1
mail IN A 173.16.:16.1
www IN A 173.16.16.1
ftp IN CNAME www
注意:
地址解析记录的配置格式,主要是较常用的NS、MX、A、CNAME记录等
其中NS记录以及NS记录对应服务器主机的A记录通常必需有的,A记录作为正向地址解析记录,是DNS服务器区域数据文件中数量最多的配置行
MX记录用于指定该区域内邮件地址,如果没有邮件服务器,可以省略MX配置记录行
CNAME用于为同一个域名设置不同的名称,其对应的IP地址是相同的
NS、MX记录行首的“@”符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或者制表位
域名解析记录
PTR指针(Point)记录,只用在反向解析的区域数据文件中
配置反向解析记录时,只需要指定IP地址中的主机地址部分即可,网络地址部分不用写
1 IN PTR www.magedu.com.
4 IN PTR study.magedu.com.
注意:
配置反向地址解析记录时的注意事项,设置对应的FQDN地址时注意最后要加“.”号,例如“www.magedu.com.”
修改文件权限
基于域名解析的负载均衡
同一域名对应到多个IP地址
movie IN A 173.16.16.11
movie IN A 173.16.16.12
movie IN A 173.16.16.13
泛域名解析:找不到精确对应的A记录时,使用“*”进行匹配
* IN A 173.16.16.173
子域授权:将DNS子区域内主机地址的解析记录,授权给子域的域名服务器进行维护和解析
cn IN A1 73.16.16.2
IN NS ns.jv.net.cn.
ns.jv.net.cn. IN A 173.16.16.2
注意:
DNS轮询负载均衡对于访问量较大的网络服务非常有用,通常这些服务会由多个不同IP地址的服务器共同承担(服务内容互为镜像)
泛域名解析相当于特定DNS域内的默认解析记录,通常对应到该域的主站点的IP地址,这样即使用户将FQDN中的主机名部分写错了,仍然可以找到该域的主站点
子域授权可以减轻DNS服务器的负担,将一部分解析工作交给其他的服务器来处理
对配置文件进行语法检查
named-checkconf工具
格式:named-checkconf [主配置文件]
[root@localhost ~]# cd /var/named/chroot/etc/
[root@localhost etc]# named-checkconf named.conf
named-checkzone工具
格式:named-checkzone <域名> <区域数据文件>
[root@localhost ~]# cd /var/named/chroot/var/named/
[root@localhost named]# named-checkzone magedu.com magedu.com.zone
zone magedu.com/IN: loaded serial 2009
OK
构建主从域名服务器
构建主域名服务器
基本配置步骤:
1.在named.conf配置文件中添加“magedu.com”主区域
2.建立“magedu.com”区域的数据文件
3.启动或者重新加载named服务程序
4.验证主域名服务器
1.在named.conf主配置文件中添加“magedu.com”区域
[root@ns1 ~]# vi /var/named/chroot/etc/named.conf
……
zone "magedu.com" IN {
type master;
file "magedu.com.zone";
allow-transfer { 173.16.16.6; };
};
zone "16.16.173.in-addr.arpa" IN {
type master;
file "173.16.16.arpa";
allow-transfer { 173.16.16.6; };
};
2.建立“magedu.com”区域的数据文件
正向区域文件 magedu.com.zone
[root@ns1 ~]# vi /var/named/chroot/var/named/magedu.com.zone
……
@ IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
IN MX 10 mail.magedu.com.
ns1 IN A 173.16.16.5
ns2 IN A 173.16.16.6
mail IN A 173.16.16.1
www IN A 173.16.16.1
study IN A 173.16.16.2
* IN A 173.16.16.1
反向区域文件
[root@ns1 ~]# vi /var/named/chroot/var/named/173.16.16.arpa
……
@ IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
1 IN PTR www.magedu.com.
2 IN PTR study.magedu.com.
5 IN PTR ns1.magedu.com.
6 IN PTR ns2.magedu.com.
验证主dns
构建从域名服务器
创建
[root@ns2 ~]# vi /var/named/chroot/etc/named.conf
……
zone "magedu.com" IN {
type slave;
masters { 173.16.16.5; };
file "slaves/magedu.com.zone";
};
zone "16.16.173.in-addr.arpa" IN {
type slave;
masters { 173.16.16.5; };
file "slaves/173.16.16.arpa";
};
注意:
如果在从域名服务器中启动named服务失败,则很可能是因为权限问题,例如主服务器没有设置正确的“allow-transfer”配置项、或者从服务器的named程序对slave目录没有写入权限等
在配置从域名服务器的过程中,不需要手动建立相应的区域数据文件,named程序会自动从主服务器中下载建立
增量复制
区域更新第2种
构建分离解析的域名服务器
基本配置步骤:
1.在named.conf主配置文件中为不同的客户机地址启用不同的zone区域设置,各自使用独立的数据文件
2.分别建立不同的区域数据文件
3.启动或重新加载named服务程序
4.验证分离解析的域名服务器
1.在named.conf主配置文件中为不同的客户机地址启用不同的zone区域设置,各自使用独立的数据文件
view “视图1” {
match-clients { 客户机地址1; }
zone “magedu.com” IN {
……
};
};
view “视图2” {
match-clients { 客户机地址2; }
zone “magedu.com” IN {
……
};
};
view "LAN" {
match-clients { 192.168.1.0/24; };
zone "magedu.com" IN {
type master;
file "magedu.com.zone.lan";
};
};
view "WAN" {
match-clients { any; };
zone "magedu.com" IN {
type master;
file "magedu.com.zone.wan";
};
};
注意:
为不同的客户机地址分别设立view视图
在每个view视图区域中,使用 match-clients配置项指定相匹配的IP地址或网络地址范围
匹配客户机地址时,“any”表示匹配任意地址
2.分别建立不同的区域数据文件
[root@ns1 ~]# vi /var/named/chroot/var/named/magedu.com.zone.lan
……
ns1 IN A 192.168.1.1
www IN A 192.168.1.5
mail IN A 192.168.1.6
[root@ns1 ~]# vi /var/named/chroot/var/named/magedu.com.zone.wan
……
ns1 IN A 173.16.16.1
www IN A 173.16.16.1
mail IN A 173.16.16.1
注意:
根据named.conf配置文件中的view视图设置,为不同的客户机分别建立区域数据文件
将同一主机名(如www.magedu.com)的解析结果,在不同的数据文件中对应到不同的IP地址
3.启动或重新加载named服务程序
service named reload
4.验证分离解析的域名服务器
使用192.168.1.0/24网段的客户机解析 www.magedu.com,结果应为 192.168.1.5
使用其他IP地址的客户机解析 www.magedu.com,结果应为 173.16.16.1