23-DHCP操作
本章节下载 (346.92 KB)
目 录
随着网络规模的不断扩大和网络复杂度的提高,经常出现计算机的数量超过可供分配的IP地址的情况。同时随着便携机及无线网络的广泛使用,计算机的位置也经常变化,相应的IP地址也必须经常更新,从而导致网络配置越来越复杂。DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)就是为满足这些需求而发展起来的。
DHCP采用客户端/服务器通信模式,由客户端向服务器提出配置申请,服务器返回IP地址等相应的配置信息,以实现IP地址等信息的动态配置。
在DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机),如图1-1所示:
图1-1 DHCP典型应用
针对客户端的不同需求,DHCP提供三种IP地址分配策略:
l 手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址。通过DHCP将配置的固定IP地址发给客户端。
l 自动分配地址:DHCP为客户端分配租期为无限长的IP地址。
l 动态分配地址:DHCP为客户端分配有有效期限的IP地址,当使用期限到期后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。
DHCP客户端从DHCP服务器动态获取IP地址,主要通过四个阶段进行:
(1) 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。
(2) 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给客户端(发送方式根据客户端发送的DHCP-DISCOVER报文中的flag字段决定,具体请见1.3 DHCP报文格式的介绍)。
(3) 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。
(4) 确认阶段,即DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认地址分配给该客户端,则返回DHCP-ACK报文;否则将返回DHCP-NAK报文,表明地址不能分配给该客户端。客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送ARP报文(目的地址是被分配到的地址)进行地址探测,如果在规定的时间内没有收到回应,客户端才使用此地址。
& 说明:
除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。
如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租借期限,当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP地址租约。
在DHCP客户端的IP地址租约期限达到一半时间时,DHCP客户端会向DHCP服务器单播发送DHCP-REQUEST报文,以进行IP租约的更新。如果此IP地址有效,则DHCP服务器单播回应DHCP-ACK报文,通知DHCP客户端已经获得新IP租约;如果此IP地址不可以再分配给该客户端,则DHCP服务器回应DHCP-NAK报文,通知DHCP客户端不能获得新的租约。
如果在租约的一半时间进行的续约操作失败,DHCP客户端会在租约期限达到7/8时,再次广播发送DHCP-REQUEST报文进行续约。DHCP服务器的处理同上,不再赘述。
DHCP有8种类型的报文,每种报文的格式相同,只是报文中的某些字段取值不同。DHCP报文格式基于BOOTP的报文格式,具体格式如图1-2所示(括号中的数字表示该字段所占的字节):
图1-2 DHCP报文格式
各字段的解释如下:
l op:DHCP报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。
l htype、hlen:DHCP客户端的硬件地址类型及长度。
l hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
l xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
l secs:DHCP客户端开始DHCP请求后的时间。
l flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播发送。其余比特保留不用。
l ciaddr:DHCP客户端的IP地址。
l yiaddr:DHCP服务器分配给客户端的IP地址。
l siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。
l giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
l chaddr:DHCP客户端的硬件地址。
l sname:DHCP客户端获取IP地址等信息的服务器名称。
l file:DHCP服务器为DHCP客户端指定的启动配置文件名称。
l option:可选变长选项字段,包含报文的类型、有效租期、DNS(Domain Name System,域名系统)服务器的IP地址、WINS服务器的IP地址等配置信息。
当设备使能了DHCP服务后,在设备上的接口收到DHCP客户端发来的DHCP报文时,将采用中继模式对报文进行处理。
l 中继模式:当接口收到DHCP客户端发来的DHCP报文时,将报文转发给外部DHCP服务器,由外部服务器分配地址。
与DHCP相关的协议规范有:
l RFC2131:Dynamic Host Configuration Protocol
l RFC2132:DHCP Options and BOOTP Vendor Extensions
l RFC1542:Clarifications and Extensions for the Bootstrap Protocol
由于在IP地址动态获取过程中采用广播方式发送报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。
DHCP中继功能的引入解决了这一难题:子网内的客户端可以通过DHCP中继与其他子网的DHCP服务器通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。
图2-1是DHCP中继的典型应用示意图。
图2-1 DHCP中继的典型组网应用
DHCP中继提供对DHCP广播报文的透明传输功能,能够把DHCP客户端(或服务器)的广播报文透明地传送到其它网段的DHCP服务器(或客户端)上。
通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继的基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2 IP地址动态获取过程”。
(1) DHCP客户端以广播方式发送DHCP-DISCOVER报文。
(2) 具有DHCP中继功能的网络设备收到该广播报文后,将根据配置将报文单播转发给指定的DHCP服务器。
(3) DHCP服务器进行IP地址的分配,并通过DHCP中继将配置信息发送给客户端(发送方式根据客户端发送的DHCP-DISCOVER报文中的flag字段决定,具体请见1.3 DHCP报文格式的介绍),完成对客户端的动态配置。
option 82是DHCP报文中的中继代理信息选项(Relay Agent Information option)。当DHCP Client发送请求报文到DHCP Server时,若需要经过DHCP中继,则由DHCP中继将option 82添加到请求报文中。option 82包含很多sub-option,本章中的option 82只支持sub-option 1和sub-option 2。sub-option 1中定义了代理电路ID(即Circuit ID),sub-option 2中定义了代理远程ID(即Remote ID)。
option 82实现了DHCP客户端和DHCP中继设备的地址信息在DHCP服务器上的记录,与其他软件配合使用可以实现DHCP分配的限制和计费功能。
l option:DHCP报文中的一个选项,该选项在DHCP报文中为可变长的字段,option选项中包含了部分租约信息、报文类型等。option选项中最多可以包括255个option,最少为1个option。
l option 82:option 82又称为中继代理信息选项,是DHCP报文中option内容的一部分。RFC3046中定义了option 82,其位置在option 255之前而在其他option之后。option 82中可以包含最多255个sub-option,若定义了option 82,至少要定义一个sub-option。目前option 82中常用sub-option 1、sub-option 2和sub-option 5。
l sub-option 1:sub-option 1是option 82的一个子选项,为代理电路ID(即Circuit ID)子项。子选项通常在DHCP中继设备上配置,定义了在传输报文的时候要携带DHCP客户端所连接交换机端口的端口编号及端口所属VLAN的编号。通常sub-option 1与sub-option 2子选项要共同使用来标识DHCP源端的信息。
l sub-option 2:sub-option 2也是option 82的一个子选项,为代理远程ID(即Remote ID)子项。该子选项也通常在DHCP中继设备上配置,定义了在传输报文的时候要携带中继设备的MAC地址信息。通常与sub-option 1子选项要共同使用来标识DHCP源端的信息。
与DHCP中继支持option 82相关的协议规范有:
l RFC2131 Dynamic Host Configuration Protocol
l RFC3046 DHCP Relay Agent Information option
DHCP客户端通过DHCP中继从DHCP服务器获取IP地址的过程与直接从DHCP服务器获取IP地址的过程基本相同,都要经历发现、提供、选择和确认四个阶段,这里将只介绍DHCP中继支持option 82时的工作机制,具体如下:
(1) DHCP客户端在初始化时以广播的形式发送请求报文;
(2) 若本地网络存在DHCP服务器,则客户端可以直接从该服务器获取IP地址。若本地网络没有DHCP服务器,则与本地网络相连的DHCP中继设备对该广播报文进行相应的处理。DHCP中继设备将检查报文中是否已有option 82选项,并进行相应的处理。
(3) 如果报文中已有option 82,设备按照配置的策略对该报文进行处理(丢弃、用中继设备本身的option 82项替代报文中原有的option 82项或保持报文原有的option 82项),然后将请求报文转发给DHCP服务器
(4) 若请求报文中没有option 82选项,则DHCP中继设备将option 82选项添加到报文中后转发给DHCP服务器。此时,请求报文中将包含了DHCP客户端所连接的交换机端口的端口编号、端口所属VLAN的编号以及DHCP中继设备本身的MAC地址。
(5) DHCP服务器收到DHCP中继设备转发的DHCP请求报文后,将记录报文中option选项所携带的信息,然后将携带DHCP配置信息以及option 82信息的报文发给DHCP中继。
(6) DHCP中继收到DHCP服务器的返回报文后将剥离报文中的option 82信息,然后将带有DHCP配置信息的报文转发给DHCP客户端。
& 说明:
DHCP客户端发送的请求报文有两种,分别为DHCP-DISCOVER报文和DHCP-REQUEST报文。由于不同厂商生产的DHCP服务器设备对请求报文的处理机制不同,有些设备处理DHCP-DISCOVER报文中的option 82信息,而有些处理DHCP-REQUEST报文中的option 82信息,因此DHCP中继设备将在这两种报文中都添加option 82选项。
& 说明:
当交换机处于堆叠状态,要在交换机上配置DHCP中继时,必须保证交换机上已经使能了UDP-Helper配置。
表2-1 DHCP中继配置任务简介
配置任务 |
说明 |
详细配置 |
使能DHCP服务 |
必选 |
|
配置接口工作在DHCP中继模式 |
必选 |
|
配置DHCP中继的安全功能 |
可选 |
|
配置DHCP中继支持option 82功能 |
可选 |
在进行DHCP中继配置之前,需要先使能DHCP服务。只有使能该服务后,其它相关的DHCP配置才能生效。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于使能状态 |
在配置接口工作在中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给外部DHCP服务器,由外部服务器分配地址。
为了提高可靠性,可以在一个网络中设置多个DHCP服务器。多个DHCP服务器构成一个DHCP服务器组。当接口与DHCP服务器组建立归属关系后,会将DHCP报文转发给服务器组中的所有服务器。
表2-3 配置接口工作在DHCP中继模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器组中DHCP服务器的地址 |
dhcp-server groupNo ip ip-address&<1-8> |
必选 缺省情况下,没有配置DHCP服务器组中的服务器的IP地址 |
配置接口与DHCP服务器组的归属关系 |
interface interface-type interface-number |
必选 缺省情况下,VLAN接口没有与任何一个DHCP服务器组建立归属关系 |
dhcp-server groupNo |
& 说明:
E352&E328以太网交换机为防止恶意用户对未使用SOCKET的攻击,提高交换机的安全性,提供了如下功能:
l 在启动DHCP功能时,才打开DHCP使用的UDP 67和UDP 68端口。
l 在关闭DHCP功能时,同时关闭UDP 67和UDP 68端口。
具体的实现是:
l 执行dhcp-server命令配置DHCP服务器组后,即同时打开DHCP使用的UDP 67和UDP 68端口。
l 执行undo dhcp-server命令删除DHCP接口地址池,并关闭其它DHCP服务,即同时关闭DHCP使用的UDP 67和UDP 68端口。
& 说明:
l 每个DHCP服务器组最多可以配置8个外部DHCP服务器地址。
l 每个DHCP服务器组可以对应多个接口。但每个接口只能对应一个DHCP服务器组。
l 如果多次执行dhcp-server groupNo命令,新的配置会覆盖已有配置。
l VLAN接口视图下的dhcp-server groupNo命令中所指定的组号,需事先通过dhcp-server groupNo ip ip-address&<1-8>命令进行配置。
如果网络中有私自架设的DHCP服务器,当客户端申请IP地址时,这台DHCP服务器就会与DHCP客户端进行交互,导致客户端获得错误的IP地址,这种私设的DHCP服务器称为伪DHCP服务器。
在DHCP Relay上使能伪DHCP服务器检测功能后,当DHCP客户端发送DHCP-REQUEST报文时,DHCP Relay会从报文中获取给客户端分配IP地址的服务器的IP地址,并记录此IP地址及接收到报文的接口信息,以便管理员及时发现并处理伪DHCP服务器。
表2-4 配置伪DHCP服务器检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能伪DHCP服务器检测功能 |
dhcp-server detect |
必选 缺省情况下,禁止伪DHCP服务器检测功能 |
在配置DHCP中继支持option 82功能前需要先进行下列配置:
l 配置DHCP中继设备的网络参数及中继功能
l 配置DHCP服务器的网络参数、地址池及地址分配租期等分配策略
l 通过配置保证中继和服务器之间路由可达
本节的配置需要在启动了DHCP中继的网络设备上进行。
表2-5 配置DHCP中继支持option82功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP中继支持option 82功能 |
dhcp relay information enable |
必选 缺省情况下,DHCP中继不支持option 82功能 |
配置DHCP中继对包含option 82的请求报文的处理策略 |
dhcp relay information strategy { drop | keep | replace } |
可选 缺省情况下,处理策略为replace |
& 说明:
l 缺省情况下,使能DHCP中继支持option 82功能后,设备对包含option 82的请求报文将采用replace策略进行处理。但如果之前配置了其他处理策略,则使能DHCP中继支持option 82功能的操作不会改变已经配置的处理策略。
l 为使option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。
完成上述配置后,在任意视图下执行display命令,可以显示配置DHCP中继后的运行情况。通过查看显示信息,用户可以验证配置的效果。在用户视图下使用reset命令可以清除指定DHCP Server组的统计信息。
表2-6 DHCP中继显示
操作 |
命令 |
说明 |
显示DHCP Server组的相关信息 |
display dhcp-server groupNo |
display命令可在任意视图下执行 |
显示VLAN接口对应的DHCP Server组的相关信息 |
display dhcp-server interface Vlan-interface vlan-id |
|
清除指定DHCP Server组的统计信息 |
reset dhcp-server groupNo |
reset命令可以在用户视图下执行 |
DHCP客户端所在的网段地址为10.110.0.0/16,连接到交换机的VLAN2中的端口。DHCP服务器的IP地址为202.38.1.2。需要通过具有DHCP中继功能的交换机中继DHCP报文,使DHCP客户端可以从DHCP服务器上申请到IP地址等相关配置信息。
图2-2 DHCP中继组网示意图
# 进入系统视图。
<H3C> system-view
# 使能DHCP服务。
[H3C] dhcp enable
# 配置DHCP Server的组号为1,IP地址为202.38.1.2。
[H3C] dhcp-server 1 ip 202.38.1.2
# 配置VLAN接口2对应DHCP Server组1。
[H3C] interface Vlan-interface 2
[H3C-Vlan-interface2] dhcp-server 1
# 配置VLAN接口2的IP地址,需与DHCP Client属于同一网段。
[H3C-Vlan-interface2] ip address 10.110.1.1 255.255.0.0
& 说明:
为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置。由于作为DHCP服务器的设备不同,所需进行的配置也不同,故此处从略。
客户端不能通过DHCP中继获得配置信息。
可能中继的配置有问题。DHCP中继功能不正常时,可以打开调试开关,并通过执行display命令以显示调试信息和接口状态信息的方法来分析定位。
l 检查DHCP服务器和DHCP中继是否使能了DHCP服务。
l 检查DHCP服务器是否配置有DHCP客户端所在网段的地址池。
l 检查具有DHCP中继功能的网络设备和DHCP服务器是否配置有相互可达的路由。
l 检查具有DHCP中继功能的网络设备,查看在连接DHCP客户端所在网段的接口上是否配置有正确的DHCP服务器组,DHCP服务器组的IP地址配置是否正确。
出于安全性的考虑,网络管理员可能需要记录用户上网时所用的IP地址,确认用户从DHCP Server获取的IP地址和用户主机的MAC地址的对应关系。
l 三层交换机可以通过DHCP Relay记录用户的IP地址信息。
l 二层交换机可以通过DHCP Snooping功能监听DHCP广播报文,记录用户的IP地址信息。
另外,在网络中如果有私自架设的DHCP服务器,将可能导致用户得到错误的IP地址。为了使用户能通过合法的DHCP服务器获取IP地址,DHCP Snooping安全机制允许将端口设置为信任端口与不信任端口。
l 信任端口连接DHCP服务器或其他交换机的端口;不信任端口连接用户或网络。
l 不信任端口将接收到的DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文丢弃;而信任端口接收到的DHCP报文将被正常转发,从而保证用户获取正确的IP地址。
DHCP Snooping功能在E352&E328以太网交换机应用的典型组网如图3-1所示。图中的Switch A为E352&E328以太网交换机。
DHCP Client与DHCP Server间的报文交互过程如图3-2所示:
图3-2 DHCP Client与DHCP Server间报文交互过程
DHCP Snooping通过以下两种方法来获得用户从DHCP Server获取的IP地址和用户MAC地址信息:
l 监听DHCP-ACK报文
l 监听DHCP-REQUEST报文
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启交换机DHCP-Snooping功能 |
dhcp-snooping |
必选 缺省情况下,以太网交换机的DHCP-Snooping功能处于禁止状态 |
进入以太网端口视图 |
interface interface-type interface-number |
- |
指定连接到DHCP服务器方向的端口为信任端口 |
dhcp-snooping trust |
可选 缺省情况下,交换机的端口均为不信任端口 |
& 说明:
在交换机堆叠的情况下使能DHCP Snooping特性时,请将堆叠中所有设备上的堆叠端口设定为信任端口,以保证各设备连接的用户均可以正常分配到IP地址。
如图3-1所示,SwitchA(E352)的端口Ethernet1/0/1与DHCP Relay相连,端口Ethernet1/0/2与DHCP Client端网络相连。
l 在交换机上开启DHCP-Snooping功能
l 设置交换机端口Ethernet1/0/1为信任端口
# 进入系统视图。
<H3C> system-view
# 开启交换机DHCP-Snooping功能。
[H3C] dhcp-snooping
# 进入Ethernet1/0/1端口视图。
[H3C] interface Ethernet1/0/1
# 设置端口为信任端口。
[H3C-Ethernet1/0/1] dhcp-snooping trust
完成上述配置后,在任意视图下执行display命令,可以显示配置DHCP-Snooping后的运行情况。通过查看显示信息,用户可以验证配置的效果。
操作 |
命令 |
说明 |
显示通过DHCP-Snooping记录的用户IP地址和MAC地址的对应关系 |
display dhcp-snooping [ unit unit-id ] |
display命令可在任意视图下执行 |
显示DHCP-Snooping使能状态及信任端口信息 |
display dhcp-snooping trust |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!