DNS:domain name service,协议(C/S,udp53,tcp53)
BIND:bekerley internat name domain
注意:named程序的启动用户是named用户,非root用户,因此需要注意权限和属主。
本地名称解析配置文件:hosts
linux:/etc/hosts
windows:%WINDOWS%/system32/dirvers/etc/hosts
dns查询类型:
递归查询:一次请求取得最终结果;
迭代查询:多次请求取得最终结果;
名称服务器:域内负责解析本域内名称的主机;
根服务器:13组服务器
解析类型:FQDN:完全限定域名
正向解析:FQDN –>> IP
反向解析:IP –>> FQDN
DNS服务器的类型:
主DNS服务器
辅助DNS服务器
缓存DNS服务器
转发器
主DNS服务器:维护所负责解析的域内解析库的服务器;解析库文件由管理员维护;
从DNS服务器:解析库文件从主DNS服务器或者其他的从DNS服务器“复制”(区域传送)过来;
序列号:解析库的版本号;前提:主dns服务器解析库内容发生变化,其序列号递增;
刷新时间间隔:从服务器从主服务器请求同步解析库的时间间隔;
重试时间间隔:同步解析库失败时,再次尝试的时间间隔;小于刷新时间间隔;
过期时长:从服务器始终联系不到主服务器时,多久后放弃从服务器角度,停止提供服务;
“通知”机制:
区域传送:
全量传送:传送整个解析库;
增量传送:传送解析库变化的那部分内容;
一次完整的查询请求经过的流程:
client–>hosts文件–>local cache–>dns server(递归)–>server cache–>迭代
解析答案:肯定回答、否定回答、权威答案、非权威答案
区域解析库:由众多资源记录RR组成;
资源记录:resource record,RR
记录类型:A,AAAA,PTR,SOA,NS,CNAME,MX
SOA:start of author,起始授权记录:一个区域解析库有且仅能有一个SOA记录,而且必须为解析库的第一条记录;
A:internet address,作用:FQDN–>IP;
AAAA:FQDN–>IPv6;
PTR:poinTeR,IP–>FQDN;
NS:name server,专用于标明当前区域的dns服务器
CNAME:canonical name,别名记录
MX:mail exchanger,邮件交换器
资源记录定义的格式:
语法:name [TTL] IN rr_type value
注意:(1)TTL可从全局继承;
(2)@可用于引用当前区域的名字;
(3)相邻的两个或多个资源记录的name相同时,后续可省略;
(4)对NS、MX记录而言,任何一个ns记录后面的服务器名字,都应该在后续有一个A记录;
(5)同一个名字可以通过多条记录定义多个不同的值;此时dns服务器会以轮询方式响应;
(6)同一个值也可能有多个不同定义名字,通过多个不同名字指向同一个值定义;
(7)避免用户写错名称时给错误答案,通过*泛域名解析至特定地址;例如*.magedu.com. IN A 1.1.1.3
SOA:一个区域解析库内有且只有一个SOA记录
name:当前区域的名字,例如“magedu.com.”
value:由多部分组成:(1)当前区域的主DNS服务器的FQDN,也可以使用当前区域的名字;
(2)当前区域管理员的邮箱地址,但地址中不能使用@符号,一般用.替换;例如linuxedu.magedu.com.;
(3)主从服务协调属性的定义以及否定的答案的统一的TTL;
例如:magedu.com. 86400 IN SOA ns.magedu.com. nsadmin.magedu.com. (
2018041901 ;序列号
2H ;刷新时间
10M ;重试时长
1W ;过期时间
1D ;否定答案的TTL
)
NS:
name:当前区域的名字
value:当前区域的某DNS服务器的名字,例如ns.magedu.com.;一个区域可以有多条NS记录;
例如:
magedu.com. IN NS ns1.magedu.com.
IN NS ns2.magedu.com.
MX:
name:当前区域的名字
value:当前区域的某邮件服务器的主机名;注意,value之前应该有一个数字(0-99),表示此邮件服务器的优先级;
例如:
magedu.com. IN MX 10 mx1.magedu.com.
IN MX 20 mx2.magedu.com.
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
AAAA:
name:FQDN
value:IPv6
PTR:
name:IP;有特定格式,把IP地址反过来写,有特定后缀:.in-addr.arpa.,例如1.2.3.4,要写成4.3.2.1.in-addr.arpa.
value:IPv6FQDN
例如:
4.3.2.1.in-addr.arpa. IN PTR www.magedu.com.
也可以简写成:
4 IN PTR www.magedu.com.
注意:网络地址及后缀可省略;主机ip地址依然需要反过来写;
CNAME:
name:别名的FQDN
value:正式名字的FQDN
例如:
web.magedu.com. IN CNAME www.magedu.com.
域名注册:代理商:万网、新网、godaddy
注册完成以后,想自己用专用服务器来解析步骤:进入域名管理后台:把NS记录指向自己的服务器名称,和A记录指向的服务器地址;
主要程序包:
bind:server包
bind-libs:依赖库
bind-utils:工具
bind-chroot:将/var/named/chroot/设置为根;
rfc:Request For Comments 请求注解
rndc:Remote Name Domain Controllerr;BIND安装包提供的一种控制域名服务运行的工具
主配置文件:
/etc/named.conf、/etc/named.rfc1912.zones、/etc/rndc.key
全局配置:options {}
日志子系统配置:logging {}
区域定义:本机需要定义的zone解析;zone “ZONE_NAME” IN {}
解析库文件:/var/named/ZONE_NAME.ZONE
注意:(1)一台物理服务器可同时为多个区域提供服务;
(2)必须要有根区域文件;/var/named/named.ca
(3)应该有两个(如果包括ipv6的,应该更多)实现localhost和本地回环地址的解析库文件;/var/named/named.localhost、/var/named/named.loopback
注意:任何服务程序如果期望其能够通过网络被其他主机访问,至少应该监听在一个能够与外部主机通讯的IP地址上;
1、在主配置文件中/etc/named.rfc1912.zones定义zone区域
zone “ZONE_NAME” IN {
type {master|slave|hint|forward};
file “ZONE_NAME.zone”;
};
2、定义区域解析库文件
# vim /var/named/lshaol.com.zone
出现的内容:宏定义、资源记录;
例如:
(3)修改对应的属组及权限
# chmod 640 /var/name/lshaol.com.zone
# chown :named /var/name/lshaol.com.zone
(4)检查配置文件语法
# named-checkconf
# named-checkzone “lshaol.com” /var/named/lshaol.com.zone
测试命令:
dig [-t type] name [@server] [query options]
query options:查询选项
+[no]trace:是否跟踪解析过程
+[no]recurse:是否递归解析
dig用于测试dns,因此,不会查询hosts文件;
测试反向解析:
dig -x IP @SERVER
模拟区域传送:
dig -t axfr 区域名字|IP @SERVER
host [-t type] name [server]
nslookup命令:支持交互式
nslookup [-option] [name | -] [server]
支持交互式nslookup>
server ip:指定使用哪个dns server进行查询;
set q=rr_type:指明查询的资源记录类型;
NAME:要查询的名称;
反向区域的定义:
区域名称:网络地址反写.in-addr.arpa.
1、在主配置文件中/etc/named.rfc1912.zones定义zone区域
zone “ZONE_NAME” IN {
type {master|slave|hint|forward};
file “网络地址.zone”;
};
2、定义区域解析库文件;注意:不需要MX、A、AAAA记录;以PTR记录为主;
出现的内容:宏定义、资源记录;
常用宏:$TTL 有效时长
$ORIGIN 区域名
例如:
# vim /var/named/172.20.120.zone
(3)修改对应的属组及权限
# chmod 640 /var/name/172.20.120.zone
# chown :named /var/name/172.20.120.zone
(4)检查配置文件语法
# named-checkconf
# named-checkzone “120.20.172.in-addr.arpa” /var/named/172.20.120.zone
主从复制:
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 command
常用command:
reload:重新载入配置文件和区域解析库文件;
reload zone:重新载入区域解析库文件;
reconfig:重新载入配置文件;
retransfer zone:手动启动区域传送过程,而不管序列号是否增加;
notify zone:重新对区域传送发通知;
querylog:开启或关闭查询日志;在定义错误的时候管用;
trace LEVEL:指定调试debug级别;
正向解析区域子域方法:在父域中的区域定义子域的NS记录而非A记录;
定义转发服务器:注意:被转发的服务器需要能为转发请求者做递归,否则,转发不给进行;
(1)全部转发:凡是非本机所负责解析的区域的请求,统统转发给指定的服务器;
options {
forward {first(先递归后迭代)|only(仅递归)};
forwarder { NS_SERVER_IP };
};
(2)区域转发:仅转发对特定区域的请求至某一服务器;
zone “ZONE_NAME” IN {
type forward;
forward {first|only};
forwarder { NS_SERVER_IP };
};
注意:关闭dnssec功能:
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/92886