Linux上搭建DNS服务,需配置不同网段,确保每个网段有独立区域文件
在Linux环境下搭建不同网段的DNS服务器
准备工作
硬件要求
- 至少三张网卡:一张连接内网,一张连接外网,一张用于调试设备。
- 足够的硬盘空间:用于存储DNS数据和日志文件。
软件要求
- 操作系统:支持BIND(Berkeley Internet Name Domain)的Linux发行版,例如CentOS、Ubuntu等。
- DNS软件:安装并配置BIND服务。
配置步骤
安装BIND服务
1 使用包管理工具安装BIND
# 对于基于Debian的系统,如Ubuntu sudo apt update sudo apt install bind9 bind9utils y # 对于基于Red Hat的系统,如CentOS sudo yum install bind bindutils y
2 启动和启用BIND服务
# 对于systemd系统 sudo systemctl start bind sudo systemctl enable bind # 对于init.d系统 sudo service bind start sudo chkconfig bind on
配置主配置文件 /etc/named.conf
// 全局设置区 options { directory "/var/cache/bind"; recursion yes; dnssecvalidation auto; listenon port 53 { any; }; allowquery { any; }; }; // 定义区域文件 zone "example.com" { type master; file "/var/named/db.example.com"; };
创建区域文件 /var/named/db.example.com
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expiration 86400 ; Negative caching TTL ); @ IN NS ns1.example.com. @ IN A 192.168.1.100 www IN A 192.168.1.100
配置不同网段的DNS解析
1 为每个网段配置独立的区域文件
假设有两个网段:172.16.0.0/16和192.168.0.0/16。
// /var/named/db.172.16.inaddr.arpa $TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expiration 86400 ; Negative caching TTL ); @ IN NS ns1.example.com. 172 IN PTR www.example.com. 172 IN PTR mail.example.com.
// /var/named/db.192.168.inaddr.arpa $TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expiration 86400 ; Negative caching TTL ); @ IN NS ns1.example.com. 192 IN PTR www.example.com. 192 IN PTR mail.example.com.
2 重启BIND服务以应用新的配置
sudo systemctl restart bind
相关问题与解答
Q1: 如果需要添加更多网段,应该如何操作?
A1: 只需为每个新网段创建一个新的区域文件,并在主配置文件中进行相应的配置即可,如果有一个10.0.0.0/8网段,可以创建/var/named/db.10.inaddr.arpa
如下:
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expiration 86400 ; Negative caching TTL ); @ IN NS ns1.example.com. 10 IN PTR www.example.com. 10 IN PTR mail.example.com.
然后重启BIND服务使配置生效。
Q2: 如果需要修改现有的DNS记录,该如何操作?
A2: 修改相应的区域文件后,直接重启BIND服务即可使更改生效,要更新某个域名的IP地址,只需编辑对应的区域文件,保存更改后执行以下命令: