欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

DHCP

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段,在RFC 2131中有详细的描述。DHCP有3个端口,其中UDP67和UDP68为正常的DHCP服务端口,分别作为DHCP Server和DHCP Client的服务端口;546号端口用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做“双机热备”的。
  • 中文名

  • 动态主机配置协议

  • 外文名

  • Dynamic Host Configuration Protocol

  • 类    型

  • 计算机网络应用层协议

  • 简    称

  • DHCP

功能概述

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
1. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。
2. DHCP应当可以给用户分配永久固定的IP地址。
3. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。
4. DHCP服务器应当向现有的BOOTP客户端提供服务。
DHCP有三种机制分配IP地址:
1) 自动分配方式(Automatic Allocation),DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。
相关图片相关图片
2) 动态分配方式(Dynamic Allocation),DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。
3) 手工分配方式(Manual Allocation),客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。
三种地址分配方式中,只有动态分配可以重复使用客户端不再需要的地址。
DHCP消息的格式是基于BOOTP(Bootstrap Protocol)消息格式的,这就要求设备具有BOOTP中继代理的功能,并能够与BOOTP客户端和DHCP服务器实现交互。BOOTP中继代理的功能,使得没有必要在每个物理网络都部署一个DHCP服务器。RFC 951和RFC 1542对BOOTP协议进行了详细描述。 [1]  [2] 

封包格式

DHCP的封包格式如右图所示,各字段定义如下:
FIELD OCTETS DESCRIPTION
----- ------ -----------
DHCP报文格式DHCP报文格式
OP:
若是 client 送给 server 的封包,设为 1 ,反向为 2。HTYPE
硬件类别,Ethernet 为 1。
HLEN:
硬件地址长度, Ethernet 为 6。
HOPS:
封包需经过 router 传送,每站加 1 ,若在同一网内,为 0。
TRANSACTION ID:
DHCP REQUEST 时产生的数值,以作 DHCPREPLY 时的依据。
SECONDS:
Client 端启动时间(秒)。
FLAGS:
从 0 到 15 共 16 bits ,最左一 bit 为 1 时表示 server 将以广播方式传送封包给 client ,其余尚未使用。
ciaddr:
要是 client 端想继续使用之前取得之 IP 地址,则列于这里。
yiaddr:
从 server 送回 client 之 DHCP OFFER 与 DHCPACK封包中,此栏填写分配给 client 的 IP 地址。
siaddr:
若 client 需要透过网络开机,从 server 送出之 DHCP OFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在 server 之地址。
giaddr:
若需跨网域进行 DHCP 发放,此栏为 relay agent 的地址,否则为 0。
chaddr:
Client 之硬件地址。
sname:
Server 之名称字符串,以 0x00 结尾。
file:
若 client 需要透过网络开机,此栏将指出开机程序名称,稍后以 TFTP 传送。
options:
允许厂商定议选项(Vendor-Specific Area),以提供更多的设定信息(如:Netmask、Gateway、DNS、等等)。其长度可变,同时可携带多个选项,每一选项之第一个 byte 为信息代码,其后一个 byte 为该项数据长度,最后为项目内容。CODE LEN VALUE 此字段完全兼容 BOOTP ,同时扩充了更多选项。其中,DHCP封包可利用编码为 0x53 之选项来设定封包类别
项值类别:
1 DHCP DISCOVER
2 DHCP OFFER
3 DHCP REQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNACK
7 DHCPRELEASE
DHCP 的选项非常多,有空请查阅 RFC 或相关文献,并好好理解,这里不再叙述了。

相关介绍

DHCP客户端

在支持DHCP功能的网络设备上将指定的端口作为DHCP Client,通过DHCP协议从DHCP Server动态获取IP地址等信息,来实现设备的集中管理。一般应用于网络设备的网络管理接口上。
DHCP客户端可以带来如下好处:
  • 降低了配置和部署设备时间。
  • 降低了发生配置错误的可能性。
  • 可以集中化管理设备的IP地址分配。

DHCP服务器

DHCP服务器指的是由服务器控制一段IP地址范围,客户端登录服务器时就可以自动获得服务器分配的IP地址和子网掩码

DHCP中继代理

DHCPRelay(DHCPR)DHCP中继 也叫做DHCP中继代理。DHCP中继代理,就是在DHCP服务器和客户端
相关图片相关图片
之间转发DHCP数据包。当DHCP客户端与服务器不在同一个子网上,就必须有DHCP中继代理来转发DHCP请求和应答消息。DHCP中继代理的数据转发,与通常路由转发是不同的,通常的路由转发相对来说是透明传输的,设备一般不会修改IP包内容。而DHCP中继代理接收到DHCP消息后,重新生成一个DHCP消息,然后转发出去。
在DHCP客户端看来,DHCP中继代理就像DHCP服务器;在DHCP服务器看来,DHCP中继代理就像DHCP客户端。

工作原理

DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的67号端口,DHCP服务器回应应答消息给主机的68号端口。详细的交互过程如下图。
  1. DHCP Client以广播的方式发出DHCP Discover报文。
  2. 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。
    DHCP Offer报文中“Your(Client) IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址,且DHCP Server会将自己的IP地址放在“option”字段中以便DHCP Client区分不同的DHCP Server。DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。
  3. DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。
    DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
  4. DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
  5. DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
  6. DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。
在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。
在使用租期超过87.5%时刻处,DHCP Client会以广播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址,直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。
需要说明的是:DHCP客户端可以接收到多个DHCP服务器的DHCPOFFER数据包,然后可能接受任何一个DHCPOFFER数据包,但客户端通常只接受收到的第一个DHCPOFFER数据包。另外,DHCP服务器DHCPOFFER中指定 [1]  的地址不一定为最终分配的地址,通常情况下,DHCP服务器会保留该地址直到客户端发出正式请求。
正式请求DHCP服务器分配地址DHCPREQUEST采用广播包,是为了让其它所有发送DHCPOFFER数据包的DHCP服务器也能够接收到该数据包,然后释放已经OFFER(预分配)给客户端的IP地址。
如果发送给DHCP客户端的地址已经被其他DHCP客户端使用,客户端会向服务器发送DHCPDECLINE信息包拒绝接受已经分配的地址信息。
在协商过程中,如果DHCP客户端发送的REQUEST消息中的地址信息不正确,如客户端已经迁移到新的子网或者租约已经过期,DHCP服务器会发送DHCPNAK消息给DHCP客户 端,让客户端重新发起地址请求过程。

DHCP服务

安装DHCP服务

在Windows Server 2003系统中默认没有安装DHCP服务,因此需要安装DHCP服务。
第1步 单击“开始”按钮,在“控制面板”中双击“添加或删除程序”图标,在打开的窗口左侧单击“添加/删除
相关图片相关图片
Windows组件”按钮,打开“Windows组件向导”对话框。
第2步 在“组件”列表中找到并勾选“网络服务”复选框,然后单击“详细信息”按钮,打开“网络服务”对话框。接着在“网络服务的子组件”列表中勾选“动态主机配置协议(DHCP)”复选框,依次单击“确定→下一步”按钮开始配置和安装DHCP服务。最后单击“完成”按钮完成安装。
提示:如果是在Active Directory(活动目录)域中部署DHCP服务器,还需要进行授权才能使DHCP服务器生效。本例的网络基于工作组管理模式,因此无需进行授权操作即可进行创建IP作用域的操作。

DHCP服务器

并不是安装了DHCP功能后就能直接使用,还必须进行授权操作,未经授权操作的服务器无法提供DHCP服务。对DHCP服务器授权操作的过程如下:
1. 依次点击“开始→程序→管理工具→DHCP”,打开DHCP控制台窗口。
2. 在控制台窗口中,用鼠标左键点击选中服务器名,然后单击右键,在快捷菜单中选中“授权”,此时需要几
相关图片相关图片
分钟的等待时间。注意:如果系统长时间没有反应,可以按F5键或选择菜单工具中的“操作”下的“刷新”进行屏幕刷新,或先关闭DHCP控制台,在服务器名上用鼠标右键点击。如果快捷菜单中的“授权”已经变为“撤消授权”,则表示对DHCP服务器授权成功。此时,最明显的标记是服务器名前面红色向上的箭头变成了绿色向下的箭头。这样,这台被授权的DHCP服务器就有分配IP的权利了。

IP作用域

要想为同一子网内的所有客户端电脑自动分配IP地址,首先要做就是创建一个IP作用域,这也是事先确定一段IP地址作为IP作用域的原因。下面开始创建IP作用域的操作。
第1步 依次单击“开始→管理工具→DHCP”,打开“DHCP”控制台窗口。在左窗格中右击DHCP服务器名称,执行“新建作用域”命令。
第2步 在打开的“新建作用域向导”对话框中单击“下一步”按钮,打开“作用域名”向导页。在“名称”框中为该作用域键入一个名称(如“CCE”)和一段描述性信息,单击“下一步”按钮。
小提示:这里的作用域名称只起到一个标识的作用,基本上没有实际应用。
第3步 打开“IP地址范围”向导页,分别在“起始IP地址”和“结束IP地址”编辑框中键入事先确定的IP地址范围(本例为“10.115.223.2~10.115.223.254”)。接着需要定义子网掩码,以确定IP地址中用于“网络/子网ID”的位数。由于本例网络环境为城域网内的一个子网,因此根据实际情况将“长度”微调框的值调整为“23”,单击“下一步”按钮(图3)。
第4步 在打开的“添加排除”向导页中可以指定排除的IP地址或IP地址范围。由于已经使用了几个IP地址作为其它服务器静态IP地址,因此需要将它们排除。在“起始IP地址”编辑框中键入排除的IP地址并单击“添加”按钮。重复操作即可,接着单击“下一步”按钮。
第5步 在打开的“租约期限”向导页中,默认将客户端获取的IP地址使用期限限制为8天。如果没有特殊要求保持默认值不变,单击“下一步”按钮。
第6步 打开“配置DHCP选项”向导页,保持选中“是,我想现在配置这些选项”单选框并单击“下一步”按钮。在打开的“路由器默认网关)”向导页中根据实际情况键入网关地址(本例为“10.115.223.254”)并依次单击“添加→下一步”按钮。
第7步 在打开的“域名称和DNS服务器”向导页中没有做任何设置,这是因为网络中没有安装DNS服务器且尚未升级成域管理模式.依次单击“下一步”按钮,跳过“WINS服务器”向导页打开“激活作用域”向导页。保持“是,我想现在激活此作用域”单选框选中状态,并依次单击“下一步”→“完成”按钮结束配置。
设置DHCP客户端 安装了DHCP服务并创建了IP作用域后, 要想使用DHCP方式为客户端电脑分配IP地址,除了网络中有一台DHCP服务器外,还要求客户端电脑应该具备自动向DHCP服务器获取IP地址的能力,这些客户端电脑就被称作DHCP客户端。
因此我们对一台运行Windows XP的客户端电脑面前进行了如下设置:在桌面上右击“网上邻居”图标,执行“属性”命令。在打开的“网络连接”窗口中右击“本地连接”图标并执行“属性”,打开“本地连接 属性”对话框。然后双击“Internet协议(TCP/IP)”选项,点选“自动获得IP地址”单选框,并依次单击“确定”按钮。
提示:默认情况下端电脑使用的都是自动获取IP地址的方式,一般无需进行修改,只需检查一下就行了。
至此,DHCP服务器端和客户端已经全部设置完成了。在DHCP服务器正常运行的情况下,首次开机的客户端会自动获取一个IP地址并拥有八天的使用期限。

创建用户

创建新用户或供应商选项类启动 DHCP 管理器。单击控制台树中的适用的 DHCP服务器分支。右击在的服务器,然后单击创建新的用户类的”定义用户类“,或者单击“定义供应商类"创建一个新的供应商类。单击"添加"。在"新的类"的对话框键入一个描述性的标识名称,为新的选项,在"显示名称"框。还可能会将其他信息添加到"说明"框。键入数据以匹配的类 ID 由ID或ASCII下的 DHCP客户端提供 DHCP服务器服务使用。若要为十六进制字节数字值输入数据,请单击文本框的左侧。若要输入信息交换 (ASCII)文本字符值为美国标准码数据,单击文本框的右侧。单击"确定",然后单击"关闭"。使用新的类 ID 配置 DHCP 作用域在 DHCP 管理器,双击相应的 DHCP 作用域。右键单击"作用域选项",然后单击"配置选项"。单击"高级",单击以选中复选框或要使用新的供应商或用户类在功能旁边的框。单击"确定"。为客户端计算机设置指定的 DHCP 类 ID 字符串连接到基于 Windows 2000 的 DHCP服务器的客户端计算机使用下面的命令可以设置指定的 DHCP类别ID 字符串:ipconfig / setclassid adapter_name class_id
是例如配置名为"Local Area Connection"的适配器名为"myuserclass 用户类 ID,请在命令提示符下键入 ipconfig / setclassid本地连接myuserclass ,然后按 ENTER 键。
它标识"Local Area Connection"接口接收为"myuserclass"DHCP服务器上配置的 DHCP 选项。
注意:ASCII 中的类 ID 是区分大小写,并必须的匹配在编辑类对话框中输入标识数据的类来创建新的用户或供应商选项类。

DHCP使用情况

什么时候最好使用 DHCP ?
公司内部很多 Laptop计算机使用的场合!因为 Laptop在使用上,当设定为DHCP client 的时候,那么只要它连接上的网域里面有一部可以上网的 DHCP服务器 ,那部Laptop也就可以连接上 Internet 了!
网域内计算机数量相当的多时:另外一个情况就是网域内计算机数量相当庞大时,大到您没有办法一个一个的进行说明来设定他们自己的网络参数,这个时候为了省麻烦,还是架设DHCP 来的方便。
什么情况下不建议使用 DHCP 主机?
Client 在开机的时候会主动的发送讯息给网域上的所有机器,这个时候,如果网域上就是没有DHCP主机呢?那么这部 Client 端计算机会发送四次请求信息,第一次等待时间为 1 秒,其余三次的等待时间分别是 9、13、16 秒。如果还是没有DHCP服务器的响应,那么在5分钟之后,Client端计算机会重复这一动作。
在网域内的计算机,有很多机器其实是做为主机的用途,很少Client 需求,那么似乎就没有必要架设 DHCP。

DHCP跨网运作

DHCP DISCOVER 是以广播方式进行的,其情形只能在同一网段之内进行,因为路由器是不会将二层广播包转发出去的。但如果DHCP 服务器安设在其它的网络上面呢?由于 DHCP 客户端还没有 IP 环境设定,所以也不知道路由器地址,而且有些 Router 也不会将 DHCP 广播封包传递出去,因此这情形下 DHCP DISCOVER 是永远没办法抵达 DHCP 服务器那端的,当然也不会发生 OFFER 及其它动作了。要解决这个问题,我们可以用 DHCP Agent (或 DHCP Proxy )主机来接管客户的 DHCP 请求,然后将此请求传递给真正的 DHCP 服务器,然后将服务器的回复传给客户。这里,Proxy 主机必须自己具有路由能力,且能将双方的封包互传对方。
若不使用 Proxy,也可以在每一个网络之中安装 DHCP 服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散。当然,如果在一个十分大型的网络中,这样的均衡式架构还是可取的。 [3] 

网络设备

注意:不同的网络设备配置的语法不一样.
要配置DHCP,可以按照下面任务列表进行配置,其中前三个配置任务是必须的。
l 启用DHCP服务器与中继代理(要求)
l DHCP排斥地址配置(要求)
l DHCP地址池配置(要求)
l 配置CLASS(可选)
l 配置绑定数据库保存(可选)
l 手工地址绑定(可选)
l 配置Ping包次数(可选)
l 配置Ping包超时时间(可选)
l 以太网接口DHCP客户端配置(可选)
l PPP封装链路上的DHCP客户端配置(可选)
l FR封装链路上的DHCP客户端配置(可选)
l HDLC封装链路上的DHCP客户端配置(可选)
启用DHCP服务器与中继代理
要启用DHCP服务器、中继代理,全局配置模式中执行以下命令:
命令
作用
R (config)#service dhcp
启用DHCP服务器和DHCP中继代理功能
R (config)#no service dhcp
关闭DHCP服务器和中继代理功能
DHCP排斥地址配置
如果没有特别配置,DHCP服务器会试图将在地址池中定义的所有子网地址分配给DHCP客户端。因此,如果你想保留一些地址不想分配,比如已经分配给服务器或者设备了,你必须明确定义这些地址是不允许分配给客户端的。
要配置哪些地址不能分配给客户端,在全局配置模式中执行以下命令:
命令
作用
R (config)#ip dhcp excluded-address
定义IP地址范围,这些地址DHCP不会分配给客户端
R (config)#no ip dhcp excluded-address
low-ip-address[high-ip-address]
取消配置地址排斥
配置DHCP服务器,一个好的习惯是将所有已明确分配的地址全部不允许DHCP分配,这样可以带来两个好处:1)不会发生地址冲突;2)DHCP分配地址时,减少了检测时间,从而提高DHCP分配效率。
DHCP地址池配置
DHCP的地址分配以及给客户端传送的DHCP各项参数,都需要在DHCP地址池中进行定义。如果没有配置DHCP地址池,即使启用了DHCP服务器,也不能对客户端进行地址分配;但是如果启用了DHCP服务器,不管是否配置了DHCP 地址池,DHCP中继代理的总是起作用的。
如果DHCP请求包中没有DHCP中继代理的IP地址,就分配与接收DHCP请求包接口的IP地址同一子网或网络的地址给客户端。如果没定义这个网段的地址池,地址分配就失败;
如果DHCP请求包中有中继代理的IP地址,就分配与该地址同一子网或网络的地址给客户端。如果没定义这个网段的地址池,地址分配就失败。
要进行DHCP地址池配置,请根据实际的需要执行以下任务,其中前三个任务要求执行:
l 配置地址池并进入其配置模式(要求)
l 配置地址池子网及其掩码(要求)
l 配置客户端缺省网关(要求)
l 配置地址租期(可选)
l 配置客户端的域名(可选)
l 配置域名服务器(可选)
l 配置NetBIOS WINS服务器(可选)
l 配置客户端NetBIOS节点类型(可选)
l 配置DHCP地址池根据Option82分配地址(可选)
配置地址池名并进入其配置模式
要配置地址池名并进入地址池配置模式,在全局配置模式中执行以下命令:
命令
作用
R (config)#ip dhcp pooldhcp-pool
配置地址池名并进入地址池配置模式
地址池的配置模式显示为“R(dhcp-config)#”。
配置客户端启动文件
客户端启动文件是客户端启动时要用到的启动映像文件。启动映像文件通常是DHCP客户端需要下载的操作系统。
要配置客户端的启动文件,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#bootfilefilename
配置客户端启动文件名
配置客户端缺省网关
配置客户端默认网关,这个将作为服务器分配给客户端的默认网关参数。缺省网关的IP地址必须与DHCP客户端的IP地址在同一网络。
要配置客户端的缺省网关,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#default-routeraddress[address2…address8]
配置缺省网关
配置地址租期
DHCP服务器给客户端分配的地址,缺省情况下租期为1天。当租期快到时客户端需要请求续租,否则过期后就不能使用该地址。
要配置地址租期,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#lease{days[hours][minutes] |infinite}
配置地址租期
配置客户端的域名
可以指定客户端的域名,这样当客户端通过主机名访问网络资源时,不完整的主机名会自动加上域名后缀形成完整的主机名。
要配置客户端的域名,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#domain-namedomain
配置域名
配置域名服务器
当客户端通过主机名访问网络资源时,需要指定DNS服务器进行域名解析。要配置DHCP客户端可使用的域名服务器,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#dns-serveraddress
[address2…address8]
配置DNS服务器
配置NetBIOS WINS服务器
NetBIOS WINS是微软TCP/IP网络解析NetNBIOS名字到IP地址的一种域名解析服务。WINS服务器是一个运行在Windows NT下的服务器。当WINS服务器启动后,会接收从WINS客户端发送的注册请求,WINS客户端关闭时,会向WINS服务器发送名字释放消息,这样WINS数据库中与网络上可用的计算机就可以保持一致了。
要配置DHCP客户端可使用的NetBIOS WINS服务器,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#netbios-name-serveraddress[address2…address8]
配置NetBIOS WINS服务器
配置客户端NetBIOS节点类型
微软DHCP客户端NetBIOS节点类型有四种:1)Broadcast,广播型节点,通过广播方式进行NetBIOS名字解析;2)Peer-to-peer,对等型节点,通过直接请求WINS服务器进行NetBIOS名字解析;3)Mixed,混合型节点,先通过广播方式请求名字解析,后通过与WINS服务器连接进行名字解析;4)Hybrid,复合型节点,首先直接请求WINS服务器进行NetBIOS名字解析,如果没有得到应答,就通过广播方式进行NetBIOS名字解析。
缺省情况下,微软操作系统的节点类型为广播型或者复合型。如果没有配置WINS服务器,就为广播型节点;如果配置了WINS服务器,就为复合型节点。
要配置DHCP客户端NetBIOS节点类型,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#netbios-node-typetype
配置NetBIOS节点类型
配置DHCP地址池的网络号和掩码
进行动态地址绑定的配置,必须配置新建地址池的子网及其掩码,为DHCP服务器提供了一个可分配给客户端的地址空间。除非有地址排斥配置,否则所有地址池中的地址都有可能分配给客户端。DHCP在分配地址池中的地址,是按顺序进行的,如果该地址已经在DHCP绑定表中或者检测到该地址已经在该网段中存在,就检查下一个地址,直到分配一个有效的地址。
要配置地址池子网和掩码,在地址池配置模式中执行以下命令:
命令
作用
R (dhcp-config)#networknetwork-number mask
配置DHCP地址池的网络号和掩码
配置DHCP地址池根据Option82分配地址
通常,DHCP中继代理在转发报文的过程中会添加一个Option82选项用来记录客户端的相关信息(如客户端所处的VLAN、设备槽号、端口号或者用户的1X等级等等),DHCP服务器在收到该报文后可以通过解析Option82信息来根据客户端的具体信息进行地址分配。如对某个VLAN或者某个用户等级的客户端分配某个范围内的IP地址。在需要根据用户的具体网络位置信息(如VLAN、槽号、端口号)来为用户分配特有的IP地址范围或者根据用户的优先级分配特有的(如受限、非受限)IP地址时,可以采用该功能。
每个DHCP地址池可以根据Option82信息进行地址分配,我们把Option82信息进行匹配归类,在DHCP地址池中为这些归类分别指定可以分配的网段范围。这个归类称为CLASS,一个DHCP地址池可以关联多个CLASS,每个CLASS可以指定不同的网段范围。
在地址分配的过程中可以先根据客户端所处的网段确定可以分配的地址池,再根据其Option82信息进一步确定其所属的CLASS,从CLASS对应的网段范围中分配IP地址。当一个请求报文匹配地址池中的多个CLASS时,按照CLASS在地址池中配置的先后顺序从对应的CLASS网段范围中分配地址,如果该CLASS已无可分配地址,则继续从下一个匹配的CLASS网段范围进行分配,依此类推。每个CLASS对应一个网段范围,网段范围必须从低地址到高地址,可以允许多个CLASS之间的网段范围重复。如果指明了地址池关联的CLASS,但对应的网段范围没有配置,则该CLASS默认的网段范围和CLASS所处的地址池的网段范围相同。
要配置地址池关联的CLASS以及CLASS所对应的网段范围,在地址池配置模式中执行以下命令:

命令
作用

R (dhcp-config)#classclass-name
配置关联的CLASS名称,并进入地址池的CLASS配置模式

R(config-dhcp-pool-class)#address rangelow-ip-addresshigh-ip-address
配置对应的网段范围
值得注意的是:
  1. 当配置的CLASS在全局CLASS查找不到的情况下,会自动创建一个全局的CLASS;
  2. 在地址池中配置关联CLASS与静态手工绑定配置冲突,不可同时配置。
  3. 每个地址池下允许配置的CLASS数目最大为5个

配置CLASS

配置CLASS的Option82匹配信息
    在全局模式下进入CLASS配置模式后,可以配置每个CLASS对应的具体的Option82匹配信息。一个CLASS可以匹配多个Option82信息,请求报文匹配时只要匹配其中一条信息即认为通过匹配,如果CLASS不配置任何的匹配信息,则认为该CLASS可以匹配任何携带Option82信息的请求报文。请求报文只有匹配了具体的CLASS后,才可从对应的地址池关联的CLASS网段范围中分配地址。
    要配置全局的CLASS以及CLASS所对应的匹配Option82信息,在全局配置模式中执行以下命令:
    命令
    作用
    R (config)#ip dhcp classclass-name
    配置CLASS名并进入全局CLASS配置模式
    R (config-dhcp-class)#relay agent information
    进入Option82匹配信息配置模式
    R (config-dhcp-class-relayinfo)#relay-information hexaabb.ccdd.eeff…[*]
    配置具体的Option82匹配信息
    1. aabb.ccdd.eeff..为16进制数
    2. *代表不完全匹配模式,只需要匹配*之前信息即通过匹配
    值得注意的是:全局CLASS可匹配的最大个数为20个。

      
    配置CLASS的标识信息
    要配置标识信息来描述CLASS代表的含义,在全局配置模式中执行以下命令:
    命令
    作用
    R (config)#ip dhcp classclass-name
    配置CLASS名并进入CLASS配置模式
    R (config-dhcp-class)#remarkused in #1 building
    配置标识信息
    配置是否使用CLASS分配
    要设置使用CLASS来进行地址分配,在全局配置模式中执行如下命令:
    命令
    作用
    R (config)#ip dhcp use class
    配置使用CLASS进行地址分配
    应注意的是:默认情况下该命令打开,执行NO命令关闭使用CLASS进行地址分配。
    配置定时把绑定数据库保存到FLASH
    为了防止设备断电重启导致设备上的DHCP服务器的绑定数据库(租约信息)丢失,DHCP提供可配置的定时把绑定数据库写入FLASH的命令,默认情况下,定时为0,即不定时写FLASH。
    要配置定时把绑定数据库保存到FLASH,在全局配置模式中执行以下命令:
    命令
    作用
    R (config)# [no]ip dhcp database write-delay[time]
    设置DHCP延迟写FLASH的时间
    time:600s--86400s,缺省为0
    值得注意的是:由于不停擦写FLASH会造成FLASH的使用寿命缩短,所以在设置延迟写FLASH时间时需要注意,设置时间较短有利于设备信息更有效的保存,设置时间较长能够减少写FLASH的次数,延长FLASH的使用寿命。
    配置手动把绑定数据库保存到FLASH
    为了防止设备断电重启导致设备上的DHCP绑定数据库(租约信息)丢失,除了配置定时写FLASH外,也可以根据需要手动地把当前的绑定数据库信息立即写入FLASH。
    要配置手动把绑定数据库保存到FLASH,在全局配置模式中执行以下命令:
    命令
    作用
    R (config)#ip dhcp database write-to-flash
    把DHCP绑定数据库信息写入FLASH

    手工地址绑定

    地址绑定是指IP地址和客户端MAC地址的映射关系。地址绑定有两种:1)手工绑定,就是在DHCP服务器数据库中,通过手工定义将IP地址和MAC地址进行静态映射,手工绑定其实是一个特殊地址池;2)动态绑定,DHCP 服务器接收到DHCP请求时,动态地从地址池中分配IP地址给客户端,而形成的IP地址和MAC地址映射。
    要定义手工地址绑定,首先需要为每一个手动绑定定义一个主机地址池,然后定义DHCP客户端的IP地址和硬件地址或客户端标识。硬件地址就是MAC地址。客户端标识,微软客户端一般定义客户端标识,而不定义MAC地址,客户端标识包含了网络媒介类型和MAC地址。关于媒介类型的编码,请参见RFC 1700中关于“Address Resolution Protocol Parameters”部分内容。以太网类型为“01”。
    要配置手工地址绑定,在地址池配置模式中执行以下命令:
    命令
    作用
    R (config)#ip dhcp poolname
    定义地址池名,进入DHCP配置模式
    R (dhcp-config)#hostaddress[netmask]
    定义客户端IP地址
    R (dhcp-config)#client-identifierunique-identifier
    定义客户端硬件地址,如aabb.bbbb.bb88
    定义客户端的标识,如01aa.bbbb.bbbb.88
    R (dhcp-config)#client-namename
    (可选)用标准的ASCII字符定义客户端的名字,名字不要包括域名。如定义mary主机名,不可定义成mary.rg.com
    配置Ping包次数
    缺省情况,当DHCP服务器试图从地址池中分配一个IP地址时,会对该地址执行两次Ping命令(一次一个数据包)。如果Ping没有应答,DHCP服务器认为该地址为空闲地址,就将该地址分配给DHCP客户端;如果Ping有应答,DHCP服务器认为该地址已经在使用,就试图分配另外一个地址给DHCP客户端,直到分配成功。
    要配置Ping包次数,在全局配置模式中执行以下命令:
    命令
    作用
    R (config)#ip dhcp ping packets[number]
    配置DHCP服务器在分配地址之前的Ping包次数,如果设为0则不进行Ping操作,缺省为2。
    配置Ping包超时时间
    缺省情况下,DHCP服务器Ping操作如果500毫秒没有应答,就认为没有该IP地址主机存在。你可以通过调整Ping包超时时间,改变服务器Ping等待应答的时间。
    要配置Ping包超时时间,在全局配置模式中执行以下命令:
    命令
    作用
    R (config)#ip dhcp ping timeoutmilliseconds
    配置DHCP服务器Ping包超时时间,缺省为500ms。
    以太网接口DHCP客户端配置
    配置以太网接口DHCP客户端,在接口配置模式中执行以下命令:
    命令
    作用
    R (config-if)#ip address dhcp
    配置通过DHCP得到IP地址
    PPP封装链路上的DHCP客户端配置
    配置DHCP客户端,在接口配置模式中执行以下命令:
    命令
    作用
    R(config-if)#ip address dhcp
    配置通过DHCP得到IP地址
    FR封装链路上的DHCP客户端配置
    在接口配置模式中执行以下命令:
    命令
    作用
    R(config-if)#ip address dhcp
    配置通过DHCP得到IP地址
    HDLC封装链路上的DHCP客户端配置
    配置DHCP客户端,在接口配置模式中执行以下命令:
    命令
    作用
    R (config-if)#ip address dhcp
    配置通过DHCP得到IP地址

    典型配置案例

    拓扑图

    如右图:

    应用需求

    1、 Host A可以作为DHCP Server为一部分客户端用户分配动态IP地址。可分配地址的网段为172.16.1.0/24,缺省网关为172.16.1.254,域名为ruijie.com.cn,域名服务器为172.16.1.253,WINS服务器为172.16.1.252,NetBIOS节点类型为复合型,地址租期为1天。在地址的网段中除了172.16.1.2~172.16.1.100地址外,其余地址均为可分配地址。
    2、 Host A为一部分客户端用户分配固定IP地址。对MAC地址为00d0.df34.32a3的DHCP客户端分配的IP地址为172.16.1.101,掩码为255.255.255.0,主机名为admin,缺省网关为172.16.1.254,域名服务器为172.16.1.253,WINS服务器为172.16.1.252,NetBIOS节点类型为复合型。
    3、 HOST B为设备接口FastEthernet 0/0配置DHCP自动分配地址。

    配置要点

    1、 在Host A上开启DHCP服务器功能,创建一个地址池,用于配置动态分配IP地址,另外创建一个地址池,用于手工绑定IP地址。并在相应的地址池指定域名服务器地址(本例为DNS Server和WINS Server的地址)以及客户端的域名。
    2、 在Host B上指定接口开启DHCP客户端功能,自动获取IP地址。

    配置步骤

    第一步,在Host A上,创建新的DHCP地址池,配置动态分配IP地址。
    !配置地址池名为“dynamic”,并进入DHCP配置模式。
    HostA# configure terminal
    Enter configuration commands, one per line. End with CNTL/Z.
    HostA(config)# ip dhcp pool dynamic
    !在DHCP配置模式下,配置一个可分配给客户的IP地址网段,并配置该地址网段的默认网关。并设置租期为1天。
    HostA(dhcp-config)# network 172.16.1.0 255.255.255.0
    HostA(dhcp-config)# default-router 172.16.1.254
    HostA(dhcp-config)# lease 1
    第二步,指定“dynamic”地址池的DNS Server,并配置客户端的域名。
    !假设DNS Server的IP地址是172.16.1.253,在地址池中配置域名服务器,并配置客户端域名为AAAAA.com.cn。
    HostA(dhcp-config)# dns-server 172.16.1.253
    HostA(dhcp-config)# domain-name AAAAA.com.cn
    第三步,指定“dynamic”地址池的WINS Server,并配置客户端NetBIOS节点类型。
    !假设WIN Server的IP地址是172.16.1.252,在地址池中配置NetBIOS WINS服务器,并配置NetBIOS节点类型为Hybrid。
    HostA(dhcp-config)# netbios-name-server 172.16.1.252
    HostA(dhcp-config)# netbios-node-type h-node
    第四步,在全局模式下配置排斥地址。
    !如上,IP地址为172.16.1.254、172.16.1.253、172.16.1.252已经分配作为对应网段的网关、DNS服务器、WINS服务器的地址,并且地址范围172.16.1.2~172.16.1.100也不允许分配。通过排斥地址配置明确这些地址不允许分配给客户端用户。
    HostA(dhcp-config)# exit
    HostA(config)# ip dhcp excluded-address 172.16.1.252 172.16.1.254
    HostA(config)# ip dhcp excluded-address 172.16.1.2 172.16.1.100
    第五步,创建另一个地址池,配置手工绑定IP地址。
    !配置地址池名为“static”,并进入DHCP配置模式。
    HostA(config)# ip dhcp pool static
    ! 指明IP地址为172.16.1.101/24手工绑定MAC地址为00d0.df34.32a3,客户端名称为admin。注意:定义客户端的标识需增加网络媒介类型标识(以太网类型为“01”),即手工绑定的MAC地址对应的客户端标识为00d0.df34.32a3.14。
    HostA(dhcp-config)# host 172.16.1.101 255.255.255.0
    HostA(dhcp-config)# client-identifier 00d0.df34.32a3.14
    HostA(dhcp-config)# client-name admin
    第六步,指定“static”地址池对应的网关地址。
    !配置网关地址为172.16.1.254。
    HostA(dhcp-config)# default-router 172.16.1.254
    第七步,指定“static”地址池的DNS Server,并配置客户端的域名。
    !同上,并配置客户端域名为ruijie.com。
    HostA(dhcp-config)# dns-server 172.16.1.253
    HostA(dhcp-config)# domain-name AAAAA.com
    第八步,指定“static”地址池的WINS Server,并配置客户端NetBIOS节点类型。
    !同上。
    HostA(dhcp-config)# netbios-name-server 172.16.1.252
    HostA(dhcp-config)# netbios-node-type h-node
    HostA(dhcp-config)# exit
    第九步,在Host A上启用DHCP Server。
    HostA(dhcp-config)# exit
    HostA(config)# service dhcp
    第十步,在Host B上启用DHCP Client。
    !此例默认客户端的接口为三层口,启动DHCP client。
    HostB(config)# interface fastEthernet 0/1
    HostB(config-if-fastEthernet 0/1)# ip address dhcp

    验证结果

    第一步,查看Host A的配置信息
    HostA# show running-config
    !
    service dhcp
    !
    ip dhcp excluded-address 172.16.1.252 172.16.1.254
    ip dhcp excluded-address 172.16.1.2 172.16.1.100
    !
    !
    ip dhcp pool dynamic
    netbios-node-type n-node
    netbios-name-server 172.16.1.252
    domain-name AAAAA.com.cn
    lease 1 0 0
    network 172.16.1.0 255.255.255.0
    dns-server 172.16.1.253
    default-router 172.16.1.254
    !
    ip dhcp pool static
    client-name admin
    client-identifier 00d0.df34.32a3.14
    host 172.16.1.101 255.255.255.0
    netbios-node-type n-node
    netbios-name-server 172.16.1.252
    domain-name AAAAA.com.cn
    dns-server 172.16.1.253
    default-router 172.16.1.254
    !
    第二步,查看Host B的配置信息
    HostB# show running-config
    !
    interface fastEthernet 0/1
    //注:如果是交换机设备,这里应该还有no switchport命令,将接口设置为三层口
    ip address dhcp
    第三步,接入一台MAC地址为0013.2049.9014的PC,在Host A上查看DHCP Server分配IP地址信息。
    R#show ip dhcp bindingIP address Client-Identifier/ Lease expiration Type
    Hardware address
    172.16.1.101 00d0.df34.32a3.14 IDLE Manual 172.16.1.102 0100.e04c.70b7.e2 000 days 23 hours 48 mins Automatic


    来自  https://baike.baidu.com/item/DHCP/218195?fromtitle=%EF%BC%A4%EF%BC%A8%EF%BC%A3%EF%BC%B0&fromid=11165...

    普通分类: