介绍
Maple Yard 的签到设备需要一个已知地址,方便活动团队识别。动态地址池已经准备好,但还缺少签到设备的地址预留,而且新设备收到的网关和 DNS 选项指向未使用的地址。受保护的参考台仍然可用。
你将把真实设备身份与预留地址对应起来,修正服务器选项,并实际释放后重新获取签到设备的租约。这个全新环境包含所有必需资源,不复用第一门实验中的文件或租约。请先完成第一门 guided lab,或熟悉其中的地址池、租约和 Tab 切换流程。
在 Network Desk 处理服务器文件,在 Check-In 和 Guest A 执行各自的客户端命令,通过 Network Map 只读观察。与之前相同,这些是共享同一内核的隔离 Linux 节点。
为正确设备预留地址
这一步将让签到设备获得计划地址的真实租约。首先进入 Network Map,请求参考台日程,确认正常样例可用。它的地址必须保持为 10.77.0.10。
切换到 Network Desk,当前目录为 /home/labex/project/event-network:
cat devices.tsv
cat dhcp.conf
签到设备的 MAC 是 02:77:00:00:00:28,需要地址 10.77.0.20。访客地址池仍为 10.77.0.100–10.77.0.109;预留地址在池外。仅匹配友好名称并不能标识设备。这个预置练习使用稳定 MAC 地址进行匹配。
dhcp-host 行将设备与地址关联,并可指定主机名。这里的 >> 将内容追加到已有文件,保留地址池和选项。复制完整的字面文本块:
cat >> dhcp.conf <<'CONF'
dhcp-host=02:77:00:00:00:28,10.77.0.20,check-in
CONF
使用第一门实验中相同的课程服务检查并应用配置:
dnsmasq --test --conf-file=dhcp.conf
sudo systemctl restart event-dhcp
如果语法检查失败,读取文件,只修正格式错误的行,再重启。不要删除受保护的 include。
切换到 Check-In。它从自己的客户端工作目录和管理员 shell 启动。请求真实租约:
dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
ip -4 addr show dev eth0
应看到 10.77.0.20/24。重新加载 Network Map,将签到卡片与计划身份比较。这一步只验证预留地址。新设备的网关和 DNS 仍故意保留错误;在下一步完成前,Check-In 发出的日程请求预期会失败。不要因这个已知失败而重置 VM。
发送客户端真正可用的设置
这一步将修复网关和 DNS 选项,并让客户端实际收到它们。首先进入 Check-In:
ip route show default
cat /etc/resolv.conf
预置错误值为网关 10.77.0.254、DNS 10.77.0.253,这些地址上没有相应服务。课程中真实路由器和 DNS 都是 10.77.0.1。前者控制离开子网的流量,后者控制域名解析。
切换到 Network Desk。dhcp-option=option:router 提供网关,dhcp-option=option:dns-server 提供 DNS。用正确 include、不变的地址池、设备预留和这两个选项替换完整文件。第一门实验已介绍 > 和带引号的 here-document:
cat > dhcp.conf <<'CONF'
conf-file=/opt/labex/event-network/server-base.conf
dhcp-range=10.77.0.100,10.77.0.109,255.255.255.0,2h
dhcp-host=02:77:00:00:00:28,10.77.0.20,check-in
dhcp-option=option:router,10.77.0.1
dhcp-option=option:dns-server,10.77.0.1
CONF
dnsmasq --test --conf-file=dhcp.conf
sudo systemctl restart event-dhcp
修改服务器不会重写客户端已经应用的租约。切换到 Check-In,使用 -r 释放旧租约;只影响该客户端的进程和网卡:
dhclient -4 -v -r -cf client.conf -pf client.pid -lf client.leases eth0
再次请求:
dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
ip route show default
cat /etc/resolv.conf
两个设置现在都应使用 10.77.0.1。地址仍是 10.77.0.20,因为预留规则匹配的是同一台设备。
切换到 Guest A,在这个环境中获取它的第一个租约:
dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
ip -4 addr show dev eth0
ip route show default
cat /etc/resolv.conf
应获得访客池内的动态地址,以及正确的网关和 DNS。请求日程:
curl --noproxy '*' -fsS --max-time 5 http://programme.event.test:8080/programme.txt
应看到第一门实验中的全部五行 Maple Yard 日程。如果仍有旧错误值,确认服务器文件修改后确实重启了服务,并且已在受影响客户端上释放后重新请求。不要手动覆盖 /etc/resolv.conf,那样会掩盖服务器选项问题。
重新连接并保持签到台就绪
这一步将通过真实的新租约证明地址预留有效,并保存签到台资源。切换到 Check-In,释放前先读取当前地址:
ip -4 addr show dev eth0
应为 10.77.0.20/24。释放后再次获取租约:
dhclient -4 -v -r -cf client.conf -pf client.pid -lf client.leases eth0
dhclient -4 -v -1 -cf client.conf -pf client.pid -lf client.leases eth0
ip -4 addr show dev eth0
应仍得到相同的预留地址。这是真实 DHCP 释放和获取,不是手动恢复静态地址。访客的动态分配则不必每次都得到相同地址。
使用收到的配置下载签到台说明。第一门实验已解释 curl 选项和 -o:
curl --noproxy '*' -fsS --max-time 5 -o desk.txt http://desk.event.test:8080/desk.txt
cat desk.txt
预期内容如下:
MAPLE YARD | Registration desk
Desk: North entrance
Session: Community workshop
Status: Ready for arrivals
如果地址不正确,返回 Network Desk,将精确的 MAC 与地址关系同 devices.tsv 比较。检查修正后的文件,仅重启课程 DHCP 服务,然后在 Check-In 上释放并重新请求。重启服务或重连 Tab 本身都不代表客户端获得了新租约。
在 Network Map 中重新加载页面,分别从 Check-In、Guest A 和 reference 请求日程。三者都必须可用。固定签到地址、可用选项、真实重新获取租约以及保留的服务,共同构成完成后的网络。

比较各卡片的 IPv4 地址、网关和 DNS,再阅读按钮下方的日程响应。访客的具体分配地址可能与此示例不同。
总结
你将真实设备身份与预留地址关联,在源头修复网关和 DNS 选项,并让客户端应用新租约。随后,你释放并重新获取签到设备的租约,仍保留了它的地址和正常访客服务。
独立 challenge 会更换活动地址计划和设备集合,但使用相同工具和机制。本课没有配置 DHCP 中继、Wi-Fi 无线设置、高可用或重启持久化。



