DHCP Host Name

文章目录

    • 前言
    • [DHCP Option](#DHCP Option)
    • [Option (12) Host Name](#Option (12) Host Name)
    • dnsmasq

前言

打开路由器页面,看到下面连接的设备,有的显示设备名称 Tmall-Genie、ESP-C37CE8,而有的直接显示 MAC 地址 D2:B0:XX:XX:XX:XX。

这个名称是哪里来的呢?

这就是我们今天要讨论的 DHCP hostname 字段。

DHCP Option

DHCP 报文由若干字节组成,不同位置的字节数据代表着不同的含义。它大体上由以下两部分组成:

  1. 正文部分
  2. 附加选项部分

正文部分就是一个 DHCP 报文中不可缺少的数据。

附加选项是可选的,即 option。通常会根据实际的场景需求来决定是否添加。option 部分是直接插在 DHCP 报文末尾的,它仍旧属于 DHCP 报文。

option 的作用就是扩展 DHCP 功能。因为 DHCP 协议除了简单的分配地址外,还要实现管理设备的功能,而不同应用场景往往又会催生出不同的需求,为了满足这些客制化的需求,就需要这种可以由用户自定义的 option 选项了。

option 的格式简单,可分为三个组成部分

code 值从 0 ~ 255 都代表了不同的含义,或者说代表了不同的控制类型,每一个类型的详细说明见:https://www.iana.org/assignments/bootp-dhcp-parameters/bootp-dhcp-parameters.xml

Option (12) Host Name

udhcpc 命令使用 -x hostname:xxx 选项,可以在 DHCP Discover 报文中添加 option 12 选项,即 Host Name。

bash 复制代码
root@OpenWrt:/# udhcpc -i br-lan -x hostname:MyRouter_lyj
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.31.31, server 192.168.31.1
udhcpc: lease of 192.168.31.31 obtained from 192.168.31.1, lease time 43200
udhcpc: ip addr add 192.168.31.31/255.255.255.0 broadcast 192.168.31.255 dev br-lan
udhcpc: setting default routers: 192.168.31.1

路由器的 dhcp server 记录该 hostname 字段,并在页面上显示下挂设备的设备名。

dnsmasq

有些路由器使用 dnsmasq 作为 dhcp server,该后台服务进程使用 /etc/dnsmasq.conf 作为配置文件,并将已分配的 IP 记录在 /etc/dnsmasq.leases 中

bash 复制代码
# cat /etc/dnsmasq.leases
105786 4a:78:b9:fd:51:31 192.168.1.4 Mi-10 01:4a:78:b9:fd:51:31 105787 16582 16581 android-dhcp-12
102950 92:ec:ca:c4:8d:57 192.168.1.3 Mi-10 01:92:ec:ca:c4:8d:57 102951 16551 16550 android-dhcp-12
86462 58:f2:fc:20:33:59 192.168.1.2 028bc4cb7a2a9b7892c5a1801bc632d 01:58:f2:fc:20:33:59 86463 63 62 HUAWEI:router:TC30-10:3164:8

从中可以获得 hostname

相关推荐
飞Link5 分钟前
【常见协议与服务】HTTP1.1、HTTP2、HTTP3:性能到底差在哪
网络·http
Johnstons15 分钟前
网络性能分析怎么做:从时延、抖动、丢包到定位根因的实战判断框架
网络·ar·安全威胁分析·网络性能分析实战框架
feng145631 分钟前
稳定性-资金安全和资损防控
运维·网络·安全
奇妙之二进制41 分钟前
zmq源码分析之IO线程绑定时机
开发语言·网络
多年小白1 小时前
AI 日报 - 2026年4月25日(周六)
网络·人工智能·科技·深度学习·ai
Johnstons1 小时前
网络诊断工具怎么选:从监控告警到抓包定位的完整方法论
服务器·网络·php·es·抓包分析·网络诊断工具选型与排障方法
惊鸿若梦一书生1 小时前
《Python 高阶教程》016|偏函数与柯里化:把复杂调用拆成更简单的组合
linux·网络·python
lularible1 小时前
PTP协议精讲(3.7):传输层实现——PTP报文的“高速公路“
网络·网络协议·开源·嵌入式·ptp
SilentSamsara2 小时前
Kubernetes 网络模型:CNI 插件与 Pod 间通信的底层实现
网络·云原生·容器·架构·kubernetes·k8s
我也不曾来过12 小时前
传输层协议UDP和TCP
linux·网络·udp