一、DNS核心定义

DNS(Domain Name System,域名系统)是互联网的核心基础设施,本质是“域名与IP地址的映射字典”,负责将人类易记忆的域名(如www.baidu.com)转换为计算机可识别的IP地址(如180.101.50.242),解决“记域名易、记IP难”的问题,支撑各类网络通信(浏览网页、发送邮件等)。

二、DNS核心作用

  • 域名→IP解析(正向解析):最常用功能,用户输入域名后,DNS返回对应IP,完成网络连接的第一步。

  • IP→域名解析(反向解析):多用于验证网络身份(如邮件服务器反垃圾邮件),通过IP地址查询对应的域名。

  • 负载均衡:同一域名映射多个IP(对应多台服务器),DNS根据服务器负载、用户地域等分配IP,提升服务可用性和访问速度。

  • 故障冗余:当某台服务器故障时,DNS可切换至备用IP对应的服务器,避免服务中断。

三、DNS域名结构(分层架构)

DNS采用“树形分层结构”,从上到下依次为根域、顶级域、二级域、三级域(主机名),层级越靠下,域名越具体,且每个层级由不同机构管理,确保全球域名唯一。

  1. 根域(.):最高层级,全球共13组根服务器集群(分布在全球各地),负责指向顶级域服务器,所有域名解析都需先访问根域。

  2. 顶级域(TLD):根域下的第一层,分为两类:

    1. 通用顶级域(gTLD):无地域限制,如.com(商业)、.org(非盈利)、.net(网络服务)、.cn(中国国家顶级域)、.uk(英国国家顶级域)。

    2. 国家/地区顶级域(ccTLD):对应特定国家/地区,如.cn(中国)、.jp(日本)、.us(美国)。

  3. 二级域:顶级域下的域名,由企业/个人申请注册,如baidu.com(.com为顶级域,baidu为二级域)、qq.com。

  4. 三级域(主机名):二级域下的细分,用于区分同一域名下的不同服务,如www.baidu.com(www为主机名,对应网页服务)、mail.qq.com(mail对应邮件服务)。

示例:www.baidu.com 的层级拆解:主机名(www)→ 二级域(baidu)→ 顶级域(.com)→ 根域(.)。

权威DNS服务器中存储各类解析记录,不同记录对应不同服务场景,常用类型如下:

记录类型 作用 示例
A记录 将域名映射为IPv4地址(最常用) www.baidu.com → 180.101.50.242
AAAA记录 将域名映射为IPv6地址(适配IPv6网络) www.baidu.com → 240e:ff:f101:131:0:8d:7a:64
CNAME记录 将域名别名指向另一个域名(无直接IP映射) blog.baidu.com → www.baidu.com
MX记录 指定邮件服务器,用于邮件收发 mail.qq.com 对应的MX记录,指向QQ邮件服务器
NS记录 指定该域名的权威DNS服务器 baidu.com 的NS记录,指向百度权威DNS服务器
TXT记录 存储域名的文本信息,多用于验证(如域名备案)、反垃圾邮件 验证域名归属的TXT记录,存储指定验证字符串

类型:

缓存域名服务器:

也称为DNS高速缓存服务器
通过向其他域名服务器查询获得域名➡IP地址记录
将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器:

特定DNS区域的权威器,具有唯一性
负责维护该区域内所有域名➡IP地址的映射记录
需要自行建立所负责区域的地址数据文件

从域名服务器:

也称为辅助域名服务器,是对主域名服务器的热备份
其维护的域名➡IP地址记录源于主域名服务器
需要从主域名服务器自动同步区域地址数据库

四.BIND的安装和控制

安装BIND软件

系统光盘中自带了BIND服务的安装文件

bind-9.18.21-3.oe2403spl.x86_64.rpm

bind-utils-9.18.21-3.oe2403spl.x86_64.rpm

bind-libs-9.18.21-3.oe2403spl.x86_64.rpm

bind-chroot-9.18.21-3.oe2403spl.x86_64.rpm

bind:提供了域名服务的主要程序及相关文件
bind-utils:提供了bind\bind-utils需要使用的库函数
bind-chroot:为BIND服务提供一个伪装的根目录(将/var/named/chroot/文件作为BIND服务器的根目录),以提高安全性
使用dnf安装bind服务
dnf install bind -y

BIND服务控制

安装完bind后,会自动增加一个名为named的系统服务
查看named系统的运行状态:systemctl status named

BIND服务的配置文件

BIND服务器端程序
主要执行程序:/usr/sbin/named
默认监听端口:53
主要配置文件:/etc/named.conf
保存DNS解析记录的数据文件位于:/var/named/

全局配置部分

设置DNS服务器的全局参数

包括监听地址和端口、区域数据文件存放的目录

使用options{......};的配置段

区域配置部分

设置本服务提供域名解析的特定DNS区域

包括域名、服务器角色、数据文件名等

使用”zone 区域名“ IN{......};的配置段

区域数据配置文件

正面解析记录

NS域名服务器 (Name Server)记录

MX邮件交换(Mail Exchange)记录

A 地址(adress)记录,只用在正向解析区域中

CNAME别名(Canonical Name)记录

反向解析记录

PTR指针(Point)记录

记录的第一列指定IP地址中的主机地址部分

五.使用BIND构建域名服务器

建构缓存域名服务器

1.建立主配置文件named.conf

进入named.conf:cim /etc/named.conf
在全局配置中:
listen-on port 53{配置IP地址};
allow-query{ any; };
dnssec-validation no;(关闭DNS安全扩展确认开关,否则会认为是非法内部DNS)
缓存域名服务需要在全局配置中添加:
forwarders { 114.114.114.114; };(运营商的DNS服务器)
forwarders:转发器

1.确认根域的区域数据文件 named.ca

2.启动named服务

配置完成后,重新启动服务
netstat -anpu |grep named

1.验证缓存域名服务器

在客户端:网络➡属性➡更改适配器设置➡属性➡协议版本4
自动获取IP地址
手动配置DNS服务器地址

构建主域名服务器

dnf -y install bind

①确认本机的网络地址、主机映射、默认DNS服务器地址;②建立主配置文件named.conf;③建立正、反向区域数据文件;④启动named服务或重载配置;⑤验证主域名服务器

构建从域名服务器

①确认本机的网络地址、主机映射、默认DNS服务器地址;②建立主配置文件named.conf;③启动named服务,查看区域数据文件是否下载成功;④验证从域服务器

六.常见DNS问题及解决方法

  1. 解析失败(无法访问网站)

    1. 原因:本地DNS故障、缓存失效、域名过期、权威DNS服务器故障。

    2. 解决:切换公共DNS(如阿里云223.5.5.5)、清理本地缓存、检查域名是否过期。

  2. 解析延迟高(访问网站慢)

    1. 原因:本地DNS距离用户远、缓存未命中、网络链路拥堵。

    2. 解决:切换就近的公共DNS、刷新DNS缓存。

  3. DNS污染(域名被解析到错误IP)

    1. 原因:恶意篡改解析结果,导致用户访问虚假网站(多用于钓鱼、限制访问)。

    2. 解决:使用加密DNS(如DoH、DoT)、切换可靠公共DNS。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐