4、DHCP原理与配置:DORA流程、地址池管理与Option字段

DHCP这东西,说白了就是让设备入网时能自动拿到IP地址。你想想看,如果每台电脑都要手动配IP,那网络工程师得疯掉。我最早接触DHCP是在一个园区网项目里,几百个终端,要是没有DHCP,光配IP就得配一整天。

这一章我们重点讲三个东西:DHCP的工作流程(也就是经典的DORA)、IP地址池怎么管、还有Option字段到底能干什么。嗯,咱们一个一个来。

4.1 DHCP工作流程——DORA

DHCP的核心交互就四个报文,合起来叫DORA。我习惯这么记:Discover(发现)、Offer(提供)、Request(请求)、Acknowledge(确认)。

流程是这样的:

  1. Discover:客户端发广播,说“谁有IP?给我一个”。
  2. Offer:DHCP服务器回应,说“我这有个IP,你要不要?”
  3. Request:客户端选一个服务器,说“我要这个IP”。
  4. Acknowledge:服务器确认,说“好,这个IP归你了”。

这里有个细节——客户端可能会收到多个Offer。为什么?因为网络里可能不止一台DHCP服务器。客户端会选最先收到的那个,然后通过Request告诉所有服务器“我选了谁”。其他服务器就知道自己没被选上,可以把IP收回了。

核心要点:DORA是UDP协议,客户端用68端口,服务器用67端口。Discover和Request是广播,Offer和Ack可以是单播。

我曾经遇到过一个坑:客户端拿到了IP,但网关没配。查了半天,发现是DHCP服务器没发Option 3(网关)。从那以后,我每次配DHCP都会检查Option字段。

DHCP DORA 工作流程 DHCP DORA 工作流程 客户端 DHCP 服务器 ① Discover(广播) “谁有IP?给我一个” ② Offer(单播/广播) “我这有个IP,你要不要?” ③ Request(广播) “我要这个IP” ④ ACK(单播) “好,这个IP归你了” ⚠ 注意 • Discover 和 Request 是广播(目标IP: 255.255.255.255) • Offer 和 ACK 默认单播,但某些场景下也可以是广播 • 客户端端口: 68,服务器端口: 67

4.2 IP地址池管理

地址池就是DHCP服务器手里那堆可分配的IP。怎么管?我一般分三步走。

4.2.1 地址池的规划

先确定你要分哪个网段。比如公司内网用192.168.1.0/24,那地址池就设成192.168.1.100到192.168.1.200。为什么要留一段?因为服务器、打印机这些设备需要固定IP,得从池外分配。

我个人习惯把地址池分成三块:

区域 IP范围 用途
保留区 192.168.1.1 - 192.168.1.50 网关、服务器、网络设备
动态池 192.168.1.51 - 192.168.1.200 普通终端(DHCP分配)
预留区 192.168.1.201 - 192.168.1.254 打印机、监控、临时设备

4.2.2 租期管理

租期就是客户端能用这个IP多久。默认一般是24小时。但我觉得这个值得根据场景调:

  • 办公网络:8小时或24小时,跟工作时间对齐。
  • 无线网络:1-4小时,因为手机经常断开重连。
  • 访客网络:30分钟到1小时,避免IP被占用太久。

我曾经在一个商场项目里,租期设了24小时,结果晚上没人时IP全被占着,白天新设备连不上。后来改成2小时,问题就解决了。

4.2.3 排除与保留

排除就是不让DHCP分某些IP。保留就是给特定MAC地址固定分配同一个IP。

小技巧:打印机、门禁控制器这些设备,建议用保留。这样它们IP不变,管理方便。我一般会在DHCP里建一个MAC-IP映射表。

4.3 Option字段详解

Option是DHCP报文里的扩展字段。说白了,就是除了IP地址之外,服务器还能告诉客户端其他信息。

常见的Option有这些:

Option编号 名称 作用 必配?
1 Subnet Mask 子网掩码 是
3 Router 默认网关 是
6 DNS Server DNS服务器地址 推荐
15 Domain Name 域名后缀 可选
42 NTP Server 时间服务器 可选
43 Vendor Specific 厂商自定义信息 特殊场景
66 TFTP Server TFTP服务器(用于IP电话等) 特殊场景
150 TFTP Server (Cisco) Cisco专用TFTP服务器 特殊场景

嗯,这里要注意:Option 3和Option 6是最常用的。没有网关,设备出不去;没有DNS,域名解析不了。我见过一个案例,用户说“能上QQ但打不开网页”,查了半天就是DHCP没发DNS。

4.3.1 自定义Option

有些场景需要传自定义信息。比如IP电话需要知道TFTP服务器地址,那就用Option 66或150。再比如无线AP需要知道AC控制器地址,有些厂商会用自定义Option。

避坑指南:我曾经在配置Option 43时踩过坑。不同厂商的编码方式不一样,华为、思科、H3C的格式都不同。配之前一定要查厂商文档,否则设备不认。

4.3.2 Option 82——中继代理

这个比较特殊。当DHCP客户端和服务器不在同一个广播域时,需要中继代理(DHCP Relay)。中继代理会在报文中插入Option 82,告诉服务器“这个请求是从哪个接口来的”。服务器就可以根据这个信息分配不同网段的IP。

我习惯这么理解:Option 82就像快递上的地址标签,告诉仓库这单货该发到哪个分拣口。

4.4 配置示例(Cisco设备)

光说不练假把式。下面是一个简单的DHCP配置,我拿Cisco IOS举例:

!
ip dhcp pool OFFICE_NET
 network 192.168.1.0 255.255.255.0
 default-router 192.168.1.1
 dns-server 8.8.8.8 8.8.4.4
 domain-name example.com
 lease 0 8 0
!
ip dhcp excluded-address 192.168.1.1 192.168.1.50
ip dhcp excluded-address 192.168.1.201 192.168.1.254
!

解释一下:

  • network:定义地址池网段。
  • default-router:就是Option 3。
  • dns-server:就是Option 6。
  • lease 0 8 0:租期8小时(天 时 分)。
  • excluded-address:排除的IP,不参与分配。

个人习惯:我配DHCP时一定会加domain-name。这样客户端能自动拼接域名,访问内网资源时方便很多。比如ping server,不用输全名。

4.5 本章小结

DHCP的核心就是DORA四个步骤。地址池管理要规划好保留、动态和预留三块。Option字段是DHCP的“扩展能力”,网关、DNS、TFTP这些关键信息都靠它传。

嗯,最后说一句:DHCP配好了,设备入网就成功了一半。但别忘了配合VLAN、中继代理这些技术一起用,才能真正做到“插上网线就能用”。