公司业务发展需要,需要搭建公司内部DNS服务器。根据以往的运维经验,业务代码中是禁止出现ip地址,通通走域名解析。这样就可以避免因ip变动而对业务产生影响。
一、环境描述
操作系统版本:
CentOS Linux release 7.6.1810 (Core)
软件版本:
bind-9.11.4-9.P2.el7.x86_64
此次配置架构:
单机版本
内部域名设定:
ab.com
二、域名解析的基本概念2.1 域名解析的方法
- HOSTS:在网络中的每台主机都用一个文本文件来存放域名和IP地址的对照表,适用于小型网络。
- NIS:用NIS数据库存放的解析记录,适用于中型网络 。
- DNS:域名解析信息分布存储在网络中每台主机,实现分布式解析(适用于大型网络)。
2.2 DNS的工作体系
(1)域名空间
DNS域名空间是命名机制,它提供DNS数据库的层次树状结构,由根域、顶级域、子域与主机名组成,如下图所示:
DNS域名空间最上面的是根域,可以用圆点“.”表示,它由InterNIC(因特网网络信息中心)管理。根域下定义了许多顶级域,如下表所示。
(2)DNS名称服务器
DNS名称服务器有以下三种类型:
- 主名称服务器
主要名称服务器负责存储授权区域的一切数据且管理该区域和对区域具有解析功能。
- 辅助域名称服务器
辅助名称服务器可以从主名称服务器中转移一整套区域信息。并且辅助名称服务器会定时从主名称服务器中更新数据,同时可以接受客户机的查询.
- 唯高速缓存服务器
缓存服务器负责临时存储主名称服务器己解析过域名记录
(3)客户机
DNS客户机利用一个简单的程序或子程序库,从服务器中提取信息以响应对域名空间的主机查询
2.3 DNS的解析过程
(1)正向解析
当DNS客户端向DNS服务器查询IP地址时,或DNS服务器在向另外一台DNS服务器查询IP地址时,有以下三种查询方式:
- 直接从缓冲存储器解析 可以直接从DNS客户端或DNS服务器的高速缓冲器中获得查询结果。
- 递归查询 也就是DNS客户端送出查询要求后,如果本地DNS服务器内没有需要的数据,则DNS服务器会代替客户端向其他的DNS服务器查询,一般由DNS客户端所提出的查询要求是属于递归查询。
- 循环查询 一般DNS服务器与DNS服务器之间的查询属于这种查询方式,当第1台DNS服务器在向第2台DNS服务器提出查询要求后,如果第2台DNS服务器内没有所需要的数据,则它会提供第3台DNS服务器的IP地址给第1台服务器,让第1台DNS服务器向第3台DNS服务器查询。具体解析过程,如下图所示:
(2)反向解析
反向解析可以让DNS客户端根据IP地址查询其主机名,DNS服务器利用in-addr-arpa反向指针,将一个ip地址指向域名
三、安装及配置3.1 软件安装
yum install bind* -y
生成的文件列表如下:
rpm -ql bind-9.11.4-9.P2.el7.x86_64 /etc/logrotate.d/named /etc/named /etc/named.conf /etc/named.iscdlv.key /etc/named.rfc1912.zones /etc/named.root.key /etc/rndc.conf /etc/rndc.key /etc/rwtab.d/named /etc/sysconfig/named /run/named ... ... ... /var/named /var/named/data /var/named/dynamic /var/named/named.ca /var/named/named.empty /var/named/named.localhost /var/named/named.loopback /var/named/slaves
3.2 dns配置
3.2.1 修改配置文件/etc/named.conf
修改的选项如下:
listen-on port 53 { any; }; //监听地址改为any allow-query { any; }; //查询范围改为any
新增选项如下:
1、配置转发器
forwarders {8.8.8.8;}; forward first; //配置转发器,在本机无法解析时,转到8.8.8.8的dns上
2、新增zone声明
... zone "ab.com" IN { type master; file "ab.zone"; ...
3.2.2 创建区域文件
$TTL 1D ab.com. IN SOA @ admin@ab.com. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS ns.ab.com. ns A 192.168.1.158 www A 192.168.1.158 api A 192.168.1.158 ftp CNAME www.ab.com.
参数说明:
- SOA:设置区域的授权信息
- NS:设置区域的域名服务器地址
- A:用于设置主机的ip地址
- CNAME:设置主机的别名
3.3 启动服务并测试
3.3.1 启动服务
service named start
3.3.2 用工具进行测试
linux下常用的客户端有nslookup,dig等
下面演示一下通过nslookup测试dns服务器的连通性.
[root@localhost]# nslookup > Server 192.168.1.158 Default server: 192.168.1.158 Address: 192.168.1.158#53 > www.ab.com Server: 192.168.1.158 Address: 192.168.1.158#53 Name: www.ab.com Address: 192.168.1.158 > ftp.ab.com Server: 192.168.1.158 Address: 192.168.1.158#53 ftp.ab.com canonical name = www.ab.com. Name: www.ab.com Address: 192.168.1.158 > >
通过上面的输出可以看出dns正向解析正常。
,