suse 配置dns服务器

编辑/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 中添加:

suse 配置dns服务器

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

suse 配置dns服务器

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 服务器是否已生效?

解答

  1. 本地测试:在 DNS 服务器上使用 dignslookup 查询自身管理的域名。
    dig @127.0.0.1 www.example.com          # 查询本机 DNS 服务
  2. 客户端测试:在其他设备上修改 /etc/resolv.conf,将 nameserver 指向 DNS 服务器 IP,然后执行查询。
    nslookup www.example.com 192.168.1.1    # 指定 DNS 服务器查询
  3. 外部验证:使用在线工具(如 https://dnschecker.org/)检查公网解析状态。

问题2:如何配置辅助(从)DNS 服务器?

解答

suse 配置dns服务器

  1. 主服务器配置:在主 DNS 的 named.conf 中允许区域传输。
    zone "example.com" IN {
        ...
        allowtransfer { 192.168.1.2; };    # 允许辅助服务器 IP 同步数据
    };
  2. 辅助服务器配置:在辅助服务器的 named.conf 中定义区域为 slave 类型。
    zone "example.com" IN {
        type slave;                         # 声明为从服务器
        masters { 192.168.1.1; };           # 主服务器 IP
        file "slaves/example.com.zone";     # 本地存储路径(可自动同步)
    };
  3. 启动同步:辅助服务器启动后会自动从主服务器下载区域数据,可通过日志确认

来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/204966.html

Like (0)
小编小编
Previous 2025年5月21日 15:41
Next 2025年5月21日 15:52

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注