当前位置: 首页 > news >正文

DNS核心概念与BIND配置详解

DNS 核心概念与 BIND 服务配置

一、DNS 核心概念

1. DNS 定义与组成

  • DNS (Domain Name System):域名系统
  • 核心组件
    • 解析器 (Resolver):客户端 DNS 查询组件
    • 域名服务器 (Name Server):存储域名-IP 映射关系的服务器

2. 域名与 IP 关系

关系类型说明示例
域名→IP必须对应(一对一或多对一)www.example.com → 1.2.3.4
IP→域名不一定对应(可多对一)1.2.3.4 → server.example.com
DNS 轮询一个域名对应多个 IP(负载均衡)www.example.com → [1.2.3.4, 5.6.7.8]

3. 域名解析过程

递归查询
迭代查询
用户输入网址
DNS 查询
解析类型
DNS 服务器负责完成
返回最佳结果
获取 IP 地址
建立连接

4. DNS 服务器类型

类型功能描述特点
主服务器权威数据源可读写,数据原始源
辅助服务器从主服务器同步数据只读,提供冗余
转发服务器转发查询到其他 DNS缓存加速
根服务器顶级域名查询入口全球 13 组

二、域名体系结构

分层树状结构

.
├── com (顶级域)
│   ├── example (二级域)
│   │   ├── www (主机名) → FQDN: www.example.com.
│   │   ├── mail (主机名) → FQDN: mail.example.com.
├── cn (国家域)
│   ├── edu (二级域)
│   │   ├── www → FQDN: www.edu.cn.

FQDN (完全合格域名)

  • 格式:主机名.二级域.顶级域.根域.
  • 示例:server.example.com.(末尾点号常省略)

三、DNS 解析类型

查询方式

类型过程描述使用场景
递归查询DNS 服务器必须返回最终结果客户端→本地 DNS
迭代查询DNS 服务器返回最佳参考信息DNS 服务器之间

解析方向

方向功能记录类型
正向解析域名 → IP 地址A/AAAA
反向解析IP 地址 → 域名PTR

四、BIND 服务配置

关键文件与目录

路径作用描述
/etc/hosts本地主机名解析
/etc/resolv.conf客户端 DNS 服务器配置
/etc/named.conf主配置文件
/etc/named.rfc1912.zones区域声明配置文件
/var/named/区域数据文件目录
/var/named/named.localhost正向解析模板
/var/named/named.empty反向解析模板

主 DNS 服务器配置步骤

  1. 安装软件包

    yum -y install bind bind-chroot
    
  2. 配置 /etc/named.conf

    vim /etc/named.conf
    options {listen-on port 53 { any; };listen-on-v6 port 53 { any; };allow-query     { any; };recursion yes;  # 允许递归查询
    };
    
  3. 配置区域声明 (/etc/named.rfc1912.zones)

    vim /etc/named.rfc1912.zones
    // 正向区域
    zone "example.com" IN {type master;file "ydh.com"; allow-update { none; }; # 允许辅助DNS同步
    };// 反向区域 (修正IP段)
    zone "100.168.192.in-addr.arpa" IN {type master;file "com.ydh"; allow-update { none; };  # 使用统一命名规范
    };
    
  4. 创建区域数据文件

    cd /var/named
    cp -p named.localhost ydh.com
    cp -p named.empty com.ydh
    
  5. 正向区域文件示例 (example.com.zone)

    $TTL 1D
    @   IN  SOA yangduhan.example.com. rname.invalid. (2025081101  ; 序列号 (格式:YYYYMMDDNN)1D          ; 刷新时间1H          ; 重试时间1W          ; 过期时间3H )        ; 否定缓存TTL; 名称服务器记录NS  yangduhan.example.com.; 主机记录 (解决原始IP冲突)
    yangduhan     IN  A   192.168.100.10   ; DNS服务器IP
    web     IN  A   192.168.100.50   ; Web服务器IP
    mail    IN  A   192.168.100.60   ; 邮件服务器IP
    client  IN  A   192.168.100.100  ; 客户端IP; 别名记录
    www     IN  CNAME web.example.com.
    
  6. 反向区域文件示例 (172.16.30.rev)

    $TTL 3H
    @  IN  SOA  yangduhan.example.com. rname.invalid.(2025081101 ; 序列号1D         ; 刷新1H         ; 重试1W         ; 过期3H )       ; 否定缓存NS  yangduhan.example.com.; PTR记录 (与正向解析对应)
    10   IN  PTR yangduhan.example.com.
    50   IN  PTR web.example.com.
    60   IN  PTR mail.example.com.
    100  IN  PTR client.example.com.
    

    重启服务

    systemctl restart named
    systemctl enable named
    #关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    #关闭selinux
    setenforce 0
    
  7. 防火墙配置

    firewall-cmd --permanent --add-service=dns
    firewall-cmd --reload
    
vim /etc/sysconnection/network-scripts/ifcfg-ens33
DNS1=192.168.100.10		#更改DNS
#测试
nslookup
>yangduhan.example.com

客户端配置

# /etc/sysconfig/network-scripts/ifcfg-ens33
DNS1=192.168.100.10  # 主DNS服务器IP
DNS2=192.168.100.20  # 辅助DNS服务器IP

辅助 DNS 配置修正

zone "example.com" IN {type slave;file "slaves/example.com"; masters { 192.168.100.10; };  # 修正为主服务器IP
};zone "100.168.192.in-addr.arpa" IN {type slave;file "slaves/com.example";  # 统一命名masters { 192.168.100.10; };  # 修正为主服务器IP
};

重启服务

systemctl restart named
systemctl enable named
#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
#关闭selinux
setenforce 0

五、验证与排错

常用命令

# 解析测试
nslookup web.example.com
dig +short mail.example.com# 反向解析测试
nslookup 192.168.100.50
dig -x 192.168.100.60# 查看区域传输
dig AXFR example.com @192.168.100.10

日志检查

tail -f /var/log/messages
named-checkconf  # 检查主配置
named-checkzone example.com /var/named/example.com.zone  # 检查区域文件

六、关键补充说明

  1. 序列号管理

    • 格式推荐:YYYYMMDDNN (年月日+当日修订号)
    • 每次修改区域文件后必须增加序列号
    • 辅助DNS通过序列号判断是否需要同步
  2. 时间参数优化

    参数生产环境建议测试环境建议
    刷新时间1-6小时15分钟
    重试时间30-60分钟5分钟
    过期时间1-2周1天
  3. 安全增强

    // 禁用版本信息查询
    version "not disclosed";// 限制区域传输
    allow-transfer { key slave-key; };// 启用TSIG密钥认证
    key "slave-key" {algorithm hmac-sha256;secret "base64-encoded-key";
    };
    
  4. 资源记录类型

    记录类型功能描述示例
    AIPv4 地址记录web IN A 192.168.1.10
    AAAAIPv6 地址记录web IN AAAA 2001:db8::1
    CNAME别名记录www IN CNAME web
    MX邮件交换记录@ IN MX 10 mail
    TXT文本记录(验证等用途)@ IN TXT “v=spf1…”
http://www.dtcms.com/a/326193.html

相关文章:

  • C++11的历史和统一的初始化列表
  • Qt串口通信设计指南:通信层架构与实践
  • K8S学习----应用部署架构:传统、虚拟化与容器的演进与对比
  • 虚拟财产刑事辩护:跨地域性与匿名性带来的挑战
  • 记录一些sonic自动化运行中的问题
  • 常见通信协议详解:TCP、UDP、HTTP/HTTPS、WebSocket 与 GRPC
  • 基于 Axios 的 HTTP 请求封装文件解析
  • Rust:专业级错误处理工具 thiserror 详解
  • Nginx 从入门到实战:安装、配置、升级与高级应用全解析
  • Web 开发前端与后端 API 的交互
  • golang 基础案例_01
  • 【MYSQL】MySQL中On duplicate key update
  • 台式机内存条安装方法
  • Docker中安装MySQL 5的详细过程
  • 算法讲解--水果成篮
  • GitHub的简单使用方法----(2)
  • Android中Activity销毁底层原理
  • AVS Video Converter视频转换与编辑工具深度评测
  • 基于OpenCV的实时美颜技术:从传统算法到深度学习融合实现
  • 光功率dBm为何是负数?一文详解
  • Effective C++ 条款35:考虑 virtual函数以外的其他选择
  • Spring源码解析 - SpringApplication run流程-prepareContext源码分析
  • MD5:理解MD5 / MD5核心特性 / MD5 在前端开发中的常见用途 / 在线生成MD5 / js-md5
  • Linux Docker 运行SQL Server
  • loading效果实现原理
  • Elasticsearch Node.js 客户端的安装
  • 第六十一章:AI 模型的“视频加速术”:Wan视频扩散模型优化
  • 简单清晰的讲解一下RNN神经网络
  • HarmonyOS 开发入门 第一章
  • 力扣面试150题--阶乘后的零,Pow(x,n)直线上最多的点