23-DHCP操作
本章节下载 (613.74 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 本地DHCP接口地址池模式:当接口收到DHCP客户端发来的DHCP报文时,将会优先从本地DHCP服务器的接口地址池中分配地址;如果接口地址池中没有可供分配的地址,则会再从包含该接口地址池网段的全局地址池中进行分配。
l 中继模式:当接口收到DHCP客户端发来的DHCP报文时,将报文转发给外部DHCP服务器,由外部服务器分配地址。
可以通过配置决定如何处理这些报文。上述前两种模式的具体配置请参见“第2章 DHCP服务器配置”,中继模式的具体配置请参见“第3章 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
在以下场合通常利用DHCP服务器来完成IP地址分配:
l 网络规模较大,手工配置需要很大的工作量,并难以对整个网络进行集中管理。
l 网络中主机数目大于该网络支持的IP地址数量,无法给每个主机分配一个固定的IP地址,且对同时接入网络的用户数目也有限制(比如,Internet接入服务提供商即属于这种情况),大量用户必须通过DHCP服务动态获得自己的IP地址。
l 网络中只有少数主机需要固定的IP地址,大多数主机没有固定IP地址的需求。
DHCP服务器从地址池中为客户端选择并分配IP地址及其他相关参数。当作为DHCP服务器的设备收到客户端发来的DHCP请求时,将根据配置选择合适的地址池,并从中挑选一个空闲的IP地址,与其他相关参数(如DNS服务器地址、地址租用期限等)一起发送给客户端。
DHCP服务器的地址池有两种:全局地址池及接口地址池。其中:
l 全局地址池是通过系统视图下的dhcp server ip-pool命令创建的,在本设备范围内有效。
l 接口地址池是在为接口配置了合法的单播IP地址,且在接口视图下配置dhcp select interface命令后由系统创建的,它的地址范围就是此接口所在的网段,并且只在此接口下有效。
DHCP服务器的地址池采用树状结构:树根是自然网段的地址池,分支是该网段的子网地址池,叶节点是手工绑定的客户端地址。同一级别地址池的顺序由配置的先后决定。这种树状结构实现了配置的继承性,即子网配置继承自然网段的配置,客户端的配置继承子网的配置。这样,对于一些通用参数(如域名),只需要在自然网段或者子网上配置即可。具体的继承情况如下:
(1) 在父子关系建立时,子地址池将会继承父地址池的配置。
(2) 在父子关系建立后,对父地址池进行的配置,子地址池是否会继承,则有下面两种情况:
l 如果子地址池没有该项配置,则子地址池将会继承父地址池的配置;
l 如果子地址池已有该项配置,则子地址池将不会继承父地址池的配置。
DHCP服务器的接口可以工作在全局地址池或接口地址池模式。如果配置DHCP服务器的接口工作在接口地址池模式,则会优先从接口地址池中分配地址;如果接口地址池中没有可供分配的地址,则会再从包含该接口地址池网段的全局地址池中进行分配。
DHCP服务器从接口地址池或全局地址池中为客户端分配IP地址的优先次序如下:
l DHCP服务器中与客户端MAC地址静态绑定的IP地址。
l 客户端以前曾经使用过的IP地址,即DHCP服务器记录的曾经分配的租约中的IP地址;如果租约中没有记录且客户端发送的DHCP-DISCOVER报文中包含option 50字段,则按该字段请求的地址进行分配。
l 在DHCP地址池中,顺序查找可供分配的IP地址,最先找到的IP地址。
l 如果未找到可用的IP地址,则依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。
表2-1 基于全局地址池的DHCP服务器配置任务简介
配置任务 |
说明 |
详细配置 |
|
使能DHCP服务 |
必选 |
||
配置接口工作在DHCP服务器全局地址池模式 |
可选 |
||
配置采用DHCP全局地址池进行地址分配 |
配置采用静态绑定方式进行地址分配 |
二者必选其一,且对同一个全局地址池只能选一种方式 |
|
配置采用动态分配方式进行地址分配 |
|||
配置DHCP服务器支持DNS服务 |
可选 |
||
配置DHCP服务器支持NetBIOS服务 |
可选 |
||
配置DHCP自定义选项 |
可选 |
||
配置DHCP客户端的网关地址 |
可选 |
在进行DHCP配置之前,需要先使能DHCP服务。只有使能该服务后,其它相关的DHCP配置才能生效。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于使能状态 |
在配置接口工作在DHCP服务器全局地址池模式之后,当接口收到DHCP客户端发来的DHCP报文时,将从DHCP服务器的全局地址池中分配地址。
表2-3 配置接口工作在DHCP服务器全局地址池模式
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置接口工作在DHCP服务器全局地址池模式 |
配置当前接口 |
interface interface-type interface-number |
可选 缺省情况下,接口工作在DHCP服务器全局地址池模式 |
dhcp select global |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp select global { interface interface-type interface-number [ to interface-type interface-number ] | all } |
根据客户端的实际需要,可以选择采用静态地址绑定方式或动态地址分配方式,在全局地址池中,只能设置一个IP地址以静态绑定分配方式,其余地址均采用动态地址分配方式。
动态地址分配需要指定用于分配的地址范围,而静态地址绑定则可以看做是只包含一个地址的特殊的DHCP地址池。
某些客户端(如WWW服务器等)需要固定的IP地址,可以通过将客户端的MAC地址与IP地址绑定的方式实现。当具有此MAC地址的客户端申请IP地址时,DHCP服务器将根据客户端的MAC地址查找到对应的IP地址,并分配给客户端。
目前一个全局DHCP地址池中只支持一个IP地址与MAC地址的静态绑定。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建DHCP全局地址池 |
配置静态绑定的IP地址 |
static-bind ip-address ip-address [ mask mask ] |
必选 缺省情况下,没有配置静态绑定的IP地址 |
配置静态绑定的客户端MAC地址 |
static-bind mac-address mac-address |
必选 缺省情况下,没有配置静态绑定的MAC地址 |
& 说明:
l static-bind ip-address和static-bind mac-address命令必须配合使用。
l 在同一个全局DHCP地址池中,如果多次执行static-bind ip-address或static-bind mac-address命令,新的配置会覆盖已有配置。
l 静态绑定的IP地址不能是DHCP服务器的接口IP地址,否则静态绑定不生效。
l 客户端获得的静态绑定IP地址具有永久使用期限,不受地址池中配置的地址租期限制。
对于动态分配给客户端的地址(包括永久的和租用期有限的动态地址),都需要配置地址池范围。目前,同一地址池中只能配置一个地址段,通过掩码设定地址范围的大小。
DHCP服务器在分配地址时,需要排除已经被占用的IP地址(如网关、FTP服务器等),否则,同一地址分配给两个客户端会造成IP地址冲突。
对于不同的地址池,DHCP服务器可以指定不同的地址租用期限,但同一DHCP地址池中的地址具有相同的期限。地址租用有效期限不具有继承关系,即子地址池的地址租用期限不受父地址池配置的影响。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建DHCP全局地址池 |
配置动态分配的IP地址范围 |
network ip-address [ mask mask ] |
必选 缺省情况下,没有配置动态分配的IP地址范围,即没有可供分配的地址 |
配置动态分配的IP地址租用有效期限 |
expired { day day [ hour hour [ minute minute ] ] | unlimited } |
可选 缺省情况下,IP地址租用有效期限为1天 |
退回系统视图 |
quit |
- |
配置DHCP地址池中不参与自动分配的IP地址 |
dhcp server forbidden-ip low-ip-address [ high-ip-address ] |
可选 缺省情况下,DHCP地址池中的所有IP地址都参与自动分配 |
& 说明:
l 在同一个DHCP全局地址池中,如果多次执行network命令,新的配置会覆盖已有配置。
l 多次执行dhcp server forbidden-ip命令,可以配置多个不参与自动分配的IP地址段。
主机通过域名访问Internet时,需要将域名解析为IP地址,这是通过DNS(Domain Name System,域名系统)实现的。为了使DHCP客户端通过域名成功访问Internet,DHCP服务器应在为客户端分配IP地址的同时指定DNS服务器地址。目前,每个DHCP地址池最多可以配置8个DNS服务器地址。
在DHCP服务器上,可以为每个地址池指定客户端使用的域名。在给客户端分配IP地址的同时,也将域名发送给客户端。
表2-6 配置DHCP服务器支持DNS服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建DHCP全局地址池 |
配置为DHCP客户端分配的域名 |
domain-name domain-name |
必选 缺省情况下,没有配置为DHCP客户端分配的域名 |
配置为DHCP客户端分配的DNS服务器地址 |
dns-list ip-address&<1-8> |
必选 缺省情况下,没有配置DNS服务器地址 |
对于使用Windows Microsoft操作系统的客户端,由WINS(Windows Internet Naming Service,Windows Internet名称服务)服务器为通过NetBIOS协议通信的主机提供主机名到IP地址的解析。所以,大部分Windows网络客户端需要进行WINS的设置。目前,每个DHCP地址池最多可以配置8个WINS服务器地址。
DHCP客户端在网络上使用NetBIOS协议通信时,需要在主机名和IP地址之间建立映射关系。根据获取映射关系方式的不同,NetBIOS节点分为四种:
l b类节点(b-node):“b”代表广播(broadcast),即此类节点采用广播方式获取映射关系。源节点通过发送带有目的节点主机名的广播报文来获取目的节点的IP地址,目的节点收到广播报文后,就将自己的IP地址返回给源节点。
l p类节点(p-node):“p”代表端到端(peer-to-peer),即此类节点采用发送单播报文与WINS服务器通信的方式获取映射关系。源节点给WINS服务器发送单播报文,如果WINS服务器收到单播报文后,就返回源节点所请求的目的节点名所对应的IP地址。
l m类节点(m-node):“m”代表混合(mixed),是具有部分广播特性的p类节点。即此类节点首先发送广播报文来获取映射关系,如果没有获取到,则再发送单播报文与WINS服务器通信来获取映射关系。
l h类节点(h-node):“h”代表混合(hybrid),是具备“端到端”通信机制的b类节点。即此类节点首先发送单播报文与WINS服务器通信来获取映射关系,如果没有获取到,再发送广播报文来获取映射关系。
表2-7 配置DHCP服务器支持NetBIOS服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建DHCP全局地址池 |
配置为DHCP客户端分配的WINS服务器地址 |
nbns-list ip-address&<1-8> |
必选 缺省情况下,没有配置WINS服务器地址 |
配置DHCP客户端的NetBIOS节点类型 |
netbios-type { b-node | h-node | m-node | p-node } |
可选 缺省情况下,交换机不指定DHCP客户端的NetBIOS节点类型,客户端采用h类节点(h-node) |
随着DHCP的不断发展,新的可选配置项会陆续出现,为了支持这些新的选项,可以通过手工定义的方式将新选项添加到DHCP服务器的属性列表中。
表2-8 配置DHCP自定义选项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建任何DHCP全局地址池 |
配置DHCP自定义选项 |
option code { ascii ascii-string | hex hex-string&<1-10> | ip-address ip-address&<1-8> } |
必选 缺省情况下,没有配置DHCP自定义选项 |
DHCP客户端访问本网段以外的服务器或主机时,数据必须通过网关进行转发。DHCP服务器可以在为客户端分配IP地址的同时指定网关的地址。
在DHCP服务器上,可以为每个地址池分别指定客户端对应的网关地址。在给客户端分配IP地址的同时,也将网关地址发送给客户端。目前,每个DHCP地址池最多可以配置8个网关地址。
表2-9 配置DHCP客户端的网关地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建任何DHCP全局地址池 |
配置为DHCP客户端分配的网关地址 |
gateway-list ip-address&<1-8> |
必选 缺省情况下,没有配置DHCP客户端的网关地址 |
注意:
当采用接口地址池模式时,由于接口地址池中的地址全部分配完之后,将会从包含该接口地址池网段的全局地址池中进行分配,从而导致超过接口地址池可分配数量的客户端从全局地址池获取的IP地址与其他通过接口地址池获取IP地址的客户端不在同一网段,无法与其他客户端互通。
因此在采用接口地址池模式时,如果要求同一VLAN接口下的客户端分配到同一地址池内的地址,请注意该VLAN内连接的自动获取IP地址的客户端数量不要超过接口地址池可分配的数量。
接口地址池是在为接口配置了合法的单播IP地址,且在接口视图下配置dhcp select interface命令后由系统创建的,它的地址范围就是此接口所在的网段,并且只在此接口下有效。
对某些DHCP配置选项,系统提供对单个接口DHCP地址池配置以及同时对指定接口范围的多个接口地址池配置的功能,以方便用户配置,减少某些应用中的重复配置工作。
表2-10 基于接口地址池的DHCP服务器配置任务简介
配置任务 |
说明 |
详细配置 |
|
使能DHCP服务 |
必选 |
||
配置接口工作在DHCP服务器接口地址池模式 |
必选 |
||
配置采用DHCP接口地址池进行地址分配 |
配置采用静态绑定方式进行地址分配 |
二者必选其一,且二者可以同时配置 |
|
配置采用动态分配方式进行地址分配 |
|||
配置DHCP服务器支持DNS服务 |
可选 |
||
配置DHCP服务器支持NetBIOS服务 |
可选 |
||
配置DHCP自定义选项 |
可选 |
在进行DHCP配置之前,需要先使能DHCP服务。只有使能该服务后,其它相关的DHCP配置才能生效。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于使能状态 |
在配置接口工作在本地DHCP服务器接口地址池模式后,当接口收到DHCP客户端发来的DHCP报文时,将会优先从本地DHCP服务器的接口地址池中分配地址;如果接口地址池中没有可供分配的地址,则会再从包含该接口地址池网段的全局地址池中进行分配。
表2-12 配置接口工作在DHCP服务器接口地址池模式
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置接口工作在DHCP服务器接口地址池模式 |
配置当前接口 |
interface interface-type interface-number |
必选 缺省情况下,接口工作在DHCP服务器全局地址池模式 |
dhcp select interface |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp select interface { interface interface-type interface-number [ to interface-type interface-number ] | all } |
根据客户端的实际需要,可以选择采用静态地址绑定方式或动态地址分配方式。
某些客户端(如WWW服务器等)需要固定的IP地址,可以通过将客户端的MAC地址与IP地址绑定的方式实现。当具有此MAC地址的客户端申请IP地址时,DHCP服务器将根据客户端的MAC地址查找到对应的IP地址,并分配给客户端。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置静态绑定 |
dhcp server static-bind ip-address ip-address mac-address mac-address |
必选 缺省情况下,没有配置静态绑定 |
& 说明:
l 接口地址池静态绑定的IP地址必须与接口IP地址在同一网段。
l 一个接口地址池静态绑定的数量没有限制,只要绑定的IP地址与接口IP地址在同一网段即可。
l 一个IP地址只能与一个MAC地址进行静态绑定;同时,一个MAC地址也只能与一个IP地址进行静态绑定。
l 静态绑定的IP地址不能是DHCP服务器的接口IP地址,否则静态绑定不生效。
由于接口地址池是在为接口配置了合法的单播IP地址后自动创建的,它的动态分配的地址范围就是此接口所在的网段,并且只在此接口下有效。故不需再指定用于动态分配的地址范围。
DHCP服务器在分配地址时,会自动排除已经被占用的IP地址(如网关、FTP服务器等),否则,同一地址分配给两个客户端会造成IP地址冲突。
对于不同的地址池,DHCP服务器可以指定不同的地址租用期限,但同一DHCP地址池中的地址具有相同的期限。地址租用有效期限不具有继承关系,即子地址池的地址租用期限不受父地址池配置的影响。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置动态分配的IP地址租用有效期限 |
配置当前接口 |
interface interface-type interface-number |
可选 缺省情况下,IP地址租用有效期限为1天 |
dhcp server expired { day day [ hour hour [ minute minute ] ] | unlimited } |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp server expired { day day [ hour hour [ minute minute ] ] | unlimited } { interface interface-type interface-number [ to interface-type interface-number ] | all } |
||
配置DHCP地址池中不参与自动分配的IP地址 |
dhcp server forbidden-ip low-ip-address [ high-ip-address ] |
可选 缺省情况下,接口地址池中的所有IP地址都参与自动分配 |
& 说明:
l 多次执行dhcp server forbidden-ip命令,可以配置多个不参与自动分配的IP地址段。
l 无论是全局地址池还是接口地址池,配置地址池中不参与自动分配的IP地址的命令是相同的,即dhcp server forbidden-ip命令。
主机通过域名访问Internet时,需要将域名解析为IP地址,这是通过DNS(Domain Name System,域名系统)实现的。因此,为了使DHCP客户端成功接入Internet,DHCP服务器应在为客户端分配IP地址的同时指定DNS服务器地址。目前,每个接口地址池最多可以配置8个DNS服务器地址。
在DHCP服务器上,可以为每个接口地址池指定客户端使用的域名。在给客户端分配IP地址的同时,也将域名发送给客户端。
表2-15 配置DHCP服务器支持DNS服务
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置为DHCP客户端分配的域名 |
配置当前接口 |
interface interface-type interface-number |
必选 缺省情况下,没有配置为DHCP客户端分配的域名 |
dhcp server domain-name domain-name |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp server domain-name domain-name { interface interface-type interface-number [ to interface-type interface-number ] | all } |
||
配置为DHCP客户端分配的DNS服务器地址 |
配置当前接口 |
interface interface-type interface-number |
必选 缺省情况下,没有配置DNS服务器的地址 |
dhcp server dns-list ip-address&<1-8> |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp server dns-list ip-address&<1-8> { interface interface-type interface-number [ to interface-type interface-number ] | all } |
对于使用Windows Microsoft操作系统的客户端,由WINS(Windows Internet Naming Service,Windows Internet名称服务)服务器为通过NetBIOS协议通信的主机提供主机名到IP地址的解析。所以,大部分Windows网络客户端需要进行WINS的设置。目前,每个DHCP地址池最多可以配置8个WINS服务器地址。
DHCP客户端在网络上使用NetBIOS协议通信时,需要在主机名和IP地址之间建立映射关系。根据获取映射关系方式的不同,NetBIOS节点分为四种:
l b类节点(b-node):“b”代表广播(broadcast),即此类节点采用广播方式获取映射关系。源节点通过发送带有目的节点主机名的广播报文来获取目的节点的IP地址,目的节点收到广播报文后,就将自己的IP地址返回给源节点。
l p类节点(p-node):“p”代表端到端(peer-to-peer),即此类节点采用发送单播报文与WINS服务器通信的方式获取映射关系。源节点给WINS服务器发送单播报文,如果WINS服务器收到单播报文后,就返回源节点所请求的目的节点名所对应的IP地址。
l m类节点(m-node):“m”代表混合(mixed),是具有部分广播特性的p类节点。即此类节点首先发送广播报文来获取映射关系,如果没有获取到,则再发送单播报文与WINS服务器通信来获取映射关系。
l h类节点(h-node):“h”代表混合(hybrid),是具备“端到端”通信机制的b类节点。即此类节点首先发送单播报文与WINS服务器通信来获取映射关系,如果没有获取到,再发送广播报文来获取映射关系。
表2-16 配置DHCP服务器支持NetBIOS服务
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置为DHCP客户端分配的WINS服务器地址 |
配置当前接口 |
interface interface-type interface-number |
必选 缺省情况下,没有配置WINS服务器的IP地址 |
dhcp server nbns-list ip-address&<1-8> |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp server nbns-list ip-address&<1-8> { interface interface-type interface-number [ to interface-type interface-number ] | all } |
||
配置DHCP客户端的NetBIOS节点类型 |
配置当前接口 |
interface interface-type interface-number |
必选 缺省情况下,交换机不指定接口DHCP地址池的客户端NetBIOS节点类型,客户端采用h类节点(h-node) |
dhcp server netbios-type { b-node | h-node | m-node | p-node } |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp server netbios-type { b-node | h-node | m-node | p-node } { interface interface-type interface-number [ to interface-type interface-number ] | all } |
随着DHCP的不断发展,新的可选配置项会陆续出现,为了支持这些新的选项,可以通过手工定义的方式将新选项添加到DHCP服务器的属性列表中。
表2-17 配置DHCP自定义选项
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
配置DHCP自定义选项 |
配置当前接口 |
interface interface-type interface-number |
必选 缺省情况下,没有配置DHCP自定义选项 |
dhcp server option code { ascii ascii-string | hex hex-string&<1-10> | ip-address ip-address&<1-8> } |
|||
quit |
|||
系统视图下,同时配置多个接口 |
dhcp server option code { ascii ascii-string | hex hex-string&<1-10> | ip-address ip-address&<1-8> } { interface interface-type interface-number [ to interface-type interface-number ] | all } |
在配置DHCP服务器后,为了提高DHCP服务的安全性,需要配置DHCP服务的安全功能。
在配置DHCP服务的安全功能之前,需完成DHCP服务器配置任务,可以是基于全局地址池,也可以是基于接口地址池。
如果网络中有私自架设的DHCP服务器,当客户端申请IP地址时,这台DHCP服务器就会与DHCP客户端进行交互,导致客户端获得错误的IP地址,这种私设的DHCP服务器称为伪DHCP服务器。
在DHCP服务器上使能伪DHCP服务器检测功能后,当DHCP客户端发送DHCP-REQUEST报文时,DHCP服务器会从报文中获取给客户端分配IP地址的服务器的IP地址,并记录此IP地址及接收到报文的接口信息,以便管理员及时发现并处理伪DHCP服务器。
表2-18 配置伪DHCP服务器检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能伪DHCP服务器检测功能 |
dhcp server detect |
必选 缺省情况下,禁止伪DHCP服务器检测功能 |
为防止IP地址重复分配导致地址冲突,DHCP服务器为客户端分配地址前,需要先对该地址进行探测。
地址探测是通过ping功能实现的,通过检测是否能在指定时间内得到ping响应来判断是否有地址冲突。DHCP服务器发送目的地址为待分配地址的ICMP报文,如果在指定时间内没有得到响应,则继续发送ICMP报文,直到ping操作的次数达到最大值,如果仍然没有得到响应,则将地址分配给客户端,从而确保分配给客户端的IP地址是唯一的。
表2-19 配置IP地址重复分配检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器ping操作的次数 |
dhcp server ping packets number |
可选 缺省情况下,ping操作的次数为2 |
配置DHCP服务器等待响应的时间 |
dhcp server ping timeout milliseconds |
可选 缺省情况下,等待ping响应的最长时间为500毫秒 |
完成上述配置后,在任意视图下执行display命令,可以显示配置DHCP服务器后的运行情况。通过查看显示信息,用户可以验证配置的效果。在用户视图下使用reset命令清除DHCP服务器的相关信息。
表2-20 DHCP服务器配置显示和维护
操作 |
命令 |
说明 |
查看DHCP的地址冲突统计信息 |
display dhcp server conflict { all | ip ip-address } |
display命令可以在任意视图下执行 |
查看DHCP地址池中的租约超期信息 |
display dhcp server expired { ip ip-address | pool [ pool-name ] | interface [ interface-type interface-number ] | all } |
|
查看DHCP地址池的可用地址信息 |
display dhcp server free-ip |
|
查看DHCP地址池中的地址绑定信息 |
display dhcp server ip-in-use { ip ip-address | pool [ pool-name ] | interface [ interface-type interface-number ] | all } |
|
查看DHCP服务器的统计信息 |
display dhcp server statistics |
|
查看DHCP地址池的树状结构信息 |
display dhcp server tree { pool [ pool-name ] | interface [ interface-type interface-number ] | all } |
|
清除DHCP地址冲突统计信息 |
reset dhcp server conflict { all | ip ip-address } |
reset命令在用户视图下执行 |
清除DHCP动态地址绑定信息 |
reset dhcp server ip-in-use { ip ip-address | pool [ pool-name ] | interface [ interface-type interface-number ] | all } |
|
清除DHCP服务器的统计信息 |
reset dhcp server statistics |
& 说明:
DHCP服务器的租约信息不会在执行save命令时保存到flash中,故当系统重新启动或使用reset dhcp server ip-in-use命令清除租约后,配置文件中将没有任何租约信息。此时客户端如果发出续约请求将会被拒绝,系统会让客户端重新申请IP地址。
常见的DHCP组网方式可分为两类:一种是DHCP服务器和客户端都在一个子网内,直接进行DHCP协议的交互;第二种是DHCP服务器和客户端分别处于不同的子网中,必须通过DHCP中继代理实现IP地址的分配。无论哪种情况下,DHCP服务器的配置都是相同的。
DHCP服务器为同一网段中的客户端动态分配IP地址,地址池网段10.1.1.0/24分为两个子网段:10.1.1.0/25和10.1.1.128/25。作为DHCP服务器的交换机的两个VLAN接口VLAN接口1和VLAN接口2的地址分别为10.1.1.1/25和10.1.1.129/25。
l 10.1.1.0/25网段内的地址租用期限为10天12小时,域名为aabbcc.com,DNS服务器地址为10.1.1.2,无WINS服务器地址,出口网关的地址为10.1.1.126。
l 10.1.1.128/25网段内的地址租用期限为5天,域名为aabbcc.com,DNS服务器地址为10.1.1.2,WINS服务器地址为10.1.1.4,出口网关的地址为10.1.1.254。
& 说明:
如果使用父子地址池的继承关系来进行配置时,请确保需要从一个子地址池分配的地址数目不要超过该子地址池可分配的数目,否则超出的申请将会从父地址池中进行分配,且所分配的属性(如出口网关等)也会按照父地址池的配置。
例如,本例中VLAN接口1所连接的网络中如果有多个客户端申请IP地址,将首先从子地址池10.1.1.0/25中进行分配,当子地址池10.1.1.0/25中的地址全部分配之后,如果还有客户端需要分配IP地址,则会继续从父地址池10.1.1.0/24中分配地址,且所分配的属性将按照父地址池的配置。
故在本例中,建议从VLAN接口1申请IP地址的客户端数目不要超过122个;从VLAN接口2申请IP地址的客户端不要超过124个。
图2-1 DHCP服务器与客户端在同一网络中
(1) 配置端口属于VLAN及对应VLAN接口的IP地址(略)
(2) 配置DHCP服务
# 使能DHCP服务。
<H3C> system-view
[H3C] dhcp enable
# 配置不参与自动分配的IP地址(DNS服务器、WINS服务器和出口网关地址)。
[H3C] dhcp server forbidden-ip 10.1.1.2
[H3C] dhcp server forbidden-ip 10.1.1.4
[H3C] dhcp server forbidden-ip 10.1.1.126
[H3C] dhcp server forbidden-ip 10.1.1.254
# 配置DHCP地址池0的共有属性(地址池范围、DNS服务器地址)。
[H3C] dhcp server ip-pool 0
[H3C-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[H3C-dhcp-pool-0] domain-name aabbcc.com
[H3C-dhcp-pool-0] dns-list 10.1.1.2
[H3C-dhcp-pool-0] quit
# 配置DHCP地址池1的属性(地址池范围、出口网关、地址租用期限)。
[H3C] dhcp server ip-pool 1
[H3C-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.128
[H3C-dhcp-pool-1] gateway-list 10.1.1.126
[H3C-dhcp-pool-1] expired day 10 hour 12
[H3C-dhcp-pool-1] quit
# 配置DHCP地址池2的属性(地址池范围、出口网关、WINS服务器地址、地址租用期限)。
[H3C] dhcp server ip-pool 2
[H3C-dhcp-pool-2] network 10.1.1.128 mask 255.255.255.128
[H3C-dhcp-pool-2] expired day 5
[H3C-dhcp-pool-2] nbns-list 10.1.1.4
[H3C-dhcp-pool-2] gateway-list 10.1.1.254
客户端从DHCP服务器动态获得的IP地址与其他主机IP地址冲突。
可能是网络上有主机私自配置了IP地址,导致冲突。
l 断开客户端的网线,从另外一台主机执行ping操作,设置较长超时时间,检查网络中是否已经存在该IP地址的主机。
l 如果能够收到ping操作的响应消息,则说明该IP地址已由用户静态配置。在DHCP服务器上执行dhcp server forbidden-ip命令,禁止该IP地址参与动态地址分配。
l 连接好客户端的网线,在客户端释放并重新获取IP地址。以Windows XP为例,在Windows环境下运行cmd进入DOS环境,使用ipconfig/release命令释放IP地址,之后使用ipconfig/renew重新获取IP地址。
由于在IP地址动态获取过程中采用广播方式发送报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。
DHCP中继功能的引入解决了这一难题:子网内的客户端可以通过DHCP中继与其他子网的DHCP服务器通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。
图3-1是DHCP中继的典型应用示意图。
图3-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分配的限制和计费功能。
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。
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中继设备将接收该广播报文,检查报文中是否已有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选项。
表3-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报文转发给服务器组中的所有服务器。
表3-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 |
& 说明:
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中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端的IP地址和MAC地址的对应关系,生成DHCP中继的动态用户地址表项。同时,设备也支持DHCP中继的静态用户地址表项配置,即在DHCP中继上手工配置IP地址、MAC地址之间的绑定关系。
为了防止非法用户静态配置一个IP地址,并访问其他网络,设备支持DHCP中继的地址匹配检查功能。当接口上使能了该功能后,如果用户配置的IP地址与用户的MAC地址的对应关系与DHCP中继的用户地址表(包括DHCP中继动态记录的表项以及手工配置的用户地址表项)不匹配,则DHCP中继将不允许该用户访问外部网络。
表3-4 配置DHCP中继的地址匹配检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP用户地址表项 |
dhcp-security static ip-address mac-address |
可选 缺省情况下,没有配置DHCP用户地址表项 |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP中继的地址匹配检查功能 |
address-check enable |
必选 缺省情况,禁止DHCP中继的地址匹配检查功能 |
本配置任务用来设置DHCP Relay生成的IP地址与MAC地址对应的动态表项为有效表项或者无效表项。只有设置DHCP中继生成的动态表项为有效表项,在开启了DHCP中继的地址匹配检查功能以后,才会根据动态表项的内容进行DHCP客户端地址匹配检查;否则,设备只根据静态配置的用户地址表项进行客户端的地址匹配检查。
表3-5 设置DHCP Relay的动态表项是否有效
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN接口视图 |
interface interface-type interface-number |
- |
设置DHCP Relay生成的动态表项为有效表项 |
address-check dhcp-relay enable |
可选 缺省情况下,DHCP Relay生成的IP地址与MAC地址对应的动态表项为有效表项 |
本配置只有在VLAN接口上的DHCP中继地址匹配检查功能启动后才起作用。
自由连接的机器是指IP地址和MAC地址都不在DHCP安全表表项中的机器。当设置不允许自由连接的机器通过DHCP安全检查时,自由连接的机器即使有合法IP地址也无法上网。
表3-6 设置DHCP Relay的动态表项是否有效
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN接口视图 |
interface interface-type interface-number |
- |
不允许自由连接的机器通过DHCP安全检查 |
address-check no-matched enable |
可选 自由连接的机器不能通过DHCP安全检查 |
本配置只有在VLAN接口上的DHCP中继地址匹配检查功能启动后才起作用。
在配置DHCP中继支持option 82功能前需要先进行下列配置:
l 配置DHCP中继设备的网络参数及中继功能
l 配置DHCP服务器的网络参数、地址池及地址分配租期等分配策略
l 通过配置保证中继和服务器之间路由可达
本节的配置需要在启动了DHCP中继的网络设备上进行。
表3-7 配置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 |
& 说明:
为使option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。
完成上述配置后,在任意视图下执行display命令,可以显示配置DHCP中继后的运行情况。通过查看显示信息,用户可以验证配置的效果。在用户视图下使用reset命令可以清除指定DHCP Server组的统计信息。
表3-8 DHCP中继显示
操作 |
命令 |
说明 |
显示DHCP Server组的相关信息 |
display dhcp-server groupNo |
display命令可在任意视图下执行 |
显示VLAN接口对应的DHCP Server组的相关信息 |
display dhcp-server interface Vlan-interface vlan-id |
|
显示DHCP Server组的合法用户地址表中所有用户的地址信息 |
display dhcp-security [ ip-address | dynamic | static ] |
|
清除指定DHCP Server组的统计信息 |
reset dhcp-server groupNo |
reset命令在用户视图下执行 |
DHCP客户端所在的网段地址为10.110.0.0/24,连接到交换机的VLAN2中的端口。DHCP服务器的IP地址为202.38.1.2。需要通过具有DHCP中继功能的交换机中继DHCP报文,使DHCP客户端可以从DHCP服务器上申请到IP地址等相关配置信息。
图3-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-OFFFER报文丢弃;而信任端口接收到的DHCP报文将被正常转发,从而保证了用户获取正确的IP地址。
DHCP-Snooping功能在S7500系列以太网交换机应用的典型组网如图4-1所示。图中的Switch A为S7500系列以太网交换机。
DHCP Client与DHCP Server间的报文交互过程如图4-2所示:
图4-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 |
必选 缺省情况下,交换机的端口均为不信任端口 |
& 说明:
l 设备上不能同时使能DHCP Relay和DHCP Snooping功能。如果设备上使能了DHCP Relay功能,则使能DHCP Snooping功能时会失败。
l dhcp-snooping trust 命令需要和dhcp-snooping命令同时配置,否则,可能在特定组网环境下出现dhcp报文丢包等情况。
有关option82的详细介绍,请参见3.1.3 DHCP中继支持option 82部分。
DHCP客户端通过DHCP-Snooping从DHCP服务器获取IP地址的过程与直接从DHCP服务器获取IP地址的过程完全相同,都要经历发现、提供、选择和确认四个阶段,这里将只介绍DHCP-Snooping支持option 82时的工作机制,具体如下:
(1) DHCP客户端在初始化时以广播的形式发送请求报文;
(2) DHCP-Snooping设备接收到该广播报文后,将检查报文中是否已有option 82选项,进行相应的处理。
l 如果报文中已有option 82,设备将使用本身的option 82项替代报文中原有的option 82项,然后将请求报文继续向外进行广播。
l 若请求报文中没有option 82选项,则DHCP-Snooping设备将option 82选项添加到报文中后再进行广播。
(3) 此时,由DHCP-Snooping设备广播发出的请求报文中将包含了DHCP客户端所连接的DHCP-Snooping设备端口的端口编号、端口所属VLAN以及DHCP-Snooping设备本身的MAC地址。
(4) DHCP服务器收到DHCP-Snooping设备广播的DHCP请求报文后,将记录报文中option选项所携带的信息,然后将带着DHCP配置信息以及option 82信息的报文发给DHCP-Snooping。
(5) DHCP-Snooping收到DHCP服务器的返回报文后,将对报文中的option82字段进行检查。
l 如果报文中的option82字段是本设备添加的,则剥离该字段,然后将带有DHCP配置信息的报文转发给DHCP客户端。
l 如果报文中的option82字段不是本设备添加的,则读取字段中包含的VLAN信息,并在此VLAN内对回复报文进行广播。
& 说明:
DHCP客户端发送的请求报文有两种,分别为DHCP_DISCOVER报文和DHCP_REQUEST报文。由于不同厂商生产的DHCP服务器设备对请求报文的处理机制不同,有些设备处理DHCP_DISCOVER报文中的option 82信息,而有些处理DHCP_REQUEST报文中的option 82信息,因此DHCP-Snooping设备将在这两种报文中都添加option 82选项。
在配置DHCP-Snooping支持option 82特性前需要先进行下列配置:
l DHCP-Snooping设备的网络参数
l 配置DHCP-Snooping功能
l DHCP服务器的网络参数、地址池及地址分配租期等分配策略
本节的配置需要在启动了DHCP-Snooping的网络设备上进行。
表4-2 配置DHCP-Snooping支持option82
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP-Snooping支持option 82的功能 |
dhcp-snooping information enable |
必选 缺省情况下,该功能处于关闭状态 |
完成上述配置后,在任意视图下执行display命令,可以显示配置DHCP中继后的运行情况。在用户视图下执行reset命令,可以清除DHCP-Snooping记录的用户IP地址与MAC地址的对应关系。
表4-3 DHCP-Snooping配置显示和维护
操作 |
命令 |
说明 |
显示通过DHCP-Snooping记录的用户IP地址和MAC地址的对应关系 |
display dhcp-snooping |
display命令可以在任意视图下执行 |
显示DHCP-Snooping使能状态及信任端口信息 |
display dhcp-snooping trust |
|
显示的DHCP-Snooping绑定表表项总数 |
display dhcp-snooping count |
|
显示指定VLAN的DHCP-Snooping绑定表 |
display dhcp-snooping vlan { vlan-list | all } |
|
清除DHCP-Snooping记录的用户IP地址与MAC地址的对应关系 |
reset dhcp-snooping [ ip-address ] |
reset命令在用户视图下执行 |
如图4-3所示:
Switch A的端口Ethernet2/0/1与DHCP Relay相连,端口Ethernet2/0/2与DHCP Client端的网络相连;
在Switch A上开启DHCP-Snooping功能;
DHCP-Snooping设备支持并启动了option 82选项;
设置Switch A的端口Ethernet2/0/1为信任端口。
图4-3 DHCP-Snooping配置示意图
以下配置,均在作为DHCP-Snooping设备的Switch A上进行。
# 进入系统视图。
<H3C> system-view
[H3C]
# 开启交换机DHCP-Snooping功能。
[H3C] dhcp-snooping
# 使能DHCP-Snooping支持option 82功能。
[H3C] dhcp-snooping information enable
# 进入Ethernet2/0/1端口视图。
[H3C] interface ethernet2/0/1
# 设置端口Ethernet2/0/1为信任端口。
[H3C-Ethernet2/0/1] dhcp-snooping trust
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!