Centos7下的DNS服务器部署
引言
关于DNS服务,网上都有很多很详细很专业的讲解,但是对于大部分初学者可能看的比较懵懂,用白话来说就是起初人们因为对大量用于访问服务器的IP地址难以记住,所以就逐渐出现了域名的形式(诸如:www.baidu.com 之类的),但是计算机本身只能识别出像192.168.10.112之类的IP地址,无法识别域名,所以就有了DNS服务的诞生。
DNS(Domain Name System,即域名系统)实质上是一个分布式的数据库,其中存储了大量的域名和IP地址之间的映射关系,因此它的主要功能就是做域名解析,通过解析域名来获取对应的IP地址。 提供域名解析功能的主机被称为域名服务器,即DNS服务器。
在域名服务器中,一个域名只能对应一个IP地址,但一个IP地址可以对应多个域名,也可以没有相应域名。
部署步骤
实验环境
DNS服务端:
内存2G
硬盘80G
网络模式:NAT
IP:192.168.180.132
DNS客户端:
内存2G
硬盘40G
网络模式:NAT
IP:192.168.180.135
禁用防火墙和关闭selinux(两台虚拟机都要操作)
systemctl disable firewalld
systemctl stop firewalld
setenforce 0 (临时关闭,系统重启后还是会自动开启)
永久关闭
vi /etc/selinux/config
将 SELINUX=enforcing 改为 SELINUX=disabled 然后保存并退出
正向解析
安装DNS(DNS服务端,客户端都要操作)
安装bind和bind-utils,通常用bind软件包来部署DNS服务器
yum install -y bind bind-utils
修改配置文件信息
1 . 修改 /etc/named.conf 文件的信息
vi /etc/named.conf
将 listen-on port 53 { 127.0.0.1; }; 改成 listen-on port 53 { any; };
将allow-query { localhost; }; 改成 allow-query { any; };
然后保存并退出
- 修改 /etc/named.rfc1912.zones 文件
vi /etc/named.rfc1912.zones
添加如下信息:
zone “kaisa.com” IN {
type master;
file “kaisa.com.zone”;
};
注意 这里面添加的 “kaisa.com” 是我自己定义的,以及下面的 file 后面的"kaisa.com.zone" 也要记住这个文件名,后面要新建一个以此命名的文件
进入 /var/named 目录,新建一个 kaisa.com.zone 文件 (即上述文件中添加的配置信息中的file 参数) ,因为此目录下的named.localhost 文件格式与我所需要的格式一致,所以为了方便,直接通过cp命令复制重命名即可
cd /var/named
cp -p named.localhost kaisa.com.zone
vi kaisa.com.zone
修改如下图:
修改后保存并退出
其中 :
serial 表示更新序号,范围为0-10;
refresh表示刷新时间,重新下载地址数据的间隔
retry表示重试延时,下载失败后的重试间隔
expire表示失效时间,超过该时间仍无法下载则放弃下载
minimum表示无效解析记录的生存周期
编辑网卡配置信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33
将 BOOTPROTO="dhcp"改为 “static”,并添加IP、网关、子网掩码、DNS的信息
由于本机是做DNS的服务器端,所以DNS填本机的IP地址
重启网络服务和named服务
systemctl restart network
systemctl restart named
若没报错,则上述步骤配置成功
在客户端测试
修改客户端的网卡配置信息
vi /etc/sysconfig/network-scripts/ifcfg-ens33
这里的DNS1改为我们搭建的DNS服务器端的IP地址
重启网络
systemctl restart network
测试
此时可以看到已成功解析出域名!
反向解析
大致步骤和上述一样,只需要修改两个配置文件的信息即可
vi /etc/named.rfc1912.zones
添加如下信息:
zone “180.168.192.in-addr.arpa” IN {
type master;
file “hzl.com.zone”;
};
同样,180.168.192是我本机的网段,hzl.com.zone 是我自定义的,也要记住,之后创建一个同样的文件时会用此命名
cd /var/named
cp -p kaisa.com.zone hzl.com.zone
vi hzl.com.zone
注意:com后面还有一个.
重启named服务
systemctl restart named
测试
可以看到此时无论是服务端还是客户端都可以通过IP地址来逆向解析出域名
总结
-
不论在部署什么开始之前都要先习惯养成考虑是否要先关闭防火墙,selinux这些会影响后续步骤的操作
-
在配置文件信息的时候一定要做到仔细,不能有任何失误,包括大小写,标点符号等,一个错误会导致后续的一些服务起不来,然后再排错也会很麻烦,配置文件的准确性是部署任何项目的关键
-
在配置完一些关于服务进程的文件之后,要习惯重启服务才能使其生效,如本次的网络配置,和named服务