一、什么是DNS
域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口是53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
- 正向解析(A记录):根据域名查找对应的IP地址
- 反向解析(P记录):根据IP地址查找对应的域名(域名的反向解析不是很常用,只在一些特殊场合才能使用得到,比如可用于反垃圾邮件的验证)
DNS使用的协议及端口号
-
DNS的默认端口为53
-
DNS端口分为TCP和UDP
1.TCP端口
-
TCP端口是用来做区域传送,多用于主从同步
-
在一个区中DNS服务器从自己本机的数据文件中读取该区的DNS数据信息,而辅佐DNS服务器则从区的主DNS服务器中读取该区的DNS数据信息
2.UDP端口
-
UDP端口是用来做DNS解析的
-
域名:通常又一个完全合格域名(FQDN)标识
-
FQDN能准确表示出其相对于DNS域树根的位置,也就是节点到DNS树根的完整表述方式,从节点到树根采用方向书写,并将每个节点用"."分隔,对于DNS域Google来说,其完整的域名为Google.com.
3.域名的格式
例如www.sina.com.cn.
节点分隔 | 含义 |
---|---|
./ | 根域 |
cn | 顶级域 |
com | 二级域 |
sina | 子域 |
www | 主机名 |
域名后缀一般分为国际域名和国内域名。原则上来讲,域名后缀都有严格的定义,但在实际使用时可以不必严格遵守。目前最常见的域名后缀有.com(商业组织)、.org(非营利组织)、.gov(政府部门)、.net(网络服务商)、.edu(教研机构)、.pub(公共大众)、.cn(中国国家顶级域名)等。
3.1访问流程
- 先查本机的缓存记录
- 查询hosts文件
- 查询dns域名服务器,交给dns域名服务器处理
- 这个dns服务器可能是本地域名服务器,也有个缓存,如果有直接返回结果,如果没有则进行下一步
- 求助根域服务器,根域服务器返回可能会知道结果的顶级域服务器让他去找顶级域服务器
- 求助顶级域服务器,顶级域服务器返回可能会知道结果的二级域服务器然他去找二级域服务器
- 求助二级域服务器,二级域服务器查询发现是我的主机,把查询到的ip地址返回给本地域名服务器
- 本地域名服务器将结果记录到缓存,然后把域名和ip的对应关系返回给客户端
4.DNS系统类型
-
根据所管理的区域数据的来源不同,DNS系统可以分为不同的类型。
-
在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。
1.常见的几种类型
-
缓存域名服务器
只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但是没有自己控制的区域地址数据。
构建缓存域名服务器时,必须设置根域或者指定其他DNS服务器作为解析来源 -
主域名服务器
维护某一个特定DNS区域的地址数据库,对其中的解析记录具有自主控制权,是指定区域中唯一存在的权威服务器,官方服务器。
构建主域名服务器时,需要自行建立所负责区域的地址数据文件 -
从域名服务器
与主域名服务器提供完全相同的DNS解析服务,通常用于DNS服务器的热备份。
构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库 -
转发域名服务器
负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果
二、BIND服务
DNS服务软件BIND(Berkeley Internet Name Domain,伯克利因特网域名)
-
BIND服务器端程序
- 主要执行程序: /usr/sbin/named
- 默认监听端口: 53
- 主配置文件:/etc/named.conf
- 保存DNS解析记录的数据文件位于:/var/named/
-
BIND服务控制
- systemctl [status|start|stoplrestart] named.service
BIND配置
- 下载bind
yum install -y bind
rpm -qc bind #查询bind软件配置文件所在路径
- 主配置文件
开机后自动监听端口信息
vim /etc/named.conf
- 修改区域文件,添加正向区域配置
vim /etc/named.rfc1912.zones
- 配置正向区域数据文件
cd /var/named
cat named.localhost #描述如何将域名和IP如何解析
cp -p named.localhost timi.com.zone #复制区域数据文件
vim /var/named/timi.com.zone
$TTL 1D #有效解析记录的生存周期
@ IN SOA timi.com admin.timi.com. ( #"@"符号表示当前的DNs区域名
0 ; serial #更新序列号,可以是10位以内的整数
1D ; refresh #刷新时间,重新下载地址数据的间隔
1H ; retry #重试延时,下载失败后的重试间隔
1W ; expire #失效时间,超过该时间仍无法下载则放弃
3H ) ; minimum #无效解析记录的生存周期
NS timi.com #记录当前区域的DNS服务器的名称 NS:namespace 名称空间(一个独立空间)
A 192.168.23.23 #记录主机IP地址
IN MX 5 mail.timicom #MX为邮件交换记录,数字越大优先级越低
mail IN A 192.168.23.23 #设置邮件交换记录的IP地址
www IN A 192.168.23.23 #设置www.timi.com的IP地址
CLLT IN CNAME www #别名解析
* IN A 192.168.23.10 #泛域名解析地址,“*"代表任意主机名
- 验证