DNS服务:是一种工作在应用层的特定应用,也是.c/s架构模式的,DNS的是一种应用层协议,他的端口是UPD协议的53号端口,()根据应用场景不同也会用到tcp协议)这就意味着DNS是默认通过UDP协议进行通信的
我们访问任何一个网站都是通过主机名的方式进行访问的;例如www.baidu.com,这是个主机名.称之为FQDN(完全限定域名)
常见的顶级域中的组织域有:.com,.net,.org,.gov,.edu,.mil
常见的顶级域中的国家域有:.iq,.tw,.jp,.cn…
DNS查询类型:
递归查询: 迭代查询:
DNS名称解析方式:
名称 --> IP:正向解析 IP --> 名称:单向解析 注意:二者的名称空间,非为同一个空间;即非为同一颗树,因此,也不是同一个解析库
DNS服务器类型:
负责解析至少一个域: 主名称服务器 辅助名称服务器 不负责域解析: 缓存名称服务器
一次完整的查询请求经过的流程:
client --> hosts文件 --> DNS Loscal Cache --> DNS Server(recursion,递归) --> 自己负责解析的域:直接查询数据库并返回答案; 不是自己负责域:server cache --> iteration(迭代) 解析答案: 肯定答案: 否定答案:不存在查询的键,因此,不存在与其查询对应的值 权威答案:由直接负责的DNS服务器返回的答案 非权威答案:
主-辅DNS服务器
主DSN服务器:维护所负责解析的域的数据库的那台服务器,读写操作均可进行 从DNS服务器:从主DNS服务器那里或其他的从服务器那里"复制"一份解析库,但只能进行读操作 "复制"操作的实施方式 序列号:也即是数据库的版本号,主服务器数据库内容发生变化时,其版本号递增 刷新时间间隔:从服务器每多久到主服务器检查序列号更新状况 重试时间间隔:从服务器从主服务器请求同步解析库失败时,再次发起尝试请求的时间间隔 过期时长:从服务器始终联系不到主服务器时,多久之后放弃从主服务器同步数据,停止提供服务 否定答案的缓存时长: 注意:主服务器数据发送更新以后,主服务器会"通知"从服务器随时更新数据,忽略刷新时间间隔机制进行 同步方式: 区域传送: 全量传送:传送整个数据库; 增量传送:仅传送变化的数据 区域和域的区别: 以magedu.com域为例 FQDN --> IP 正向解析库:正向解析区域 IP --> FQDN 反向解析库:反向解析区域
区域数据库文件:
资源记录:简称rr 记录有类型:A,AAA,PTR,SOA,NS,CHAME,MX SOA:起始授权记录,一个区域解析库有且只能有一个SOA记录;而且只能放在第一条 NS:域名服务记录;一个区域解析库可以有多个NS记录;其中一个为主 A:地址记录,从FQDN解析为IPV4地址记录 AAAA:地址记录,从FQDN解析为IPV6地址记录 CNAME:别名记录 PTR:把IP地址解析成FQDN,所以PTR记录是用来反向解析的记录 MX:邮件交换器 优先级:0-99,数字越小优先级越高 资源记录的定义格式: 语法: name [ttl] IN RR_TYPE value 多种不同的资源记录他们的名称和值的特点要求,如下; SOA: name:当前区域的名字;例如"magedu.com",或者"2.3.4.in-addr.arpa" value:有多部分组成 1)当前区域的区域名称(也可以使用主DNS服务器名称) 2)当前区域的管理员的邮箱地址;但地址中不能使用@符号,一般使用点号来替代 3)(朱从的服务协调属性的定义以及否定答案的TTL) 例如: magedu.com. 86400 IN SOA magedu.com. admin.magedu.com. ( 2017010801 ;serial 2H ;refresh 10m ;retry 1w ;expire 1D ;negative answer ttl ) NS: name:当前区域的区域名称 value:当前区域的某DNS服务器的名字,例如ns.magedu.com 注意:一个区域可以用多个ns记录 例如: magedu.com. 86400 IN NS ns1.magedu.com. magedu.com. 86400 IN NS ns2.magedu.com. MX: name:当前区域的区域名称 value:当前区域某邮件交换器的主机名 注意:MX记录可以有多个;但每个记录的value之前应该有一个数字表示其优先级 例如: magedu.com. 86400 IN MX 10 mx1.magedu.com. magedu.com. 86400 IN MX 20 mx2.magedu.com. A: name:某FQDN,例如www.magedu.com. value:某IPV4地址 例如: www.magedu.com. IN A 1.1.1.1 www.magedu.com. IN A 1.1.1.2 bbs.magedu.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. value:FQDN 例如: 4.3.2.1.in-addr.arpa. IN PTR www.magedu.com CNAME: name:FQDN格式的别名 value:FQDN格式的正式名字 例如: web.magedu.com. IN CNAME www.magedu.com 注意: 1)TTL值可以全局继承;不用每个都定义 2)@表示当前区域的名称 3)相邻的两条记录其name相同时,后面的可省略 4)对于正向区域来说,各MX,NS等 类型的记录的value为FQDN,此FQDN应该有一个A记录
DNS and Bind
如何安装配置使用DNS服务
BIND:伯克利互联网域名,BIN是DNS协议的一种实现,BIND这个程序运行起来的进程名叫named.
dns:协议 bind:dns协议的一种实现 named:bind程序的运行的进程名
BIND的安装配置:
bind-libs:被bind和bind-utils包中的程序共同用到的库文件 bind-utils:bind客户端程序集,例如dig,host,nslookup等 bind:提供的dns server程序,以及几个常用的测试程序 bind-chroot:选装程序,让named运行于jail(监狱)模式下
主配置文件
/etc/named.conf 或包含其他文件; /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key
解析库文件;
/var/named/目录下; 一般名字为:ZONE_NAME.zone 注意:1)一台DNS服务器可同时为多个区域提供解析; 2)必须要有根区域解析库文件:named.ca 3)还应该有两个区域解析库文件:localhost和127.0.0.1正反向解析库 正向:named.localhost 反向:named.loopback
rndc:远程名称域控制器
rndc默认情况下工作在tcp的953端口,但默认监听于127.0.0.1地址,因此仅允许本地使用.BIND安装在同一主机,bind程序安装完成之后,默认即可做缓存名称服务器使用;如果没有专门复杂解析的区域,直接即可启动服务;
开启
centos6:service named start centos7:systemctl start named.service
主配置文件格式:
全局配置段: options{...} 日志配置段: logging{...} 区域配置段: zone{...} 那些由本机负责解析的区域,或转发的区域 注意:每个配置语句必须以分号结尾 缓存名称服务器的配置: 监听能与外部主机通信的地址 listen-on port 53; listen-on port 53{ 172.16.100.67; }; 学习时,建议关闭dnssec dnssec-enable no; dnssec-validation no; dnssec-lookaside no; 检查配置文件的语法错误; named-checkconf [/etc/named.conf] 测试工具:dig,host,nslookp dig命令: dig [-t RR_TYPE] name [@SERVER] [query options] 用于测试dns系统,因此其不会查询hosts文件 查询选项: +[no]trace:跟踪解析过程 +[no]recures:进行递归解析 注意:反向解析测试 dig -x ip 模拟完全区域传送 dig -t axfr DOMAIN [@server] host命令: host [-t RR_TYPE] name SERVER_IP nslookup命令 nslookuop [-options] [name] [server] 交互式模式: nslookup> server IP:以指定的IP为DNS服务器进行查询 set q=RR_TYPE:要查询的资源记录类型 name:要查询的名称
原创文章,作者:M20-1马星,如若转载,请注明出处:http://www.178linux.com/58133