DNS
解析类型:
Name –>ip
Ip –> Name
注意: 正方向解析是连个不同的名称空间,是两颗不同的解析树
DNS服务器类型:
主DNS服务器
辅助DNS服务器
缓存DNS服务器
转发器
主DNS服务器: 维护所负责解析的域内解析库服务器,解析库由管理维护
从DNS服务器: 从主服务器或其他服务器那里”复制“(区域传递)一份解析库
序列号: 解析库的版本号,前提,主服务器解析库内容发生变化,器序列递增
刷新时间间隔: 从服务器从主服务器请求同步解析库的时间间隔
重试时间间隔: 从服务器从主服务器请求同步解析库失败时,再次尝试的时间间隔
过期时长: 从服务器始终联系不到主服务器时,多久之后放弃从服务器角色,停止提供服务
”通知“机制避免了从服务器在某些时间总是落后主服务器的情况
区域传送:
全量传递:传递整个解析库
增量传递:传递解析库变化的哪部分内容
DNS:
Domain:
正向:FQDN–> IP
反向:IP–> FQDN
各需要一个解析库来分别负责本地域名的正向和反向解析
正向区域
反向区域
FQDN:Full Qualitfied DOmain Name
www.enjoyms.com.
一次完整的查询请求经过的流程:
Client –> hosts文件 –> DNS Service
Local Cache –> DNS Server –> Server Cache –> iteration(迭代)———>
解析答案:
肯定答案
否定答案:请求的条目不存在等原因导致无法返回结果
权威答案
非权威答案
区域解析库:由众多RR组成
资源记录:Resource Record,RR
记录类型:A,AAAA,PTR,SOA,NS,CNAME,MX
SOA:Start Of Authority ,起始授权记录,一个区域解析库有且仅能有一个SOA记录,而必须为解析库的第一条记录
A: internet Address ,作用,FQDN --> IP
AAAA: FQDN -->IPV6
PTR: PoinTeR, IP --> FQDN
NS:Name Server,专用于标明当前区域的DNS服务器
CNAME:Canonical Name,别名记录
MX:Mail eXchange,邮件交换器
资源记录定义的格式:
语法:name [TTL] IN rr_type value
注意:
(1)TTL可以全局继承
(2)@可用于引用当前区域的名字
(3)同一个名字可以有多条记录定义多个不同的值,此时DNS服务器会以轮询方式响应
(4)同一个值也可能有多个不同的名字,通过多个不同的名字指向同一个值进行定义,此仅表示通过多个不同的名字可以找到同一个主机,仅此而已。
SOA:
name: 当前区域的名字,例如”enjoyms.com"
value:有多部分组成
(1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字
(2)当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用.替换,例如aaa.gmail.com
(3) (主从服务协调属性的定义以及否定的答案的统一的TTL)
例如:
enjoyms.com. 86400 IN SOA ns.enjoyms.com admin.enjoyms.com. (
2017042201 ; 序列号
2H ;刷新时间
10M ;重试时间
1W ;过期时间
1D ;否定答案的TTL值
)
NS: 当前区域的名字
value:当前区域的某DNS服务器的名字,例如ns.enjoyms.com.
注意:一个区域可以有多个NS记录
例如:
enjoyms.com. IN NS ns1.enjoyms.com.
enjoyms.com. IN NS ns2.enjoyms.com.
注意:
(1)相邻的两个资源记录的name相同时,后续的可省略
(2)对NS记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录
MX:
name:当前区域的名字
value:当前区域的某邮件服务器(smtp服务器)的主机名
一个区域内,MX记录可有多个,value之前应该有一个数字(0-99),表示此服务器的优先级,数字越小,优先级越高
例如:
enjoyms.com. IN MX 10 mx1.enjoyms.com.
IN MX 20 mx2.enjoyms.com.
注意:
(1)对MX记录而言,任何一个MX记录后面的服务器名字,都应该有一个A记录
A:
name:某主机的FQDN,例如:www.enjoyms.com.
value:主机名对应的IP地址
例如:
www.enjoyms.com. IN A 1.1.1.1
www.enjoyms.com. IN A 1.1.1.2
注意:
*.enjoyms.com. IN A 1.1.1.1
避免用户写错名称时给错误答案,可通过泛域名解析进行解析至特定地址
AAAA:
name: FQDN
value: IPV6
PTR:
name: IP,有特定格式,把IP地址反过来写,1.2.3.4要写做4.3.2.1 而有特定后缀,in-addr.arpa. 所以完整写法为: 4.3.2.1.in-addra.arpa.
value:FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.enjoyms.com
简写:
4 IN PTR www.enjoyms.com
注意:网路地址及后缀可省略:主机地址依然需要反着写
CNAME:
name:别名的FQDN
value:正工名的FQDN
例如:
web.enjoyms.com IN CNAME www.enjoyms.com
复习:dns服务系统的基础知识、DNS资源记录定义的方法
dns:udp,tcp名称解析服务,53/udp,53/tcp
查询:
递归查询(只发出一次请求,得到最终答案)、迭代查询(通过发多次请求)
解析:正向、反向
权威:非权威
主、从DNS服务器,区域传送
全量传送
增量传送
SOA:
序列号、刷新时间、重试时间、过期时间、否定的应答TTL:
H,D,M,W
BIND:
RR类型:A,AAAA,PTR,NS,MX,CNAME,SOA,AAAA
DNS and BIND(2)
子域授权:每个域的名称服务器,都是通过其上级名称服务器在解析库进行授权
类似根域授权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
enjoyms.com. 在.com的名称服务器上,解析库中添加资源记录
enjoyms.com. IN NS ns1.enjoyms.com.
enjoyms.com. IN NS ns2.enjoyms.com.
enjoyms.com. IN NS ns3.enjoyms.com.
ns1.enjoyms.com IN A 3.3.3.1
ns2.enjoyms.com IN A 3.3.3.2
ns3.enjoyms.com IN A 3.3.3.3
glue record:粘合记录
主配置文件:
全局配置: OPTIONS{}
日志子系统配置:logging{}
区域定义:
测试命令:dig的使用
dig [-t type] name [@SERVER] [query options]
dig 用于测试dns系统,因此,不会查询hosts文件进行解析
查询选项:
+[no]trace :跟踪解析过程
+[no]recurse:进行递归解析
测试反向解析:
dig -x IP @SERVER
模拟区域传送:
dig -t axfr ZONE_NAME @SERVER
host命令:
host [-t type] name [SERVER]
nslookup [-option] [name] -] [server]
交互式模式:
nslookup>
server IP: 致命使用哪个DNS进行查询
set q=RR_type:指明资源的查询记录类型
NAME: 要查询的名称
反向区域:
区域名称:网络地址反写 .in-addr.arpa.
172.16.100.--> 100.16.172.in-addr.arpa.
主从复制:
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";
}
rndc:
rndc --> rndc (953/tcp)
rndc COMMADN
COMMADN:
reload:重载主配置文件和区域解析文件
reload zone:重载区域解析库文件
retransfer zone:手动启动区域传送过程,而不管序列号是否增加
notify zone:重新对区域传送发通知
reconfig:重载主配置文件
querylog:开启或关闭查询日志(出于定位错误时候启用,否则影响性能)
trace : 递增debug级别
trace LEVEL :指定使用的级别
复习:bind的安装配置,测试工具、正向解析区域、反向解析区域、主从同步
bind安装:bind,bind-libs,bind-utils
正向解析区域:
(1)zone “ZONE_NAME" IN {
type master;
file "ZONE_NAME.zone";
};
(2) 区域解析库文件
SOA,NS,MX,A,CNAME
反向解析区域:
(1) zone ”reverse_Net_Addr.in-addr.arpa" IN {
type master;
file "SOMEFILE.zone";
}
(2) 区域解析库(一个单独的文件)
SOA,NS,PTR
测试工具:dig,host,nslookup
主从同步:
主服务器:授权允许同步
(1)NS记录
(2)授权允许区域传送
从服务器:
(1)只需定义区域:
DNS and BIND(3)
子域授权:分布式数据库
正向解析区域子域方法:
定义一个子区域:
ops.enjoyms.com. IN NS ns1.ops.enjoyms.com
ops.enjoyms.com. IN NS ns2.ops.enjoyms.com
ns1.ops.enjoyms.com. IN A 1.1.1.1
ns2.ops.enjoyms.com. IN A 1.1.1.2
定义转发服务器
注意:被转发的服务器需要能够为请求者做递归,否则,转发请求不予进行
(1)全部转发:凡是非本机所负责解析的区域请求,统统转发给指定的服务器:
Options {
forward
forwarders
}
(2)区域转发:仅转发对特定的区域的请求至某服务器:
zone “ZONE_NAME" IN {
type forward;
forward {first |only)
forwarders { SEVER_IP; }
}
注意: 关闭dnssec功能:
dnssec-enable no;
dnssec=validation no;
bind中基础的安全相关的配置
acl:把一个或多个主机归并为一个集合,并通过一个统一的名称调用;
acl acl——name P{
ip;
ip;
net/prelen;
};
示例:
acl mynet {
172.16.0.0、16;
}
bind有四个内置的acl;
none:没有一个主机
any:任意主机
local:本机
localnet:本机的Ip同掩码运算后得到的网络地址
注意:只能先定义,后使用,因此,其一般定义在配置文件中options的前面
访问控制的指令:
allow-query {}: 允许查询的主机,白名单
allow-transfer {}: 允许区域传送的主机,白名单
allow-recursion {}: 允许递归的主机
allow-update {}: 允许更新区域数据库内容,为了安全,不允许任何人更新
bind view:
视图:
一个bind服务器可以定义多个view,每个view中可以定义一个或者多个zone
每个view用来匹配一组客户端
多个view内可能需要对同一个区域进行解析,但是用不同的区域库解析文件
view VIEW_NAME {
match-clients {};
}
注意:
(1)一旦启用了view,所有的zone都只能定义在view中