DNS
DNS是什么?
DNS 是域名系统 (Domain Name System) 的缩写,它是由解析器和域名服务器组成的。域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而IP地址不一定有域名。域名系统采用类似目录树的等级结构。域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。将域名映射为IP地址的过程就称为“域名解析”。在Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识IP地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,DNS就是进行域名解析的服务器。 DNS 命名用于 Internet 等TCP/IP 网络中,通过用户友好的名称查找计算机和服务。当用户在应用程序中输入 DNS名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如IP 地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP。
BIND是什么?
DNS是应用层协议,而BIND是这个协议的具体实现,使用BIND可以完成配置一台DNS服务器。BIND下载地址:https://www.isc.org
DNS记录类型及基本格式
SOA记录
表明此 DNS 名称服务器是为该DNS 域中的数据的信息的来源。
域名服务器记录(NS记录)
用来指定某域名由哪个DNS服务器来进行解析。
主机记录(A记录)
A记录是用于名称解析的重要记录,它将特定的主机名映射到对应主机的IP地址上。
别名记录(CNAME记录)
用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录。
邮件交换记录(MX记录)
用于电子邮件程序发送邮件时根据收信人的地址后缀来定位邮件服务器。
IPv6主机记录(AAAA记录)
与A记录对应,用于将特定的主机名映射到一个主机的IPv6地址.
反向解析记录(PTR记录)
用于将一个IP地址映射到对应的域名,也可以看成是A记录的反向,IP地址的反向解析。
DNS查询有两种方式:递归和迭代
下面举一个例子演示整个查询过程:
假定域名为m.xyz.com的主机想知道另一个主机y.abc.com的IP地址。例如,主机m.xyz.com打算发送邮件给y.abc.com。这时就必须知道主机y.abc.com的IP地址。下面是上图a的几个查询步骤:
- 主机m.abc.com先向本地服务器dns.xyz.com进行递归查询。
- 本地服务器采用迭代查询。它先向一个根域名服务器查询。
- 根域名服务器告诉本地服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
- 本地域名服务器向顶级域名服务器dns.com进行查询。
- 顶级域名服务器dns.com告诉本地域名服务器,下一步应查询的权限服务器dns.abc.com的IP地址。
- 本地域名服务器向权限域名服务器dns.abc.com进行查询。
- 权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的IP地址。
- 本地域名服务器最后把查询结果告诉m.xyz.com。
整个查询过程共用到了8个UDP报文。
为了提高DNS查询效率,并减轻服务器的负荷和减少因特网上的DNS查询报文数量,在域名服务器中广泛使用了高速缓存,用来存放最近查询过的域名以及从何处获得域名映射信息的记录。
例如,在上面的查询过程中,如果在m.xyz.com的主机上不久前已经有用户查询过y.abc.com的IP地址,那么本地域名服务器就不必向根域名服务器重新查询y.abc.com的IP地址,而是直接把告诉缓存中存放的上次查询结果(即y.abc.com的IP地址)告诉用户。
由于名字到地址的绑定并不经常改变,为保持告诉缓存中的内容正确,域名服务器应为每项内容设置计时器并处理超过合理时间的项(例如每个项目两天)。当域名服务器已从缓存中删去某项信息后又被请求查询该项信息,就必须重新到授权管理该项的域名服务器绑定信息。当权限服务器回答一个查询请求时,在响应中都指明绑定有效存在的时间值。增加此时间值可减少网络开销,而减少此时间值可提高域名解析的正确性。
不仅在本地域名服务器中需要高速缓存,在主机中也需要。许多主机在启动时从本地服务器下载名字和地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到名字时才使用域名服务器。维护本地域名服务器数据库的主机应当定期地检查域名服务器以获取新的映射信息,而且主机必须从缓存中删除无效的项。由于域名改动并不频繁,大多数网点不需花精力就能维护数据库的一致性。
DNS监听端口
DNS默认使用tcp53和udp53端口,TCP53端口一般用于区域传送,而其他时候使用UDP53。
常见DNS服务器
目前互联网上最为广泛的DNS服务器为bind,而企业内部,由于很多企业使用windows AD域,因此Windows DNS在企业内部应用较多。其他还包括:
BIND9的安装
如果使用RHEL、CentOS,可以使用yum在线安装,如果是ubuntu等,则可以用apt在线安装。我这里以Centos使用yum安装为例,测试环境如下:
- 主机名:ns.magedu.com
- 主机IP:192.168.8.101
目前centos 6的安装源提供了bind9.9的安装包
这里只须安装最基本的bind、bind-libs、bind-utils三个组件即可
BIND9的基本配置
bind的文件
配置named.conf
named.conf的基本配置中,文件主要分两部分,全局配置和zone配置:
默认情况下,named.conf已经有基本配置,我们删除后重新配置后如下:
配置zone文件
默认数据文件:
安装好bind9后,默认已经有根域和localhost域的数据文件,本次我们不修改其配置。
配置域magedu.com数据文件
##修改数据文件
配置检查
检查无误后即可启动named服务器了

浙公网安备 33010602011771号