温馨提示×

Linux域名如何管理DNS记录

小樊
39
2025-11-22 13:22:34
栏目: 云计算

Linux 域名 DNS 记录管理实战

一 管理路径概览

  • 自托管权威 DNS:在 Linux 上安装并运行 BIND(服务名通常为 named),通过编辑 /etc/bind/named.conf 与区域文件管理 A、AAAA、CNAME、MX、NS、PTR 等记录,适合需要自建权威解析的场景。
  • 本地缓存与转发:使用 dnsmasq 做本地解析与缓存、DHCP 集成,适合小型网络或开发测试环境。
  • 云厂商或托管 DNS:在域名注册商/云 DNS 控制台管理记录,Linux 主机仅作为客户端验证与调试。
  • 常用验证工具:dig、nslookup、host 用于查询与排错;必要时配合日志与在线检测工具。

二 使用 BIND 自建权威 DNS 的标准流程

  • 安装与启用
    • Debian/Ubuntu:sudo apt-get install bind9;sudo systemctl enable --now bind9
    • RHEL/CentOS:sudo yum/dnf install bind;sudo systemctl enable --now named
  • 核心配置
    • 主配置 /etc/bind/named.conf(或包含文件)中声明区域与访问控制;示例:
      • zone “example.com” { type master; file “zones/db.example.com”; };
      • zone “1.168.192.in-addr.arpa” { type master; file “zones/db.192.168.1”; };
    • 访问控制(ACL)示例:
      • acl “trusted” { 192.168.1.0/24; }; options { allow-query { trusted; }; };
  • 区域文件要点(示例)
    • 正向区域 db.example.com:
      • $TTL 1D
      • @ IN SOA ns1.example.com. admin.example.com. ( 2025112201 3H 1H 1W 1H )
      • @ IN NS ns1.example.com.
      • @ IN NS ns2.example.com.
      • ns1 IN A 192.0.2.10
      • www IN A 192.0.2.11
      • mail IN A 192.0.2.12
      • @ IN MX 10 mail.example.com.
      • www IN AAAA 2001:db8::11
    • 反向区域 db.192.168.1(PTR 示例):
      • 11.1.168.192.in-addr.arpa. IN PTR www.example.com.
  • 检查与生效
    • 语法检查:named-checkconf;named-checkzone example.com /path/db.example.com
    • 重载:sudo systemctl reload named
  • 防火墙放行
    • UFW:sudo ufw allow 53
    • firewalld:sudo firewall-cmd --permanent --add-service=dns --add-port=53/udp;sudo firewall-cmd --reload
  • 常用记录速览
    • A(IPv4)、AAAA(IPv6)、CNAME(别名)、MX(邮件交换,数值越小优先级越高)、NS(权威服务器)、PTR(反向解析)。

三 本地解析与轻量方案 dnsmasq

  • 适用场景:开发测试、小型局域网、需要本地缓存与简单主机名映射。
  • 安装与启用:sudo apt/dnf/yum install dnsmasq;sudo systemctl enable --now dnsmasq
  • 关键配置 /etc/dnsmasq.conf
    • address=/www.example.com/192.0.2.11(本地域名强制解析)
    • server=8.8.8.8;server=1.1.1.1(上游 DNS)
    • cache-size=1000
  • 验证:dig www.example.com @127.0.0.1;nslookup www.example.com 127.0.0.1
  • 注意:如系统使用 systemd-resolved,需协调 127.0.0.1 的使用与 dnsmasq 配置,避免端口冲突。

四 记录变更与验证的实用流程

  • 变更前
    • 规划 TTL:降低 TTL 便于快速切换;变更后视需要再调高。
    • 备份:区域文件与配置版本化管理(如 git)。
  • 变更中
    • 更新 Serial(建议采用 YYYYMMDDNN 格式),保持正向/反向记录一致性。
    • 检查与重载:named-checkconf;named-checkzone;sudo systemctl reload named
  • 变更后
    • 查询验证:
      • dig example.com A +short
      • dig www.example.com AAAA +short
      • dig example.com MX +short
      • dig -x 192.0.2.11 +short(PTR)
      • 如需 DNSSEC:dig +dnssec www.example.com A
    • 连通性:curl -v http://www.example.com 或 telnet 192.0.2.11 80
    • 日志与在线工具:tail -f /var/log/**named/**query.log;使用 MX Toolbox 等在线检测。

五 安全与运维要点

  • 访问控制:通过 ACL 限制 allow-query/allow-transfer,仅对受信网络开放查询与区域传输。
  • 防火墙:放行 UDP/TCP 53;云环境同步安全组规则。
  • DNSSEC:为关键域名启用 DNSSEC 提升查询完整性与抗劫持能力。
  • 日志与监控:启用查询日志、解析时延监控与告警;定期审计区域与配置权限。

0