admin管理员组文章数量:1577821
这里不介绍DNS的基础知识,只关于DNS部署相关的内容
首先理解两个概念: 递归请求和迭代请求
所谓递归请求:即为DNS服务器要去DNS的根服务器一层一层的请求下来(相当消耗资源)
所谓迭代请求:DNS服务器从自己负责的区域这一层或往下就能找到(不需要去DNS根服务器找)
本机主DNS服务器:192.168.150.129
从DNS服务器:192.168.150.130
子域DNS服务器:192.168.150.131
BIND的基础安装
(1)yum安装BIND安装包
yum install -y bind (测试仅需安装此包即可,企业互联网环境还可以安装bind-chroot包)
(2)修改主配置文件/etc/name.conf (具体配置可以查看https://blog.csdn/qq_40628106/article/details/83749584)
options{}中 listen-on port 53 { 127.0.0.1; };---改成--->listen-on port 53 { any; }; 表示监听任意端口
dnssec-enable yes;---改成--->dnssec-enable no; 关闭dnssec功能
dnssec-validation yes;--改成-->dnssec-validation no;
allow-query { localhost; };---改成-->//allow-query { localhost; }; 直接注释掉,不管是主从服务器,还是子域服务器都要注释掉,防止访问不到
(3)检查修改后的配置文件是否有语法错误
named-checkconf 命令
(4)启动服务
systemctl start named.service 启动后可用systemctl status named.service查看是否启动成功
netstat -tunlp (查看tcp和udp的53号端口是否是named进程在进行监听,监听后说明服务已打开)
(5)修改DNS配置文件将指向改为本机地址
vim /etc/resolv.conf中
nameserver 192.168.150.2---改为--->nameserver 192.168.150.128
(6)使用dig等命令测试即可
dig -t A www.baidu
配置解析一个正向区域(结合之前的BIND的安装与配置)
以magedu为例 (这个域名应该事先从互联网上注册,并申请修改NS记录指向要作为DNS服务器的地址)
(配置是在辅助文件上做的,而且一般不在主配置文件上添加)
主配置文件/etc/named.conf文件指定了 /etc/named.rfc1912.zones 这个文件,这个文件是特别重要,我们后面要靠该文件来关联 主配置文件和许多域文件,如DNS正向解析的域文件,DNS反向解析的域文件。
(1)配置/etc/named.rfc1912.zones文件
vim /etc/named.rfc1912.zones 在最后添加
zone "magedu" IN {
type master;
file "magedu.zone";
};
这样即为添加了一个区域
(2)新建上面zone中配置的magedu.zone (在/var/named/目录下)
cd /var/named
vim magedu.zone (创建文件的同时在文件中创建如下文本)
(文本中主要记录为A或AAAA)
$TTL 3600 #宏,用于替代资源记录定义格式中的ttl
$ORIGIN magedu. (也是宏的一种,用于下面的名称自动在后面补全magedu.)
@ IN SOA ns1.magedu. admin.magedu. (
2021081601 ; serial
1H ; refresh
10M ; retry
1D ; expire
1D ) ; minimum
IN NS ns1 (这个ns1本来应该写全,如ns1.magedu.,但是上面的宏会自动补全)
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.150.128
mx1 IN A 192.168.150.129
mx2 IN A 192.168.150.130
www IN A 192.168.150.128
web IN CNAME www
bbs IN A 192.168.150.128
bbs IN A 192.168.150.129
(3)修改/var/named/magedu.zone文件权限
ls -l /var/named/magedu.zone (先查看文件权限)
(修改文件权限属组为named,其他用户不能拥有任何权限)
chmod o= /var/named/magedu.zone
chown :named /var/named/magedu.zone
(4)检查语法错误
named-checkconf (检查主配置文件是否有语法错误)
named-checkzone magedu /var/named/magedu.zone (检查magedu对应的/var/named/magedu.zone配置文件是否有语法错误) 出现ok才为正常
(5)装载区域 重载配置文件
rndc status 命令 查看-->number of zones:字段
rndc reload 或者 systemctl reload named.service (装载区域,重载配置文件)
用rndc status 命令 查看-->number of zones:字段会发现+1
(6)检测
dig -t A www.magedu --->结果会显示 (同样可以测试web.magedu bbs.magedu等)
(和你在/var/named/magedu.zone文件中配置的一样,会显示www.magedu对应的地址就是本机地址)
;; ANSWER SECTION:
www.magedu. 3600 IN A 192.168.150.128
;; AUTHORITY SECTION:
magedu. 3600 IN NS ns1.magedu.
;; ADDITIONAL SECTION:
ns1.magedu. 3600 IN A 192.168.150.128
配置解析一个反向区域(结合之前的BIND的安装与配置)
基本和上面的正向区域没太大区别
(1)配置/etc/named.rfc1912.zones文件
vim /etc/named.rfc1912.zones 在最后添加
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.zone";
};
示例:
zone "150.168.192.in-addr.arpa" IN {
type master;
file "192.168.150.zone";
};
注意:正向区域 ZONE_NAME为区域,如baidu,但是反向区域的ZONE_NAME为“反写的网段地址.in-addr.arpa”
反向区域的ZONE_NAME示例:正常网段为192.168.150 ————> 150.168.192.in-addr.arpa
(2)创建并配置区域数据库文件(反向区域主要配置PTR)
cd /var/named
vim 192.168.150.zone (创建文件的同时在文件中创建如下文本)
$TTL 3600
$ORIGIN 150.168.192.in-addr.arpa. (注意和正向区域区分)
@ IN SOA ns1.magedu. admin.magedu. (
2021081701 ; serial
1H ; refresh
10M ; retry
1D ; expire
1D ) ; minimum
IN NS ns1.magedu.
128 IN PTR ns1.magedu.
129 IN PTR mx1.magedu.
130 IN PTR mx2.magedu.
128 IN PTR www.magedu.
(3)修改192.168.150.zone文件权限
ls -l 192.168.150.zone (先查看文件权限)
(修改文件权限属组为named,其他用户不能拥有任何权限)
chmod o= 192.168.150.zone
chown :named 192.168.150.zone
(4)检查语法错误
named-checkconf (检查主配置文件是否有语法错误)
named-checkzone 150.168.192.in-addr.arpa /var/named/192.168.150.zone
(5)装载区域 重载配置文件
rndc status 命令 查看-->number of zones:字段
rndc reload 或者 systemctl reload named.service (装载区域,重载配置文件)
用rndc status 命令 查看-->number of zones:字段会发现+1
(6)检测
dig -x 192.168.150.128 (同样可以检测配置文件中配置的192.168.150.129 192.168.150.130)
BIND实现主从DNS服务
DNS主从服务器
重点:主从的概念是从区域级别来定义的
理解:(1)如一个主的DNS服务器负责baidu和magedu两个区域的解析,那么从服务器可以选择其中一个区域配置,可以两个区域都配置(只有配置了相应的区域才能实现主从同步,没配置的区域从服务器不管)
(2)也可以从服务器负责baidu的主要解析(即为baidu的主DNS服务器),主的DNS服务器即配置为baidu区域的从服务器
(3)也可以级联复制(即01从服务器同步主DNS服务器,再来一台02从服务器同步01从服务器)
对于主从服务器如何实现负载均衡:(1)对于本地客户端来说,假如说有100台主机,那么50台主机的/etc/resolv.conf文件中配置为主DNS服务器,另外50台配置为从服务器即可
(2)对于外部的客户端递归的请求,那么在主从服务器的上级(如baidu的上级com)采用轮询机制即可,即要在上级服务器的区域数据库文件中配置NS为两台(主从两台服务器均要告诉上级服务器)
配置解析一个从区域
在从服务器中
基础安装bind部分
1.首先也是先用yum安装bind相关的安装包
yum install -y bind
2.安装好后修改主配置文件/etc/name.conf (具体配置可以查看https://blog.csdn/qq_40628106/article/details/83749584)
options{}中 listen-on port 53 { 127.0.0.1; };---改成--->listen-on port 53 { 127.0.0.1; 192.168.150.129; 192.168.150.130; }; 添加上主DNS服务器的地址和自己的地址
dnssec-enable yes;---改成--->dnssec-enable no; 关闭dnssec功能
dnssec-validation yes;--改成-->dnssec-validation no;
3检查修改后的配置文件是否有语法错误
named-checkconf 命令
4启动服务
systemctl start named.service 启动后可用systemctl status named.service查看是否启动成功
配置成为从服务器部分
(1)定义区域,配置/etc/named.rfc1912.zones文件
vim /etc/named.rfc1912.zones 在最后添加
zone "ZONE_NAME" IN {
type slave;
file "slaves/ZONE_NAME.zone"; --slaves目录专用于从主DNS服务器同步数据
masters {MASTER_IP;}; --告诉谁为主DNS服务器,便于同步
};
示例:
zone "magedu" IN {
type slave;
file "slaves/magedu.zone";
masters { 192.168.150.129; };
};
(2)重载从服务器,注意!!!!一定要在主服务器配置了NS记录的情况后进行重载
rndc reload 或者 systemctl reload named.service (装载区域,重载配置文件)
cd /var/named/slaves 在这里目录下即可看到自动生成的magedu.zone
如果看不到可以看下面的 “从区域解析相关错误”
(2)测试
dig -t A www.magedu @192.168.150.130
在主服务器中
(1)确保区域数据文件中为每个从服务器配置了NS记录
vim /var/named/magedu.zone
添加一条NS记录,并对应NS记录添加一条A记录,示例:(注意,每配置一次从服务器,需要都要加1)
$TTL 3600
$ORIGIN magedu.
@ IN SOA ns1.magedu. admin.magedu. (
2021081602 ; serial --序号要加1
1H ; refresh
10M ; retry
1D ; expire
1D ) ; minimum
IN NS ns1
IN NS ns2 --从服务器对应的NS记录
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.150.129
mx1 IN A 192.168.150.128
ns2 IN A 192.168.150.130 --从服务器对应的A记录
www IN A 192.168.150.129
web IN CNAME www
bbs IN A 192.168.150.128
bbs IN A 192.168.150.129
(2)检查区域文件是否有语法错误,没错误的话重载配置文件即可
named-checkzone 150.168.192.in-addr.arpa /var/named/192.168.150.zone
rndc reload 或者 systemctl reload named.service (装载区域,重载配置文件)
从区域的反向解析
配置从服务器的反向解析没啥特别的
(1)在/etc/named.rfc1912.zones文件添加一列 示例:
zone "150.168.192.in-addr.arpa" IN {
type slave;
file "slaves/192.168.150.zone";
masters { 192.168.150.129; };
};
(2)确保主服务器反向区域解析的区域文件上添加一条从服务器的NS记录
参考上面的配置反向区域
(3)主服务器先rndc reload 从服务器再rndc reload即可
(4)从服务器检查/var/named/slaves目录下是否自动生成了相关文件
(5)dig测试即可
解析相关错误(重点)
如果配置完从区域,重载从服务器后没看到自动生成的/var/named/slaves/magedu.zone文件
(1)可以首先查看BIND的日志文件 vim /var/log/messages (/var/log/messages这个文件就是BIND的日志文件)
窍门:vim中末行模式下 :$ 表示跳转到最后一行
示例:例如日志文件中报错 (报错一般为显眼的大红色)
transfer of 'magedu/IN' from 192.168.150.129#53: failed to connect: host unreachable
host unreachable报错表示主机无法访问,那么我们就可以考虑为什么主DNS服务器的主机无法访问了
对于Linux来说无非就是SELinux阻止,或者是防火墙阻止(将这两者关闭即可解决问题)
注意:systemctl status named命令也可以看一部份日志信息,但是不全
(2)关闭SELinux
查看SELinux状态命令:getenforce (Enforcing 代表SELinux是开启状态)
关闭SELinux:sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config (注意此命令执行完后重启才能生效)
也可以编辑/etc/selinux/config文件,修改SELINUX参数为下面其一:disabled或permisslve
立即生效:getenforce--->setenforce 0
(3) 关闭防火墙
查看防火墙状态:systemctl status firewalld
暂时关闭防火墙:systemctl stop firewalld
永久关闭防火墙:systemctl disable firewalld
重启防火墙:systemctl enable firewalld
(2)如果在从服务器dig测试中报错connection timed out;no servers could be reached
首先也是确认从服务器的SELinux和防火墙是否关闭
然后确认53号端口是否正常开启
iptables -L -n |grep 53
1.手动开启53号端口
[root@localhost ~]# firewall-cmd --zone=public --add-port=53/tcp --permanent
[root@localhost ~]# firewall-cmd --zone=public --add-port=53/udp --permanent
[root@localhost ~]# firewall-cmd --reload #更新配置
2.配置BIND主配置文件,53号端口不仅要加主DNS服务器的ip,也要加自己的IP
修改主配置文件/etc/name.conf (具体配置可以查看https://blog.csdn/qq_40628106/article/details/83749584)
options{}中 listen-on port 53 { 127.0.0.1; };---改成--->listen-on port 53 { 127.0.0.1; 192.168.150.129; 192.168.150.130; }; 添加上主DNS服务器的地址,额外添加自己的IP,用于服务启动时开启53号端口
一般来说都是BIND主配置文件没有添加从服务器自己的IP地址导致53号端口没有打开从而测试时请求超时
BIND实现子域授权
主服务器端
(1)仅需在区域配置文件中添加一条NS记录即可,NS对于的A记录也要添加
示例:(注意,每配置一次从服务器,需要都要加1)
$TTL 3600
$ORIGIN magedu.
@ IN SOA ns1.magedu. admin.magedu. (
2021081603 ; serial --序号要加1
1H ; refresh
10M ; retry
1D ; expire
1D ) ; minimum
IN NS ns1
IN NS ns2
IN MX 10 mx1
IN MX 20 mx2
ns1 IN A 192.168.150.129
mx1 IN A 192.168.150.128
ns2 IN A 192.168.150.130
www IN A 192.168.150.129
web IN CNAME www
bbs IN A 192.168.150.128
bbs IN A 192.168.150.129
ops IN NS ns1.ops --子域对应DNS服务器的NS记录
ns1.ops IN A 192.168.150.131 --子域DNS服务器的ip地址
(2)重载区域数据库文件即可
rndc reload
子域服务器端
开始也是一样的安装bind,修改主配置文件,启动服务
yum insatll -y bind*
vim /etc/named.conf 修改其中
options{}中 listen-on port 53 { 127.0.0.1; };---改成--->listen-on port 53 { 127.0.0.1; 192.168.150.131; };
dnssec-enable yes;---改成--->dnssec-enable no; 关闭dnssec功能
dnssec-validation yes;--改成-->dnssec-validation no;
3检查修改后的配置文件是否有语法错误
named-checkconf 命令
4启动服务
systemctl start named.service 启动后可用systemctl status named.service查看是否启动成功
(1)在/etc/named.rfc1912.zones文件添加一列 示例:
zone "ops.magedu" IN { --ops.magedu为magedu的子域
type master;
file "ops.magedu.zone";
};
(2)在/var/named目录下创建ops.magedu.zone 文件 添加下列内容
示例:
$TTL 3600
$ORIGIN ops.magedu.
@ IN SOA ns1.ops.magedu. admin.ops.magedu. (
2021081901 ; serial
1H ; refresh
10M ; retry
1D ; expire
1D ) ; minimum
IN NS ns1
ns1 IN A 192.168.150.131
www IN A 192.168.150.131
(3)更改权限
[root@localhost named]# chmod o= ops.magedu.zone
[root@localhost named]# chown :named ops.magedu.zone
(4)检查区域文件,显示为🆗后重载区域文件
named-checkzone ops.magedu /var/named/ops.magedu.zone
rndc reload 或者 systemctl reload named.service (装载区域,重载配置文件)
(5)测试
dig -t A www.ops.magedu @192.168.150.131
BIND定义转发域(子域找父域)
区域转发:仅转发对某特定区域的解析请求
(1)在/etc/named.rfc1912.zones添加一列
zone "ZONE_NAME" IN {
type forward;
forward {first|only}; --first:转发后不响应的话找根 only:只转发
forwarders { SERVER_IP; };
};
如在192.168.150.131这个子域服务器中添加一列
zone "magedu" IN {
type forward;
forward only;
forwarders { 192.168.150.130; 192.168.150.129; }; --父域的主从服务器均可添加
};
(2)文件检查并重载文件
named-checkconf
rndc reload
(3)测试
dig -t A www.magedu @192.168.150.131 --子域解析父域
全局转发:
比如有一台DNS服务器无法访问互联网,那么这个DNS服务器就无法去通过根进行递归解析,
那么就可找一台可以访问互联网的DNS服务器,将这个全局转发给这个可以访问互联网的服务器
这里拿子域192.168.150.131举例,可以访问互联网的服务器为父域192.168.150.129
仅需在/etc/named.conf中定义
options{}中 添加两条 forward only;
forwarders { 192.168.150.130; 192.168.150.129; };
保存后重载即可
rndc reload
版权声明:本文标题:DNS的部署(BIND)的经验之谈 (有常见报错总结) 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1726533028a1074374.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论