17-DHCP操作
本章节下载 (1.53 MB)
随着网络规模的不断扩大和网络复杂度的提高,计算机的数量经常超过可供分配的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报文广播发送给客户端。
(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报文,表明地址不能分配给该客户端。
& 说明:
l 客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,并重新申请IP地址。
l 在网络中存在多个DHCP服务器的情况下,除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。
如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租借期限,当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP地址租约。
在DHCP客户端的IP地址租约期限达到一半时间时,DHCP客户端会向为它分配IP地址的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:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。
l htype、hlen:DHCP客户端的硬件地址类型及长度。
l hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
l xid:客户端发起一次请求时选择的32比特随机数,用来标识一次地址请求过程。
l secs:DHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0。
l flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送。其余比特保留不用。目前,设备只支持FLAG字段置1,即广播方式发送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服务器的IP地址、WINS服务器的IP地址等配置信息。
与DHCP相关的协议规范有:
l RFC 2131:Dynamic Host Configuration Protocol
l RFC 2132:DHCP Options and BOOTP Vendor Extensions
l RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
l RFC 3046:DHCP Relay Agent Information Option
& 说明:
l DHCP服务器中对于接口的相关配置,目前只能在VLAN接口上进行。
l DHCP服务器上不能配置DHCP Snooping功能。
在以下场合通常利用DHCP服务器来完成IP地址分配:
l 网络规模较大,手工配置需要很大的工作量,并难以对整个网络进行集中管理。
l 网络中主机数目大于该网络支持的IP地址数量,无法给每个主机分配一个固定的IP地址。例如,Internet接入服务提供商限制同时接入网络的用户数目,大量用户必须动态获得自己的IP地址。
l 网络中只有少数主机需要固定的IP地址,大多数主机没有固定IP地址的需求。
DHCP服务器从地址池中为客户端选择并分配IP地址及其他相关参数。当作为DHCP服务器的设备收到客户端发来的DHCP请求时,将根据配置选择合适的地址池,并从中挑选一个空闲的IP地址,与其他相关参数(如DNS服务器地址、地址租用期限等)一起发送给客户端。
DHCP服务器的地址池采用树状结构:树根是自然网段的地址池,分支是该网段的子网地址池,叶节点是手工绑定的客户端地址。同一级别地址池的顺序由配置的先后决定。这种树状结构实现了配置的继承性,即子网配置继承自然网段的配置,客户端的配置继承子网的配置。这样,对于一些通用参数(如域名),只需要在自然网段或者子网上配置即可。具体的继承情况如下:
(1) 在父子关系建立时,子地址池将会继承父地址池的已有配置。
(2) 在父子关系建立后,对父地址池进行的配置,子地址池是否会继承,有下面两种情况:
l 如果子地址池没有该项配置,则继承父地址池的配置;
l 如果子地址池已有该项配置,则不会继承父地址池的配置。
& 说明:
IP地址的租用有效期限不具有继承关系。
DHCP服务器地址池中为客户端分配IP地址的优先次序如下:
(1) DHCP服务器中与客户端MAC地址或客户端ID静态绑定的IP地址。
(2) DHCP服务器记录的曾经分配给客户端的IP地址。
(3) 客户端发送的DHCP-DISCOVER报文中Option 50字段指定的IP地址。
(4) 在DHCP地址池中,顺序查找可供分配的IP地址,最先找到的IP地址。
(5) 如果未找到可用的IP地址,则依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。
表2-1 DHCP服务器配置任务简介
操作 |
说明 |
详细说明 |
使能DHCP服务 |
必选 |
|
配置接口工作在DHCP服务器模式 |
可选 |
|
配置DHCP服务器的地址池 |
必选 |
|
配置DHCP服务器的安全功能 |
可选 |
|
配置DHCP服务器支持Option 82功能 |
可选 |
只有使能DHCP服务后,其它相关的DHCP配置才能生效。
表2-2 使能DHCP服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于禁止状态 |
配置接口工作在DHCP服务器模式后,当接口收到DHCP客户端发来的DHCP报文时,将从DHCP服务器的地址池中为客户端分配IP地址。
表2-3 配置接口工作在DHCP服务器模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCP服务器模式 |
dhcp select server global-pool [ subaddress ] |
可选 缺省情况下,接口工作在DHCP服务器模式 |
& 说明:
subaddress关键字只在DHCP服务器与客户端在同一网段时有效。如果客户端与服务器之间通过DHCP中继相连,则不管是否输入subaddress关键字,当服务器为客户端分配IP地址时,都是从与DHCP中继接口(与客户端相连的接口)的主IP地址在同一网段的地址池中选择地址分配给客户端。
& 说明:
当DHCP服务器与客户端在同一网段时,根据是否输入subaddress关键字,DHCP服务器的处理不同:
l 如果输入subaddress关键字,当服务器为客户端分配IP地址时,将从与服务器接口(与客户端相连的接口)的从IP地址在同一网段的地址池中选择地址分配给客户端。若接口有多个从IP地址,则从第一个从IP地址依次匹配;若接口上没有配置从IP地址,则服务器无法为客户端分配IP地址。
l 如果不输入subaddress关键字,当服务器为客户端分配IP地址时,将从与服务器接口(与客户端相连的接口)的主IP地址在同一网段的地址池中选择地址分配给客户端。
表2-4 DHCP服务器地址池配置任务简介
操作 |
说明 |
详细说明 |
|
创建DHCP地址池 |
必选 |
||
配置DHCP地址池的地址分配方式 |
配置采用静态绑定方式进行地址分配 |
二者必选其一,且对同一个地址池只能选一种方式 |
|
配置采用动态分配方式进行地址分配 |
|||
配置DHCP客户端的域名 |
可选 |
||
配置DHCP客户端的DNS服务器地址 |
可选 |
||
配置DHCP客户端的WINS服务器地址 |
可选 |
||
配置DHCP客户端的BIMS服务器信息 |
可选 |
||
配置DHCP客户端的网关地址 |
可选 |
||
配置DHCP客户端的Option 184参数 |
可选 |
||
配置DHCP客户端的TFTP服务器地址及启动文件名 |
可选 |
||
配置DHCP自定义选项 |
可选 |
表2-5 创建DHCP地址池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
必选 缺省情况下,没有创建DHCP地址池 |
注意:
根据客户端的实际需要,可以将地址池配置为采用静态绑定或动态分配方式进行地址分配,但对一个DHCP地址池不能同时配置这两种方式。
动态地址分配需要指定用于分配的地址范围,而静态地址绑定则可以看做是只包含一个地址的特殊的DHCP地址池。
某些客户端(如WWW服务器等)需要固定的IP地址,可以通过将客户端的MAC地址与IP地址绑定的方式实现。当具有此MAC地址的客户端申请IP地址时,DHCP服务器将根据客户端的MAC地址查找到对应的IP地址,并分配给客户端。
某些客户端在向DHCP服务器发送DHCP-DISCOVER报文申请IP地址时,会构建客户端ID并添加到报文中一起发送。如果在DHCP服务器上将客户端ID与IP地址绑定,则当该客户端申请IP地址时,DHCP服务器将根据客户端ID查找到对应的IP地址并分配给客户端。
目前一个DHCP地址池中只能配置一个静态绑定,可以是IP地址与MAC地址的绑定,也可以是IP地址与客户端ID的绑定。
表2-6 配置采用静态绑定方式进行地址分配
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
|
配置静态绑定的IP地址 |
static-bind ip-address ip-address [ mask-length | mask mask ] |
必选 缺省情况下,没有配置静态绑定的IP地址 |
|
配置静态绑定的MAC地址或客户端ID |
配置静态绑定的客户端MAC地址 |
static-bind mac-address mac-address |
二者必选其一 缺省情况下,没有配置静态绑定的MAC地址和客户端ID |
配置静态绑定的客户端ID |
static-bind client-identifier client-identifier |
& 说明:
l static-bind ip-address和static-bind mac-address或static-bind client-identifier命令必须配合使用。
l 在同一个DHCP地址池中,如果配置static-bind mac-address命令后,再配置static-bind client-identifier命令,则后面的配置将会覆盖前面的配置,反之亦然。
l 在同一个DHCP地址池中,如果多次执行static-bind ip-address或static-bind mac-address或static-bind client-identifier命令,新的配置会覆盖已有配置。
l 静态绑定的IP地址不能是DHCP服务器的接口IP地址,否则会导致IP地址冲突,被绑定的客户端将无法正常获取到IP地址。
l 静态绑定的客户端ID,要与待绑定客户端通过display dhcp client verbose命令显示的客户端ID一致。否则,客户端无法成功获取IP地址。
对于采用动态地址分配方式的地址池,需要配置该地址池可分配的地址范围,地址范围的大小通过掩码来设定。目前,一个地址池中只能配置一个地址段。
DHCP服务器在分配地址时,需要排除已经被占用的IP地址(如网关、FTP服务器等)。否则,同一地址分配给两个客户端会造成IP地址冲突。
对于不同的地址池,DHCP服务器可以指定不同的地址租用期限,但同一DHCP地址池中的地址具有相同的期限。地址租用有效期限不具有继承关系。
表2-7 配置采用动态分配方式进行地址分配
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置动态分配的IP地址范围 |
network network-address [ mask-length | mask mask ] |
必选 缺省情况下,没有配置动态分配的IP地址范围,即没有可供分配的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地址段。
在DHCP服务器上,可以为每个地址池指定客户端使用的域名。在给客户端分配IP地址的同时,也将域名发送给客户端。
表2-8 配置DHCP客户端的域名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置为DHCP客户端分配的域名 |
domain-name domain-name |
必选 缺省情况下,没有配置为DHCP客户端分配的域名 |
通过域名访问Internet上的主机时,需要将域名解析为IP地址,这是通过DNS(Domain Name System,域名系统)实现的。为了使DHCP客户端能够通过域名访问Internet上的主机,DHCP服务器应在为客户端分配IP地址的同时指定DNS服务器地址。目前,每个DHCP地址池最多可以配置8个DNS服务器地址。
表2-9 配置DHCP客户端的DNS服务器地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置为DHCP客户端分配的DNS服务器地址 |
dns-list ip-address&<1-8> |
必选 缺省情况下,没有配置为DHCP客户端分配的DNS服务器地址 |
对于使用Microsoft Windows操作系统的客户端,由WINS(Windows Internet Naming Service,Windows Internet名称服务)服务器为通过NetBIOS协议通信的主机提供主机名到IP地址的解析。所以,大部分Windows网络客户端需要进行WINS的设置。
为了使DHCP客户端实现主机名到IP地址的解析,DHCP服务器应在为客户端分配IP地址的同时指定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-10 配置DHCP客户端的WINS服务器地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置为DHCP客户端分配的WINS服务器地址 |
nbns-list ip-address&<1-8> |
必选 对于b类节点,为可选 缺省情况下,没有配置为DHCP客户端分配的WINS服务器地址 |
配置为DHCP客户端分配的NetBIOS节点类型 |
netbios-type { b-node | h-node | m-node | p-node } |
必选 缺省情况下,没有配置为DHCP客户端分配的NetBIOS节点类型 |
& 说明:
如果配置DHCP客户端为b类NetBIOS节点,则不需要配置WINS服务器地址。
为了使DHCP客户端通过BIMS(Branch Intelligent Management System,分支网点智能管理系统)服务器进行软件的备份和升级等操作,DHCP服务器需要在为DHCP客户端分配IP地址的同时,将BIMS服务器的IP地址、端口号以及加密的共享密钥等信息也发给DHCP客户端。之后,DHCP客户端就可以定期向BIMS服务器发送连接请求,从BIMS服务器上获取配置文件,进行软件的备份和升级等操作。
表2-11 配置DHCP客户端的BIMS服务器信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置为DHCP客户端分配的BIMS服务器的IP地址、端口及共享密钥信息 |
bims-server ip ip-address [ port port-number ] sharekey key |
必选 缺省情况下,没有配置为DHCP客户端分配的BIMS服务器的IP地址等信息 |
DHCP客户端访问本网段以外的服务器或主机时,数据必须通过网关进行转发。DHCP服务器可以在为客户端分配IP地址的同时指定网关的地址。
在DHCP服务器上,可以为每个地址池分别指定客户端对应的网关地址。目前,每个DHCP地址池最多可以配置8个网关地址。
表2-12 配置DHCP客户端的网关地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置为DHCP客户端分配的网关地址 |
gateway-list ip-address&<1-8> |
必选 缺省情况下,没有配置为DHCP客户端分配的网关地址 |
为了使具有语音功能的DHCP客户端能够在通过DHCP获取IP地址的同时,获取到语音呼叫所需的相关信息,需要在DHCP服务器上配置一些必需的参数。
语音呼叫所需的相关信息承载在Option 184选项中,目前支持四个子选项,承载的内容如下:
l sub-option 1,网络呼叫处理器的IP地址。
l sub-option 2,备用服务器的IP地址:当sub-option 1中携带的网络呼叫处理器不可达或不合法时,DHCP客户端使用该选项指定的备用服务器作为网络呼叫处理器。
l sub-option 3,语音VLAN信息:指定语音VLAN的ID及DHCP客户端是否会将所指定的VLAN ID作为语音VLAN。
l sub-option 4,自动故障转移呼叫路由:当网络呼叫处理器和备用服务器均不可达时,将该选项指定的呼叫转移到该选项指定的IP地址。
在DHCP服务器收到DHCP客户端发来的请求报文后,如果请求报文中的Option 55选项中有Option 184的参数,则会在为客户端分配IP地址的同时,将所配置的Option 184选项内容也发给DHCP客户端。之后,DHCP客户端就可以通过所获得的信息发起语音呼叫。
表2-13 配置DHCP客户端的Option 184参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置网络呼叫处理器的地址 |
voice-config ncp-ip ip-address |
必选 缺省情况下,没有配置网络呼叫处理器的地址 |
配置备用服务器的地址 |
voice-config as-ip ip-address |
可选 缺省情况下,没有配置备用服务器的地址 |
配置语音VLAN |
voice-config voice-vlan vlan-id { disable | enable } |
可选 缺省情况下,没有配置语音VLAN |
配置自动故障转移呼叫路由 |
voice-config fail-over ip-address dialer-string |
可选 缺省情况下,没有配置自动故障转移呼叫路由 |
& 说明:
只有配置了网络呼叫处理器的地址,其他配置才能生效。
设备在空配置启动时自动获取配置文件的功能,被称为自动配置。具体过程如下:
(1) 设备在空配置启动时,系统会自动将设备的指定接口(如VLAN接口1)设置为DHCP客户端,并向DHCP服务器获取IP地址及后续获取配置文件所需要的信息(例如:TFTP服务器的IP地址、TFTP服务器名、启动文件名等)。
(2) 如果获取到相关信息,则DHCP客户端就可发起TFTP请求,从指定的TFTP服务器获取配置文件,之后设备就使用获取到的配置文件进行设备初始化工作。如果没有获取到相关信息,设备就使用空配置文件进行设备初始化工作。
自动配置功能在空配置启动的设备上不需要进行任何配置,但需要在DHCP服务器上配置一些必需的参数,包括TFTP服务器地址、TFTP服务器名和启动文件名。
在DHCP服务器收到DHCP客户端发来的请求报文后,如果请求报文中的Option 55选项中有Option 66、Option 67或Option 150的参数,则会在为客户端分配IP地址的同时,将所配置的TFTP服务器的IP地址、TFTP服务器名或启动文件名等信息也发给DHCP客户端。之后,DHCP客户端就可以从TFTP服务器获取配置文件,完成设备的自动配置。
表2-14 配置DHCP客户端的TFTP服务器地址及启动文件名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置为DHCP客户端分配的TFTP服务器地址 |
tftp-server ip-address ip-address |
可选 缺省情况下,没有配置为DHCP客户端分配的TFTP服务器地址 |
配置为DHCP客户端分配的TFTP服务器名 |
tftp-server domain-name domain-name |
可选 缺省情况下,没有配置为DHCP客户端分配的TFTP服务器名 |
配置为DHCP客户端分配的启动文件名 |
bootfile-name bootfile-name |
可选 缺省情况下,没有配置为DHCP客户端分配的启动文件名 |
通过配置DHCP自定义选项,用户可以:
l 定义新的DHCP选项。随着DHCP的不断发展,新的可选项会陆续出现,为了支持这些新的选项,可以通过手工定义的方式将新选项添加到DHCP服务器的属性列表中。
l 扩展已有的DHCP选项。当前已提供的方式无法满足用户需求时(比如通过dns-list命令最多只能配置8个DNS服务器地址,如果用户需要配置的DNS服务器地址数目大于8,则该命令无法满足需求),可以通过配置DHCP自定义选项的方式进行扩展。
表2-15 配置DHCP自定义选项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
配置DHCP自定义选项 |
option code { ascii ascii-string | hex hex-string&<1-16> | ip-address ip-address&<1-8> } |
必选 缺省情况下,没有配置DHCP自定义选项 |
注意:
配置自定义选项可能会对DHCP的工作过程造成影响,请谨慎使用DHCP自定义选项。
在配置DHCP服务器后,为了提高DHCP服务的安全性,需要配置DHCP服务的安全功能。
在配置DHCP服务的安全功能之前,需完成DHCP服务器配置任务。
如果网络中有私自架设的DHCP服务器,当客户端申请IP地址时,这台DHCP服务器就会与DHCP客户端进行交互,导致客户端获得错误的IP地址。这种私设的DHCP服务器称为伪DHCP服务器。
在DHCP服务器上使能伪DHCP服务器检测功能后,当DHCP服务器接收到siaddr字段(为客户端分配IP地址的服务器IP地址)不为0的DHCP报文时,DHCP服务器会记录报文中siaddr字段的值及接收到报文的接口信息,以便管理员及时发现并处理伪DHCP服务器。
表2-16 配置伪DHCP服务器检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能伪DHCP服务器检测功能 |
dhcp server detect |
必选 缺省情况下,禁止伪DHCP服务器检测功能 |
& 说明:
l 使能伪DHCP服务器检测功能后,对所有DHCP服务器都会进行记录,包括合法的DHCP服务器。管理员需要从记录中查找伪DHCP服务器。
l 使能伪DHCP服务器检测功能后,对每个DHCP服务器只记录一次。
为防止IP地址重复分配导致地址冲突,DHCP服务器为客户端分配地址前,需要先对该地址进行探测。
地址探测是通过ping功能实现的,通过检测是否能在指定时间内得到ping响应来判断是否有地址冲突。DHCP服务器发送目的地址为待分配地址的ICMP回显请求报文,如果在指定时间内收到回显响应报文,DHCP服务器从地址池中选择新的IP地址,并重复上述操作;如果在指定时间内没有收到回显响应报文,则继续发送ICMP回显请求报文,直到发送的回显请求报文达到最大值,如果仍然没有收到回显响应报文,则将地址分配给客户端,从而确保客户端被分得的IP地址唯一。
DHCP服务器通过ping操作来检测是否发生地址冲突,而DHCP客户端则通过发送免费ARP报文检测是否发生地址冲突。
表2-17 配置IP地址重复分配检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器发送回显请求报文的最大数目 |
dhcp server ping packets number |
可选 缺省情况下,DHCP服务器发送回显请求报文的最大数目为1 |
配置DHCP服务器等待回显响应报文的超时时间 |
dhcp server ping timeout milliseconds |
可选 缺省情况下,DHCP服务器等待回显响应报文的超时时间为500毫秒 |
如果DHCP服务器支持Option 82功能,则当DHCP服务器收到DHCP中继转发来的带有Option 82选项的报文后,会正常处理,为客户端分配IP地址等信息。
如果DHCP服务器不支持Option 82功能,则当DHCP服务器收到DHCP中继转发来的带有Option 82选项的报文后,不会进行处理。
在配置DHCP服务器支持Option 82功能之前,需完成DHCP服务器的配置任务。
表2-18 配置DHCP服务器支持Option 82功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器支持Option 82功能 |
dhcp server relay information enable |
可选 缺省情况下,开启DHCP服务器支持Option 82功能 |
& 说明:
为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。DHCP中继的相关配置请参见“3.3.6 配置DHCP中继支持Option 82”。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP服务器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP服务器的相关信息。
表2-19 DHCP服务器显示和维护
操作 |
命令 |
显示DHCP的地址冲突统计信息 |
display dhcp server conflict { all | ip ip-address } |
显示DHCP地址池中的租约超期信息 |
display dhcp server expired { all | ip ip-address | pool [ pool-name ] } |
显示DHCP地址池的可用地址信息 |
display dhcp server free-ip |
显示DHCP地址池中的地址绑定信息 |
display dhcp server ip-in-use { all | ip ip-address | pool [ pool-name ] } |
显示DHCP服务器的统计信息 |
display dhcp server statistics |
显示DHCP地址池的树状结构信息 |
display dhcp server tree { all | pool [ pool-name ] } |
清除DHCP地址冲突统计信息 |
reset dhcp server conflict { all | ip ip-address } |
清除DHCP动态地址绑定信息 |
reset dhcp server ip-in-use { all | ip ip-address | pool [ pool-name ] } |
清除DHCP服务器的统计信息 |
reset dhcp server statistics |
& 说明:
DHCP服务器的租约信息不会在执行save命令时保存到FLASH中,故当系统重新启动或使用reset dhcp server ip-in-use命令清除租约后,配置文件中将没有任何租约信息。此时客户端如果发出续约请求将会被拒绝,客户端需要重新申请IP地址。
常见的DHCP组网方式可分为两类:一种是DHCP服务器和客户端在同一个子网内,直接进行DHCP报文的交互;另一种是DHCP服务器和客户端处于不同的子网中,必须通过DHCP中继代理实现IP地址的分配。无论哪种情况下,DHCP服务器的配置都是相同的。
DHCP服务器为网段10.1.1.0/24中的客户端动态分配IP地址,该地址池网段分为两个子网网段: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.4,网关的地址为10.1.1.126。
l 10.1.1.128/25网段内的地址租用期限为5天,域名为aabbcc.com,DNS服务器地址为10.1.1.2,无WINS服务器地址,网关的地址为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服务。
<Sysname> system-view
[Sysname] dhcp enable
# 配置不参与自动分配的IP地址(DNS服务器、WINS服务器和网关地址)。
[Sysname] dhcp server forbidden-ip 10.1.1.2
[Sysname] dhcp server forbidden-ip 10.1.1.4
[Sysname] dhcp server forbidden-ip 10.1.1.126
[Sysname] dhcp server forbidden-ip 10.1.1.254
# 配置DHCP地址池0的共有属性(地址池范围、客户端域名、DNS服务器地址)。
[Sysname] dhcp server ip-pool 0
[Sysname-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[Sysname-dhcp-pool-0] domain-name aabbcc.com
[Sysname-dhcp-pool-0] dns-list 10.1.1.2
[Sysname-dhcp-pool-0] quit
# 配置DHCP地址池1的属性(地址池范围、网关、地址租用期限、WINS服务器地址)。
[Sysname] dhcp server ip-pool 1
[Sysname-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.128
[Sysname-dhcp-pool-1] gateway-list 10.1.1.126
[Sysname-dhcp-pool-1] expired day 10 hour 12
[Sysname-dhcp-pool-2] nbns-list 10.1.1.4
[Sysname-dhcp-pool-1] quit
# 配置DHCP地址池2的属性(地址池范围、地址租用期限、网关)。
[Sysname] dhcp server ip-pool 2
[Sysname-dhcp-pool-2] network 10.1.1.128 mask 255.255.255.128
[Sysname-dhcp-pool-2] expired day 5
[Sysname-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地址。
& 说明:
l DHCP中继中对于接口的相关配置,目前只能在VLAN接口上进行。
l DHCP中继上不能配置DHCP Snooping功能。
由于在IP地址动态获取过程中采用广播方式发送报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。
DHCP中继功能的引入解决了这一难题:客户端可以通过DHCP中继与其他网段的DHCP服务器通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。
图3-1是DHCP中继的典型应用示意图。
图3-1 DHCP中继的典型组网应用
通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2 IP地址动态获取过程”。
(1) 具有DHCP中继功能的网络设备收到DHCP客户端以广播方式发送的DHCP-DISCOVER或DHCP-REQUEST报文后,根据配置将报文单播转发给指定的DHCP服务器。
(2) DHCP服务器进行IP地址的分配,并通过DHCP中继将配置信息广播发送给客户端,完成对客户端的动态配置。
表3-1 DHCP中继配置任务简介
配置任务 |
说明 |
详细配置 |
使能DHCP服务 |
必选 |
|
配置接口工作在DHCP中继模式 |
必选 |
|
配置DHCP服务器组 |
必选 |
|
配置通过DHCP中继释放客户端的IP地址 |
可选 |
|
配置DHCP中继的安全功能 |
可选 |
|
配置DHCP中继支持Option 82功能 |
可选 |
只有使能DHCP服务后,其它相关的DHCP配置才能生效。
表3-2 使能DHCP服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于禁止状态 |
配置接口工作在DHCP中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给DHCP服务器,由服务器分配地址。
表3-3 配置接口工作在DHCP中继模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中继模式 |
dhcp select relay |
必选 缺省情况下,使能DHCP服务后,接口工作在DHCP服务器模式 |
& 说明:
DHCP客户端通过DHCP中继获取IP地址时,DHCP服务器上需要配置与DHCP中继的IP地址所在网段(网络号和掩码)完全相同的地址池,否则会导致DHCP客户端无法获得正确的IP地址。
为了提高可靠性,可以在一个网络中设置多个DHCP服务器。多个DHCP服务器构成一个DHCP服务器组。当接口与DHCP服务器组建立归属关系后,会将客户端发来的DHCP报文转发给服务器组中的所有服务器。
表3-4 配置DHCP服务器组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器组中DHCP服务器的IP地址 |
dhcp relay server-group group-id ip ip-address |
必选 缺省情况下,没有配置DHCP服务器组中服务器的IP地址 |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口与DHCP服务器组的归属关系 |
dhcp relay server-select group-id |
必选 缺省情况下,接口没有与任何一个DHCP服务器组建立归属关系 |
& 说明:
l 设备上最多可以配置20个DHCP服务器组。每个DHCP服务器组最多可以配置8个DHCP服务器地址。
l DHCP服务器组中服务器的IP地址不能与DHCP中继和客户端相连的接口IP地址在同一网段;否则,可能导致客户端无法获得IP地址。
l 每个DHCP服务器组可以对应多个接口。但每个接口只能对应一个DHCP服务器组。在同一接口下多次执行dhcp relay server-select命令,新的配置会覆盖已有配置。但是,如果新指定的DHCP服务器组不存在时,新的归属关系配置不成功,接口还是维持与上一次配置的DHCP服务器组的归属关系。
l dhcp relay server-select命令中所指定的组号,需事先通过dhcp relay server-group命令进行配置。
在某些情况下,可能需要通过DHCP中继手工释放客户端申请到的IP地址。配置通过DHCP中继释放客户端的IP地址后,DHCP中继会主动向DHCP服务器发送DHCP-RELEASE报文,DHCP服务器收到该报文后,将会释放指定IP地址的租约。
在系统视图下,配置通过DHCP中继释放客户端的IP地址时,如果不指定DHCP服务器的IP地址,则向所有配置为中继模式的接口所对应的DHCP服务器组中的DHCP服务器发送释放申请;如果指定了DHCP服务器的IP地址,则只向指定DHCP服务器发送释放申请。
表3-5 在系统视图下配置通过DHCP中继释放客户端的IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
向DHCP服务器请求释放客户端申请到的IP地址 |
dhcp relay release client-ip client-mac [ server-ip ] |
必选 |
在接口视图下,配置通过DHCP中继释放客户端的IP地址时,如果不指定DHCP服务器,则向该接口所对应的DHCP服务器组中的所有DHCP服务器发送释放申请;如果指定了DHCP服务器的IP地址,则只向指定DHCP服务器发送释放申请。
表3-6 在接口视图下配置通过DHCP中继释放客户端的IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
向DHCP服务器请求释放客户端申请到的IP地址 |
dhcp relay release client-ip client-mac [ server-ip ] |
必选 |
当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与MAC地址的绑定关系,生成DHCP中继的动态用户地址表项。同时,设备也支持DHCP中继的静态用户地址表项配置,即在DHCP中继上手工配置IP地址与MAC地址的绑定关系。
为了防止非法主机静态配置一个IP地址并访问其他网络,设备支持DHCP中继的地址匹配检查功能。接口上使能该功能后,如果主机IP地址与主机MAC地址的对应关系没有在DHCP中继的用户地址表中(包括DHCP中继动态记录的表项以及手工配置的用户地址表项),则主机将不能通过DHCP中继访问外部网络。
表3-7 配置DHCP中继的地址匹配检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP中继的静态用户地址表项 |
dhcp relay security static ip-address mac-address |
可选 缺省情况下,没有配置DHCP中继的静态用户地址表项 |
进入接口视图 |
interface interface-type interface-number |
- |
配置DHCP中继的地址匹配检查功能 |
dhcp relay address-check { enable | disable } |
必选 缺省情况,禁止DHCP中继的地址匹配检查功能 |
& 说明:
l DHCP中继的地址匹配检查功能与DHCP中继的其他配置无直接关系。即只要执行了dhcp relay address-check enable命令,地址匹配检查功能就可以生效,不需要配置DHCP中继的其他功能,如使能DHCP、配置接口工作在DHCP中继模式。
l 如果在连接DHCP服务器的DHCP中继接口上配置dhcp relay address-check enable命令,则需要在DHCP中继上配置DHCP服务器IP地址与MAC地址绑定的静态用户地址表项,否则会导致DHCP客户端申请不到IP地址。
当DHCP客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继会记录IP地址与MAC地址的绑定关系。由于DHCP客户端释放该IP地址时,会给DHCP服务器发送单播DHCP-RELEASE报文,DHCP中继不会处理该DHCP报文的内容,造成DHCP中继的用户地址项不能被实时刷新。为了解决这个问题,系统支持DHCP中继动态用户地址表项的定时刷新功能。
每隔指定时间,DHCP中继以客户端分配到的IP地址和自己的桥MAC地址向DHCP服务器发送DHCP-REQUEST报文,如果DHCP中继接收到DHCP服务器响应的DHCP-ACK报文或在指定时间内没有接收到DHCP服务器的响应报文,则表明这个IP地址已经可以进行分配,DHCP中继会将动态用户地址表中对应的表项老化掉;如果DHCP中继接收到DHCP服务器响应的DHCP-NAK报文,则表示该IP地址的租约仍然存在,DHCP中继不会老化该IP地址对应的表项。
表3-8 配置DHCP中继动态用户地址表项定时刷新周期
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP中继动态用户地址表项的定时刷新周期 |
dhcp relay security tracker { interval | auto } |
可选 缺省情况下,定时刷新周期为auto,即根据表项的数目自动计算刷新时间间隔 |
如果网络中有私自架设的DHCP服务器,当客户端申请IP地址时,这台DHCP服务器就会与DHCP客户端进行交互,导致客户端获得错误的IP地址,这种私设的DHCP服务器称为伪DHCP服务器。
在DHCP中继上使能伪DHCP服务器检测功能后,当DHCP中继接收到siaddr字段(为客户端分配IP地址的服务器IP地址)不为0的DHCP报文时,DHCP中继会记录报文中siaddr字段的值及接收到报文的接口信息,以便管理员及时发现并处理伪DHCP服务器。
表3-9 配置伪DHCP服务器检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能伪DHCP服务器检测功能 |
dhcp relay server-detect |
必选 缺省情况下,禁止伪DHCP服务器检测功能 |
& 说明:
l 使能伪DHCP服务器检测功能后,对所有DHCP服务器都会进行记录,包括合法的DHCP服务器,管理员需要从记录中查找伪DHCP服务器。
l 使能伪DHCP服务器检测功能后,对每个DHCP服务器只记录一次。记录的DHCP服务器信息被清除后,将重新记录。
Option 82称为中继代理信息选项,最多可以包含255个子选项。若定义了Option 82,则至少要定义一个子选项。目前设备只支持两个子选项:sub-option 1和sub-option 2。
由于Option 82的内容没有统一规定,不同厂商通常根据需要进行填充。目前设备支持两种填充格式:normal格式和verbose格式。对应这两种填充格式,子选项的内容如下:
(1) 采用normal格式填充:
l sub-option 1的内容是接收到DHCP客户端请求报文的端口编号及端口所属VLAN的编号。
l sub-option 2的内容是接收到DHCP客户端请求报文的接口MAC地址。
(2) 采用verbose格式填充:
l sub-option 1的内容包括用户配置的接入节点标识、接收到DHCP客户端请求报文的端口类型、端口编号及端口所属VLAN的编号。
l sub-option 2的内容是接收到DHCP客户端请求报文的接口MAC地址。
如果DHCP中继支持Option 82功能,则当DHCP中继收到DHCP请求报文后,将根据报文中是否包含Option 82选项以及用户配置的处理策略及填充格式对报文进行相应的处理。具体的处理方式见表3-10。
如果DHCP中继收到的响应报文中带有Option 82选项,则会将Option 82选项删除后再转发给DHCP客户端。
表3-10 DHCP中继支持Option 82的处理方式
收到DHCP请求报文 |
处理策略 |
填充格式 |
DHCP中继对报文的处理 |
收到的报文中带有Option 82选项 |
Drop |
任意 |
丢弃报文 |
Keep |
任意 |
保持报文中的Option 82选项不变并进行转发 |
|
Replace |
Normal |
采用normal格式填充Option 82选项,替换报文中原有的Option 82选项并进行转发 |
|
Verbose |
采用verbose格式填充Option 82选项,替换报文中原有的Option 82选项并进行转发 |
||
收到的报文中不带有Option 82选项 |
- |
Normal |
采用normal格式填充Option 82选项并进行转发 |
- |
Verbose |
采用verbose格式填充Option 82选项并进行转发 |
在配置DHCP中继支持Option82功能之前,需要先完成下面的DHCP中继配置,即:
l 使能DHCP服务
l 配置接口工作在DHCP中继模式
l 配置DHCP中继设备的网络参数,保证中继和服务器之间路由可达
表3-11 配置DHCP中继支持Option 82功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置DHCP中继支持Option 82功能 |
dhcp relay information enable |
必选 缺省情况下,DHCP中继不支持Option 82功能 |
配置DHCP中继对包含Option 82选项的请求报文的处理策略 |
dhcp relay information strategy { drop | keep | replace } |
可选 缺省情况下,处理策略为replace |
配置Option 82选项的填充格式 |
dhcp relay information format { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] } |
可选 缺省情况下,Option 82选项的填充格式为normal |
& 说明:
l 为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。DHCP服务器的相关配置请参见“2.7 配置DHCP服务器支持Option 82功能”。
l DHCP中继对包含Option 82请求报文的处理策略为replace时,需要配置Option 82选项的填充格式;处理策略为keep或drop时,不需要配置Option 82选项的填充格式。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP中继的统计信息。
表3-12 DHCP中继显示和维护
操作 |
命令 |
显示接口对应的DHCP服务器组的信息 |
display dhcp relay { all | interface interface-type interface-number } |
显示DHCP中继的用户地址表项信息 |
display dhcp relay security [ ip-address | dynamic | static ] |
显示DHCP中继用户地址表项的统计信息 |
display dhcp relay security statistics |
显示DHCP中继动态用户地址表项的定时刷新周期 |
display dhcp relay security tracker |
显示DHCP服务器组中服务器的IP地址 |
display dhcp relay server-group { group-id | all } |
显示DHCP中继的相关报文统计信息 |
display dhcp relay statistics [ server-group { group-id | all } ] |
清除DHCP中继的统计信息 |
reset dhcp relay statistics [ server-group group-id ] |
交换机通过端口(属于VLAN1)连接到DHCP客户端所在的网络。交换机VLAN接口1的IP地址为10.10.1.1/24,VLAN接口2的IP地址为10.1.1.2/24。DHCP服务器的IP地址为10.1.1.1/24。需要通过具有DHCP中继功能的交换机转发DHCP报文,使DHCP客户端可以从DHCP服务器上申请到IP地址等相关配置信息。
图3-2 DHCP中继组网示意图
# 使能DHCP服务。
<Sysname> system-view
[Sysname] dhcp enable
# 配置连接DHCP客户端网络的VLAN接口1工作在DHCP中继模式。
[Sysname] interface vlan-interface 1
[Sysname-Vlan-interface1] dhcp select relay
[Sysname-Vlan-interface1] quit
# 配置DHCP服务器的地址,并配置VLAN接口1对应DHCP服务器组1。
[Sysname] dhcp relay server-group 1 ip 10.1.1.1
[Sysname] interface vlan-interface 1
[Sysname-Vlan-interface1] dhcp relay server-select 1
& 说明:
l 为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置。由于作为DHCP服务器的设备不同,所需进行的配置也不同,故此处从略。
l 该例中DHCP中继与DHCP服务器是在同一网段。如果DHCP中继与DHCP服务器不在同一网段,则两者之间必须有路由可达。
客户端不能通过DHCP中继获得配置信息。
DHCP中继或DHCP服务器的配置可能有问题。可以打开调试开关显示调试信息,并通过执行display命令显示接口状态信息的方法来分析定位。
l 检查DHCP服务器和DHCP中继是否使能了DHCP服务。
l 检查DHCP服务器是否配置有DHCP客户端所在网段的地址池。
l 检查具有DHCP中继功能的网络设备和DHCP服务器是否配置有相互可达的路由。
l 检查具有DHCP中继功能的网络设备是否在连接DHCP客户端所在网段的接口上配置有正确的DHCP服务器组,且DHCP服务器组的IP地址配置正确。
& 说明:
l DHCP Snooping不支持链路聚合。若以太网端口加入聚合组,则该端口上进行的DHCP Snooping配置不会生效;该端口退出聚合组后,之前的DHCP Snooping配置才会生效。
l 设备只有位于DHCP客户端与DHCP服务器之间,或DHCP客户端与DHCP中继之间时,DHCP Snooping功能配置后才能正常工作;设备位于DHCP服务器与DHCP中继之间时,DHCP Snooping功能配置后不能正常工作。
l 使能DHCP Snooping功能的设备,不能作为DHCP服务器和DHCP中继。
l 建议不要在同一台设备上同时配置DHCP客户端/BOOTP客户端和DHCP Snooping功能,否则可能无法生成DHCP Snooping表项,DHCP客户端/BOOTP客户端也可能申请不到IP地址。
DHCP Snooping是DHCP的一种安全特性,主要功能如下:
l 通过将不信任端口接收的DHCP响应报文丢弃,防止DHCP客户端从网络中不可信任的DHCP服务器获取IP地址。
l 通过监听DHCP-REQUEST和信任端口收到的DHCP-ACK广播报文,记录DHCP客户端的MAC地址以及获取到的IP地址,便于管理员了解DHCP客户端获取的IP地址信息。
在网络中,合法的DHCP服务器是可以信任的,而私自设置的DHCP服务器是不可信任的。为了对不同DHCP服务器发来的报文进行区分处理,DHCP Snooping将设备的端口分为信任端口与不信任端口。其中:
l 信任端口是与合法的DHCP服务器直接或间接连接的端口。信任端口对接收到的DHCP报文正常转发,从而保证了DHCP客户端获取正确的IP地址。
l 不信任端口是不与合法的DHCP服务器连接的端口。如果从不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文则会丢弃,从而防止了DHCP客户端获得错误的IP地址。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP Snooping功能 |
dhcp-snooping |
必选 缺省情况下,DHCP Snooping功能处于关闭状态 |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置端口为信任端口 |
dhcp-snooping trust |
必选 缺省情况下,在使能DHCP Snooping功能后,设备的所有端口均为不信任端口 |
& 说明:
为了使DHCP客户端能从合法的DHCP服务器获取IP地址,在使能DHCP Snooping功能的设备上,必须将与合法DHCP服务器相连的以太网端口设置为信任端口,且设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
在完成上述配置后,在任意视图下执行display命令可以显示DHCP Snooping的配置情况,通过查看显示信息验证配置的效果。
表4-2 DHCP Snooping配置显示
操作 |
命令 |
显示通过DHCP Snooping记录的绑定信息 |
display dhcp-snooping |
显示信任端口信息 |
display dhcp-snooping trust |
设备通过以太网端口Ethernet1/0/1连接到DHCP服务器,通过以太网端口Ethernet1/0/2、Ethernet1/0/3连接到DHCP客户端。要求:
l 与DHCP服务器相连的端口可以转发DHCP服务器的响应报文,而其他端口不转发DHCP服务器的响应报文。
l 记录DHCP-REQUEST和信任端口收到的DHCP-ACK广播报文中DHCP客户端IP地址及MAC地址的绑定关系。
图4-1 DHCP Snooping组网示意图
# 使能DHCP Snooping功能。
<Sysname> system-view
[Sysname] dhcp-snooping
# 配置Ethernet1/0/1端口为信任端口。
[Sysname] interface Ethernet1/0/1
[Sysname-Ethernet1/0/1] dhcp-snooping trust
& 说明:
l DHCP客户端中对于接口的相关配置,目前只能在VLAN接口上进行。
l 建议不要在同一台设备上同时配置DHCP客户端和DHCP Snooping功能,否则可能无法生成DHCP Snooping表项,DHCP客户端也可能申请不到IP地址。
指定设备的接口作为DHCP客户端后,可以使用DHCP协议从DHCP服务器动态获得IP地址等参数,方便用户配置,也便于集中管理。
表5-1 配置接口使用DHCP方式获取IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口使用DHCP方式获取IP地址 |
ip address dhcp-alloc [ client-identifier mac interface-type interface-number ] |
必选 缺省情况下,接口不使用DHCP方式获取IP地址 |
& 说明:
l 接口可以采用多种方式获得IP地址,但不同方式是互斥的,新的配置方式会覆盖原有的配置方式。
l 当接口被配置为通过DHCP方式动态获取IP地址后,不能再给该接口配置从IP地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP客户端的信息,通过查看显示信息验证配置的效果。
表5-2 DHCP客户端显示
操作 |
命令 |
显示DHCP客户端的相关信息 |
display dhcp client [ verbose ] [ interface interface-type interface-number ] |
交换机的端口(属于VLAN1)接入局域网,VLAN接口1通过DHCP协议从DHCP服务器获取IP地址。
如图2-1所示。
下面只列出图2-1中,作为客户端的交换机的配置。
# 配置VLAN接口1通过DHCP动态获取地址。
<Sysname> system-view
[Sysname] interface vlan-interface 1
[Sysname-Vlan-interface1] ip address dhcp-alloc
& 说明:
为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置,具体内容请参见“2.9 DHCP服务器典型配置举例”。
& 说明:
l BOOTP客户端中对于接口的相关配置,目前只能在VLAN接口上进行。
l 建议不要在同一台设备上同时配置BOOTP客户端和DHCP Snooping功能,否则可能无法生成DHCP Snooping表项,BOOTP客户端也可能申请不到IP地址。
BOOTP是BOOTstrap Protocol(自举协议)的简称。指定设备的接口作为BOOTP客户端后,该接口可以使用BOOTP协议从BOOTP服务器获得IP地址等信息,从而方便用户配置。
使用BOOTP协议,管理员需要在BOOTP服务器上为每个BOOTP客户端配置BOOTP参数文件,该文件包括BOOTP客户端的MAC地址及其对应的IP地址等信息。当BOOTP客户端向BOOTP服务器发起请求时,服务器会查找BOOTP参数文件,并返回相应的配置信息。
由于需要在BOOTP服务器上为每个客户端事先配置参数文件,BOOTP一般运行在相对稳定的环境中。当网络变化频繁时,可以采用DHCP协议,DHCP的相关介绍请参见“第1章 DHCP概述”。
& 说明:
由于DHCP服务器可以与BOOTP客户端进行交互,因此用户可以不配置BOOTP服务器,而使用DHCP服务器为BOOTP客户端分配IP地址。
BOOTP客户端从BOOTP服务器动态获取IP地址的具体过程如下:
(1) BOOTP客户端以广播方式发送BOOTP请求报文,其中包含了BOOTP客户端的MAC地址;
(2) BOOTP服务器接收到请求报文后,根据报文中的BOOTP客户端MAC地址,从配置文件数据库中查找对应的IP地址等信息,并向客户端返回包含这些信息的BOOTP响应报文;
(3) BOOTP客户端从接收到的响应报文中即可获得IP地址等信息。
与BOOTP相关的协议规范有:
RFC 951:Bootstrap Protocol (BOOTP)
RFC 2132:DHCP Options and BOOTP Vendor Extensions
RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
表6-1 配置接口通过BOOTP协议获取IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口通过BOOTP协议获取IP地址 |
ip address bootp-alloc |
必选 缺省情况下,接口不通过BOOTP协议获取IP地址 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后BOOTP客户端的运行情况,通过查看显示信息验证配置的效果。
表6-2 BOOTP客户端显示
操作 |
命令 |
显示BOOTP客户端的相关信息 |
display bootp client [ interface interface-type interface-number ] |
交换机的端口(属于VLAN1)接入局域网,VLAN接口1通过BOOTP协议从DHCP服务器获取IP地址。
如图2-1所示。
下面只列出图2-1中,作为客户端的交换机的配置。
# 配置VLAN接口1通过BOOTP动态获取地址。
<Sysname> system-view
[Sysname] interface vlan-interface 1
[Sysname-Vlan-interface1] ip address bootp-alloc
& 说明:
为了使BOOTP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置,具体内容请参见“2.9 DHCP服务器典型配置举例”。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!