记录-centos7搭建DNS服务(named.servicenamed-chroot)全流程

article/2025/8/25 22:05:15

目录:
1.试验记录
2.全流程

record

注:记录过程中已发现存在的错误或不恰当之处:
数据库文件中时间大小应以秒为单位。
新增区域应写在/etc/named.rfc1912.zones中。

Record:

Centos 7

提示:
0.
检查是否安装DNS服务的软件
rpm -qa|grep bind
whereis named
yum info bind
1.
网络配置文件位置
/etc/sysconfig/network-scripts/
比如:修改ens33配置文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
重启网络服务
systemctl restart network.service
2.
修改文件权限 读写执行421
chmod 数字 文件名
或(不加空格)
chmod 组代号 ±=(加减等于号) 权限代号
组代号:u-user g-group o-others a-all
权限代号:r读 w写 x执行
修改属主属组
chown 属主:属组 文件名
3.
客户机改dns — 改网卡配置文件(目录 /etc/sysconfig/network-scripts/) 或者 改dns配置文件(vim /etc/resolv.conf)
经测试,如果改DNS文件,重启network.service后/etc/resolv.conf还会变成网卡配置文件中设置的DNS,所以还是直接去网卡配置里面改。
【centos7 手动修改dns】
重启网卡 systemctl restart network
4.
临时关闭SELinux :
setenforce 0
5.
临时关闭防火墙命令
systemctl stop firewalld.service
6.
vi打开文件没有语法高亮
vim打开文件有语法高亮,有红色标识的是错误的地方,最好修改,有些不改也能运行,但很可能出错。
7.
dns正反向配置文件中以英文符号的";"分号作为注释符号。
8.
查看监听的端口
netstat -lnpt
9.
windows系统刷新dns缓存命令: ipconfig /flushdns

配置过程
固定ip:
在这里插入图片描述
检查是否安装了bind软件包
yum -y install bind
主DNS服务器 配置文件 设置 /etc/named.conf
新增区(zone)
tpye字段 master是主服务器,slave是从服务器。
修改:
listen-on port 53 { any; };
allow-query { any; };
另外:
第一个zone是正向解析,第二个是反向解析
在这里插入图片描述
正向解析:
复制模板文件 位置: /var/named/named.localhost
复制并改名为 xxx.com.zone (名字)
给其他组用户增加读权限,用于本地调试
解释:(重要)
在这个文件中,“;”分号是注释符号,名称后面没加点的是主机名,加了的是全称域名。
$ORIGIN 后填写域名作为@符号的引用源,不写则会引用主配置文件中zone语句后的值。
$TTL是生存时间。
SOA是起始授权,表明此DNS服务器是该DNS域中的主服务器(权威DNS服务器)。后面两个参数分别是主DNS服务器主机名和管理者邮箱。
括号内第一个参数代表配置文档的新旧,越大标识越新。每次修改文件后都应改大。
括号内第二个参数是刷新频率,标识slave隔多久跟master对比并选择是否更新,单位是秒。
括号内第三个参数是失败重新尝试时间,单位是秒。
括号内第四个参数是失效时间,单位是秒。表示主服务器不工作多长时间之后将此服务停止。
括号内第五个参数表示其它DNS服务器能缓存否定的时间,单位是秒。否定回答是指查询记录在区域文件中不存在。失败解析记录缓存时间。
解析记录类型:
NS表示指定域的DNS服务器主机名,不管是主dns还是从dns。
A表示指定主机的IP地址,AAAA是使用IPv6的IP地址。
MX表示指定域的邮件服务器主机名。MX后的数是优先级,越小越优先。相同优先级在多台之间分担负载。
CNAME表示别名。用于同一台主机上的多个服务类型。
在这里插入图片描述

反向解析:
复制模板文件 位置: /var/named/named.localhost
复制并改名为 192.168.118.zone
权限更改:
给其他组用户增加读权限,用于本地调试
注:反向解析配置文件内容IP字段写全" xxx.xxx.xxx.in-addr.arpa. "或者只写主机位。
在这里插入图片描述

或:直接给所有用户all增加读权限
在这里插入图片描述

语法检查命令:
使用named-checkconf命令可以对named配置文件进行语法检查。需要指定要检查的配置文件的名称,如果没有指定则默认为/etc/named.conf文件。
语法格式:
named-checkconf [参数] [配置文件]
named-checkzone 区名 区数据库文件名
例子:(named.service)
named-checkconf -z /etc/named.conf
另:
named-checkconf-命名配置文件语法检查工具 参考:
1【named-checkconf命令 – named配置文件语法检查 ->详细】
2【FreeBSD手册页 ->链接】

防火墙放行DNS:
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
或:直接暂时关闭防火墙

dns的胶水记录
参考:
1.DNS之胶水记录(glue record)
2.dns的胶水记录glue record

验证是DNS服务器否正常提供服务
1.本机验证
1)服务启动没有致命性错误,查看运行状态没有红色报错;
2)查看运行状态,日志中有 “ all zones loaded ”则表示载入正常,状态为绿色active:running;
3)nslookup正反向解析都能成功显示解析结果;
2.客户端验证
1)nslookup可以正确解析。

出现的问题:
1.
IP地址设置错误 每个字段范围1~254
2.
@ 重复
在这里插入图片描述
图中这里第二个@处要么用@要么写全称jnrplinux.com. 不可以都写
这里SOA后第二个字段是管理员邮箱,可以加.结尾也可以不加。
3.
引号括起来的字符串内容不能有多余的空格。
4.
此报错: ignoring out-of-zone data (1.168.192.in-addr.arpa)
不影响运行。
5.
虽然 named.service 成功启动并处于运行状态,但日志中可以看到有 network unreachable resolving
这个报错对ipv4解析没有影响。
网上查到:这个错误的原因是named尝试使用IPV6进行传输
解决方法- 编辑文件vi /etc/sysconfig/named //named.service
把下面的代码加入文件中
OPTIONS="-4"
再次查看状态就正常了

清理host缓存:nscd -i hosts
安装 nscd
yum -y install nscd

备注:

1:(图片)
【Centos7 搭建DNS服务器与原理配置详解】
在这里插入图片描述]

2.
然后将服务,在防火墙上放行:
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
3.
另外参考:
【DNS服务搭建(正反向解析)】
【CentOS7部署DNS服务】
【centos7搭建主从DNS服务器】

疑问:
是否能把named.service服务的正反向解析文件写在同一个文件里?不能!
1.
在主配置文件里注释掉反向解析区
在这里插入图片描述
2.
在正向解析文件里添加反向解析记录
3.
重启named.service服务:未报错
查看状态:正常
正向解析:正常
反向解析:报错-未找到 not found
4.
恢复原样
删除新增内容,取消注释,重启服务。
恢复正常。

从DNS服务器:
原理:
对从服务器进行操作,新增从服务器的区(zone)的type设为slave,查询主服务器的数据库文件(二进制文件)。
要在主DNS服务器设置允许被查询即(内容或者改成any;):
allow-query { 192.168.118.152; };
从DNS服务器修改配置文件:(名字和主服务器相同)
指明master的IP地址。
file内容不必创建,只需写出目录,程序会自动生成并拥有权限。
在这里插入图片描述
结果,可以让主机指向从DNS服务器,也可以成功解析。从服务器的区解析依赖主服务器的区。

报错

SOA record not at top of zone:SOA记录没在区头,反向区配置文件错误

nslookup结果出现** server can’t find xxx.com: REFUSED:拒绝被查询,检查主配置文件的allow-query 后是否为 { any; };

nslookup结果出现** server can’t find 102.118.168.192.in-addr.arpa.: NXDOMAIN:查询失败,检查区配置文件设置是否正确

辅助服务器启动时红色报错:
dumping master file: slave/tmp-wCBICZTShC: open: file not found

疑问
经测试:

每次修改完配置文件要重启服务?是必须的。

文件权限
区配置文件的权限是否要修改?是。
区配置文件权限最低是怎样的?因为修改区配置文件只是为了本地测试通过,不影响客户机解析,故只需确保named有读权限。
区配置文件的属主属组一定要修改吗?不需要修改。对本地测试和客户机解析均不影响。

关键字$ORIGIN
是必要的吗?不是。不写则@取值为named.conf中zone后的字符串。
写了会报错吗?有可能会。比如我测试时正向写了没报错,反向的报错了,于是注释掉了再就不报错了。

关键字IN
是必要的吗?不是。比如下图的正向区配置文件,本地和宿主机nslookup仍能解析正确。
在这里插入图片描述
反向区配置文件
ARP记录的格式“111.168.192.in-addr.arpa”是允许的吗?改成要解析的网段就行。

我想反向解析其他网段行不行?行。
就把反向解析的网段少写一段,剩下的就由需要解析的ip补全。
在这里插入图片描述

在这里插入图片描述

全流程

区域数据库文件名、域名和IP地址都已无效处理,要改成你自己的才能使用。


在Centos7上
主DNS服务器,不带chroot
1. ifconfig 查看IP(固定IP),并把DNS指向自己
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改保存退出。
2.检查软件安装
yum -y install bind
3.配置主配置文件
vim /etc/named.conf
修改两个any:
options {
listen-on port 53 { 127.0.0.1; };
allow-query { localhost; };
};
把127.0.0.1和localhost都改成any,其余不动。
保存退出。
4.新增正反向区
vim /etc/named.rfc1912.zones
新增正向和反向解析区
例如:

zone "xxx.com" IN {type master;file "xxx.zone";allow-transfer { any; };  	//允许被查询,没有从服务器可以不加
};

保存退出。
5.创建并且配置正向数据库文件
cp /var/named/named.localhost /var/named/xxx.zone
vim /var/named/xxx.zone

$TTL 86400
@       IN SOA  xxx.com. admin.xxx.com. (202020201       ; serial86400      ; refresh3600      ; retry604800      ; expire10800 )    ; minimumNS      xxx.com.
xxx.com.        A       192.168.1.1
dns		A		192.168.1.1
www		A		192.168.1.1

保存退出。

6.创建并且配置反向数据库文件
cp /var/named/named.localhost /var/named/xxx.rev.zone
vim /var/named/xxx.rev.zone

保存退出。

7.修改权限或者更改属主,可用ll查看文件权限
cd /var/named/
chmod 644 /var/named/xxx.zone
chmod 644 /var/named/xxx.rev.zone

chown root:named xxx.zone
chown root:named xxx.rev.zone

8.检查dns语法
named-checkconf //检查主配置文件
named-checkzone xxx.com xxx.zone
named-checkzone 1.168.192.in-addr.arpa xxx.rev.zone
9.启动服务并查看状态
systemctl start named.service
systemctl status named.service
关闭ipv6解析(非必须,可跳过,进入下一步)
vi /etc/sysconfig/named
把下面的代码插入文件末尾
OPTIONS="-4"
保存退出。
重启服务并查看状态
systemctl restart named.service
systemctl status named.service
10.本地lookup测试
nslookup xxx.com
nslookup 192.168.1.1
11.暂时关闭防火墙 或 添加规则并重启防火墙
systemctl stop firewalld.service

firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
12.客户机修改dns指向本服务器并进行nslookup测试


从DNS服务器搭建(辅助DNS服务器)
在另一台Centos7上
13.ifconfig 查看IP(固定IP),并把DNS指向自己
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改保存退出。
14.检查软件安装
yum -y install bind
15.配置主配置文件
vim /etc/named.conf
修改两个any,保存退出。
16.新增正反向区
vim /etc/named.rfc1912.zones
新增正向和反向解析区

例:
zone "xxx.com" IN {type slave;file "slaves/xxx.zone";masters { 192.168.1.1; };
};

17.保证该路径对named用户具有写入权限
cd /var/named/
chmod 766 slaves
18.检查dns语法
named-checkconf
19.启动服务并查看状态
systemctl start named.service
systemctl status named.service
关闭ipv6解析(非必须,可跳过,进入下一步)
vi /etc/sysconfig/named
把下面的代码插入文件末尾
OPTIONS="-4"
保存退出。
重启服务并查看状态
systemctl restart named.service
systemctl status named.service
20.本地nslookup测试
nslookup xxx.com
nslookup 192.168.1.1
21.暂时关闭防火墙 或 添加规则并重启防火墙
systemctl stop firewalld.service
22.客户机修改dns指向本服务器并进行nslookup测试


下面是带chroot的流程:
在一个Cnetos7上
1. ifconfig 查看IP(固定IP),并把DNS指向自己
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改保存退出。
2.检查软件安装
yum install bind-chroot bind -y
3.复制生成文件
cp -R /usr/share/doc/bind-*/sample/var/named/* /var/named/chroot/var/named/
touch /var/named/chroot/var/named/data/cache_dump.db
touch /var/named/chroot/var/named/data/named_stats.txt
touch /var/named/chroot/var/named/data/named_mem_stats.txt
touch /var/named/chroot/var/named/data/named.run
mkdir /var/named/chroot/var/named/dynamic
touch /var/named/chroot/var/named/dynamic/managed-keys.bind
chmod -R 777 /var/named/chroot/var/named/data
chmod -R 777 /var/named/chroot/var/named/dynamic
cp -p /etc/named.conf /var/named/chroot/etc/named.conf

4.编辑主配置文件
vim /var/named/chroot/etc/named.conf
修改两个any,保存退出。
5.新增正反向区
cp /etc/named.rfc1912.zones /var/named/chroot/etc/
chmod 646 /var/named/chroot/etc/named.rfc1912.zones
vim /var/named/chroot/etc/named.rfc1912.zones
新增正向和反向解析区

例:
zone "x.net" IN {type master;file "x.zone";allow-query { any; };
};

保存退出。
6.创建并且配置正向数据库文件

cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/x.zone

vim /var/named/chroot/var/named/x.zone

$TTL 86400
@       IN SOA  x.net. admin.x.net. (202020201       ; serial86400      ; refresh3600      ; retry604800      ; expire10800 )    ; minimumNS      x.net.
x.net.        A       192.168.1.1
x		A		192.168.1.1
x		A		192.168.1.1
x		CNAME		www.x.net.

保存退出。

7.创建并且配置反向数据库文件

cp /var/named/chroot/var/named/named.localhost /var/named/chroot/var/named/x.rev.zone

vim /var/named/chroot/var/named/x.rev.zone

$TTL 86400
@       IN SOA  x.net. x.x.net. (202020201       ; serial86400      ; refresh3600      ; retry604800      ; expire10800 )    ; minimumNS      x.net.
1		PTR		x.x.net.
1		PTR		x.x.net.
1		PTR		x.x.net.

保存退出。
修改权限或者更改属主,可用ll查看文件权限
cd /var/named/chroot/var/named/
chmod 644 x.zone
chmod 644 x.rev.zone
8.检查dns语法
named-checkconf -z /var/named/chroot/etc/named.conf
named-checkconf /var/named/chroot/etc/named.conf
named-checkzone x.net /var/named/chroot/var/named/x.zone
named-checkzone 1.168.192.in-addr.arpa /var/named/chroot/var/named/x.rev.zone
9.启动服务并查看状态
systemctl start named-chroot
systemctl status named-chroot
10.本地lookup测试
nslookup x.net
nslookup 192.168.1.1
11.暂时关闭防火墙 或 添加规则并重启防火墙
systemctl stop firewalld.service
12.客户机修改dns指向本服务器并进行nslookup测试


http://chatgpt.dhexx.cn/article/JIksLm4E.shtml

相关文章

No module named ‘cvxpy‘ 已解决

问题描述 在windows系统,使用Anaconda搭建的开发环境,Python3;运行代码时出现No module named cvxpy;发现确实没有 cvxpy这个库,但是直接使用pip安装又不行的(pip install cvxpy )总是会报错的…

Duplicate named routes definition

初始化后台菜单的时候报了一堆Duplicate named routes definition, 原因:没有判断addRoutes是否成功,以下为正确逻辑:判断vuex中是否存在menus,当存在之后就不用再addroutes了,不存在则去添加,如…

解决No module named tkinter

原因 今天准备使用tutle画个图,导入turtle后运行发现提示没有tkinter这个包,于是尝试pip install tkinter安装,结果当然是失败: 后面一番搜索之后发现tinter是python3自带的包,不能用pip安装,我这里安装的…

No module named SimpleHTTPServer

问题分析:cmd启动python服务时没有找到SimpleHTTPServer这个模块 python -m SimpleHTTPServer 8000问题解决:在python安装路径下,lib文件下找到http文件夹,里面有server.py文件。 python -m http.server

解决pycharm中报ModuleNotFoundError: No module named ‘tensorflow‘错误

在pycharm中编写python程序时,遇到了报ModuleNotFoundError:no module named XXX的错误。以下是我的解决方法。 目录 一、错误现象 二、原因分析 三、解决方法 四、更多错误解决方法 一、错误现象 执行python程序时,报错,错误信息为Modu…

No module named ensurepip

pip升级失败,然后pip直接用不了 ModuleNotFoundError: No module named ‘pip‘按照网上搜的处理: python -m ensurepip结果返回: ModuleNotFoundError: No module named ensurepip最后找到Python pip 安装与使用处理: curl h…

No module named ‘cv2‘ 解决办法 (No module named ‘numpy‘ 等所有报错均可解决)

更多视觉额自动驾驶项目请见: 小白学视觉 自动驾驶项目 实在不行可以私信我解决! 0 常规解决方案 1.当出现No module named ‘cv2‘ 解决方案:pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 2.当出现No module named ‘num…

DNS-named服务器配置

要求:现在要求新建一个a.com的DNS服务器,DNS服务器地址为192.168.10.103,www.a.com域名指向ip地址192.168.10.101,ftp.a.com域名指向ip地址192.168.10.102,并新建对应的反向查询区域。 DNS服务器地址:192.…

DNS域名解析服务--Named服务

使用BIND提供域名解析服务 简介 部署主服务器 部署主从服务器 2.1. 部署带安全加密传输的主从服务器 部署缓存服务器 分离解析技术 一、部署主服务器 基本过程 - 1. 编辑主配置文件 /etc/named.conf- 2. 编辑子配置文件(区域配置文件) /etc/named.rfc1912.z…

vue 最简易的邮箱正则表达式

vue 最简易的邮箱正则表达式 我们首先了解正则表达式的元字符: d 表示数字 w 表示数字,字母和下划线 s 表示空格和制表符 D 表示非数字 W 表示非数字,字母和下划线 ^ 在[ ]中表示除了,非;在[ ]之外表示输入字符串的开…

php 正则获取邮箱,PHP 邮箱正则表达式

PHP 邮箱正则表达式 作者:PHPYuan 时间:2018-07-09 00:01:10 PHP 邮箱正则表达式代码如下: /^[_a-z0-9-](.[_a-z0-9-])*[a-z0-9-](.[a-z0-9-])*(.[a-z]{2,})$/ 实例 $mail runoobrunoob.com; //邮箱地址 $pattern "/^[_a-z0-9-](.[_a-z0-9-])*[a-z0-9-](.[a-…

图片放大缩小功能

比较粗略的实现了,图片的放大缩小功能,第一重要的是,要把图片放在滑动视图上;第二重要的是,设置zoomScale,改变这个值,就改变了图片大小,但是放大后的坐标控制,我没有写,…

Java实现图片缩放(等比例)

直接上代码: package com.yx.test.image;import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.WritableRaster;…

background-size:背景图片缩放

作用&#xff1a;设置背景图片的大小&#xff0c; 语法&#xff1a;background-size&#xff1a;宽度 高度&#xff1b; 取值&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv&qu…

Python进行图片缩放

Python提供了图片处理的库PIL(Python Image Library)&#xff0c;功能十分强大&#xff0c;下面介绍使用PIL进行图片的缩放。 1、安装PIL库 使用pip进行安装&#xff0c;安装命令为pip install Pillow&#xff0c;安装完成之后&#xff0c;from PIL import Image来检验是否安…

js点击图片缩放

前言 最近因为项原因&#xff0c;需要图片预览功能&#xff0c;本来想使用组件库的图片预览组件的&#xff0c;后来因为项目ui组件库版本过低&#xff0c;无法使用组件库的预览功能&#xff0c;只能手搓一个简单的预览功能。废话不多说&#xff0c;直接上码。 代码&#xff1…

bmp格式图片缩放(位图缩放)

bmp位图格式理逐渐地被广泛应用&#xff0c;其格式的特点是包含的图像信息较丰富&#xff0c;几乎不进行压缩。bmp图片由文件头&#xff0c;位图信息头&#xff0c;24位图片以下还有调色板&#xff0c;和图像数据组成。位图的信息头包含下列变量&#xff1a; 调色板的结构为蓝…

图片缩放原理

**shape[0] 图像的高 shape[1] 图像的宽 shape[2] 图像的图像通道数量 np.zeros(shape, dtypefloat, order‘C’) 示例&#xff1a; import numpy as np Zero np.zeros(10) print&#xff08;Zero&#xff09; print(Zero.shape) 输出&#xff1a; [0. 0. 0. 0. 0. 0. 0. …

CSS 3之图片缩放

图片缩放 1. 通过标记设置图片大小2. CSS 3中的 width 和 height3. CSS 3 中的 max-width 与 max-height 1. 通过标记设置图片大小 使用 img 的描述标记 height 和 width 能设置图片大小&#xff1b; height 和 width 分别表示图片的高度和宽度&#xff0c;可以是数值或百分比…

1缩放图片

图片缩放 最近临域插值 双线性插值 原理 src(原图像) 1020 dst&#xff08;目标图片&#xff09; 510可以用原图像上的点src表示目标图像上的点dst #例如&#xff1a;原图像的点&#xff08;2,4&#xff09;表示目标图像的点&#xff08;1,2&#xff09;知道目标图像&#xf…