DNS服务属于应用层服务,端口号为 53(ss –utnl | grep 53查看端口是否处于监听状态)。
在Linux中,bind软件包为相关命令包。
DNS 也分优先级,在本地有hosts文件,该文件存储部分在DNS注册过的权威网站,使用域名时优先解析。
在Linux,DNS服务对应的服务名为named,启动服务时,service named start 、systemctl start named 。
DNS域名
根域 : 位于美国
一级域名: tld com, edu, mil, gov, net, org, int,arpa ,总共三类:组织域、国家域(.cn, .jp)地区域(.hk, .tw)、反向域
二级域名 :
三级域名 :最多127级域名
DNS查询类型: 递归查询
迭代查询
名称服务器:域内负责解析本域内的名称的主机 。
根服务器:13组服务器,1个为主根服务器在美国。其余12个均为辅根服务器。
解析类型: FQDN –> IP : 域名解析为IP地址,正向解析。
IP –> FQDN :IP地址解析为域名,反向解析。
DNS服务器类型
DNS服务器的类型: 主DNS服务器 从DNS服务器 缓存DNS服务器(转发器) 。
主DNS服务器:管理和维护所负责解析的域内解析库的服务器。
从DNS服务器:从主服务器或从服务器“复制”(区域传输),解析库副本。
“通知”机制:主服务器解析库发生变化时,会主动通知从服务器。
那么解析的过程是怎样的呢?
一次完整的查询请求经过的流程: Client (客户端)-->hosts文件 -->DNS Service 本地缓存 --> DNS Server (recursion) --> Server Cache --> iteration(迭代查询) --> 根--> 顶级域名DNS->二级域名DNS…
而解析结果则是: 肯定答案: 权威答案:本地缓存所得出的答案 。
非权威答案:通过转发或迭代得出的答案。
否定答案:请求的条目不存在等原因导致无法返回结果。
DNS相关配置文件
/etc/name.conf 全局配置文件,决定了dns的工作方式。
/var/named dns 数据文件,决定了如何解析记录。
资源记录
• 区域解析库:由众多资源记录组成,而记录类型分为:A, AAAA, PTR, SOA, NS, CNAME, MX • SOA:Start Of Authority。
资源记录定义的格式: name[TTL] IN rr_type value
起始授权记录SOA;一个区域解析库有且仅能有一个SOA记录,必须位于解 析库的第一条记录 。
A:internet Address,作用,FQDN –> IP ,IPv4记录。
AAAA: FQDN –> IPv6 ,IPv6记录,,有特定格式,把IP地址反过来写,而有特定后缀:inaddr.arpa.。
PTR: PoinTeR,IP –> FQDN ,反解析记录。
NS: Name Server,专用于标明当前区域的DNS服务器,需要注意的是:(1) 相邻的两个资源记录的name相同时,后续的可省略 ;(2) 对NS记录而言,任何一个ns 记录后面的服务器名字,都应该在后续有一个A记录。
CNAME:Canonical Name,别名记录 。
MX: Mail eXchanger,邮件交换器, 对MX记录而言,任何一个MX记录后面的服务器名字,都应该在后续有一个A记录。
实验2:DNS的主从
1.yum -y install bind
2.vim /etc/name.conf,在主dns上应该设置allow-transfer来确保只有授权的机器才能做从dns
allow-transfer { 192.168.153.6; };
3.主虚拟机:vim zone文件:
4.在从DNS服务器上,vim /etc/name.rfc1912.zones
5.主从虚拟机上皆:service named restart
dig -t axfr magedu.com @192.168.153.7
虽然这是一个很小的实验,但是基本上都实践了我们上面介绍过的理论知识,作为练手还是可以试试的。