主服务器
准备二台linux虚拟机(一个服务器主服务器,一个为辅助服务器
)
[root@cs01 ~]# yum install bind -y #安装dns服务
[root@cs01 ~]# systemctl stop firewalld.service #关闭防火墙
[root@cs01 ~]# setenforce 0 #设置宽容模式
[root@cs01 ~]# ls /etc/ |grep named #查看DNS配置文件
named
named.conf
named.iscdlv.key
named.rfc1912.zones
named.root.key
打开BIND的主配置文件 (修改下面红色字体,红色字体意思是所有可用)
[root@cs01 ~]# vim /etc/named.conf
options {
listen-on port 53 { any; }; //默认是any,表示允许所有网段的主机。可以改成自己所在的内网网段
listen-on-v6 port 53 { ::1; };
directory "/var/named"; //定义named的固定工作路径
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";
allow-query { any; }; //表示接收所有网段
recursion yes;
allow-recursion { localhost; };
forward first; //下面这两行配置很重要,这个配置后,当客户端采用我们自己配置的内网DNS的NS服务器后,当访问别的网站,内网NS解析不>了的就转发给8.8.8.8的DS服务器解析,保证能正常上网。
forwarders {
223.5.5.5; //阿里云的DNS服务器
223.6.6.6;
8.8.8.8;
8.8.4.4;
};
这个配置段指定了以下内容:
listen-on port 53 { any; };: 指定 DNS 服务器监听的端口为 53,即 DNS 标准端口。any 表示允许任何 IP 地址连接到该端口。
directory "/var/named";: 指定存储 BIND 相关文件的目录路径为 "/var/named"。这包括配置文件、区域文件和其他数据文件。
dump-file "/var/named/data/cache_dump.db";: 指定缓存转储文件的路径。缓存转储文件用于保存 DNS 缓存的内容。
statistics-file "/var/named/data/named_stats.txt";: 指定统计信息文件的路径。该文件记录了 BIND 服务器的运行统计信息,如查询数量、响应时间等。 memstatistics-file "/var/named/data/named_mem_stats.txt";: 指定内存统计信息文件的路径。该文件记录了 BIND 服务器使用的内存统计信息。
allow-query { any; };: 允许任何主机查询该 DNS 服务器。这样就允许任何主机向该服务器发送 DNS 查询请求。
如果想创建一个自定义的域名,通过域名来访问主机,还需要创建一个新的区域配置文件,以便配置有关域名的信息。打开 named.conf 文件,并在 zone 部分添加以下行,注意是单独配置:
zone "byd.com" IN { //定义一个统一的域名后缀。正向解析的区域。此处可以加后面IN,也可以不加IN
type master; //类型属于master、属于自己的
file "db.byd.com"; //指定正向解析的文件
allow-transfer {192.168.137.3;}; //允许192.168.137.3(从DNS服务器)传送
};
上面的配置是BIND 配置文件的一部分,这里我指定了一个名为 "byd.com" 的 DNS 域,并指定了该域的类型为 master,同时指定了该域对应的区域文件为 "db.byd.com"。具体解读一下上面配置的含义:
zone "byd.com" IN {: 指定了该区域对应的 DNS 域名为 "byd.com"。 type master;: 指定了该域的类型为 master。这意味着该 DNS 服务器是 "byd.com" 域的主服务器,并负责管理该域的所有资源记录。 file "db.byd.com";: 指定了该域对应的区域文件为 "db.byd.com"。该文件包含了该域的所有资源记录,如主机名、IP 地址、邮件服务器等。
在上面的bind配置文件中,只是定义了域名,但是并没有建立起域名与主机的关系,这里创建一个区域配置文件,注意要给这个文件读、写、可执行三种权限。
touch /var/named/db.byd.com sudo chmod 777 /var/named/db.byd.com
在db.byd.com文件中添加类似以下内容的信息:
$TTL 1h
@ IN SOA cs01.byd.com. admin.byd.com. (
2024071401 ; 序列号
3h ; 刷新时间
1h ; 重试时间
1w ; 过期时间
1h ) ; 默认 TTL
IN NS cs01.byd.com. ; 指定主域名服务器
IN NS cs02.byd.com. ; 指定备用域名服务器
@ IN A 192.168.137.4 ; 指定域名的 IPv4 地址
cs01 IN A 192.168.137.2 ; 主域名服务器的 IP 地址
cs02 IN A 192.168.137.3 ; 备用域名服务器的 IP 地址
cs03 IN A 192.168.137.4
上述配置内容的具体含义:
SOA 记录以 @ 表示当前域名,指定了域名的授权来源和一些其他信息,如上指定了主域名服务器为 cs01.byd.com,管理员邮箱为 admin.byd.com,序列号为 2024071401,刷新时间为 3 小时,重试时间为 1 小时,过期时间为 1 周,TTL(Time To Live)为 1 小时。
(温馨提示:对于主DNS的正反向解析文件中的序列号,每当做一次修改后,必须要同时修改这个序列号,这样才能触发主从同步机制!然后重启named服务,从DNS服务器那边才能同步过去,否则不能完成主从同步!)
NS 记录指定了域名服务器的名称,如上指定了主域名服务器为 cs01.byd.com,备用域名服务器为 cs02.byd.com。
A 记录指定了域名的 IPv4 地址,如上:指定了域名 byd.com 的 IPv4 地址为 192.168.137.4。
还有两条记录指定了域名服务器的 IP 地址,这些记录分别指定了主域名服务器和备用域名服务器的 IPv4 地址为 192.168.137.2和192.168.137.3。
接着,启动并启用BIND服务(第二条命令用于把bind服务设置成为开机启动):
systemctl start named
systemctl enable named
启动bind服务后,可以使用以下命令检查BIND服务的状态:
systemctl status named
确保服务已经启动并且没有错误。
辅助服务器
安装bind服务同上不再描述
打开BIND的主配置文件
打开 named.conf 文件,并在 zone 部分添加以下行,注意是单独配置:
[root@cs02 ~]# vim /etc/named.conf
zone "byd.com" IN {
type slave;
masters { 192.168.137.2;};
file "slave.byd.com";
};
[root@cs02 ~]# systemctl restart named
重启bind服务之后,/var/named路径会自动同步出来slave.byd.com这个文件
至此辅助服务器也完成配置。