# 6.6 DHCP ## 一、DHCP概述 ### 1.1 什么是DHCP **DHCP(Dynamic Host Configuration Protocol)**: - 动态主机配置协议 - 自动分配IP地址和其他网络配置 - 应用层协议 - 使用UDP ### 1.2 DHCP的作用 **自动配置**: - IP地址 - 子网掩码 - 默认网关 - DNS服务器 - 其他配置 **优点**: - 减少手动配置 - 避免IP地址冲突 - 支持移动设备 - 集中管理 ### 1.3 DHCP的特点 - **动态分配**:IP地址按需分配 - **租约机制**:IP地址有有效期 - **自动续租**:自动延长租约 - **支持多种分配方式** --- ## 二、DHCP的组成 ### 2.1 DHCP服务器 **功能**: - 维护IP地址池 - 分配IP地址 - 管理租约 - 提供其他配置信息 **配置**: - IP地址范围 - 子网掩码 - 默认网关 - DNS服务器 - 租约时间 ### 2.2 DHCP客户端 **功能**: - 请求IP地址 - 接收配置 - 续租 - 释放IP地址 **过程**: - 启动时自动获取IP地址 - 定期续租 - 关机时释放 ### 2.3 DHCP中继 **功能**: - 转发DHCP消息 - 使DHCP服务器可以为不同子网服务 - 减少DHCP服务器数量 --- ## 三、DHCP工作过程 ### 3.1 DHCP租约过程 ``` 客户端 服务器 │ │ │ 1. DHCP Discover(广播) │ │─────────────────────────────>│ │ │ │ 2. DHCP Offer(广播/单播) │ │<─────────────────────────────│ │ │ │ 3. DHCP Request(广播) │ │─────────────────────────────>│ │ │ │ 4. DHCP ACK(广播/单播) │ │<─────────────────────────────│ │ │ ``` ### 3.2 DHCP Discover **客户端广播**: - 源IP:0.0.0.0 - 目的IP:255.255.255.255 - 源端口:68 - 目的端口:67 **内容**: - 客户端MAC地址 - 请求的参数 - 事务ID ### 3.3 DHCP Offer **服务器响应**: - 提供一个可用的IP地址 - 包含租约时间 - 包含其他配置信息 **内容**: - 提供的IP地址 - 子网掩码 - 租约时间 - 服务器标识 - 其他选项 ### 3.4 DHCP Request **客户端广播**: - 接受某个服务器的Offer - 拒绝其他服务器的Offer **内容**: - 选择的IP地址 - 选择的服务器 - 事务ID ### 3.5 DHCP ACK **服务器确认**: - 确认IP地址分配 - 提供完整配置 **内容**: - 确认的IP地址 - 完整的配置信息 - 租约时间 ### 3.6 DHCP NAK **服务器拒绝**: - 如果IP地址不可用 - 客户端需要重新申请 --- ## 四、DHCP报文 ### 4.1 DHCP报文格式 ``` +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | op (1) | htype (1) | hlen (1) | hops (1) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | xid (4) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | secs (2) | flags (2) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ciaddr (4) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | yiaddr (4) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | siaddr (4) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | giaddr (4) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | chaddr (16) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | sname (64) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | file (128) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | options (variable) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ``` ### 4.2 DHCP报文字段 | 字段 | 说明 | |-----|------| | op | 操作码:1=请求,2=响应 | | htype | 硬件类型:1=以太网 | | hlen | 硬件地址长度:6=以太网 | | hops | 中继跳数 | | xid | 事务ID | | secs | 客户端启动后的秒数 | | flags | 标志 | | ciaddr | 客户端IP地址 | | yiaddr | 分配给客户端的IP地址 | | siaddr | 服务器IP地址 | | giaddr | 网关IP地址(中继) | | chaddr | 客户端硬件地址 | | sname | 服务器名 | | file | 引导文件名 | | options | 选项 | ### 4.3 DHCP报文类型 | 类型 | 说明 | |-----|------| | DHCP Discover | 客户端发现服务器 | | DHCP Offer | 服务器提供IP地址 | | DHCP Request | 客户端请求IP地址 | | DHCP ACK | 服务器确认 | | DHCP NAK | 服务器拒绝 | | DHCP Decline | 客户端拒绝(地址冲突) | | DHCP Release | 客户端释放IP地址 | | DHCP Inform | 客户端请求配置信息 | ### 4.4 DHCP选项 **常见选项**: | 选项 | 代码 | 说明 | |-----|------|------| | 子网掩码 | 1 | 子网掩码 | | 路由器 | 3 | 默认网关 | | DNS服务器 | 6 | DNS服务器地址 | | 域名 | 15 | 域名 | | 租约时间 | 51 | IP地址租约时间 | | 服务器标识 | 54 | DHCP服务器标识 | | 请求IP地址 | 50 | 客户端请求的IP地址 | | 消息类型 | 53 | DHCP报文类型 | --- ## 五、IP地址分配方式 ### 5.1 自动分配 **特点**: - 从地址池自动分配IP地址 - 租约到期后回收 - 最常见的方式 **适用场景**: - 普通客户端 - 临时设备 ### 5.2 动态分配 **特点**: - 从地址池动态分配IP地址 - 租约到期后回收 - 与自动分配类似 **适用场景**: - 普通客户端 - 临时设备 ### 5.3 手动分配(保留地址) **特点**: - 为特定MAC地址保留特定IP地址 - 每次分配相同的IP地址 - 租约到期后仍然保留 **适用场景**: - 服务器 - 打印机 - 网络设备 --- ## 六、DHCP租约管理 ### 6.1 租约时间 **租约时间(Lease Time)**: - IP地址的有效期 - 由服务器配置 - 典型值:8小时、1天、1周 **T1时间(续租时间)**: - 租约时间的50% - 客户端尝试续租 **T2时间(重绑定时间)**: - 租约时间的87.5% - 客户端广播续租请求 ### 6.2 续租过程 **正常续租**: 1. 租约达到T1时间 2. 客户端向原服务器发送DHCP Request 3. 服务器发送DHCP ACK 4. 续租成功 **重绑定**: 1. 租约达到T2时间 2. 客户端广播DHCP Request 3. 任何服务器都可以响应 4. 续租成功或获取新IP ### 6.3 释放IP地址 **DHCP Release**: - 客户端主动释放IP地址 - 通常在关机时发送 - 服务器回收IP地址 --- ## 七、DHCP的安全问题 ### 7.1 DHCP的安全隐患 ** rogue DHCP服务器**: - 攻击者架设假DHCP服务器 - 分配错误的IP地址 - 重定向流量 **DHCP耗尽攻击**: - 攻击者伪造大量MAC地址 - 耗尽DHCP地址池 - 导致合法用户无法获取IP **中间人攻击**: - 攻击者伪造网关地址 - 截获和篡改流量 ### 7.2 DHCP安全解决方案 **DHCP Snooping**: - 交换机功能 - 过滤非法DHCP服务器 - 只信任特定端口的DHCP响应 **静态绑定**: - MAC地址和IP地址绑定 - 防止伪造 **802.1X认证**: - 端口安全 - 只有认证通过才能访问网络 **DHCP认证**: - 使用DHCP Authentication - 验证DHCP消息的完整性 --- ## 八、DHCP与BOOTP ### 8.1 BOOTP概述 **BOOTP(Bootstrap Protocol)**: - DHCP的前身 - 用于无盘工作站启动 - 静态IP地址分配 ### 8.2 DHCP vs BOOTP | 特性 | BOOTP | DHCP | |-----|-------|------| | IP分配 | 静态 | 动态 | | 租约 | 无 | 有 | | 配置选项 | 少 | 多 | | 自动配置 | 不支持 | 支持 | | 兼容性 | DHCP兼容BOOTP | 兼容BOOTP | --- ## 九、考研重点 1. **DHCP的概念**: - 什么是DHCP - 作用 - 特点 2. **DHCP的组成**: - DHCP服务器 - DHCP客户端 - DHCP中继 3. **DHCP工作过程**: - DHCP Discover - DHCP Offer - DHCP Request - DHCP ACK/NAK 4. **DHCP报文**: - 报文格式 - 报文字段 - 报文类型 - 选项 5. **IP地址分配方式**: - 自动分配 - 动态分配 - 手动分配 6. **DHCP租约管理**: - 租约时间 - T1和T2时间 - 续租过程 - 释放IP地址 7. **DHCP的安全问题**: - 安全隐患 - 安全解决方案 8. **DHCP与BOOTP** --- *第六章完,计算机网络考研复习资料全部完成!*