Centos DNS服务器搭建学习笔记之《搭建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软件,如下图:

https://i-blog.csdnimg.cn/blog_migrate/0601e043a1d400b476f055466c360a10.jpeg

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.全局配置部分
https://i-blog.csdnimg.cn/blog_migrate/748a86e84d03fad236a52cb6ff792fbb.jpeg
如上图所示:

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

b.区域配置部分
https://i-blog.csdnimg.cn/blog_migrate/7bf76836ddbdc31a4a832820eea10388.jpeg
如上图所示:

  • 设置本服务器提供域名解析的特定 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 记录

https://i-blog.csdnimg.cn/blog_migrate/c35fc33d145d4a21accb6f25439dfb1f.jpeg
如上图所示:

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

b.域名解析记录

正向解析记录:(如下图)
https://i-blog.csdnimg.cn/blog_migrate/da998773ea370f5fbf8ecd9b497e892b.jpeg
如上图所示:

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

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

反向解析记录:(如下图)
https://i-blog.csdnimg.cn/blog_migrate/4325875698c62084c7b073c57e168ec4.jpeg
如上图所示:

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

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

a.named-checkconf 工具

https://i-blog.csdnimg.cn/blog_migrate/2d10b8d66ecb1e65c1a6a250f7591c84.jpeg
b.named-checkzone 工具

https://i-blog.csdnimg.cn/blog_migrate/0271ea3c756e905050fd8a38a0bda7ab.jpeg
搭建完成!

测试使用nslookup 命令
使用server临时修改为配置DNS服务器的ip地址
使用配置好的正向解析 解析域名得到ip地址
使用配置好的反向解析 解析ip地址得到域名

出现错误怎么解决:

  1. 查看自己的防火墙(iptables)有没有关闭,selinux防火墙有没有关闭
  2. 每修改一次配置文件就要重启named服务或者重新加载
  3. 更改区域文件的属主、属组
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值