DNS域名解析

目录

一.DNS

1.1DNS的简介

1.2DNS的背景

1.3DNS的架构

1.4实现DNS的方式

 1.5DNS的查询类型

1.6DNS解析的基本流程

 二.主从复制

2.1定义

2.2优缺点

三.DNS服务软件

3.1bind

3.1.1定义

3.1.2bind相关文件

3.2DNS服务器的核心文件

3.2.1主配置文件

3.2.2域名文件

3.2.3数据库文件

四.域名解析工具


 

一.DNS

1.1DNS的简介

DNS(Domain Name System,域名系统)是互联网的核心服务之一,用于将人类可读的域名转换为机器可识别的IP地址。它充当互联网的“电话簿”,简化用户对网络资源的访问。

1.2DNS的背景

在DNS诞生之前,互联网使用一个名为 HOSTS.TXT 的纯文本文件来映射主机名和IP地址。随着互联网规模的扩大集中式管理的HOSTS.TXT无法满足需求,急需一种分布式、自动化的解决方案。而DNS作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。

1.3DNS的架构

DNS采用树状层级结构管理域名,类似于文件系统的目录树。

  • 根域:最高层,用 . 表示(通常省略),如 www.example.com.(实际解析时隐含根域)。

  • 顶级域可分为两种

    • 组织顶级域:如 .com.org.net

    • 国家代码顶级域:如 .cn(中国)、.uk(英国)。

  • 二级域:如 example.com 中的 example

  • 子域:如 mail.example.com 中的 mail

1.4实现DNS的方式

  1. 方法一 : 本地host文件

  2. 方法二 : 安装软件服务

 1.5DNS的查询类型

DNS查询主要分为 递归查询和 迭代查询

1.递归查询:客户端要求DNS服务器必须返回最终结果

2.迭代查询:DNS服务器只返回它知道的最佳答案,不会代替客户端查询到底。

1.6DNS解析的基本流程

当用户在浏览器输入目标域名时,DNS解析过程如下

以www.example.com为例

步骤1:本地缓存查询

  1. 浏览器缓存 → 检查是否最近访问过该域名

  2. 操作系统缓存 → 查看本地Hosts文件及系统DNS缓存

  3. 路由器缓存 → 检查家庭/企业路由器的DNS记录

  • 如果缓存命中:直接返回IP,解析结束。

  • 如果未命中:进入递归查询流程。

步骤2:递归DNS服务器查讯

递归服务器检查自身缓存

  • 如果有目标域名的缓存且未过期,直接返回IP。

  • 如果没有,开始迭代查询流程。

步骤3:迭代查询(层级解析)

递归服务器依次向以下服务器发起查询:

(1) 根DNS服务器(Root Server)

  • 全球共13组根服务器(逻辑根,实际物理服务器遍布全球)。

  • 返回.com 顶级域(TLD)的权威服务器地址(如 a.gtld-servers.net)。

(2) 顶级域DNS服务器(TLD Server)

  • 管理 .com.org 等顶级域。

  • 返回example.com 的权威DNS服务器地址(如 ns1.example.com)。

(3) 权威DNS服务器(Authoritative Server)

  • 托管 example.com 的完整DNS记录。

  • 返回www.example.com 的A记录(如 192.0.2.1)。

步骤4:结果返回与缓存

 二.主从复制

2.1定义

主从复制是一种数据同步机制,用于在多个数据库或服务器之间实现数据的单向复制和备份。其核心架构包括:

  • 主节点(Master):负责处理所有写操作(如增删改),并将数据变更同步到从节点。

  • 从节点(Slave):接收主节点的数据变更,只读(不处理写请求),用于分担查询负载或容灾备份。

2.2优缺点

优点缺点
提高读性能(多从节点分担查询)写性能受主节点限制
数据冗余,增强容灾能力主从延迟可能导致脏读
灵活扩展(可动态增加从节点)主节点故障需手动/自动切换(有风险)

三.DNS服务软件

3.1bind

3.1.1定义

BIND(Berkeley Internet Name Domain)是互联网上最广泛使用的DNS服务器软件,其配置文件用于定义DNS服务器的行为、区域数据和安全策略。

3.1.2bind相关文件

  • BIND主程序:/usr/sbin/named

  • 服务脚本和Unit名称:/etc/rc.d/init.d/named,/usr/lib/systemd/system/named.service

  • 主配置文件:/etc/named.conf, /etc/named.rfc1912.zones, /etc/rndc.key

  • 管理工具:/usr/sbin/rndc:remote name domain controller,默认与bind安装在同一主机,且只能通过127.0.0.1连接named进程,提供辅助性的管理功能;953/tcp rndc reload systemctl reload named

  • 解析库文件:/var/named/ZONE_NAME.ZONE

3.2DNS服务器的核心文件

3.2.1主配置文件

DNS服务的"大脑"和"总控中心"

#路径#
/etc/named.conf 

#主要内容#
options {
        listen-on port 53 { any; };
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };

3.2.2域名文件

域名文件(Zone File)是DNS服务器的核心数据文件,用于存储特定域名(Zone)的所有解析规则。

域名文件 ----指定域名的名称
#路径#
/etc/named.rfc1912.zones

#主要内容#
##正向解析##
zone "byyd.com" IN {
        type master;
        file "byyd.com.zone";
};

##反向解析##
zone "2.168.192.in-addr.apra" IN {
        type slave;
        file "dyyb.com.zone";
};


##主从复制##
###主服务器###
zone "byyd.com" IN {
        type master;
        file "byyd.com.zone";
        allow-transfer { 192.168.2.101; };
};
###从服务器###
zone "byyd.com" IN {
        type slave;
        file "slaves/byyd.com.zone";
        masters { 192.168.2.100; };
};

3.2.3数据库文件

在BIND DNS服务器中,数据库文件(即区域文件,Zone Files)存储具体的DNS解析记录(如A、MX、NS记录等)

$TTL 1D                                            #有效解析记录的生存周期
@   in SOA benet.com. admin.benet.com. (   #“@"符号表示当前的DNS区域名
                     0   ; serial              #更新序列号,可以是10位以内的整数         11111111    
                    1D   ; refresh             #刷新时间,重新下载地址数据的间隔
                    1H   ; retry               #重试延时,下载失败后的重试间隔
                    1W   ; expire              #失效时间,超过该时间仍无法下载则放弃#
					3H)  ; minimum             #无效解析记录的生存周期,
        NS      benet.com.                     #记录当前区域的DNS服务器的名称
        A     192.168.80.10                   #记录主机IP地址
IN   MX 10    mail.benet.com.            #MX为邮件交换记录,数字越大优先级越低
www  IN A     192.168.80.10              #记录正向解析www.benet.com对应的IP
mail IN A     192.168.80.11              #MX为邮件交换记录,数字越大优先级低 
ftp  IN CNAME  www                       #CNAME使用别名,ftp 是www的别名
*    IN A   192.168.80.100               #泛域名解析,“*"代表任意主机名

 

 

四.域名解析工具

1.nslookup(交互式基础查询)
作用:直接命令行查询​,支持正向/反向解析

格式:
​nslooup     域名     [域名服务器]

例子:
# 查询域名的记录(默认使用系统配置的DNS)
nslookup www.example.com

nslookup www.baidu.com  8.8.8.8
#指定 8.8.8.8服务器来解析

# 反向解析(IP→域名)
nslookup 192.168.1.1



​2.dig(完整全面的查询)

格式:
dig [选项] 域名 [记录类型] @DNS服务器 

例子:
# 查询A记录(显示完整响应)
dig www.example.com

# 指定记录类型(如MX)
dig example.com MX

# 指定DNS服务器(如Cloudflare)
dig @1.1.1.1 example.com




3.host(快速简洁查询)

格式:
host 域名 [DNS服务器]

例子:
# 查询A记录
host www.example.com

# 指定DNS服务器
host www.example.com 8.8.8.8

# 反向解析
host 192.168.1.1

​

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值