Advertisement

动态主机配置协议DHCP(Dynamic Host Configuration Protocol)简介

阅读量:

定义

动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种用于实现对用户IP地址的动态管理与配置的技术。

目的

随着网络规模不断扩大以及网络复杂性的提升,在这些情况下随之带来了日益复杂的配置需求。此外,在移动设备(如笔记本电脑或无线设备)以及其他位置灵活布置的情况下(例如多跳连接器或其他分布模式),导致IP地址频繁变更及资源紧张的问题出现。为了实现能够在这些情况下自动分配合适的IP地址给各个主机使用,则需要采用动态主机配置协议DHCP系统。

基于Bootstrap协议的发展而形成。然而Bootstrap协议运行在一个相对静态的网络环境中(即每台主机都具有固定的网络连接),系统管理员会针对每台主机单独配置一组Bootstrap参数文件以实现统一管理这些参数文件通常会维持较长时间以确保网络的一致性和稳定性)。随着互联网技术的发展为了满足更多需求Bootstrap协议逐渐被其改进版本所取代这两项主要改进包括:

  • DHCP支持IP地址和网络相关配置信息的自动生成配置参数的能力。 * DHCP被允许快速且动态地自动生成IP地址,并非静态分配固定IP地址。

DHCP技术负责科学分配IP地址,并且通过减少不必要的浪费来提高其使用效率

DHCP概述

基于客户端/服务器模式运行的 DHCP 网络中, DHCP 客户端能够主动请求与 DHCP 服务器交互以获取所需网络配置信息。而 DHCP 服务器则依据预先设定的策略提供相应的网络配置参数(包括 IP 地址、子网掩码以及默认网关等关键信息)。

DHCP基本架构

DHCP基本构架如图1所示。

图1 DHCP基本构架示意图:

DHCP基本协议架构中,主要包括以下三种角色:

  • DHCP Client:

该系统程序通过与 DHCP 服务器的数据包交换实现对 IP 地址和其他网络参数的动态获取,并完成本地设备的 IP 地址配置。在设备接口中设置 DHCP 客户端功能模块后,该接口可直接作为 DHCP 客户端角色运行,在线应用 DHCP 协议从 DHCP 服务器动态获取 IP 地址等网络参数等信息。

  • DHCP Relay:

在 DHCP 网络架构中存在一个关键组件——称为 DHCP 中继的设备或机制,在其运作过程中主要负责将自客户端方向发出以及自服务器方向发出的 DHCP 报文进行转发操作,并以此帮助 DHCP 客户端与 DHCP 服务器达成地址配置目标。
若 DHCoP服器与 DHCoP客端不在同一网络段内,则需通过DHCp中继机构来传递相关报文。
这种设计方式则可省去在每个网络域内独立设置DHCp服务的能力成本,并且便于实施统一管理策略。

在基于 DHCP 的基本协议架构中,在某些情况下并非必需使用 DHCP 中继来实现数据包的传递。当 DHCP 客户端与 DHCP 服务器不在同一网络段内时才会需要使用 DHCP 中继来完成报文的转发。

  • DHCP Server:

DHCP服务器负责处理来自客户端或作为中继设备的动态IP续租请求和动态IP释放请求,并完成相关网络配置设置。

目前,CE系列交换机仅支持作为DHCP Relay和DHCP Server。

DHCP报文介绍

DHCP报文格式

DHCP报文格式如图1所示。

图1 DHCP的报文格式:

图1中括号里的数字表示字段的长度,单位是字节。

表1 DHCP报文中各个字段的含义 | 字段 | 长度 | 含义 |
|---|---|---|

| op(op code) | 1字节 | 表示报文的类型,取值为1或2,含义如下:

  • 1:客户端请求报文
  • 2:服务器响应报文
hlen (hardware length) 1字节 表示硬件地址的长度,单位是字节。对于以太网,该值为6。
hops 1字节 表示当前的DHCP报文经过的DHCP Relay的数目。该字段由客户端或服务器设置为0,每经过一个DHCP Relay时,该字段加1。此字段的作用是限制DHCP报文所经过的DHCP Relay数目。说明: 服务器和客户端之间的DHCP Relay数目不能超过16个,也就是Hops值不能大于16,否则DHCP报文将被丢弃。
xid 4字节 表示DHCP客户端选取的随机数,使DHCP服务器的回复与DHCP客户端的报文相关联。
secs (seconds) 2字节 表示客户端从开始获取地址或地址续租更新后所用的时间,单位是秒。

仅有标志字段的最高位具有特殊意义,其余15位均被设置为无效值(通常以0填充)。其内容如下所述:

  • 0:客户端发起请求至服务器,并通过单播机制发送响应报文
  • 1:客户端发起请求至服务器,并通过广播机制发送响应报文
yiaddr (your client ip address) 4字节 表示服务器分配给客户端的IP地址。当服务器进行DHCP响应时,将分配给客户端的IP地址填入此字段。
siaddr (server ip address) 4字节 DHCP客户端获得启动配置信息的服务器的IP地址。
giaddr(gateway ip address) 4字节 表示第一个DHCP Relay的IP地址。当客户端发出DHCP请求时,如果服务器和客户端不在同一个网段,那么第一个DHCP Relay在将DHCP请求报文转发给DHCP服务器时,会把自己的IP地址填入此字段,DHCP服务器会根据此字段来判断出客户端所在的网段地址,从而选择合适的地址池,为客户端分配该网段的IP地址。 服务器还会根据此地址将响应报文发送给此DHCP Relay,再由DHCP Relay将此报文转发给客户端。说明: 若在到达DHCP服务器前经过了多个DHCP Relay,该字段作为客户端所在的网段的标记,填充了第一个DHCP Relay的IP地址后不会再变更,只是每经过一个DHCP Relay,Hops字段的数值会加1。
chaddr(client hardware address) 16字节 表示客户端的MAC地址,此字段与前面的“hardware type”和“hardware length”保持一致。当客户端发出DHCP请求时,将自己的硬件地址填入此字段。对于以太网,当“hardware type”和“hardware length”分别为“1”和“6”时,此字段必须填入6字节的以太网MAC地址。
sname(server host name) 64字节 表示客户端获取配置信息的服务器名字。此字段由DHCP服务器填写,是可选的。如果填写,必须是一个以0结尾的字符串。
file(file name) 128字节 表示客户端需要获取的启动配置文件名。此字段由DHCP服务器填写,随着DHCP地址分配的同时下发至客户端。本字段是可选的,如果填写,必须是一个以0结尾的字符串。
options 可变 表示DHCP的选项字段,最多为312字节。DHCP通过此字段包含了DHCP报文类型,服务器分配给终端的配置信息,如网关IP地址,DNS服务器的IP地址,客户端可以使用IP地址的有效租期等信息。 对Options字段的详细解释请参见“DHCP Options字段选项”。

DHCP报文类型

根据 DHCP 规范为网络系统提供了八类报文类型,并基于此实现 DHCP 服务器与客户端间的数据传输通道

表2 DHCP报文类型说明 | 报文名称| 说明 |

--- ---
DHCP OFFER DHCP服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息。

| DHCP REQUEST | 此报文用于以下三种用途。

  • 当客户端进行初始化操作时,在完成此步骤之后会发送广播类型的DHCPREQUEST报文。
  • 在客户端重启之后会发送广播类型的DHCPREQUEST报文以便于确认之前分配好的IP地址及相关配置参数。
  • 当客户端与某个IP地址建立连接后会发送单播或广播类型的DHCPREQUEST报文以更新相关网络资源参数。
DHCP NAK 服务器对客户端的DHCP REQUEST报文的拒绝响应报文,例如DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法分配合适IP地址。
DHCP DECLINE 当客户端发现服务器分配给它的IP地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。
DHCP RELEASE 客户端可通过发送此报文主动释放服务器分配给它的IP地址,当服务器收到此报文后,可将这个IP地址分配给其它的客户端。
DHCP INFORM DHCP客户端获取IP地址后,如果需要向DHCP服务器获取更为详细的配置信息(网关地址、DNS服务器地址),则向DHCP服务器发送DHCP-INFORM请求报文。

DHCP Options字段选项

DHCP报文中的Options字段

在 DHCP 报文中提供的 Options 字段具有存储现有协议标准中未定义的相关控制数据和参数的功能。当用户在 DHCP 服务器端设置该 Options 字段后,在尝试获取 IP 地址时,客户端将通过响应相应的 DHCP 报文消息来获得该字段所包含的信息配置。选项字段的具体格式如图 1 所示

图1 Options字段的格式:

Options字段包含Type、Length和Value三个字段。这三个字段分别代表各自的意义

表1 Options各字段的含义 | 字段 | 长度 | 含义 |

--- --- ---
Length 1字节 该字段表示后面信息内容的长度。
Value 其长度为Length字段所指定 该字段表示信息内容。

DHCP Options选项的允许取值范围是1到255(见下文表格),用于概述DHCP Options中的重要名称描述。

表2 DHCP报文的Options字段说明 | Options号 | Options作用 |

--- ---
3 设置网关地址选项。
6 设置DNS服务器地址选项。
12 设置DHCP客户端的主机名选项。
15 设置域名后缀选项。
33 设置静态路由选项。该选项中包含一组有分类静态路由(即目的地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果存在Option121,则忽略该选项。
44 设置NetBios服务器选项。
46 设置NetBios节点类型选项。
50 设置请求IP选项。
51 设置IP地址租约时间选项。
52 设置Option附加选项。
53 设置DHCP消息类型。
54 设置服务器标识。
55 设置请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值。
58 设置续约T1时间,一般是租期时间的50%。
59 设置续约T2时间。一般是租期时间的87.5%。
60 设置厂商分类信息选项,用于标识DHCP客户端的类型和配置。
61 设置客户端标识选项。
66 设置TFTP服务器名选项,用来指定为客户端分配的TFTP服务器的域名。
67 设置启动文件名选项,用来指定为客户端分配的启动文件名。
77 设置用户类型标识。
121 设置无分类路由选项。该选项中包含一组无分类静态路由(即目的地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。

基于Options功能的不同特性,在该字段所作用的对象也随之发生变化。例如,在 DHCP 客户端中使用 Option 77时,则会以识别用户的归属类别为目标进行操作。具体而言,在该字段中的分类信息(User Class)将指导 DHCP 服务器从合适的地址池中分配给客户端相应的 IP 地址,并设置必要的配置参数。通常情况下,在 DHCP 客户端上由用户自行配置即可完成这些设置工作;而无需在服务器端进行任何设置。

关于常用的DHCP Options Type的含义和用法,请参见相关RFC。

自定义DHCP选项

除了RFC中规定的字段选项之外还有一些选项内容尚未得到统一的规定如Option82

Option82标识为中继代理位置信息选项,在其报文中存储了地理位置数据并被传输至目标服务器

管理员可以通过调用Option82功能项或相关接口获取DHCP客户端的位置信息,并通过此信息确定或识别出相应的 DHCP 客户端设备以便完成对 DHCP 客户端的安全防护、流量统计以及费用计算等相关管理任务。同时,在具备 Option82 功能项的支持下,在相关配置参数设置的基础上动态规划 IP 地址分配规则,并据此实现灵活调整 IP 地址、子网掩码以及其他网络配置参数的能力;而具备 Option82 功能项的支持下还可以根据相关配置参数设置动态规划 IP 地址分配规则并据此实现灵活调整 IP 地址子网掩码以及其他网络配置参数的能力;此外还能够基于该选项提供的位置信息实施更为精细粒度化的区域划分以及资源调度策略进而优化整体网络性能;此外还可以基于该选项提供的位置信息实施更为精细粒度化的区域划分以及资源调度策略进而优化整体网络性能;此外还可以基于该选项提供的位置信息实施更为精细粒度化的区域划分以及资源调度策略进而优化整体网络性能;此外还可以基于该选项提供的位置信息实施更为精细粒度化的区域划分以及资源调度策略进而优化整体网络性能;此外还可以基于该选项提供的位置信息实施更为精细粒度化的区域划分以及资源调度策略进而优化整体网络性能;

Option82最多支持255个子项。一旦定义了Option82,则必须至少设置一个子项。

由于Option82的内容尚未统一规范, 各厂商通常根据自身需求来填充这些参数. 目前设备系统预设了几种通用的Option82格式设置, 分别是Default、Common和Extend, 并且还支持用户自定义的Format选项.

Default格式是默认格式,这个是Option82的默认处理方式。

Common格式是为适应特定市场而对Option82进行的统一配置方案,并且采用了全部采用字符串形式的方式进行设置。

Extend格式主要基于不同品牌路由器的支持,并且也能够处理二进制形式的Option82配置。

User-defined:其它未特定描述的格式可以使用自定义的方式来处理。

全部评论 (0)

还没有任何评论哟~