1.DHCP服务器
一、DHCP 服务基础:解决静态 IP 的痛点
1.静态 IP 分配的核心问题
在大型网络或云环境中,手动配置静态 IP 存在两大关键痛点:
IP 冲突风险:需人工确保所有设备 IP 不重复,操作失误会导致设备断网;
配置效率低下:新设备(如云实例、办公电脑)部署时需逐一手动分配 IP,无法适配自动化运维需求。
2.DHCP 的核心功能
DHCP(动态主机配置协议)通过 “集中化自动配置” 解决上述问题,核心作用是为接入网络的设备动态分配以下网络参数:
核心参数:IP 地址(有租期限制,避免地址浪费);
辅助参数:默认网关、DNS 服务器地址、广播地址、NTP 服务器地址、域搜索列表等;
协议版本:分为用于 IPv4 的 DHCPv4 和用于 IPv6 的 DHCPv6,本文聚焦 DHCPv4。
二、DHCP 通信流程:四步握手 + 续约机制
DHCP 客户端与服务器的交互分为 “初始获取 IP” 和 “租期续约” 两个阶段,流程严谨且可追溯。
1.初始获取 IP:四步广播 / 单播交互
| 步骤 | 角色 | 数据包类型 | 核心内容 | 关键细节 |
|---|---|---|---|---|
| 1 | 客户端 | DHCPDISCOVER | 客户端无 IP,向255.255.255.255(广播地址)发送请求:“寻找 DHCP 服务器,申请 IP” | 路由器默认不转发此广播,若客户端与服务器跨网段,需配置 DHCP 中继 |
| 2 | 服务器 | DHCPOFFER | 服务器从 “IP 地址池” 中选择一个未分配 IP,广播回复:“提供 IP + 租期 + 网关 / DNS 等参数” | 若网络中有多台 DHCP 服务器,客户端会收到多个 OFFER |
| 3 | 客户端 | DHCPREQUEST | 客户端选择一个 OFFER,广播确认:“请求使用某服务器提供的 IP” | 报文包含目标服务器 IP,其他服务器收到后释放预留的 IP |
| 4 | 服务器 | DHCPACK | 目标服务器广播回复:“确认 IP 分配,租期生效” | 客户端此时获得完整网络参数,可正常联网 |
2.租期续约机制
IP 地址并非永久分配,需通过续约确保地址合理回收:
续约触发:租期到期前,客户端主动向原服务器发送DHCPREQUEST(renew)数据包;
续约结果:服务器回复DHCPACK(renew)确认续约,客户端继续使用 IP;若服务器未响应,客户端租期到期后需重新执行 “四步握手” 申请新 IP。
3.通信日志与验证
可通过 Linux 系统命令查看 DHCP 交互日志,追溯地址分配过程:
查看服务端日志:journalctl -u dhcpd.service,日志会记录客户端 MAC、申请的 IP、交互阶段(如DHCPDISCOVER→DHCPOFFER→DHCPACK);
三、DHCP 服务器部署与配置:Linux 环境实操
1.部署前提:服务器基础配置
DHCP 服务器需满足两个核心前提:
静态 IP 地址:服务器自身 IP 必须固定(不能动态获取),否则客户端无法稳定定位服务器;
广播地址支持:通过ip addr命令确认网卡配置包含BROADCAST标识(如ens160: <BROADCAST,MULTICAST,UP,LOWER_UP>),确保能接收广播报文。
2.完整部署步骤
[root@server ~ 10:13:04]# cat /etc/dhcp/dhcpd.conf
#
# DHCP Server Configuration file.
# see /usr/share/doc/dhcp*/dhcpd.conf.example
# see dhcpd.conf(5) man page
#
[root@server ~ 10:13:51]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? yes
[root@server ~ 10:14:15]# vim /etc/dhcp/dhcpd.conf
[root@server ~ 10:39:18]# cat /etc/dhcp/dhcpd.conf
# 配置域名
option domain-name "wsf.cloud";
# 配置DNS服务器
option domain-name-servers 223.5.5.5, 223.6.6.6;
# 默认租约时间
default-lease-time 600;
# 最大租约时间
max-lease-time 7200;
# 配置日志级别
log-facility local7;
# 配置DHCP池
subnet 10.1.8.0 netmask 255.255.255.0 {
range 10.1.8.101 10.1.8.130;
#option domain-name-servers ns1.internal.example.org;
#option domain-name "internal.example.org";
option routers 10.1.8.2;
option broadcast-address 10.1.8.255;
#default-lease-time 600;
#max-lease-time 7200;
}
# 根据Mac地址分配固定IP
host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}
#启动DHCP服务
[root@server ~ 10:39:22]# systemctl enable dhcpd --now
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@server ~ 10:39:50]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server Daemon
Loaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2025-09-25 10:39:50 CST; 31s ago
Docs: man:dhcpd(8)
man:dhcpd.conf(5)
Main PID: 63107 (dhcpd)
Status: "Dispatching packets..."
CGroup: /system.slice/dhcpd.service
└─63107 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user d
连接主机...
连接主机成功
Last login: Thu Sep 25 09:51:38 2025
-bash: vim:ts=4:sw=4: 未找到命令
[root@client ~ 10:42:32]#
[root@server ~ 11:14:45]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5
lease 10.1.8.101 {
starts 4 2025/09/25 03:05:53;
ends 4 2025/09/25 03:15:53;
tstp 4 2025/09/25 03:15:53;
cltt 4 2025/09/25 03:05:53;
binding state active;
next binding state free;
rewind binding state free;
hardware ethernet 00:0c:29:a3:68:0d;
client-hostname "client";
}
server-duid "\000\001\000\0010gg\366\000\014)\357\254\001";
lease 10.1.8.101 {
starts 4 2025/09/25 03:05:53;
ends 4 2025/09/25 03:15:53;
tstp 4 2025/09/25 03:15:53;
cltt 4 2025/09/25 03:05:53;
binding state free;
hardware ethernet 00:0c:29:a3:68:0d;
}
#MAC 地址绑定:为特定设备分配固定 IP
[root@server ~ 11:08:36]# vim /etc/dhcp/dhcpd.conf
[root@server ~ 11:08:54]# systemctl restart dhcpd
[root@server ~ 11:09:09]# cat /etc/dhcp/dhcpd.conf
# 配置域名
option domain-name "wsf.cloud";
# 配置DNS服务器
option domain-name-servers 223.5.5.5, 223.6.6.6;
# 默认租约时间
default-lease-time 600;
# 最大租约时间
max-lease-time 7200;
# 配置日志级别
log-facility local7;
# 配置DHCP池
subnet 10.1.8.0 netmask 255.255.255.0 {
range 10.1.8.101 10.1.8.130;
#option domain-name-servers ns1.internal.example.org;
#option domain-name "internal.example.org";
option routers 10.1.8.2;
option broadcast-address 10.1.8.255;
#default-lease-time 600;
#max-lease-time 7200;
}
# 根据Mac地址分配固定IP
host fantasia {
hardware ethernet 00:0c:29:a3:68:0d;
fixed-address 10.1.8.100;
}
[root@client ~ 11:07:21]# ip -br link
lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP>
ens33 UP 00:0c:29:a3:68:03 <BROADCAST,MULTICAST,UP,LOWER_UP>
ens37 UP 00:0c:29:a3:68:0d <BROADCAST,MULTICAST,UP,LOWER_UP>
[root@client ~ 11:07:28]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens33 UP 10.1.8.11/24 fe80::20c:29ff:fea3:6803/64
ens37 UP 10.1.8.101/24 fe80::d7e3:acb:331d:3e38/64
[root@client ~ 11:09:41]# nmcli connection
NAME UUID TYPE DEVICE
ens33 0e9a9583-e807-40e8-ae6c-c1a680846c5e ethernet ens33
有线连接 1 c7ac58d5-45d0-3a61-af98-5702830399ef ethernet ens37
[root@client ~ 11:09:45]# nmcli connection up 有线连接\ 1
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/3)
[root@client ~ 11:09:51]# ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
ens33 UP 10.1.8.11/24 fe80::20c:29ff:fea3:6803/64
ens37 UP 10.1.8.100/24 fe80::d7e3:acb:331d:3e38/64
核心总结:DHCP 服务器的关键要点
- 核心价值:通过 “自动分配 + 集中管理” 解决静态 IP 的冲突与低效问题,是现代网络(尤其是大型网络、云环境)的基础服务;
- 通信本质:以 “四步握手” 实现 IP 初始分配,以 “租期续约” 实现地址动态回收,流程依赖广播(同网段)或中继(跨网段);
- 部署关键:服务器需固定 IP + 正确配置地址池 / 网关 / DNS,客户端需启用动态获取,跨网段需配置中继 + IP 转发;
- 灵活应用:MAC 绑定适配固定 IP 需求,Dnsmasq 适配轻量场景,可根据网络规模选择方案;
- 避坑指南:多 DHCP 服务器易导致地址混乱(非权威服务器会忽略未知 IP 请求),同一网段建议仅部署 1 台权威服务器。
2.DNS服务器
DNS(域名系统)是互联网的核心基础设施,负责将人类易记的域名转换为计算机可识别的 IP 地址,同时实现分布式的网络资源定位与管理。本文基于参考文档,从 DNS 的基础架构、查询机制、资源记录、服务器配置(权威 / 缓存)及常见问题排查等维度,系统梳理 DNS 服务器的核心知识,为网络管理实践提供完整指南。
一、DNS 基础:分层架构与核心概念
DNS 采用 “分布式分层命名系统”,通过层级化的域名结构和服务器分工,实现全球域名的高效解析。
1. DNS 域名层级结构
DNS 层级从顶层到下层依次为 “根域→顶级域→二级域→子域→主机”,每一层级由不同机构管理,确保域名全球唯一性:
| 层级 | 名称 | 说明 | 示例 |
|---|---|---|---|
| 第 1 层 | 根域(Root) | 层级最顶层,用.表示,全球共 13 组根服务器,负责指向顶级域服务器 | . |
| 第 2 层 | 顶级域(TLD) | 由 IANA(互联网号码分配机构)管理,分两类:- 通用顶级域(gTLD):按主题划分- 国家代码顶级域(ccTLD):按国家 / 地区划分 | gTLD:.com、.org、.edu;ccTLD:.cn、.uk、.us |
| 第 3 层 | 二级域 | 企业 / 组织申请的专属域名,需在顶级域下注册 | linux.fun、redhat.com |
| 第 4 层及以下 | 子域(Subdomain) | 二级域下的细分域名,由组织自行管理 | lab.linux.fun(linux.fun的子域) |
| 最底层 | 主机(Host) | 具体的网络设备(服务器、客户端),是域名的最终指向 | www.lab.linux.fun、server.linux.fun |
2. 核心概念辨析:Domain、Zone、Subdomain
初学者易混淆三者,核心区别在于 “管理范围” 和 “责任边界”:
- Domain(域):DNS 命名空间的 “完整子树”,包含该域名下的所有资源记录(如
linux.fun域包含所有以linux.fun结尾的主机和子域); - Zone(区域):某台 DNS 服务器 “直接负责管理的域片段”,可是整个域或部分子域(如
linux.fun域可将lab.linux.fun子域委派给其他服务器,形成独立 Zone); - Subdomain(子域):某域的 “下属分支”,体现域之间的层级关系(如
lab.linux.fun是linux.fun的子域,linux.fun是.com的子域)。
二、DNS 查询机制:递归与迭代的核心差异
DNS 查询是 “客户端获取域名对应 IP” 的过程,根据 “查询主体” 不同,分为递归查询和迭代查询,二者的核心区别在于 “谁负责发起后续查询”。
1. 递归查询:以本地 DNS 服务器为 “中介”
递归查询是客户端默认的查询方式,特点是 “客户端仅发起一次请求,后续查询由本地 DNS 服务器完成,最终返回结果”,流程如下:
- 客户端请求:客户端向本地 DNS 服务器发送域名查询请求(如
www.example.com),之后进入等待状态; - 本地缓存检查:本地 DNS 服务器先查询自身缓存,若有记录直接返回结果;若无,以 “客户端身份” 向根服务器发起查询;
- 层级转发查询:根服务器返回顶级域(
.com)服务器地址→本地 DNS 服务器向.com服务器查询→.com服务器返回二级域(example.com)服务器地址→本地 DNS 服务器向example.com服务器查询→最终找到权威服务器; - 结果返回:权威服务器返回
www.example.com的 IP→本地 DNS 服务器缓存该记录,并将结果返回给客户端。
核心特点:客户端 “省心”,仅需等待最终结果;本地 DNS 服务器 “负责到底”,承担所有中间查询步骤。
2. 迭代查询:以客户端为 “主导”
迭代查询的特点是 “客户端自行发起所有查询步骤,每台服务器仅返回‘下一台可查询的服务器地址’,客户端需继续查询直到获取结果”,流程如下:
- 客户端请求:客户端向本地 DNS 服务器查询
www.example.com; - 本地服务器指引:本地 DNS 服务器无缓存,返回根服务器地址;
- 客户端层级查询:客户端向根服务器查询→根服务器返回
.com服务器地址→客户端向.com服务器查询→.com服务器返回example.com服务器地址→客户端向example.com服务器查询→权威服务器返回 IP; - 结果确认:客户端直接获取 IP,完成查询。
核心特点:客户端 “主动”,需依次与多台服务器交互;每台服务器仅提供 “下一站指引”,不替客户端完成后续查询。
3. 两种查询的关键区别
| 对比维度 | 递归查询 | 迭代查询 |
|---|---|---|
| 查询主体 | 本地 DNS 服务器(客户端仅发起 1 次请求) | 客户端(自行发起所有查询步骤) |
| 交互次数 | 客户端与本地 DNS 服务器仅 1 次交互 | 客户端与多台服务器(根、顶级域等)多次交互 |
| 结果返回 | 本地 DNS 服务器返回最终 IP | 权威服务器直接返回最终 IP 给客户端 |
| 适用场景 | 普通用户设备(如电脑、手机) | DNS 服务器之间的查询(如本地服务器向根服务器查询) |
| 配置控制 | 部分服务器禁止递归(防 DDoS 攻击) | 无特殊限制,默认支持 |
三、DNS 资源记录:解析的 “数据基础”
DNS 资源记录(RR)是 DNS 服务器中存储的 “域名与资源映射关系”,不同类型的记录对应不同的网络服务需求,所有记录均遵循统一格式:owner-name TTL class type data(所有者名称、生存时间、类别、记录类型、数据内容)。
1. 核心资源记录类型及用途
| 记录类型 | 英文全称 | 核心作用 | 示例配置 |
|---|---|---|---|
| A | Address | 将域名映射到 IPv4 地址(最常用记录) | server.linux.fun. 86400 IN A 10.1.8.10 |
| AAAA | IPv6 Address | 将域名映射到 IPv6 地址 | a.root-servers.net. 604800 IN AAAA 2001:503:ba3e::2:30 |
| CNAME | Canonical Name | 将域名作为 “别名” 指向另一个域名(需最终解析为 A/AAAA) | student.linux.fun. 30 IN CNAME client.linux.fun. |
| PTR | Pointer | 将 IP 地址反向映射到域名(反向解析) | IPv4:10.8.1.10.in-addr.arpa. 7200 IN PTR server.linux.fun.;IPv6:0.3.0.0.2.0.0.0...ip6.arpa. 86400 IN PTR a.root-servers.net. |
| NS | Name Server | 指定负责某域的权威 DNS 服务器 | linux.fun. 86400 IN NS dns.linux.fun. |
| SOA | Start of Authority | 区域 “起始授权记录”,包含区域管理核心参数(每区必含 1 条) | linux.fun. 86400 IN SOA dns.linux.fun. root.dns.linux.fun. (2024050101 3600 300 604800 60) |
| MX | Mail Exchange | 指定接收某域邮件的邮件服务器(含优先级) | linux.fun. 86400 IN MX 10 mail.linux.fun.(优先级 10,数值越小越优先) |
| TXT | Text | 存储任意文本信息(如邮件验证、域名所有权证明) | linux.fun. 27272 IN TXT "v=spf1 a:mail.linux.fun -all"(SPF 邮件验证) |
| SRV | Service | 指引客户端找到某域中提供特定服务的主机(含端口、优先级) | _ldap._tcp.linux.fun. 86400 IN SRV 0 100 389 server.linux.fun.(LDAP 服务,端口 389,优先级 0) |
2. 关键记录详解:SOA 与 NS
-
SOA 记录:是区域的 “管理核心”,包含 6 个关键参数,控制区域数据的同步与缓存:
参数 含义说明 示例值 SERIAL 区域版本号(每次修改区域文件需递增,用于从服务器判断是否需要同步) 2024050101 REFRESH 从服务器向主服务器同步数据的间隔(单位:秒) 3600(1 小时) RETRY 同步失败后,重试的间隔(单位:秒) 300(5 分钟) EXPIRE 多次同步失败后,从服务器停止使用旧数据的时间(单位:秒) 604800(7 天) MINIMUM 负响应(域名不存在)的缓存时间(单位:秒) 60(1 分钟) RNAME 区域管理员邮箱( @替换为.)root.dns.linux.fun. -
NS 记录:是 “域与权威服务器的绑定关系”,某域的所有权威服务器必须在 NS 记录中声明,且 NS 记录指向的服务器必须有对应的 A/AAAA 记录(否则无法定位)。
四、DNS 服务器配置:权威与缓存两大核心角色
DNS 服务器按功能分为 “权威服务器”(存储域名的原始记录,提供权威解析)和 “缓存服务器”(存储查询结果缓存,加速后续查询),二者配置逻辑和应用场景不同。
1. 权威 DNS 服务器:存储原始记录的 “数据源”
权威服务器是某域 “官方指定的解析服务器”,存储该域的所有资源记录,对解析结果的准确性负责。Linux 中常用BIND(Berkeley Internet Name Domain) 软件实现,配置流程如下:
(1)权威服务器架构:主从同步
为保证可靠性,权威服务器通常采用 “主从架构”:
- 主服务器(Primary/Master):直接管理区域文件(修改、新增记录),是区域数据的 “源头”;
- 从服务器(Secondary/Slave):从主服务器同步区域文件(通过 “区域传输”),提供冗余解析服务,避免主服务器故障导致域无法解析。
(2)完整配置步骤(以 BIND 为例)
#安装软件包
[root@server ~ 14:58:56]# yum install -y bind bind-utils
#修改配置文件
[root@server ~ 14:59:40]# vim /etc/named.conf
#增加监听ip
listen-on port 53 { 127.0.0.1;10.1.8.10; };
#放行客户端
allow-query { localhost;10.1.8.0/24; };
#关闭安全认证
dnssec-validation no;
#最后添加正向解析和反向解析配置
zone "wsf.cloud" IN {
type master;
file "wsf.cloud.zone";
};
zone "8.1.10.in-addr.arpa" IN {
type master;
file "10.1.8.zone";
};
#额外说明:
// dns服务器相关文件存放位置
directory "/var/named";
// 允许递归查询
recursion yes;
[root@server ~ 15:11:05]# cd /var/named
[root@server named 15:12:12]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
#在 /var/named 目录中创建文件 wsf.cloud.zone
[root@server named 15:12:16]# cp -a named.localhost wsf.cloud.zone
[root@server named 15:13:53]# vim wsf.cloud.zone
$TTL 3600
@ IN SOA dns.wsf.cloud. admin.wsf.cloud. (
42 ; serial
3H ; secondary refresh
15M ; secondary retry
1W ; secondary timeout
15M ; minimum cache TTL for negative answers
)
IN NS dns.wsf.clound.
dns IN A 10.1.8.10
server IN A 10.1.8.10
student IN CNAME client.wsf.cloud.
client IN A 10.1.8.11
www 30 IN A 10.1.8.200
@ IN MX 10 mail.wsf.cloud.
mail IN A 10.1.8.253
说明:
示例说明:
- @字符代表区域的名称,避免重复键入,并且在某些情况下允许重复使用。
- 区域文件中的SOA记录与前面的示例中的SOA记录是等效的。
- 如果记录的名称为空,则其值与前面的记录相同。
因此,在前面的示例中:
- 第一个记录是wsf.cloud.的SOA记录
- 接下来的记录是wsf.cloud.的NS记录
- 然后有一个dns的A记录。
- 然后有一个server的A记录。
- 然后有一个student的CNAME记录。
- 然后有一个client的A记录。
- 然后有一个域的MX记录。
- 然后有一个mail的A记录。
#在 /var/named 目录中创建文件 10.1.8.zone
[root@server named 15:35:46]# cp -a named.localhost 10.1.8.zone
[root@server named 15:36:32]# vim 10.1.8.zone
$TTL 3600
@ IN SOA dns.wsf.cloud. admin.wsf.cloud. (
42 ; serial
3H ; secondary refresh
15M ; secondary retry
1W ; secondary timeout
15M ; minimum cache TTL for negative answers
)
IN NS dns.wsf.cloud.
10 IN PTR server.wsf.cloud.
10 IN PTR dns.wsf.cloud.
11 IN PTR client.wsf.cloud.
11 IN PTR student.wsf.cloud.
200 IN PTR www.wsf.cloud.
253 IN PTR mail.wsf.cloud.
#验证配置
[root@server named 15:37:59]# named-checkconf
#验证 zone 文件
[root@server named 15:38:34]# named-checkzone wsf.cloud /var/named/wsf.cloud.zone
zone wsf.cloud/IN: loaded serial 42
OK
#启动服务
[root@server named 15:38:57]# systemctl enable named --now
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.
[root@server named 15:39:13]# systemctl status named
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2025-09-25 15:39:13 CST; 17s ago
Process: 83275 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 83272 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 83277 (named)
CGroup: /system.slice/named.service
└─83277 /usr/sbin/named -u named -c /etc/named.conf
9月 25 15:39:13 server.wsf.com named[83277]: network unreachable resolving '...3
9月 25 15:39:13 server.wsf.com named[83277]: network unreachable resolving '...3
9月 25 15:39:13 server.wsf.com named[83277]: network unreachable resolving '...3
9月 25 15:39:14 server.wsf.com named[83277]: resolver priming query complete
9月 25 15:39:14 server.wsf.com named[83277]: checkhints: b.root-servers.net/...s
9月 25 15:39:14 server.wsf.com named[83277]: checkhints: b.root-servers.net/...s
9月 25 15:39:14 server.wsf.com named[83277]: checkhints: b.root-servers.net/...s
9月 25 15:39:14 server.wsf.com named[83277]: checkhints: b.root-servers.net/...s
9月 25 15:39:14 server.wsf.com named[83277]: managed-keys-zone: Key 20326 fo...d
9月 25 15:39:14 server.wsf.com named[83277]: managed-keys-zone: Initializing....
Hint: Some lines were ellipsized, use -l to show in full.
配置client
#确保客户端/etc/hosts 只有localhost记录
[root@client ~ 15:58:18]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
#10.1.8.10 server.wsf.com server
#10.1.8.11 client.wsf.com client
[root@client ~ 16:01:02]# nmcli connection
NAME UUID TYPE DEVICE
有线连接 1 c7ac58d5-45d0-3a61-af98-5702830399ef ethernet ens37
ens33 0e9a9583-e807-40e8-ae6c-c1a680846c5e ethernet ens33
[root@client ~ 16:01:11]# nmcli connection down 有线连接\ 1
成功停用连接 "有线连接 1"(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
#配置客户端dns为10.1.8.10
[root@client ~ 16:02:30]# nmcli connection modify ens33 ipv4.dns 10.1.8.10 -ipv4.dns 223.5.5.5 -ipv4.dns 223.6.6.6
[root@client ~ 16:04:16]# nmcli connection up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@client ~ 16:05:14]# ping student.wsf.cloud
PING client.wsf.cloud (10.1.8.11) 56(84) bytes of data.
64 bytes from student.wsf.cloud (10.1.8.11): icmp_seq=1 ttl=64 time=0.025 ms
64 bytes from student.wsf.cloud (10.1.8.11): icmp_seq=2 ttl=64 time=0.023 ms
#使用 getent 尝试解析相关域名
[root@client ~ 16:34:27]# getent hosts student.wsf.cloud
10.1.8.11 client.wsf.cloud student.wsf.cloud
[root@client ~ 16:34:43]# getent hosts dns.wsf.cloud
10.1.8.10 dns.wsf.cloud
[root@client ~ 16:41:41]# getent hosts www.wsf.cloud
10.1.8.200 www.wsf.cloud
#使用 dig 尝试解析
[root@client ~ 16:22:39]# yum install -y bind-utils
[root@client ~ 16:26:45]# dig @10.1.8.10 server.wsf.cloud
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> @10.1.8.10 server.wsf.cloud
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7357
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;server.wsf.cloud. IN A
;; ANSWER SECTION:
server.wsf.cloud. 3600 IN A 10.1.8.10
;; AUTHORITY SECTION:
wsf.cloud. 3600 IN NS dns.wsf.cloud.
;; ADDITIONAL SECTION:
dns.wsf.cloud. 3600 IN A 10.1.8.10
;; Query time: 1 msec
;; SERVER: 10.1.8.10#53(10.1.8.10)
;; WHEN: 四 9月 25 16:27:10 CST 2025
;; MSG SIZE rcvd: 95
[root@client ~ 16:27:10]# dig @10.1.8.10 -x 10.1.8.200
; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> @10.1.8.10 -x 10.1.8.200
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38235
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;200.8.1.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
200.8.1.10.in-addr.arpa. 3600 IN PTR www.wsf.cloud.
;; AUTHORITY SECTION:
8.1.10.in-addr.arpa. 3600 IN NS dns.wsf.cloud.
;; ADDITIONAL SECTION:
dns.wsf.cloud. 3600 IN A 10.1.8.10
;; Query time: 0 msec
;; SERVER: 10.1.8.10#53(10.1.8.10)
;; WHEN: 四 9月 25 16:28:06 CST 2025
;; MSG SIZE rcvd: 113
1123

被折叠的 条评论
为什么被折叠?



