CentOS7配置DNS服务
需求
内网的服务越来越多,记 IP 地址太烦。
局域网内可以通过域名访问内网的服务,并且可以通外网
背景假设
DNS 所在的服务器的 IP 是192.168.1.1
,内网的机器是192.168.2.1
,需要分配域名host1.in.example.com
;另一个内网机器192.168.3.1
,需要分配域名host2.in.example.com
。
一般情况下,都是配置主、从两个 DNS 服务器的,方式挂掉影响服务。但是由于我比较懒,所以只配置了一个主服务器。如果需要配置从服务器,可以看参考文章,和主服务器配置方法基本相同。
安装软件
1 | sudo yum install bind bind-utils |
配置主 DNS 服务器
编辑named.conf
配置文件
1 | sudo vi /etc/named.conf |
在其中添加信任的网段
1 | acl "trusted" { |
修改options
1 | options { |
然后在配置的最后添加
1 | include "/etc/named/named.conf.local"; |
修改自定义配置
1 | sudo vi /etc/named/named.conf.local |
写入自己的域
1 | zone "in.example.com" { |
同时写入反向解析域
1 | zone "168.192.in-addr.arpa" { |
改完之后修改一下文件的权限
1 | sudo chmod 755 /etc/named |
填写自定义规则
修改自定义规则
1 | sudo vi /etc/named/zones/db.in.example.com |
首先写入 SOA 记录。尽管我也不懂这是什么意思。
1 | @ IN SOA ns1.in.example.com. admin.in.example.com. ( |
数字不用改,把对应域名改掉就行了
然后写入 NS 记录
1 | ; name servers - NS records |
接下来就是自定义的 A 记录了。
1 | ; name servers - A records |
填写反向自定义规则
1 | sudo vi /etc/named/zones/db.192.168 |
同样写入不知道干什么用的 SOA 记录
1 | @ IN SOA ns1.in.example.com. admin.in.example.com. ( |
和 NS 记录
1 | ; name servers - NS records |
然后把自定义的记录的反向记录写入
1 | ; PTR Records |
检查配置文件
1 | sudo named-checkconf |
用上面检查各种.conf
文件的正确性
1 | sudo named-checkzone in.example.com /etc/named/zones/db.in.example.com |
检查正向规则的正确性
1 | sudo named-checkzone 168.192.in-addr.arpa /etc/named/zones/db.192.168 |
检查反向规则的正确性
启动
如果以上规则检查没有问题的话,就可以启动 DNS 服务了
1 | sudo systemctl start named |
设置开机自启动
1 | sudo systemctl enable named |
此时,你的 DNS 服务已经 OK
客户端
接下来需要修改你的客户端。
比如 DHCP 分配的 DNS 地址
比如 CentOS 自己的。可以直接修改/etc/resolv.conf
以生效
对于 Ubuntu,如果是通过自动获取 IP 的话,通过sudo resolvconf -u
即可更新
参考文章
How To Configure BIND as a Private Network DNS Server on CentOS 7