DNS and BIND
Domain Name Server(Syetem、Service)
Bekerley Internet Name Domain,ISC(www.isc.org)
协议 C/S架构、udp53和tcp53
IANA分配域名
本地名称解析配置文件
/etc/hosts
%Windows%/system32/dirvers/etc/hosts
1.1.1.1 www.qq.com
Top Level Domain .tld
三类:组织域、国家域、反向域
DNS查询类型
递归查询:一次查询就能得到最终结果(客户端-ISPDNS)
迭代查询:一次查询需要发起多次查询请求(ISPDNS-目标DNS)
名称服务器:域内负责本域内名称解析的服务器
13个根域服务器
解析类型:
正向解析:FQDN -->> IP
反向解析:IP -->> FQDN
正向解析和反向解析是两个不同的名称空间(解析库),正向是按名称从右到左查询,反向是按ip地址段查询
DNS服务器的类型:
主DNS服务器
维护所负责解析的域域内解析,解析库由管理员维护
辅助DNS服务器
从主DNS服务器或者其他的从DNS服务器那里“复制”(区域传递)一份解析库
序列号:解析库的版本号,前提:主服务器解析库发生变化是,序列号递增
区域传递:
第一次全量传递
后续增量传递
刷新时间:从服务器想主服务器同步解析库的时间间隔
重试时长:解析库同步失败重试时间间隔,数值一般小于刷新时间
过期时长:超过该时长联系不到主服务器时,从服务器停止对外提供dns解析服务
通知机制:当主服务器解析库发生变化时,通知从服务器过来进行同步
缓存DNS服务器
转发器
解析过程:
client -- local cache -- hosts -- dns server -- dns server cache -- other dns server
recursion iteration
解析结果:
肯定答案
权威解析
非权威解析
否定答案
解析库中没有对应的条目,否定答案也可以缓存,避免重复的无结果查询
资源记录:Resource Record :RR
有记录类型:
A Internet Address:FQDN -->> IP
PTR PoinTeR,IP -->> FQDN
SOA Start Of Authority: 起始授权记录,一个区域解析库只有一个SOA记录,必须为解析库的第一条记录
NS 专用于标明当前区域的dns服务器
CNAME Canonical Name:别名记录
MX Mail eXchanger:邮件交换器
AAAA FQDN -->> IPV6
资源记录定义格式:
语法: name [TTL] IN rr_type value
注意:
TTL可以全局继承
@可以引用当前区域的名字
相邻的两个资源记录name相同时,后续的可以省略
同一个name可以对应不同的value,但是需要定义多条RR,解析是轮询
同一个value也可以有多个不同的name
SOA
name 当前区域的名字,如:qq.com
value:
当前区域的主DNS服务器FQDN,也可以使用当前区域的名字:@
当前区域管理员的邮箱地址,用.代替@
(主从我去协调属性,以及否定答案统一的ttl值)
qq.com. 86400 IN SOA ns.qq.com. admin.qq.com. (
2016013101 ;序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的过期ttl值
)
NS
name 当前区域的名字
value 当前区域的某DNS服务器名字,如ns1.qq.com. 一个区域可以有多个ns记录
每条ns记录都应该在后面有一条对应的A记录
qq.com. IN NS ns1.qq.com.
qq.com. IN NS ns2.qq.com.
MX
name 当前区域的名字
value 当前区域的某邮件服务器(smtp)的主机名
一个区域内可以有多个MX记录,每条记录的value之前要有一个数字表示优先级,数值越小优先级越高
每条MX记录都应该在后面有一条对应的A记录
qq.com. IN MX 10 mx1.qq.com.
IN MX 20 mx2.qq.com.
A
name 某主机的FQDN
calue 该FQDN对应的ip地址
www.qq.com. IN A 1.1.1.1
www.qq.com. IN A 1.1.1.2
qq.com. IN A 1.1.1.1
*.qq.com. IN A 1.1.1.5 避免用户给错名称时给出错误的答案,可以通过泛域名解析到指定地址
AAAA 同A,ipv6地址
PTR
name IP,有特定格式 192.168.1.5 写成5.1.168.192.in-addr.arpa.
网络地址及后缀可省略
value FQDN
5.1.168.192.in-addr.arpa. IN PTR www.qq.com.
(5 IN PTR www.qq.com.)
CNAME
name 别名的FQDN
value 正式名字的FQDN
web.qq.com. IN CNAME host.qq.com.
域名注册:
代理商:万网、新网、godaddy.com
注册完成后,去网站上配置dns解析
BIND的安装配置
dns服务,程序包名bind,程序名named
程序包:
bind 提供服务
bind-libs 库文件
bind-utils 工具包,测试工具:dig、host、nslookup、nsupdate
bind-chroot 将工作限制在/var/named/chroot/目录下
rpm -qi (查看程序信息) rpm -ql (查看程序安装到系统上的文件)
bind
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.conf,/etc/named.rfc1912.zones,/etc/rndc.key
rndc:remote name domain controller,默认与bind一起安装,且只能通过127.0.0.1来连接named进程,提供辅助性管理功能,监听tcp953端口
全局配置:options{}
日志子系统配置:logging {}
区域定义;本机能够为那些zone进行解析
zone "zone_name" IN {}
解析库文件:/var/named/zone_name.zone
一台服务器可以为多个域进行解析
必须有根区域文件 named.ca
应该有两个或更多特殊区域文件,用来解析本地回环地址 named.localhost、named.loopback
/etc/named.conf
语法
每行以 ; 结尾
{} 中的内容以 ; 结尾
{} 中内容开头结尾必须有空格,不能挨着括号 { xxx }
单行注释 //
多行注释 /* */
####################################################################
options { listen-on port 53 { any; }; //any监听所有ipv4地址 listen-on-v6 port 53 { }; //空或者删掉本行不监听ipv6地址 directory "/var/named"; //区域解析库文件位置 dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { any; }; //允许哪些客户端查询 recursion yes; //允许递归查询 // dnssec-enable yes; //dnssec相关 // dnssec-validation yes; //dnssec相关 // dnssec-lookaside auto; //dnssec相关 // //dnssec相关 // /* Path to ISC DLV key */ //dnssec相关 // bindkeys-file "/etc/named.iscdlv.key"; //dnssec相关 // //dnssec相关 // managed-keys-directory "/var/named/dynamic"; //dnssec相关 //}; //dnssec相关 logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; zone "zone_name" IN { type {master|slave|hit|forward}; file "zone_name.zone"; };
####################################################################
vim /var/named/zone_name.zone $TTL 86400 定义宏:本解析文件中全局ttl $ORIGIN qq.com. 定义宏:本解析文件中全部简写域名后缀 @ IN SOA ns1.qq.com. admin.qq.com. ( ;SOA记录 20160201001 ;版本号 1H ;刷新时间 5M ;重试时间 7D ;过期时间 1D ;否定答案过期时间 ) IN NS ns1.qq.com. IN NS ns1.qq.com. IN MX 10 mx1.qq.com. IN MX 20 mx2.qq.com. ns1 IN A 1.1.1.1 ns2 IN A 1.1.1.2 mx1 IN A 1.1.1.3 mx2 IN A 1.1.1.4 www IN A 1.1.1.5 * IN A 192.168.92.77 (泛域名解析)
named-checkconf 检查主配置文件语法 named-checkzone "qq.com" qq.com.zone 检查解析文件语法
chmod 640 qq.con.zone chgrp named qq.com.zone rndc status 查看dns服务器运行状态 /etc/init.d/named reload 重新加载配置文件 rndc reload 重新加载配置文件
[root@lab named]# rndc status version: 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6 CPUs found: 4 worker threads: 4 number of zones: 20 debug level: 0 xfers running: 0 xfers deferred: 0 soa queries in progress: 0 query logging is OFF recursive clients: 0/0/1000 tcp clients: 0/100 server is up and running
dig [-t type] name [@server] [query option]
-t type : A NS MX SOA PTR 等
@server : 找谁去查,默认找本机配置的dns服务器查
query option
+[no]trace 跟踪解析过程
+[no]recurse 进行递归解析
dig -t A www.qq.com @127.0.0.1 去127.0.0.1查询www.qq.com的A记录
dig -x 192.168.92.1 @127.0.0.1
dig -t axfr qq.com @192.168.92.66 得到全部的资源记录
host -t A www.qq.com 127.0.0.1 去127.0.0.1查询www.qq.com的A记录
host -t NS qq.com 127.0.0.1 去127.0.0.1查询qq.com的NS记录
nslookup [-option] [name | -] [server]
交互式模式
server x.x.x.x
set q=A、NS、PTR、MX
set q=NS
www.qq.com
定义反向区域:
zone "100.16.172.in-addr.arpa" IN {
type {master | slave | forward};
file 172.16.100.zone;
};
vim 172.16.100.zone (SOA、NS、PTR) $TTL 1D $ORIGIN 100.16.172.in-addr.arpa. @ IN SOA ns1.qq.com. admin.qq.com. ( 20160201001 1H 5M 7D 1D ) IN NS ns1.qq.com. IN NS ns2.qq.com. 1 IN PTR mx1.qq.com. 2 IN PTR mx2.qq.com. 3 IN PTR www.qq.com. 4 IN PTR ftp.qq.com.
[root@lab named]# dig -t axfr qq.com @192.168.92.66 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6 <<>> -t axfr qq.com @192.168.92.66 ;; global options: +cmd qq.com. 86400 IN SOA ns.qq.com. admin.qq.com. 2016020201 3600 300 604800 86400 qq.com. 86400 IN NS ns.qq.com. qq.com. 86400 IN MX 10 mx1.qq.com. qq.com. 86400 IN MX 20 mx2.qq.com. ftp.qq.com. 86400 IN CNAME www.qq.com. mx1.qq.com. 86400 IN A 192.168.92.1 mx2.qq.com. 86400 IN A 192.168.92.2 ns.qq.com. 86400 IN A 192.168.92.66 www.qq.com. 86400 IN A 192.168.92.3 qq.com. 86400 IN SOA ns.qq.com. admin.qq.com. 2016020201 3600 300 604800 86400 ;; Query time: 1 msec ;; SERVER: 192.168.92.66#53(192.168.92.66) ;; WHEN: Tue Feb 2 02:28:03 2016 ;; XFR size: 10 records (messages 1, bytes 245)
[root@lab named]# dig -t axfr 92.168.192.in-addr.arpa @192.168.92.66 ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.el6_7.6 <<>> -t axfr 92.168.192.in-addr.arpa @192.168.92.66 ;; global options: +cmd 92.168.192.in-addr.arpa. 86400 IN SOA ns.qq.com. admin.qq.com. 2016020201 3600 300 604800 86400 92.168.192.in-addr.arpa. 86400 IN NS ns.qq.com. 1.92.168.192.in-addr.arpa. 86400 IN PTR mx1.qq.com. 2.92.168.192.in-addr.arpa. 86400 IN PTR mx2.qq.com. 3.92.168.192.in-addr.arpa. 86400 IN PTR www.qq.com. 3.92.168.192.in-addr.arpa. 86400 IN PTR ftp.qq.com. 66.92.168.192.in-addr.arpa. 86400 IN PTR ns.qq.com. 92.168.192.in-addr.arpa. 86400 IN SOA ns.qq.com. admin.qq.com. 2016020201 3600 300 604800 86400 ;; Query time: 1 msec ;; SERVER: 192.168.92.66#53(192.168.92.66) ;; WHEN: Tue Feb 2 02:29:55 2016 ;; XFR size: 8 records (messages 1, bytes 237)