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

【运维进阶】DHCP服务配置和DNS域名解析

DHCP服务配置和DNS域名解析

DHCP 服务介绍

在大型网络中,系统静态分配IP地址面临问题:

  1. 确保不要同时在多个系统上使用同一个地址。
  2. 部署新系统通常需要手动分配其IP地址。在云环境中,实例的网络是自动化配置的。

动态主机配置协议(DHCP-Dynamic Host Configuration Protocol)提供了一种自动配置网络参数的方法,例如IP地址,默认网关,DNS服务器和域或NTP服务器。在网络中部署DHCP服务器,您可以集中控制这些参数。

DHCP有两种协议:

  • 用于IPv4网络的 DHCPv4
  • 用于IPv6网络的 DHCPv6

本文只介绍DHCPv4。

部署 DHCP 服务器

要配置DHCPv4服务器,请首先使用ip addr命令确认您的网络接口配置是否指定了BROADCAST地址。

[root@server ~ 21:23:01]# ip addr 
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:e1:56:ec brd ff:ff:ff:ff:ff:ffinet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens33valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fee1:56ec/64 scope link valid_lft forever preferred_lft forever

服务器必须具有静态IP地址。

安装 DHCP 软件
# 安装软件包
[root@server ~ 21:24:44]# yum install -y dhcp# 配置防火墙,放行dhcp服务
[root@server ~ 21:25:43]#  firewall-cmd --add-service=dhcp
[root@server ~ 21:26:01]#  firewall-cmd --add-service=dhcp --permanent
配置 DHCP 服务器

dhcpd服务使用/etc/dhcp/dhcpd.conf配置文件。 dhcp软件包提供/usr/share/doc/dhcp-*/dhcpd.conf.example 配置文件示例。

[root@server ~ 21:26:13]#  /bin/cp /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf
[root@server ~ 21:27:22]# vim /etc/dhcp/dhcpd.conf

典型的DHCP配置示例:

subnet 10.1.8.0 netmask 255.255.255.0 {range 10.1.8.101 10.1.8.130;option domain-name-servers 223.5.5.5;option domain-name "xiexin.cloud";option routers 10.1.8.2;option broadcast-address 10.1.8.255;default-lease-time 600;max-lease-time 7200;
}

配置说明:

  • authoritative,指示服务器对其所管理的子网具有权威性。
  • subnet,提供的子网详。
  • range,指定服务器在该范围内分配IP地址。
  • option routers,指定服务器提供默认网关地址。
  • option domain-name-servers,指定服务器提供DNS名称服务器。
  • option domain-search,指定服务器提供DNS域搜索列表。
  • default-lease-time,提供网络信息默认租期,如果客户端不要求任何特定的租期。单位秒。
  • max-lease-time,指示服务器可以从客户端请求接受的最大租期。单位秒。

客户端系统上的NetworkManager使用domain-name-serversdomain-search更新resolv.conf文件中的nameserversearch参数。

验证 DHCP 配置
# 验证配置文件语法
[root@server ~ 21:32:05]# dhcpd -t
Internet Systems Consortium DHCP Server 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file
启用并启动服务
# 启用并启动服务
[root@server ~ 21:35:19]# systemctl enable dhcpd --now# 查看服务状态
[root@server ~ 21:35:53]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)Active: active (running) since 三 2025-08-06 21:21:04 CST; 14min agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 1023 (dhcpd)Status: "Dispatching packets..."CGroup: /system.slice/dhcpd.service└─1023 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -user dhcpd -group dhcpd --no-pi...
........

配置 DHCP 客户端

# 添加一个自动获取ip连接,假设网卡设备名为ens192
[root@server ~ 21:38:13]# nmcli connection add con-name dynamic type ethernet ifname ens192
[root@server ~ 21:38:29]# nmcli connection up dynamic# 验证
[root@client ~ 21:38:36]# ip addr show ens192
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:26:13:b5 brd ff:ff:ff:ff:ff:ffaltname enp11s0inet 10.1.8.101/24 brd 10.1.8.255 scope global dynamic noprefixroute ens192valid_lft 597sec preferred_lft 597secinet6 fe80::95db:2216:1a36:615/64 scope link noprefixroute valid_lft forever preferred_lft forever

基于 MAC 地址预留IP地址

在配置文件中,host声明可以将MAC地址绑定到IP地址。 此配置对于始终为特定系统的网络接口提供相同的IP地址特别有用,尤其是Web或数据库系统之类的服务器。

客户端MAC地址查看

[root@client ~ 21:38:56]# ip link show ens192
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:26:13:b5 brd ff:ff:ff:ff:ff:ffaltname enp11s0

在以下示例中,服务器始终为MAC地址是00:0c:29:26:13:b5的系统分配10.1.8.20地址。

/etc/dhcp/dhcpd.conf最后添加如下内容:

host client.linux.fun {hardware ethernet 00:0c:29:26:13:b5;fixed-address 10.1.8.30;
}

重启服务

[root@server ~ 21:39:11]# systemctl restart dhcpd

客户端验证

# 激活连接
[root@client ~ 21:39:23]# nmcli connection up dynamic# 验证
[root@client ~ 21:39:29]# ip addr show ens192
3: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:26:13:b5 brd ff:ff:ff:ff:ff:ffaltname enp11s0inet 10.1.8.30/24 brd 10.1.8.255 scope global dynamic noprefixroute ens192valid_lft 245sec preferred_lft 245secinet6 fe80::95db:2216:1a36:615/64 scope link noprefixroute valid_lft forever preferred_lft forever

DNS 服务介绍

DNS 服务介绍

DNS(Domain Name System,域名系统)服务是一种用于将域名转换为IP地址的分布式数据库服务。它是互联网的核心服务之一,使得用户能够通过易于记忆的域名来访问网站和其他网络服务,而无需记住复杂的IP地址。

DNS 也是一个存储网络主机和资源目录的分层命名系统。 目录中的信息将网络名称映射到不同资源记录。

  • 根域:DNS层次结构最顶层,使用独立的"."表示。
  • 顶级域:DNS层次结构第二层,例如**.com**,.net和**.org**等域。
  • 二级域:DNS层次结构第三层,例如**laoma.cloud **和 redhat.com等域。由各个组织使用。
  • 以此类推。

在这里插入图片描述

学习DNS层次结构前,首先要搞清楚DNS层次结构中一些术语,例如domain,subdomain和zone等。

Domain

domain 是 resource records 的集合,该集合以通⽤名结尾,表示 DNS 命名空间的整个⼦树,如 laoma.cloud。

top-level domain(TLD- 顶级域)由 Internet Assigned Numbers Authority(IANA-互联网号码分配机构)管理,并负责委派顶级域。

常见的TLD类型:

  • Generic TLDs(gTLD-通用顶级域名),最初是按主题组织的,包括.com,.edu和.net等。
  • Country code TLDs(ccTLD-国家代码顶级域名),根据ISO 3166-1标准在国家范围上组织的,并包括.us,.uk,.cn和.ru之类的域。
Subdomain

Subdomain 是另一个域的完整子树的域。 在讨论两个域之间的关系时使用此术语。 例如,lab.laoma.cloudlaoma.cloud的子域,而laoma.cloud是**.com的子域。 我们也可以将laoma.cloud称为第二级域,并将lab.laoma.cloud**称为第三级域。

Zone

Zone是特定名称服务器直接负责的域。 它可能是整个域,也可能只是域的一部分。Zone可以将部分或全部子域都委派给另一个名称服务器或多个名称服务器。

例如,root名称服务器对root zone具有权威性,但它们将.com域的职责委派给其他名称服务器,这些名称服务器为.com区域提供权威性应答。 这些服务器还可以继续将责任委派给其他名称服务器。

DNS 查询

DNS 查询分为以下几种类型:

在这里插入图片描述

DNS 资源记录

资源记录(Resource Record)是 DNS 数据库中的基本数据单位,用于描述域名与各种信息之间的关系。

在这里插入图片描述

主机和资源记录

⼀个主机,无论是客户端还是服务器,都具有以下 DNS 资源记录:

  • ⼀个或多个A或AAAA记录

  • 用于将其IP地址反向映射到名称的PTR记录

  • ⼀个或多个CNAME记录(可选)

DNS zone 还具有以下资源记录:

  • 唯一的 SOA 记录

  • 每个权威名称服务器的 NS 记录

  • ⼀个或多个MX记录(可选)

  • 用于在域中查找服务的⼀个或多个SRV记录(可选)

配置权威名称服务器
权威名称服务器架构

什么是权威名称服务器?
权威名称服务器 是 DNS 系统中的核心角色,负责一个或多个域(zone)的最终解析权,它可以:

  • 保存域名 → IP 的真实记录(A、CNAME 等)

  • 对该域的查询给出权威答案

  • 不会再向其他服务器转发请求

权威 DNS 服务器的基本组成
主服务器(Primary / Master)

  • 也叫“权威源”。

  • 管理员手动编写 zone 文件,保存所有资源记录。

  • 是域的配置和数据中心。

  • 通常使用 type master 配置。

从服务器(Secondary / Slave)

  • 通过 zone transfer(区域传送) 从主服务器同步数据。

  • 不直接编辑 zone 文件,只读并响应查询。

  • 起到容灾备份、负载均衡作用。

  • 通常使用 type slave 配置。

安装 BIND

通过安装bind软件包来安装BIND。 名称服务器本身作为named服务运行。 bind包将HTML和PDF格式的BIND文档在安装在/usr/share/doc/bind/目录。

[root@server ~ 21:54:49]# yum install -y bind bind-utils

软件包说明:

  • bind,服务器软件包。
  • bind-utils,bind工具软件包。

bind软件包默认将服务配置为基本的递归缓存名称服务器。 它被配置为localhost、相关域和地址的primary服务器,以减轻根名称服务器的负担。 此默认配置还限制了对本地主机上程序的访问。 它侦听IPv4和IPv6环回接口的端口53 UDP/TCP(127.0.0.1和:: 1)上的连接。

配置 BIND

named主要配置文件是**/etc/named.conf**。 该文件控制BIND的基本操作,由root用户(named组)拥有,具有八进制权限0640,并且具有named_conf_t SELinux类型。

配置文件还指定了每个区域的配置文件位置,这些文件通常保存在**/var/named**中。

配置DNS服务器需要执行以下步骤:

  • 配置地址匹配列表。
  • 配置named侦听的IP地址。
  • 配置客户端的访问控制。
  • 配置zone。
  • 编写区域文件。
定义地址匹配列表

在/etc/named.conf文件的开头,可以使用acl指令定义地址匹配列表。 acl指令不是用于控制客户端对服务器的访问,而是使用它们来定义IP地址和网络列表。

它们提供别名,可以与访问控制指令和其他配置选项一起使用,并使更新配置文件更加容易。

条目可以是完整的IP地址或网络,用尾点(10.1.8.)或CIDR表示法(192.168.0/24或2001:db8::/32)表示,也可以使用先前定义的地址匹配列表的名称。

请考虑以下ACL定义:

[root@server ~ 21:54:52]# vim /etc/named.conf
acl trusted-nets { 192.168.10.0/24; 192.168.20.0/24; };
acl classroom { 10.1.8.0/24; };

在其值中使用classroom的任何指令都将与10.1.8.0/24网络和192.168.1.21中的主机匹配。acl语句定义的地址集可以被多个指令引用。

named中内置了四个预定义的ACL:

ACLDescription
noneMatches no hosts.
anyMatches all hosts.
localhostMatches all IP addresses of the DNS server.
localnetsMatches all hosts from the DNS server’s local subnets.
配置 named 侦听的IP地址

我们可以在/etc/named.conf文件options块中指定许多全局设置。listen-onlisten-on-v6指令,指定了命名监听的接口和端口。

  • listen-on选项采用以分号分隔的IPv4地址列表。
  • listen-on-v6使用IPv6地址。
[root@server ~ 21:56:35]# vim /etc/named.conf
options {listen-on port 53 { 127.0.0.1;10.1.8.10; };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     { localhost;10.1.8.0/24; };.......
配置 zone
[root@server ~ 22:00:23]# vim /etc/named.conf
......
# 最后添加如下内容
zone "xiexin.cloud" IN {type master;file "xiexin.cloud.zone";
};
zone "8.1.10.in-addr.arpa" IN {type master;file "10.1.8.zone";
};

配置说明:

  • type,指定服务器角色。
  • file,指定相对路径名。 相对路径由 options 块中的 directory 指令设置。
创建区域文件

辅助区域文件应保存在/var/named/slaves中。辅助服务器启动时,会将其缓存的区域版本与主服务器上的当前版本进行比较:如果区域文件版本是最新的,则使用该区域文件; 如果区域文件版本不是最新的或文件不存在,则named执行区域传输并将结果缓存在该文件中。

BIND 应该能够读取这些区域文件,但不能写入它们。 这些文件应归root用户和named组所有,以便守护程序在某种程度上受到损害时不能更改它们。

[root@server ~ 22:02:52]# touch /var/named/xiexin.cloud.zone /var/named/10.1.8.zone
[root@server ~ 22:02:59]# chmod 640 /var/named/*.zone
[root@server ~ 22:03:10]# chown root:named /var/named/*.zone# 如果系统开启了selinux功能,执行下面命令设置文件标签
[root@server ~ 22:03:24]# chcon -t named_zone_t /var/named/*.zone
添加记录

正向记录,将名称映射到IP地址和其他记录。该区域文件必须具有:

  • SOA记录。
  • 每个公用名称服务器的NS记录。
  • 该区域的其他A,AAAA,CNAME,MX,SRV和TXT记录。

示例:xiexin.cloud域

[root@server ~ 22:03:28]# vim /var/named/xiexin.cloud.zone
$TTL 3600
@ IN SOA dns.xiexin.cloud. root.xiexin.cloud. (42 ; serial3H ; secondary refresh15M ; secondary retry1W ; secondary timeout15M ; minimum cache TTL for negative answers
)IN NS dns.xiexin.cloud.
dns            IN A 10.1.8.10
server         IN A 10.1.8.10
student        IN CNAME client.xiexin.cloud.
client         IN A 10.1.8.11
www         30 IN A 10.1.8.200
@              IN MX 10 mail.xiexin.cloud.
mail           IN A 10.1.8.253

示例说明:

  • @字符代表区域的名称,避免重复键入,并且在某些情况下允许重复使用。
  • 区域文件中的SOA记录与前面的示例中的SOA记录是等效的。
  • 如果记录的名称为空,则其值与前面的记录相同。

因此,在前面的示例中:

  • 第一个记录是laoma.cloud.的SOA记录
  • 接下来的记录是laoma.cloud.的NS记录
  • 然后有一个dns的A记录。
  • 然后有一个server的A记录。
  • 然后有一个student的CNAME记录。
  • 然后有一个client的A记录。
  • 然后有一个域的MX记录。
  • 然后有一个mail的A记录。

任何不以点号结尾的名称均被视为部分主机名,应将区域名称添加为完全合格的域名。 换句话说,server等效于server.laoma.cloud.

反向记录,将IP地址映射到主机名。该区域文件必须具有:

  • SOA记录
  • NS记录
  • PTR记录。

示例:8.1.10.inaddr.arpa区域

[root@server ~ 22:05:16]# vim /var/named/10.1.8.zone
$TTL 3600
@ IN SOA dns.xiexin.cloud. root.xiexin.cloud. (42 ; serial3H ; secondary refresh15M ; secondary retry1W ; secondary timeout15M ; minimum cache TTL for negative answers
)IN NS dns.xiexin.cloud.
10             IN PTR server.xiexin.cloud.
10             IN PTR dns.xiexin.cloud.
11             IN PTR client.xiexin.cloud.
11             IN PTR student.xiexin.cloud.
200            IN PTR www.xiexin.cloud.
253            IN PTR mail.xiexin.cloud.

IP地址的“名称”不需要包括其余的域名,1代替1.8.1.10.in-addr.arpa.。

运行 BIND 和 客户端测试
# 启动服务[root@server named 15:14:20]# systemctl enable named --now[root@client ~ 15:29:46]# nmcli connection delete ens36-dhcp 成功删除连接 "ens36-dhcp" (e0d06ed6-eaa6-49fd-93a3-a755c7dd51ce)# 测试# 方式1:配置客户端 DNS[root@client ~ 15:30:08]# nmcli connection modify ens33 ipv4.dns 10.1.8.10[root@client ~ 15:30:35]# nmcli connection up ens33 连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)[root@client ~ 15:30:41]# cat /etc/resolv.conf # Generated by NetworkManagersearch xiexin.cloudnameserver 10.1.8.10[root@client ~ 15:36:56]# ping studentPING client.xiexin.cloud (10.1.8.11) 56(84) bytes of data.64 bytes from client.xiexin.cloud (10.1.8.11): icmp_seq=1 ttl=64 time=0.009 ms64 bytes from client.xiexin.cloud (10.1.8.11): icmp_seq=2 ttl=64 time=0.031 ms# 方式2:dig工具[root@client ~ 16:12:38]# yum install -y bind-utils[root@client ~ 16:15:18]# dig @10.1.8.10 student.xiexin.cloud.; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.16 <<>> @10.1.8.10 student.xiexin.cloud.; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62303;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 2;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4096;; QUESTION SECTION:;student.xiexin.cloud.        IN  A;; ANSWER SECTION:student.xiexin.cloud. 3600    IN  CNAME   client.xiexin.cloud.client.xiexin.cloud.  3600    IN  A   10.1.8.11;; AUTHORITY SECTION:xiexin.cloud.     3600    IN  NS  dns.xiexin.cloud.;; ADDITIONAL SECTION:dns.xiexin.cloud.     3600    IN  A   10.1.8.10;; Query time: 0 msec;; SERVER: 10.1.8.10#53(10.1.8.10);; WHEN: 三 8月 06 16:16:39 CST 2025;; MSG SIZE  rcvd: 118

额外实践:域名解析与 Apache 网站部署

操作环境及设备
要有一个自己的域名,比如:xiexin.cloud
还要有公网服务器
远程工具xshell
默认端口
网站根目录 /www/xiexin.cloud
操作步骤
  1. 域名解析配置

在这里插入图片描述

  1. 使用 Xshell 连接服务器

  2. 在服务器中创建网站目录与首页文件

cd /www
mkdir xiexin.cloud
echo 'Welcome to xiexin site' > xiexin.cloud/index.html

/www/xiexin.cloud/是你的网站目录,index.html是首页文件

  1. 配置 Apache 虚拟主机
# 首先进入配置目录 
cd /etc/httpd/conf.d/
vim vhost-xiexin.cloud.conf
.....<VirtualHost *:80>DocumentRoot "/www/xiexin.cloud"ServerName www.yuxb.cloud<Directory "/www/xiexin.cloud">AllowOverride None# Allow open access:Require all granted</Directory></VirtualHost>
  1. 重启 Apache 服务
 systemctl restart httpd
  1. 浏览器访问测试
访问地址:www.xiexin.cloud:xxx
http://www.xdnf.cn/news/1250011.html

相关文章:

  • 基于串口实现可扩展的硬件函数 RPC 框架(附完整 Verilog 源码)
  • iOS混淆工具有哪些?在集成第三方 SDK 时的混淆策略与工具建议
  • docker容器临时文件去除,服务器容量空间
  • 力扣137:只出现一次的数字Ⅱ
  • 企业级Linux服务器安全:防火墙规则配置与Web/SSH服务优化指南
  • 进阶向:Python开发简易QQ聊天机器人
  • 微软的BitLocker加密
  • DM数据库的安全版本SYSDBA无法修改其他用户密码?
  • Go语言 单元测试
  • 企业通讯与营销技术融合创新:定制开发开源AI智能名片S2B2C商城小程序的协同价值研究
  • 【数字图像处理系列笔记】Ch03:图像的变换
  • dify之推送飞书群消息工作流
  • selenium操作指南
  • python中的推导式
  • Linux Vi常用指令总结
  • AI 软件工程开发 AI 算法 架构与业务
  • AI+UI:如何用智能算法提升设计效率10倍?
  • 虚幻GAS底层原理解剖五 (AS)
  • 设计模式—桥梁模式(Bridge)
  • Spring Boot全局异常处理与日志监控实战指南
  • 华硕携多款明星电竞显示器亮相 ChinaJoy2025,联袂 TCL 华星打造沉浸体验
  • 鼠标下滑时回跳问题
  • 从 “认知优势” 到现实赋能:DPVR AI Glasses 重构智能穿戴价值
  • Chrontel昆泰-【CH7036A-BF】CH7036 LVDS to HDMI/VGA/LVDS Converter
  • 4、docker数据卷管理命令 | docker volume
  • docker run 入门到进阶:容器启动背后的门道
  • C++音视频流媒体开发面试题:音视频基础
  • 什么是RabbitMQ?
  • OpenObserve非sql模式 query editor 中 xx like ‘|’报错如何处理
  • mysql 8递归查询