Linux系统下DHCP客户端的实现

上传人:飞*** 文档编号:29225436 上传时间:2018-01-23 格式:DOC 页数:3 大小:1.03MB
返回 下载 相关 举报
Linux系统下DHCP客户端的实现_第1页
第1页 / 共3页
Linux系统下DHCP客户端的实现_第2页
第2页 / 共3页
Linux系统下DHCP客户端的实现_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《Linux系统下DHCP客户端的实现》由会员分享,可在线阅读,更多相关《Linux系统下DHCP客户端的实现(3页珍藏版)》请在金锄头文库上搜索。

1、胡嗣 钦(湖南省株洲 时 代 电 气股份有限公司安全装 备 事 业 部,湖南 株洲 421007)摘 要 :DHCP 协 议 是 基 于 UDP 协 议 的 应 用 层 协 议 ,用 来 简 化 客 户 机 的 IP 地 址 的 分 配 和 管 理 ,该 协 议 采 用 服 务 器 /客 户 端的方式 。 介 绍 了 DHCP 的工作流程和 报 文格式以及在 Linux 系 统 下 DHCP 客 户 端的 实现过 程 。关 键词 :DHCP 协议; UDP 协议; Linux 系统; 服务器; 客户端The Implement Of The DHCP Client Under LinuxHU

2、Si-qin(Safety Equipment Business Unit,Zhuzhou CSR Times Electric Co.,Ltd , Hunan Zhuzhou 412007 , China)Abstract:DHCP protocol is an application layer protocol b ased on UDP protocol , used to simplify the allocation and management of the client s IP address, it uses the type of C/S; This Document i

3、nstroduces the workflow and message format of the DHCP,as well as the implement of the DHCP client under Linux。Key words:DHCP ; UDP ; Linux system ; Server ; ClientDHCP 简介DHCP 是 Dynamic Host Configuration Protocol (动 态 主 机 配 置 协 议 ) 的 缩 写 ,它 的 前 身 为 BOOTP,是 用 于 对 多 个 客 户 计 算 机 集 中 分 配 IP 地 址 及 其 IP

4、地 址 相 关 信 息 (网 关 、 子 网 掩 码 、 DNS 服 务 器 地 址 等 ) 的 协 议 ,该 协 议 工 作 在 OSI 的 应 用 层,基于 传输层的 UDP 协议 。DHCP 使 用 客 户 端/服 务 器 模 式 ,请 求 配 置 信 息 的 终 端 为 DHCP 客 户 端 ,提 供 信 息 的 为 DHCP 服 务 器 ;客 户 端 的 UDP 端口 为 68,服 务 器的 UDP 端口 为 67。文 包 含 了 客 户 端 所 选 择 的 DHCP 服 务 器 的 信 息 ,之 所 以 继 续以 广 播 的 方 式 回 应 ,是 为 了 通 知 所 有 的 DHC

5、P 服 务 器 ,它 将 选择某台 DHCP 服 务 器所提供的 IP 地址信息 。2.4 确认阶段该 阶 段 为 DHCP 服 务 器 确 认 所 提 供 的 IP 地 址 信 息 阶 段 。 当 DHCP 服 务 器 接 收 到 DHCP 客 户 端 回 应 的 DHCP Request 报 文 后 ,它 向 客 户 端 发 送 一 个 包 含 它 所 提 供 的 IP 地 址 和 其 他 设 置 信 息 的 DHCP ACK 确 认 信 息 ,告 诉 客 户 端 该 服 务 器 所 提 供 的 IP 地 址 信 息 。 另 外 ,除 客 户 端 选 中 的 服 务 器 外 ,其 他 DH

6、CP 服 务 器都将收回曾 经 提供的 IP 地址信息 。2.5 重新登录以 后 DHCP 客 户 端 每 次 重 新 登 录 网 络 时 ,不 需 要 再 发 送 DHCP Discovery 报 文 ,而 是 直 接 发 送 前 一 次 所 分 配 的 IP 地 址 信 息 的 DHCP Request 报 文 ,当 DHCP 服 务 器 收 到 该 报 文 后 , 如 果 该 IP 地 址 信 息 没 有 分 配 给 其 他 的 客 户 端 ,则 向 客 户 端 回 应 DHCP ACK 确 认 信 息 ,如 果 无 法 分 配 该 客 户 端 时 ,则 向 客 户 端 回 应 一 个

7、DHCP NACK 否 认 信 息 ,客 户 端 收 到 后 ,必 须 重新发送 DHCP Discovery 报 文来 请 求新的 IP 地址信息 。2.6 更新租约DHCP 服 务 器 向 客 户 端 出 租 的 IP 地 址 信 息 一 般 都 有 一 个 租 借 期 限 ,期 满 后 服 务 器 将 收 回 出 租 的 IP 地 址 ,当 客 户 端 启 动 或 者 IP 租 约 时 间 过 半 时 ,客 户 端 会 自 动 向 服 务 器 发 送 更 新 其租约的信息 。1DHCP 工作过程DHCP 工作时通过客户端 与 服 务 器 进 行 交 互 来 完 成 ,由 客 户 端 通

8、过 广 播 向 服 务 器 发 起 申 请 IP 地 址 的 请 求 ,然 后 由 服 务 器分配一个 IP 地 址 以 及 IP 地 址 相 关 信 息 。 整 个 过 程 分 为 以 下 步 骤 。2.1 发现阶段该 阶 段 为 DHCP 客 户 端 寻 找 DHCP 服 务 器 的 阶 段 ,由 于 DHCP 服 务 器 的 IP 地 址 对 于 客 户 端 是 未 知 的 ,所 以 客 户 端 以 广 播 的 方 式 发 送 DHCP Discovery 报 文 来 寻 找 DHCP 服 务 器 , 即 向 地 址 255.255.255.255 发 送 特 定 的 广 播 信 息 ,

9、网 络 每 一 台 安 装 有 TCP/IP 协 议 的 主 机 均 会 接 收 到 该 报 文 ,但 是 只 有 DHCP 服 务 器才会 进 行响 应 。2.2 提供阶段该 阶 段 为 DHCP 服 务 器 提 供 IP 地 址 信 息 的 阶 段 ,在 网 络 中 接 收 到 DHCP Discovery 报 文 的 DHCP 服 务 器 都 会 做 出 响 应 ,它 从 未 出 租 的 IP 地 址 中 挑 选 一 个 分 配 给 DHCP 客 户 端 ,向 客 户 端 发 送 一 个 包 含 出 租 IP 地 址 和 其 他 设 置 信 息 的 DHCP Offer 报 文 。2.3

10、 选择阶段该 阶 段 为 DHCP 客 户 端 选 择 某 台 DHCP 服 务 器 提 供 的 IP 地 址 阶 段 ,如 果 有 多 台 DHCP 服 务 器 向 客 户 端 发 送 DHCP Offer 报 文 ,则 客 户 端 只 接 受 第 一 个 收 到 的 DHCP Offer 报 文 , 然 后 它 继 续 以 广 播 的 方 式 回 答 一 个 DHCP Request 报 文 ,该 报2DHCP 报文格式DHCP 报 文格式如 图 1 所示 。 Op:若是客 户 端到服 务 器的报 文, 该值为 1;反之 为 2。 Htype:硬件 类别 ,以太网 为 1。3作 者 简 介

11、 :胡 嗣 钦 (1979-),男 ,工 程 师 /学 士 学 位 ,研 究 方向:嵌入式通信 软 件开 发 。收稿日期:2012-06-162012. 16382009.软件开发与设计SOFTWARE DEVELOPMENT AND DESIGNHlen:硬 件 地 址 长 度 ,以 太 网 (网 卡 MAC 地 址 长 度 ) 为 6。Xid:事 务 ID,随 机 数 ,由 客 户 端 启 动 DHCP 请 求 时 产 生,服务 器以此 ID 回 应 。Secs:客 户 端启 动 的 时间 。Flags:最 高 位 为 1 表 示 服 务 器 到 客 户 端 采 用 广 播 方 式 , 其

12、余位暂不用 。Ciaddr:客 户 端 IP 地 址 ,在 DHCP Request 报 文 中 ,此 处 填写客户端希望获取的 IP 地址 。Yiaddr:在 服 务 器 的 DHCP Offer 和 DHCP ACK 报 文 中 , 为服务器分配给客户端的 IP 地址 。Siaddr:如果需要通 过 网 络 开机 时 用 。Giaddr:需要跨网 进 行 DHCP 时 用 。Chaddr:客 户 端 的 硬 件 地 址 ,以 太 网 下 为 客 户 端 网 卡 的MAC 地址 。Sname:服 务 器名,字符串,以 0 结 尾 。File:通 过 网 络 开机 时 ,开机程序名 。表 1

13、DHCP 常用 选项申请的 IP 地址17 字 节为 客 户 端以太网(1) 客 户 端 可 能 存 在 多 个 以 太 网 网 卡 ,如 果 将 发 送 的 报文通 过 指定的网卡 发 送出去 。(2) 客 户 端 进 行 DHCP 申 请 前,网卡的 IP 地址 为 0.0.0.0。(3) 客 户 端 发 送 DHCP 报 文 时 ,接 收 方 的 IP 地 址 必 须 为255.255.255.255,而 且 接 收 方 的 MAC 地 址 为 0xFF:0xFF:0xFF:0xFF:0xFF:0xFF。在 这 种 情 况 下 ,不 能 通 过 sokcet (AF_INET,SOCK_

14、DGRAM,0) 来 创 建 一 个 UDP 的 套 接 口 直 接 发 送 DHCP 报 文 ,使 用 Linux 下 数 据 链 路 访 问 接 口 来 发 送 DHCP 报 文 ,发 送 套 接 口 的 创建方式如下:int iSockSend = socket ( PF_INET,SOCK_PACKET,htons(ETH_P_ALL) ) ;DHCP 客 户 端 接 收 服 务 器 回 应 时 ,服 务 器 发 送 的 数 据 为 UDP 报 文 ,客 户 端 可 以 直 接 使 用 UDP 套 接 口 进 行 接 收 ,接 收 的 UDP 套接口创建和设置方式如下:struct s

15、ockaddr_in CliAddr;int iSockRecv = socket ( AF_INET,SOCK_DGRAM,0 ) ; CliAddr.sin_family = AF_INET;CliAddr.sin_port = htons (68) ;bind ( iSockRecv, ( struct sockaddr*) &CliAddr,sizeof(CliAddr) ) ;由 于 DHCP 服 务 器 对 客 户 端 进 行 回 应 时 ,客 户 端 还 没 有 IP 地 址 ,服 务 器 对 客 户 端 的 回 应 采 取 广 播 的 方 式 进 行 回 应 , 所以接收的 U

16、DP 接口必须具备可以接收广播信息的属性:int o;setsockopt ( iSockRecv,SOL_SOCKET,SO_BROADCAST,4.1 DHCP 报文的发送DHCP 客 户 端 在 发 送 DHCP 报 文 时 ,由 于 采 用 的 Linux 下 的 数 据 链 路 访 问 接 口 ,所 以 在 发 送 时 ,要 将 DHCP 报 文 加 上 UDP 头 部 、 IP 头 部 、 以 太 网 头 部 后 发 送 出 去 ,其 过 程 如 图 3 所示 。图 1 DHCP 报文格式图3.1 DHCP 报文常用选项DHCP 报文选项是允许厂 商 定 义 的 选 项 ,以 提 供 更 多 的 设 定信息;其格式如图 2 所示 。图 2 DHCP 报 文 选项 格

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号