DNS 监听tcp和udp的53端口,一般监听的是udp的53端口 查询方式: 1、递归查询(recursive):非常消耗服务器的资源,只在本地用 2、迭代查询
解析方式: name-->ip正向解析 ip-->name方向解析 在域名树中,下级只知道根,不知道其他的级别,而上机知道 仅接着的下级,而不能越级
DNS中记录类型: FODN--->IP: A IP----->FQDN: PTR DOMAIN-->SERVER : NS DOMAIN-MTA: MX (mail exchanger) 别名-->正式名字: CNAME 起始授权记录:SOA (Start of Authority) 表示主域名服务器
DNS服务器的类型: 主服务器 辅助服务器 缓存名称服务器 转发器(实现内外防火墙之间的两个dns之间)
区域传送: axft:完全区域传送 ixfr: 增量区域传送
区域类型 hint master slave
主服务器---辅助服务器 辅助服务器会定期到主服务器去同步数据 如果主服务器发生改变,会通知他的服务器来同步数据,防止 因时间差而照成的数据不同 名称解析: 正向:需要一个单独的数据文件 反向:需要一个单独的数据文件 区域:物理概念 域:逻辑概念 一个域包含一个正向区域和反向区域 client---www.test.com流程: 1.先查看/etc/hosts 2.查看本地dns的缓存 正好查找到的主机解析出来的是权威答案,如果是从缓存中 返回的,是非权威答案 3.本地dns区域的文件
bind : Berkeley Internet Name Domain bind-9.8.0-p4最新的版本 bind的配置文件: /etc/named.conf(主配置文件) /etc/rndc.conf(远程管理的) /etc/rndc/key 数据文件: /var/named下 name.ca 主配置文件/etc/named.conf options { version "haha"; directory "/var/named" //定义目录 }; zone "." IN { }; zone "locahost.zone" IN { }; zone "0.0.127.in-addr.arpa.zone" { }; 配置完成之后,需要把属组改为named dig t NS . 查看根节点 生成named.ca文件 dig -t NS . @a.root-servers.net > /var/named/named.ca 区域配置文件/var/named/localhost.zone 宏定义 解析记录 $TTL 86400 name [ttl] IN RECORD_TYPE value eg:www.a.org 86400 IN A 1.1.1.1 1.1.1.1 86400 IN PTR 对于这个文件,第一条类型是SOA,而且对于一个数据文件只有 一个SOA $TTL 8400 @(localhost.) 600 IN SOA localhost. admin.localhhost. ( 2011081601 ;serial(“;”后为注释)序列号,为了辅助服务器的同步比较 1H (刷新时间,辅助服务器来同步间隔) 10M (重试时间) 7D (过期时间,如果这个时候还没重试成功,从服务器就“殉情”) 1D (否定回答的TTL值) ) @ IN NS localhost. localhost. IN A 127.0.0.1 在name.localhost文件中 $TTL 8400 @(localhost.) 600 IN SOA localhost. admin.localhhost. ( 2011081601 ;serial(“;”后为注释)序列号,为了辅助服务器的同步比较 1H (刷新时间,辅助服务器来同步间隔) 10M (重试时间) 7D (过期时间,如果这个时候还没重试成功,从服务器就殉情) 1D (否定回答的TTL值) ) @ IN NS localhost. 1 IN A PTR localhost. 然后把named*的属组改为named 检查named配置文件的语法错误 service named configtest named-checkconf named-checkkzone "localhost" /var/named/localhost.zone 区域坚持配置文件 netstat -tunlp | grep :53 vim /etc/resolv.conf 配置域名解析地址 dig -t A
辅助服务器: 主服务器采用notify机制来通知辅助服务器同步数据 zone "a.org" IN { type slave; file "slaves/a.org.zone"; masters { 172.16.100.1; }; Allow transfer { IP; };限制指定的IP 同步自己的信息 } 子域: glue records: tech.a.org. IN NS ns1. tech.a.org ns2.tech.a.org IN A 部分转发: 完全转发 options { forward only|first; forwarders {IP}; }; 部分转发 zone "a.org" IN { type forward; file "a.org"; forwarders { IP; }; }; dns中的acl allow-query 允许查询 格式 eg: allow-query { 192.168.0.0/24; 127.0.0.0/8 }; 访问控制列表一定要限定义,后使用,一般放在options上面 acl myclients { 192.168.0.0/24; 127.0.0.0/8; }; 然后在下面调用 allow-query { myclients }; dns中的视图(view) 使用view来实现自能dns view NAME { match-clients {}; zone1 zone2 ... }; view NAME { match-clients {}; zone1 zone2 ... }; 只要用了view,所有的zone都要位于view中 例子: acl nei { 192.168.0.0/24; 127.0.0.0/8; };
acl wai { 172.16.0.0/24; }; options { directory "/var/named"; };
view nei { match-clients { nei; }; recursion yes; zone "." IN { type hint; file "named.ca"; }; zone "a.org" IN { type master; file "a.org.nei"; }; };
view wai { match-clients { wai; }; recursion no; zone "." IN { type hint; file "named.ca"; }; zone "a.org" IN { type master; file "a.org.wai"; }; };