DNS 系统的作用
DNS(Domain name server)在互联网世界中的作用可以认为是一个互联网门户地图,它可以记录互联网中各个 IP 和域名的对应关系。我们在互联网访问外部服务器时,其主机都是以 IP 地址加端口标识(被称之为一个套接字文件),当主机 A 需要与主机 B 通信时,A 必须知道其 B 的 IP 地址,但 IP 地址不能方便人们的记忆,故而使用其计算机名进行标识。早期的互联网通信下,服务器的计算机名与其 IP 地址对应关系,被记录在了 hosts 文件中,这也正是早期的域名解析模型。但随着互联网的服务器增加,单依靠 hosts 的记录所有的计算机名映射,会导致查询速度非常慢、计算机名的变更更新速度慢。DNS 就是为了解决这一问题而诞生的。
通常来说,DNS 服务器的解析方式有两种
- 正向解析:根据域名查找对应的 IP 地址
- 反向解析:根据 IP 地址查找对应的域名
DNS 服务器的类型
BIND 是一款开源的 DNS 服务器软件,它由美国加州大学Berkeley分校开发,是目前世界上应用最广泛的 DNS 服务器,能在绝大部分 Linux 平台及类 Unix 平台和 Windows 平台运行。
准备工作
两台服务器信息如下:
系统:均为 CentOS 7.7
CentOS7-dns-master : 192.168.244.150
CentOS7-dns-slave : 192.168.244.154
1、关闭防火墙和 SELinux(安全增强功能)
- 关闭防火墙
#查看防火墙状态
[root@CentOS7-dns-master ~]# sudo firewall-cmd --state
#临时关闭防火墙
[root@CentOS7-dns-master ~]# sudo systemctl stop firewalld
#执行下面命令重启服务器后永久关闭防火墙
[root@CentOS7-dns-master ~]# sudo systemctl disable firewalld
#查看防火墙状态
[root@CentOS7-dns-master ~]# sudo systemctl status firewalld
- 关闭 SElinux (安全增强功能)
enforcing :强制模式,表示SELinux 运行中,且已经正确的开始限制 domain/type 了;
permissive:宽容模式,表示SELinux 运行中,不过仅会有警告信息,并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
disabled:关闭,SELinux 没有运行。
#获取当前 selinux 运行模式
[root@CentOS7-dns-master ~]# getenforce
Enforcing
#临时关闭,不需要重启机器
[root@CentOS7-dns-master ~]# setenforce 0
[root@CentOS7-dns-master ~]# getenforce
Permissive
[root@CentOS7-dns-master ~]# setenforce [0|1]
选项与参数:
0:转成 Permissive 宽容模式;
1:转成 Enforcing 强制模式
#永久关闭 SElinux 需要修改配置文件
[root@CentOS7-dns-master ~]# vim /etc/selinux/config
SELINUX=enforcing 修改为 SELINUX=disabled 后重启机器即可
- 安装 bind 软件
如果安装软件速度很慢或者直接超时,可以参考下面文章修改一下服务器的 yum 源
修改 CentOS 原生 yum 为阿里 yum 源
[root@CentOS7-dns-master ~]# yum install bind -y
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
//省略部分内容//
完毕!
[root@CentOS7-dns-master ~]# rpm -qc bind //查看相关配置文件的存放位置
/etc/logrotate.d/named
/etc/named.conf //主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones //区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost //区域数据配置文件,即DNS数据文件
/var/named/named.loopback
2、修改主配置文件
[root@CentOS7-dns-master data]# vim /etc/named.conf
options {
#listen-on port 53 { 127.0.0.1; }; //默认配置
listen-on port 53 {
any; }; //any 是表示全网监听,当然这里也可以填自己本机的 ip,比如我的 ip 就是 192.168.244.150
listen-on-v6 port 53 {
::1; };
directory "/var/named"; //这个目录是 zone 文件的默认放置目录
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";