CentOS7搭建DNS服务器配置详解

CentOS7搭建DNS服务器配置详解

1、安装BIND服务器软件并启动
yum -y install bind bind*
systemctl start named.service       # 启动服务
systemctl enable named              # 设为开机启动
2、查看named进程是否正常启动
ps -eaf|grep named                  # 检查进程
ss -nult|grep :53                   # 检查监听端口
3、开放TCPUDP的53端口
firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp 
firewall-cmd --reload               # 重新加载防火墙配置,让配置生效
4、DNS服务器相关配置文件
1、修改主要文件/etc/named.conf
vim /etc/named.conf					# 修改配置内容

下面是主配置文件中的 “全局配置” 部分各主要配置项的含义

options里面的内容是全局生效;

{ any; }花括号和"any;"之间必定要有空格,若是有多个ip段,用分号“;”隔开;

forward first|only:forward first就是优先用forwarders里的ip转发;forward only 就是仅转发不在本地DNS读取解析

options {
        listen-on port 53 { any; };				  			# 监听地址和端口;表明DNS服务监听的地址和53号端口,改为全局生效
        listen-on-v6 port 53 { ::1; };
        directory       "/var/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; };				 			# 允许使用本DNS服务器的网段;允许所有主机访问
        recursion yes;		    # 表明允许本DNS服务器进行递归解析,如果配置缓存服务器,需要将查询转发到其他DNS服务器,就必须设置为yes

        dnssec-enable yes;		# 用来设置是否启用DNSSEC支持,DNS安全扩展(DNSSEC)提供了验证DNS数据由效性的系统
        dnssec-validation no;   # 指定在DNS查询过程中是否加密,为了加快效率这里设置为no
		forwarders { 114.114.114.114; };   # 新添加,这里设置的是主DNS的IP地址,当本地缓存中没有对应的解析时,将客户机的查询转发到哪些DNS服务器,可以添加多个DNS服务器的地址
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

检查一下配置

named-checkconf			# 检查named.conf是否有语法问题
2、配置正向解析和反向解析

留意配置文件最后结尾处,你能够直接在当前配置文件里最后新增第3步里面的内容,也能够到这(named.rfc1912.zones)里面去编辑

正向区域解析就是将域名解析出IP,反向区域解析就是将IP解析出域名,

1、修改named.rfc1912.zones文件
vim /etc/named.rfc1912.zones

配置文件中的 “区域配置” 部分配置项的含义:

zone "wifite.cn" IN {					# 正向“wifite.cn”区域
        type master;					# 类型为主要区域
        file "named.wifite.cn";		    # 区域数据文件名为"named.wifite.cn"
        allow-update { 172.27.7.130; };	# 允许更新区域信息的主机地址(无备用可默认不配置)
};

zone "0.168.192.in-addr.arpa" IN {		# 反向“192.168.0.0/24”区域
        type master;					# 类型为主要区域
        file "named.192.168.0";			# 区域数据文件名为192.168.0.arpa	
        allow-update { 172.27.7.130; };	# 允许更新区域信息的主机地址(无备用可默认不配置)
};

以上每个zone区域都是可选的,根据自己的实际需求定义即可,以上配置项是做了一个正向解析区域,一个反向解析区域。

配置区域数据文件,通常默认存放在 /var/named目录下,每个区域数据文件对应一个DNS解析区域,文件名及内容我们自己定义(文件名一定要和主配置文件中指定的区域数据文件名一致)

反向解析留意“.”号,不能少;

每次更改(新增或者删除)文件内容,都要变动那个serial号码,一般+1便可;

正反向解析文件的属组必定要改成named;

2、添加正向解析域配置内容如下:
cp -p /var/named/named.localhost /var/named/named.hadesr.com    # 基于 name.localhost 模板,创建配置文件
vim /var/named/named.wifite.cn									# 配置正向域名解析文件 named.wifite.cn

每次修改完主DNS配置后,都需要改一下serial序列号,且必须比从服务器号大,配置内容如下:

$TTL 1D															# 有效解析记录的生存周期
@       IN SOA  @ rname.invalid. (								# SOA标记、域名、管理邮箱
                                        0       ; serial		# 更新序列号,可以说10位以内的整数
                                        1D      ; refresh		# 刷新时间,重新下载地址数据的间隔
                                        1H      ; retry			# 重试延时,下载失败后的重试间隔
                                        1W      ; expire		# 失效时间,超过改时间仍无法下载则放弃下载
                                        3H )    ; minimum		# 无效解析记录的生存周期
        NS      @
        A       127.0.0.1
        AAAA    ::1
mes     A       192.168.0.8

以上单位时间为M(分)、H(时)、W(周)、D(天)。

https://mes.wifite.cn 将会解析为192.168.0.8

chown :named /var/named/named.hadesr.com						# 授权 named 用户
named-checkzone "wifite.cn" "/var/named/named.wifite.cn"        # 检查区域文件是否正确
3、添加反向解析域
cp -p /var/named/named.localhost /var/named/named.192.168.0		# 基于 name.localhost 模板,创建配置文件,和主配置文件中指定的文件名一样
vim /var/named/named.192.168.0									# 配置反向域名解析文件 named.192.168.0 

**注意要把 “A” 记录换成 “PTR” **

$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
        AAAA    ::1
8       PTR     mes.wifite.cn.
chown :named /var/named/named.192.168.0									# 授权 named 用户
named-checkzone "0.168.192.in-add.arpa" "/var/named/named.192.168.0"    # 检查区域文件是否正确
4、重启named服务,让配置生效
named-checkconf -z /etc/named.conf      		  # 所有DNS相关的配置文件进行检查
systemctl restart named	或者用	rndc reload		  # 重启named服务
rndc status										  # 查看状态并测试

5、配置备用NDS服务器
yum -y install bind*							# 安装bind包
systemctl start named.service       			# 启动服务
systemctl enable named              			# 设为开机启动
firewall-cmd --permanent --add-port=53/tcp		# 开放TCP53端口
firewall-cmd --permanent --add-port=53/udp 		# 开放UDP53端口
firewall-cmd --reload              				# 重新加载防火墙配置,让配置生效
vim /etc/named.conf								# 修改配置内容(配置与主DNS服务器配置一致)
vim /etc/named.rfc1912.zones					# 编辑该文件,这里的配置和上面的配置不一致

# 正向配置
zone "wifite.cn" IN {							# 正向“wifite.cn”区域
        type slave;								# 状态类型修改为slave
        masters { 172.27.7.125;};				# 主DNS服务器的IP地址
        file "slaves/slave.hadesr.com";			# 指定同步文件的存放路径
};
# 反向配置
zone "0.168.192.in-addr.arpa" IN {				# 反向“192.168.0.0/24”区域
        type slave;								# 状态类型修改为slave
        masters { 172.27.7.125;};				# 主DNS服务器的IP地址
        file "slaves/192.168.0-slave";			# 指定同步文件的存放路径
};
# 把下面多余的配置文件删掉或者修改
named-checkconf /etc/named.conf					# 检查配置文件是否正确
named-checkconf /etc/named.rfc1912.zones		# 检查配置文件是否正确
systemctl restart named							# 重新启动服务

ll /var/named/slaves							# 然后这个目录下会多出两个文件
  • 4
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
要在CentOS 7上搭建DNS服务器,你可以按照以下步骤进行操作: 1. 安装BIND软件包: 在终端中执行以下命令来安装BIND软件包: ``` sudo yum install bind bind-utils ``` 2. 配置配置文件: 编辑`/etc/named.conf`文件,该文件是BIND的主配置文件。你可以使用任何文本编辑器打开该文件,并进行以下配置: ```bash options { listen-on port 53 { any; }; listen-on-v6 port 53 { any; }; directory "/var/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"; allow-query { any; }; recursion yes; }; zone "example.com" IN { type master; file "/var/named/example.com.zone"; allow-update { none; }; }; ``` 这里使用了一个名为"example.com"的示例域名,你可以根据需要修改为你自己的域名。 3. 创建区域文件: 创建一个区域文件来存储DNS记录。在终端中执行以下命令来创建该文件: ```bash sudo nano /var/named/example.com.zone ``` 在打开的文件中,添加以下示例配置: ```bash $TTL 86400 @ IN SOA ns1.example.com. root.example.com. ( 2018010101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum @ IN NS ns1.example.com. @ IN A 192.168.1.100 ns1 IN A 192.168.1.100 www IN A 192.168.1.101 ``` 4. 设置文件权限和SELinux策略: 执行以下命令来设置文件权限: ```bash sudo chown named:named /var/named/example.com.zone ``` 执行以下命令来设置SELinux策略: ```bash sudo restorecon -v /var/named/example.com.zone ``` 5. 启动和配置BIND服务: 启动BIND服务并将其设置为开机自启动: ```bash sudo systemctl enable named sudo systemctl start named ``` 6. 配置防火墙规则: 如果系统上启用了防火墙,你需要打开DNS服务器的相关端口。执行以下命令来配置防火墙规则: ```bash sudo firewall-cmd --permanent --add-service=dns sudo firewall-cmd --reload ``` 现在,你已经在CentOS 7上成功搭建DNS服务器。你可以根据自己的需求添加更多的记录到区域文件中,并在客户端上配置DNS服务器地址来使用它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Hadesls

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值