快捷搜索:  汽车  科技

linux dns 服务器配置方法(Linux如何搭建DNS服务器)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)全世界共有13台DNS根域服务器。在DNS中,域名包括根域、顶级域、二级域和主机名。如下图2.主机名和域名的区别:主机名是内网的名字;域名是外网的名字。主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。

Linux如何搭建DNS服务器

一、DNS服务简介

1.DNS(Domain Name System)域名系统

在Internet中使用IP地址来确定计算机的地址,这种以数字表示的IP地址不容易记忆。为了便于对网络地址的管理和分配,人们采用了域名系统,引入了域名的概念。通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。

2.主机名和域名的区别:

主机名是内网的名字;域名是外网的名字。

主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。

在DNS中,域名包括根域、顶级域、二级域和主机名。如下图

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(1)

全世界共有13台DNS根域服务器。

顶级域:由Internet名称授权机构管理,有两种常见的类型。如下:

组织域:

.com(商业) 、 .org (组织) 、 .edu(教育) 、 .gov (政府) 、 .net(通讯) 、 .mil(军事) 、 .info(信息)

国家或地区顶级域:

Cn(中国) 、 hk(中国香港) 、 uk(英国) 等

FQDN=主机名.DNS后缀(FQDN,Fully Qualified Domain Name,完全合格的域名/全称域名)

3.域名解析过程

查询 www.benet.com过程

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(2)

从查询方式分类

  • 递归查询:

客户端得到结果只能是成功或失败

  • 迭代查询:

DNS服务器如有客户机请求数据则返回正确地址

DNS服务器没有请求数据则返回一个指针

从查询内容分类

  • 正向解析:根据主机名称(域名)查找对应的 IP 地址
  • 反向解析:根据 IP 地址查找对应的主机域名

二、Centos7搭建DNS服务器

接下来以著名的DNS服务器软件bind(Berkeley Internet Name Domain,伯克利Internet名字域)为例,了解Linux中域名服务器的基本搭建过程。BIND是美国加利福尼亚大学伯克利分校开发的一个域名服务软件包,Linux使用这个软件包来提供域名服务,该软件实现了DNS协议。BIND的服务端软件是被称作named的守护进程。

1.了解一下

实际上,每一台DNS服务器都只负责管理一个有限范围(一个或几个域)内的主机域名和IP地址的对应关系,这些特定的DNS域或IP地址段称为"zone"(区域)。根据所管理的区域地址数据的来源不同,DNS系统可以分为不同的类型。在同一台DNS服务器中,相对于不同的区域来说,也拥有不同的身份。常见的几种类型如下:

缓存域名服务器

  • 也称为 唯高速缓存服务器
  • 通过向其他域名服务器查询获得域名 -> IP 地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

  • 特定 DNS 区域的官方服务器,具有唯一性
  • 负责维护该区域内所有域名 -> IP 地址的映射记录

从域名服务器

  • 也称为 辅助域名服务器
  • 其维护的 域名 -> IP 地址记录 来源于主域名服务器

2.BIND的安装和控制

BIND不是唯一能够提供域名服务的DNS服务程序,但它却是应用最为广泛的,BIND可以运行在大多数Linux/UNIX主机中。

1)安装bind软件,如下图:

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(3)

2)相关软件包

安装好后查看软件包:rpm -qa | grep "^bind"

bind-9.9.4-37.el7.x86_64.rpm:提供了域名服务的主要程序及相关文件

bind-chroot-9.9.4-37.el7.x86_64.rpm:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件夹作为BIND的根目录),以提高安全性。

bind-libs-9.9.4-37.el7.x86_64.rpm:提供了bind、bind-utils需要使用的函数

bind-utils-9.9.4-37.el7.x86_64.rpm:提供了对DNS服务器的测试工具程序,如nslookup等

3)BIND服务控制

BIND软件包安装完毕以后,会自动增加一个名为named的系统服务,通过脚本文件/etc/init.d/named或systemctl、service(centos6以前)工具都可以控制DNS域名服务的运行。如:systemctl start named,启动named服务。

其他:

  • 主要执行程序:/usr/sbin/named
  • 服务脚本:/etc/init.d/named
  • 默认监听端口:53

3.BIND服务的配置文件

使用BIND软件构建域名服务是,主要涉及两种类型的配置文件:主配置文件和区域数据文件。其中,主配置文件用于设置named服务的全局选项、注册区域及访问控制等各种运行参数,区域数据文件用于保存 DNS 解析记录的数据文件(正向或反向记录)。

1)主配置文件

/etc/name.conf(安装的是bind-xxx软件包)

/var/named/chroot/etc/named.conf(安装的是bind-chroot-xxx软件包)

主配置文件中,主要包括全局配置、区域配置两个部分,每一条配置记录的行尾以分号";"表示结束,以"#"号或"//"开始的部分表示注释文字(大段注释可以使用"/*......*/的格式")。

a.全局配置部分

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(4)

如上图所示:

  • 设置 DNS 服务器的全局参数
  • 包括监听地址/端口、数据文件的默认位置等
  • 使用 options { …… }; 的配置段

b.区域配置部分

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(5)

如上图所示:

  • 设置本服务器提供域名解析的特定 DNS 区域
  • 包括域名、服务器角色、数据文件名等
  • 使用 zone "区域名" IN { …… }; 的配置段

2)区域数据配置文件(保存 DNS 解析记录的数据文件)

/var/named/(安装的是bind-xxx软件包)

/var/named/chroot/var/named/(安装的是bind-chroot-xxx软件包)

每个区域数据文件对应一个DNS解析区域,文件名及内容由该域的管理员自行设置。(要与在全局配置中指定的文件名一样,不然会出错)

在区域数据文件中,主要包括TTL配置项、SOA(Start Of Authority,授权信息开始)记录、地址解析记录。文件中的注释信息以分号";"开始。

a.全局 TTL 配置项及 SOA 记录

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(6)

如上图所示:

  • "@"表示当前的DNS区域名,相当于"benet.com."
  • $TTL(Time To Live,生存时间)记录
  • SOA(Start Of Authority,授权信息开始)记录
  • 分号";" 开始的部分表示注释信息

b.域名解析记录

正向解析记录:(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(7)

如上图所示:

  • NS 域名服务器(Name Server):记录当前区域的DNS服务器的主机地址
  • MX 邮件交换(Mail Exchange):记录当前区域的邮件服务器的主机地址,数字10表示优先级。
  • A 地址(Address):记录正向解析条目,只用在正向解析区域中
  • CNAME 别名(Canonical Name):记录某一个正向解析条目的其他名称

注:其中,NS、MX记录行首的"@"符号可以省略(默认继承SOA记录行首的@信息),但是必须保留一个空格或Tab制表位。

反向解析记录:(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(8)

如上图所示:

  • PTR 指针(Point)记录,只用在反向解析区域中
  • 记录的第一列指定 IP 地址中的主机地址部分即可。如,上述中的"4 IN PTR mail.benet.com."表示IP地址为173.16.16.4的主机的域名时maiil.benet.com.。

注:在区域数据配置文件中,凡是不以点号"."结尾的主机地址,系统在查找地址记录时都会自动将当前的域名作为后缀。例如,若当前的DNS域为"benet.com",则在文件中的主机地址"www"相当于"www.benet.com."。因此,当使用完整的FQDN地址时,务必记得地址末尾的点号"."不能省略。

3)对配置文件进行语法检查

a.named-checkconf 工具

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(9)

b.named-checkzone 工具

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(10)

三、示例

1.构建缓存域名服务器

案例环境(如下图)

缓存域名服务器的 IP 地址为 192.168.1.5

局域网内的 PC 机将首选 DNS 服务器设为 192.168.1.5

缓存域名服务器能够访问 Internet 中的其他 DNS 服务器

负责处理局域网 PC 机的 DNS 解析请求,并缓存查询结果

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(11)

基本步骤:(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(12)

1)建立主配置文件 named.conf

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(13)

有时候为了提高解析效率,也可以不向根区域查询,而是将来自客户端的查询请求转发给国内电信运营商的DNS服务器(如北京的202.106.0.20、202.106.148.1),缓存服务器收到返回的查询结果后再转给客户端。只要去掉"zone "." IN {....}" 的设置,并在全局配置中正确设置forwarders(转发)参数即可实现该功能。如下图

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(14)

2)确认根域的区域数据文件 named.ca

根区域的区域数据文件默认位于文件/var/named/named.ca中,该文件记录了Internet中13台根域服务器的域名和IP地址等相关信息。

如: grep -v "^;" /var/named/named.ca | grep -v ^$

3)启动named服务,并确定named服务的端口监听状态。若服务启动失败或发现没有正常监听UDP53端口,可以根据错误提示信息(或/var/log/messages文件中的日志记录)排除错误。

如:systemctl start named //启动named服务

netstat -anput | grep named //确认named服务的端口监听状态

4)验证缓存域名服务器

在客户机中将 DNS 服务器设为该缓存域名服务器

执行nslookup www.google.com命令对其进行解析,验证其是否能获得该域名对应的IP地址信息。(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(15)

2.构建主域名服务器

案例环境(如下图)

主域名服务器:ns1.benet.com,173.16.16.5

从域名服务器:ns2.benet.com,173.16.16.6

两台服务器均能够提供 benet.com 区域的域名解析

主要解析记录

网站服务器"www.benet.com",IP地址为"173.16.16.1"

邮件服务器"mail.benet.com",IP地址为"173.16.16.1"

在线培训站点服务器"study.benet.com",IP地址为"173.16.16.2"

主域名服务器"ns1.benet.com",IP地址为"173.16.16.5"

从域名服务器"ns2.benet.com",IP地址为"173.16.16.6"

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(16)

基本步骤:(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(17)

1)确认本机网络地址、主机映射、DNS 服务器地址

为了提高域名解析效率,建议将两个DNS服务器的地址映射直接写入到/etc/hosts文件中,并在/etc/resolv.conf文件中指定两个DNS服务器的地址。(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(18)

2)建立主配置文件 named.conf(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(19)

3)建立正、反向区域数据文件

根据named.conf中的zone区域设置,分别建立正向区域数据文件benet.com.zone,反向区域数据文件173.16.16.arpa。配置文件可以参考区域数据文件/var/named/named.localhost。(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(20)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(21)

4)启动或者重新加载 named 服务程序

如:systemctl reload named

5)验证主域名服务器

验证正向解析:nslookup study.benet.com

验证泛域名解析:nslookup xxyyzz.benet.com

验证反向解析: nslookup 173.16.16.2

3.构建从域名服务器

基本步骤:(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(22)

建立主配置文件 named.conf(如下图)

linux dns 服务器配置方法(Linux如何搭建DNS服务器)(23)

验证从服务器时,只需要将客户端的首选DNS服务器地址设为从域名服务器的IP地址,使用nslookup命令进行正常测试即可。

###### 本节完 ######

猜您喜欢: