编辑/etc/sysconfig/network/ifcfgeth0,添加DNS=servers,或改/etc/resol
SUSE 配置 DNS 服务器详细指南
前置准备
系统环境要求
项目 | 要求 |
---|---|
操作系统 | SUSE Linux Enterprise Server(如 SLES 15)或 openSUSE(如 Leap 15.4) |
软件依赖 | BIND(Berkeley Internet Name Domain)DNS 服务器软件包 |
网络配置 | 静态 IP 地址(建议使用内网专用 IP 段,如 168.1.x/24 ) |
主机角色 | 专用 DNS 服务器或兼具其他服务的节点(需保证资源隔离) |
安装前检查
- 网络连通性:确保服务器能访问外网(用于下载软件包)或内网通信正常。
- 主机名配置:通过
hostnamectl
设置合理的主机名(如dns1.example.com
)。 - 防火墙策略:暂时关闭防火墙或允许 TCP/UDP 53 端口(后续会重新配置)。
安装 BIND DNS 服务
更新软件仓库
sudo zypper refresh
安装 BIND
sudo zypper install bind bindutils
验证安装
%ignore_pre_3%配置文件结构解析
BIND 的核心配置文件为 /etc/named.conf
,其典型结构如下:
文件路径 | 用途说明 |
---|---|
/etc/named.conf |
主配置文件,定义全局参数和区域文件引用 |
/var/lib/named/ |
存储区域文件(Zone Files) |
/etc/sysconfig/named |
启动参数配置(如 STARTUP_OPTIONS ) |
/var/log/named/ |
日志文件(如 named.run ) |
配置主配置文件 /etc/named.conf
基础配置示例
// 全局配置 options { directory "/var/lib/named"; // 区域文件存放路径 dumpfile "/var/log/named/dump.db"; // 运行状态转储文件 statisticsfile "/var/log/named/stats.txt"; // 统计信息文件 recursion yes; // 启用递归查询 allowquerycache { any; }; // 允许所有客户端查询缓存 forwarders { // 转发器(可选) 8.8.8.8; 8.8.4.4; }; }; // 日志配置 logging { channel default_log { file "/var/log/named/named.run" versions 3 size 5m; severity info; printtime yes; printseverity yes; printcategory yes; }; category default { default_log; }; };
关键参数说明
参数 | 作用描述 |
---|---|
recursion |
是否启用递归查询(客户端直接请求时触发) |
allowquerycache |
允许哪些客户端使用查询缓存 |
forwarders |
指定上游 DNS 服务器(转发模式) |
listenon |
监听网络接口(如 { any; } 或 { 192.168.1.1; } ) |
配置正向解析区域
定义区域文件
在 /etc/named.conf
中添加以下内容:
zone "example.com" IN { type master; file "example.com.zone"; // 对应区域文件路径 allowupdate { none; }; // 禁止动态更新 };
创建区域文件 /var/lib/named/example.com.zone
$TTL 86400 ; 默认生存时间(秒) @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial Number 3600 ; Refresh(辅助 DNS 刷新间隔) 1800 ; Retry(辅助 DNS 重试间隔) 1209600 ; Expire(数据过期时间) 86400 ) ; Minimum TTL @ IN NS ns1.example.com. ; 命名服务器 @ IN NS ns2.example.com. ; 冗余命名服务器 ns1 IN A 192.168.1.1 ; 主 DNS IP ns2 IN A 192.168.1.2 ; 备用 DNS IP www IN A 192.168.1.100 ; Web 服务器 IP mail IN A 192.168.1.200 ; 邮件服务器 IP
关键记录说明
记录类型 | 作用描述 |
---|---|
SOA |
起始授权记录,包含区域管理信息 |
NS |
命名服务器记录 |
A |
主机名到 IP 的映射 |
MX |
邮件交换记录(未在示例中,需手动添加) |
配置反向解析区域(可选)
定义反向区域
在 /etc/named.conf
中添加:
zone "1.168.192.inaddr.arpa" IN { type master; file "1.168.192.zone"; allowupdate { none; }; };
创建反向区域文件 /var/lib/named/1.168.192.zone
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2023100101 ; Serial Number 3600 ; Refresh 1800 ; Retry 1209600 ; Expire 86400 ) ; Minimum TTL @ IN NS ns1.example.com. @ IN NS ns2.example.com. 1 IN PTR ns1.example.com. ; 反向解析记录 2 IN PTR ns2.example.com. 100 IN PTR www.example.com. 200 IN PTR mail.example.com.
启动与测试服务
检查配置文件语法
sudo namedcheckconf /etc/named.conf # 检查主配置文件 sudo namedcheckzone example.com.zone /var/lib/named/example.com.zone # 检查正向区域文件
启动 BIND 服务
sudo systemctl enable now named # 设置开机自启并立即启动 sudo systemctl status named # 查看服务状态
测试解析功能
正向解析测试
dig @192.168.1.1 www.example.com # 查询 www.example.com 的 A 记录 # 示例输出: # ;; ANSWER SECTION: # www.example.com. 86400 IN A 192.168.1.100
反向解析测试
dig x 192.168.1.100 @192.168.1.1 # 查询 IP 对应的 PTR 记录 # 示例输出: # ;; ANSWER SECTION: # 100.1.168.192.inaddr.arpa. 86400 IN PTR www.example.com.
安全加固与优化
限制递归查询
编辑 /etc/named.conf
,修改或添加:
options { ... allowrecursion { 192.168.1.0/24; }; # 仅允许内网递归查询 };
配置访问控制列表(ACL)
acl "internal" { 192.168.1.0/24; }; # 定义内网 ACL acl "external" { any; }; # 定义外网 ACL zone "example.com" IN { ... allowtransfer { internal; external; }; # 允许内网和外网同步区域文件 };
启用 DNSSEC(可选)
在区域文件中添加签名密钥:
$INCLUDE /var/lib/named/keys.conf # 引用密钥文件
创建 /var/lib/named/keys.conf
:
key "examplekey" { algorithm hmacmd5; secret "mysecretkey1234567890"; # 需保持机密性 };
在区域配置中启用签名:
zone "example.com" IN { ... inlinesigning yes; # 启用实时签名 keys { "examplekey"; }; # 引用密钥名称 };
日志监控与故障排查
查看日志文件
tail f /var/log/named/named.run # 实时查看日志输出
常见错误及解决方案
问题描述 | 解决方法 |
---|---|
no NS records for domain |
检查区域文件中是否定义了 NS 记录 |
refused: not authoritative |
确保客户端查询的域名与区域文件中的 $ORIGIN 匹配 |
server failure |
检查 SOA 记录的序列号(Serial Number)是否递增 |
connection refused |
确保防火墙已开放 UDP/TCP 53 端口,且 listenon 配置正确 |
相关问题与解答
问题1:如何验证 DNS 服务器是否已生效?
解答:
- 本地测试:在 DNS 服务器上使用
dig
或nslookup
查询自身管理的域名。dig @127.0.0.1 www.example.com # 查询本机 DNS 服务
- 客户端测试:在其他设备上修改
/etc/resolv.conf
,将nameserver
指向 DNS 服务器 IP,然后执行查询。nslookup www.example.com 192.168.1.1 # 指定 DNS 服务器查询
- 外部验证:使用在线工具(如
https://dnschecker.org/
)检查公网解析状态。
问题2:如何配置辅助(从)DNS 服务器?
解答:
- 主服务器配置:在主 DNS 的
named.conf
中允许区域传输。zone "example.com" IN { ... allowtransfer { 192.168.1.2; }; # 允许辅助服务器 IP 同步数据 };
- 辅助服务器配置:在辅助服务器的
named.conf
中定义区域为slave
类型。zone "example.com" IN { type slave; # 声明为从服务器 masters { 192.168.1.1; }; # 主服务器 IP file "slaves/example.com.zone"; # 本地存储路径(可自动同步) };
- 启动同步:辅助服务器启动后会自动从主服务器下载区域数据,可通过日志确认
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/204966.html