Domain Name Server
监听tcp53和udp53端口。把一种名称解析为另一种名称,字串型名称与数据型名称。解析时把用户提供的名称,查询解析库,得到另外一名称。查询,把解析后的名称返还用户。
查询分为两种
存储名称与地址对应表格式。
文本文件,对大量数据处理难以应付。但在bind中速度是最快的,因为bind会把文本文件加载为数据库放在内存中。
关系型数据库,由于有索引,对大量请求比文本存储性能好。
LDAP:lightweight directory access protocol,工作于tcp389端口。比关系型数据库快速更快。
组织域:.com .rog .net .mil .edu .gov .info .cc
国家域:.cn .us .tw .hk .jp
反向域: .in-addr.arpa
区域解析库:
资源记录类型
SOA: start of authority ,起始授权记录,一个区域文件只能有一个。当前区域主DNS的fqdn.
NS:name server , 可以有多个,每个负载一个领域
MX:mail exchange 邮件交换器,指定本域的邮件服务器。可以有多个,每个服务器有优先级,(0-99),数据越小优先级越高
A:fqdn与ip对应 , 专用于正向解析库
AAAA:fqdn与ipv6对应,专用正向解析库。
CNAME:canonical name,正式名称。
PTR: ip与fqdn对应,专用反向解析库
ttl值: 指定本次解析返还给请求者后,请求者最多可以缓存时间。如果不写,则使用默认。
查询过程
hosts --> local dns cache --> dns --> dnscache --> dns迭代查询
DNS服务器类型
主dns服务器,是本域的权威服务器。
从dns服务器,间断性的向其它dns服务器同步区域数据(一般是主服务器),同步的过程叫区域传送。
zone tracser, 解析库文件同步过程,区域传送,使用tcp协议53端口传送,以保证传输的区域文件可靠性。 两种机制:从服务器会周期性检查更新,和主服务器端更新后通知从服务器。
完全区域传送:axfr 一般从服务器第一次向主服务器同步,会同步全部区域数据。
增量区域传送:ixfr 有了全部区域文件后,只同步区域文件更新过的数据。
缓存dns服务器
转发dns服务器
服务脚本:/etc/rc.d/init.d/named
主配置文件:/etc/named.com
bain的主程序: /usr/sbin/named
/usr/sbin/named -u named :使用named用户启动named进程,只有管理员才可以启动。只有管理员才可以使用小于1024端口。
检测主配置文件是否有语法错误命令: /usr/sbin/named-checkconf
检测区域配置文件是否有语法错误命令: /usr/sbin/named-checkzone
区域文件索引:/etc/named.rfc1912.zones
区域解析库文件:/var/named/zone结尾的文件。
解析localhost为127.0.0.1区域配置文件:/var/named/named.localhost
解析127.0.0.1为localhost区域配置文件:/var/named/named.loopback
从服务器同步的区域文件在:/var/named/slaves
==================================================================
安全特性
==================================================================
服务进程以系统用户身份运行,用户名:named
可以运行于chroo模型下,即工作于jail环境。运行在假根下。/var/named/chroot/
区域传送安全限制
bind内置acl
allow-transfer { none;|any;|等 }
none:不让任何人同步
any:任何人都可以同步
local:本机
localnet:本机所在的网络
自定义acl
acl "名字" { 算定义acl,此为资源统一管理,以方便在下面配置中调用。
ip;
ip; ip格式 192.168.1.1;
network; 网络格式 172.16.0.0/16;
};
allow-query { ip;|!ip; }; 定义只有花括号中的ip可以请求此dns服务器。ip前面加!表示取反,除了此ip其它ip都可以请求查询。
allow-recursion { ip; }; 递归白名单,只有在花括号中的ip才给递归查询。花括号中必须包括当前主机。可以写自定义白明单。