DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,端口号为67,被广泛用来动态分配可重用的网络资源,如IP地址。
DHCP采用客户端/服务器工作模式,DHCP客户端通过发送请求消息向DHCP服务器获取IP地址和其他配置信息。当DHCP客户端与服务器不在同一个网段内,必须由DHCP中继代理(DHCP Relay)来转发DHCP请求和应答消息。
DHCP协议的前身是BOOTP协议(Bootstrap Protocol),主要用于无磁盘主机从服务器得到本端设备的IP地址、服务器的IP地址、启动映像文件名、网关IP等等。BOOTP设计用于相对静态的环境,它要求主机的硬件地址必须被手工输入到BOOTP表中,并且硬件地址与IP的对应是静态的。换言之,BOOTP缺乏“动态性”,若在有限的IP资源环境中,BOOTP的一对一对应会造成IP地址的浪费。
随着网络规模的扩大和网络复杂度的提高,如无线网络场景和计算机的数量超过可分配的IP地址等情况下,原有针对静态主机设计的BOOTP协议已经难以满足实际需求。为此,IETF(Internet Engineering Task Force,国际互联网工程任务组)设计了一个新协议,即动态主机配置协议DHCP。DHCP可以当作是BOOTP的增强版本,它分为两个部分:一个是服务器端,另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP请求;而客户端则会使用由服务器分配的IP环境数据。与BOOTP相比,DHCP通过“租约”的概念,有效且动态地分配客户端的TCP/IP设定。此外,DHCP作为BOOTP的一种扩展,能够与BOOTP兼容。
在网络建设中,应用DHCP服务器,可以带来以下益处:
降低网络接入成本。采用静态地址分配的方式需要考虑主机所处的物理位置,人力成本较大,应用DHCP的方式只需要在服务器上进行统一配置,降低了网络的接入成本。
简化配置任务,降低网络建设成本。采用动态地址分配,简化了设备配置。在没有专业技术人员部署设备的业务场景下,降低了部署的成本。
集中化管理。在对多个子网进行配置管理时,有任何配置参数的变动,只需要修改和更新DHCP服务器的配置即可。
DHCP服务器
设备的DHCP服务器完全根据RFC 2131来实现的,主要功能是为主机分配和管理IP地址。
DHCP客户端
DHCP客户端使得设备能够自动地从DHCP服务器获得IP地址以及其它配置参数。
DHCP中继代理
当DHCP客户端与服务器不在同一个子网上,就必须由DHCP中继代理来转发DHCP请求和应答消息。
租期
DHCP服务器指定的客户端可使用指派IP地址的时间长度。租用IP地址给客户时,租期是活动的。在租约过期之前,客户机一般需要通过服务器更新其地址租约时间。当租期满或在服务器上删除时,租期是非活动的。租约期限决定租约何时期满以及客户需要用服务器更新它的次数。
地址池
地址池是指DHCP服务器可分配给用户的地址集合,所有分配给用户的地址都从管理员配置的地址池中取出。
选项类型
选项类型是DHCP服务器在向DHCP客户端提供租约服务时指派的配置参数。例如,某些公用选项包括默认网关、WINS(Windows Internet Name Service,Windows互联网名称服务)服务器和DNS(Domain Name System,域名系统)服务器的IP地址。DHCP服务器还允许配置其它选项。大多数选项都是在RFC 2132中预定义,也可添加自定义选项类型。
DHCP报文
各字段说明如下:
op:报文的操作类型,分为请求报文和响应报文。op值为1时表示报文为请求报文,op值为2时表示报文为响应报文。具体的报文类型在options字段中标识。
htype(Hardware type):DHCP客户端的硬件地址类型,对于以太网,该类型的值为“1”。
hlen(Hardware length):DHCP客户端的硬件地址长度,对于以太网,该值为“6”。
hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段值就会增加1。
xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
secs:DHCP客户端开始DHCP请求后所经过的时间,单位是秒。
flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送。0表示采用单播方式,1表示采用广播方式。其余的15位均被置为0。
ciaddr(Client IP address):DHCP客户端的IP地址。如果客户端有合法和可用的IP地址,则将其添加到此字段。客户端在初始化状态时没有IP地址,此字段为0.0.0.0。此字段不用于客户端申请某个特定的IP地址。
yiaddr(Your client IP address):DHCP服务器分配给客户端的IP地址。
siaddr(Server IP address):DHCP客户端获取启动配置信息的服务器IP地址。
giaddr(Gateway IP address):DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
chaddr(Client hardware address):DHCP客户端的硬件地址。
sname(Server name):DHCP客户端获取启动配置信息的服务器名称。
file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
options:可选变长选项字段。包含报文的类型、有效租期、DNS服务器的IP地址和WINS服务器的IP地址等配置信息。
DHCP DISCOVER:DHCP客户端首次登录网络时进行DHCP交互过程发送的第一个消息,用来寻找DHCP服务器。
DHCP OFFER:DHCP服务器用来响应DHCP DISCOVER消息,此消息携带了各种配置信息。
DHCP REQUEST:此消息用于以下三种用途。
客户端初始化后,发送广播的DHCP REQUEST消息来回应服务器的DHCP OFFER消息。
客户端重启初始化后,发送广播的DHCP REQUEST消息来确认先前被分配的IP地址等配置信息。
当客户端已经和某个IP地绑定后,发送DHCP REQUEST消息来更新IP地址的租约。
DHCP ACK:DHCP服务器对DHCP客户端的DHCP REQUEST消息的确认响应消息。客户端收到此消息后,才真正获得了IP地址和相关的配置信息。
DHCP NAK:DHCP服务器收到DHCP REQUEST消息后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则向DHCP客户端发送NAK应答报文,通知用户无法分配合适的IP地址。
DHCP DECLINE:DHCP客户端收到DHCP服务器的ACK应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则向DHCP服务器发送DECLINE请求报文,通知服务器所分配的IP地址不可用,请求分配新的IP地址。
DHCP REALEASE:DHCP客户端不再需要使用分配的IP地址时,主动向DHCP服务器发送RELEASE请求报文,告知服务器用户不再需要分配的IP地址,请求DHCP服务器释放对应的IP地址。
DHCP利用Options字段传递控制信息和网络配置参数,实现地址动态分配的同时,为客户端提供更加丰富的网络配置信息。Options字段由Type、Length和Value三部分组成,格式如图1-2所示。
Option type:Option号。
Option length:表示后面信息内容的长度。
Value:长度为Option length字段所指定,该字段表示信息内容。
DHCP Options选项的Type取值范围为1~255,常见的DHCP选项有:
Option1:子网掩码选项。
Option3:网关地址选项。
Option6:DNS服务器地址选项。
Option15:域名选项。
Option33:静态路由选项。该选项中包含一组有分类静态路由(即目的网络地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果Option33和Option121同时存在,则忽略Option33。
Option51:IP地址租期选项。
Option53:DHCP消息类型选项。
Option55:请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值。
Option121:无分类路由选项。该选项中包含一组无分类静态路由(即目的网络地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果Option33和Option121同时存在,则忽略Option33。
更多DHCP选项的介绍,请参见RFC 2132和RFC 3442。
厂商特定信息选项(Option43)
DHCP服务器通过Option43为客户端分配厂商特定的信息。Option43采用子选项的形式,通过不同的子选项为用户分配不同的网络配置参数,子选项中各字段的含义为:
Sub-option type:子选项类型。目前,子选项类型值可以为0x01表示ACS参数子选项,0x02表示服务提供商标识子选项,0x80表示PXE(Preboot Execute Environment,预启动执行环境)引导服务器地址子选项。
Sub-option length:子选项的长度。
Sub-option value:子选项的取值。
Option43
中继代理信息选项(Option82)
Option82记录了DHCP客户端的位置信息。DHCP中继接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加Option82,并转发给DHCP服务器。管理员从Option82中获得DHCP客户端的位置信息,以便定位DHCP客户端,为客户端分配特定范围的地址、对客户端进行安全和计费等控制。
DHCP租约过程
DHCP客户端请求IP地址的过程如下:
(1)DHCP客户端发送DHCP DISCOVER广播包在网络上寻找DHCP服务器;
(2)DHCP服务器从地址池中挑选一个尚未分配的IP地址,向DHCP客户端发送DHCP OFFER单播/广播(依据DISCOVER报文中flags字段的broadcast位确定)数据包,包含IP地址、MAC地址、域名信息以及地址租期;
(3)DHCP客户端发送DHCP REQUEST广播包,正式向服务器请求分配已提供的IP地址;
(4)DHCP服务器会根据DHCP REQUEST报文中携带的MAC地址来查找是否存在相应的租约记录。
4.1、如果存在相应的租约记录,DHCP服务器向DHCP客户端发送DHCP ACK确认报文。DHCP客户端收到该确认报文后,会发送免费ARP报文,检测网络上是否有其他主机使用DHCP服务器分配的IP地址。如果在规定的时间内没有收到回应,DHCP客户端才使用此地址。如果客户端发现IP地址发生冲突,会通过发送DHCP DECLINE消息来通知服务器,一段时间后(10秒)会重新向服务器申请地址。
4.2、如果不存在相应的租约记录,或者由于某些原因DHCP服务器无法正常分配该IP地址给客户端,则发送DHCP NAK报文作为应答,通知DHCP客户端无法分配合适的IP地址。此时DHCP客户端需要重新发送DHCP DISCOVER报文来申请新的IP地址。
说明
DHCP客户端可以接收到多个DHCP服务器的DHCP OFFER报文,但客户端通常只接受收到的第一个DHCP OFFER报文。
DHCP服务器发出的DHCP OFFER报文中指定的地址不一定为最终分配的地址。通常情况下,DHCP服务器会保留该地址直到客户端发出DHCP REQUEST。
DHCP客户端发送DHCP REQUEST采用广播包,是为了通知其它所有发送DHCP OFFER数据包的DHCP服务器释放已经预分配给该客户端的IP地址。
DHCP服务器收到来自客户端的请求报文,首先选择出一个合法有效的地址池,并在该地址池中通过Ping机制确认一个可用的地址,接着下发该地址池的相关配置信息和IP地址至客户端,同时在本地保存该租约信息,以供该客户续租时检查有效性使用。
地址池可以配置各种参数,如地址池范围、网关地址、DNS地址和租期等。
DHCP服务器按照如下次序为客户端选择IP地址。
DHCP服务器的数据库中与客户端MAC地址静态绑定的IP地址。
客户端以前曾经使用过的IP地址,即客户端发送的DHCP DISCOVER报文中请求IP地址选项的地址。
在DHCP地址池中,顺序查找可供分配的IP地址,最先找到的IP地址。
如果在DHCP地址池中未找到可供分配的IP地址,则依次查询超过租期、发生冲突的IP地址,如果找到可用的IP地址,则进行分配,否则报告错误。
ARP检查功能可辅助Ping机制来检测IP地址冲突。在实际环境中,如有终端开启防火墙,DHCP服务器的Ping冲突检测功能将失效,动态申请IP地址的用户可能会被分配到存在冲突的IP地址。此时如果开启ARP检查功能,DHCP服务器在完成Ping冲突探测后还会查询本机的ARP表项,如果要分配的IP地址已存在ARP表项,且与要分配的终端MAC地址不一致,则认为该IP地址已有用户占用。
如果环境中存在ARP攻击,不建议开启该功能,否则会影响DHCP的分配业务,导致终端申请IP地址慢,甚至申请不到IP地址。
在无线网络中应用DHCP时,DHCP客户端的移动性较大,DHCP客户端经常会从一个网络移动到另一个网络中。当DHCP服务器在收到客户端的REQUEST续租报文时,发现客户端的网段发生更改或者是租约超时,则会回复NAK,要求客户端重新获取IP地址。此操作避免客户端不断发送REQUEST报文直至超时后才能重新获取IP地址,导致IP地址获取时间延长。
但是,DHCP服务器发送NAK报文的前提是该DHCP客户端在本服务器的管理范围之内,否则无法查找到对应的租约记录信息。当DHCP客户端从另一个网络环境中移入本网络时,DHCP服务器无法在本地查找到对应的租约记录信息,将不予回复NAK。此时DHCP客户端需要不断发送REQUEST报文,直至超时后才能重新获取IP地址,导致IP地址获取时间变长。在DHCP服务器重启时丢失客户端租约,而客户端要求续租时也会遇到类似情况。在这种情况下,可以通过命令配置强制让DHCP服务器在查找不到租约记录时也给予回复NAK报文,触发客户端快速获取到IP地址。
DHCP中继是为了实现跨网段的动态IP地址分配而产生的。DHCP中继将收到的DHCP请求报文以单播方式转发给DHCP服务器,同时将收到的DHCP响应报文转发给DHCP客户端。DHCP中继相当于一个转发站,负责位于不同网段的DHCP客户端和DHCP服务器之间的通信。在仅安装一个DHCP服务器的情况下,就可以实现对多个网段的动态IP管理,即客户端—中继—服务器模式的DHCP动态IP管理。
DHCP中继的工作过程
(1)DHCP中继收到DHCP客户端以广播方式发送的DHCP DISCOVER或DHCP REQUEST报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并将该报文单播转发给指定的DHCP服务器。
(2)DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并通过DHCP中继将配置信息转发给客户端,完成对客户端的动态配置。
DHCP中继应用场景
VLAN 10和VLAN 20分别对应10.0.0.0/16和20.0.0.0/16的网络,而DHCP服务器在30.0.0.0/16的网络上。IP地址为30.0.0.2的DHCP服务器要对10.0.0.0/16和20.0.0.0/16的网络进行动态IP管理,只要在作为网关的设备上打开DHCP中继功能,并配置30.0.0.2为DHCP服务器的IP地址。
根据RFC 3046的定义,中继设备可以通过添加中继代理信息选项(DHCP Relay Agent Information Option)的方式来详细地标明DHCP客户端的多类网络信息,从而使服务器可以根据更精确的信息给用户分配不同权限的IP。中继代理信息选项所使用的选项号为82,故也被称作Option82。
DHCP中继根据接收DHCP请求报文的实体端口和设备自身的物理地址信息,组合成Option82选项。Option82最多可以包含255个子选项。若定义了Option82,则至少要定义一个子选项。目前设备支持如下子选项:Sub-option 1(Circuit-ID,电路ID子选项)和Sub-option 2(Remote-ID,远程ID子选项),格式如图1-7和图1-8所示。
Option82支持自定义的内容填充。DHCP中继可根据接收DHCP请求报文的实体端口信息、设备自身的物理地址和设备名称等信息,组合成Option82选项。子选项格式如图1-9和图1-10所示。
Option dot1x应用方案需要结合802.1x认证技术以及RG-SAM认证计费管理系统产品。
DHCP中继根据RG-SAM在802.1x认证过程中下发的IP权限,以及DHCP客户端所属VLAN ID,组合构成Circuit ID子选项。选项格式如图1-11所示。
Option VPN需要结合MPLS VPN相关功能。
如图1-12示,在MPLS VPN环境中,DHCP Client A和DHCP中继上的GigabitEthernet 0/1口相连,DHCP Client B和DHCP中继上的GigabitEthernet 0/2相连,接口GigabitEthernet 0/1和接口GigabitEthernet 0/2分别属于不同的VRF,DHCP Client A和DHCP Client B通过DHCP获取地址。按照网络规划,VPN 1和VPN 2使用重叠网段192.168.4.0/24,在该应用环境下,传统的DHCP应用根本无法支持该部署。
为了实现在MPLS VPN环境下对DHCP中继的支持,在DHCP中继中引入了Option VPN选项,该选项包括VPN-ID、Subnet-Selection以及Server-Identifier-Override三个子选项。
VPN-ID
在接收到DHCP请求报文时,将DHCP客户端所属的VPN信息,以选项形式加入DHCP请求报文中。DHCP服务器发送响应报文时,将该选项信息原样保留,DHCP中继根据该选项,将DHCP响应报文转发到正确的VRF中。选项格式如图1-13所示。
Subnet-Selection:在传统的DHCP中继环境中,通过giaddr字段表示客户端所在的网络信息以及DHCP服务器与DHCP中继的通讯地址。在MPLS VPN环境中,将giaddr修改为DHCP中继连接DHCP服务器的接口IP,使DHCP服务器可以与DHCP中继直接通讯。但是客户端的子网信息必须通过新的选项Subnet-Selection来表示。选项格式如图1-14所示。
Server-ID-Override:在MPLS VPN环境下,DHCP客户端后续的请求报文都无法直接发送到DHCP服务器。DHCP中继使用该选项携带DHCP中继与DHCP客户端直连的接口地址信息,DHCP服务器发送响应报文时,用该选项覆盖Server-ID选项信息。从而使DHCP客户端在与DHCP服务器交互的过程中,能够将报文送往DHCP中继,然后由DHCP中继将报文转发到DHCP服务器。选项格式如图1-15所示。
在VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)应用场景下,DHCP提供配置命令来决定是否监控当前接口的VRRP状态。对于配置了VRRP地址的接口,当配置监控VRRP状态后,DHCP服务器仅对来自处于Master状态的设备接口的DHCP客户端请求报文进行处理,处于备份(Backup)状态的接口请求报文将被丢弃。而对于未配置VRRP地址的接口,DHCP服务器不再监控VRRP状态,所有DHCP请求报文都会得到处理。VRRP监控命令只能在三层口上配置,缺省情况下VRRP监控功能关闭,即只有主机处理DHCP业务,备机不处理。
RFC 2131:Dynamic Host Configuration Protocol
RFC 2132:DHCP Options and BOOTP Vendor Extensions
RFC 3046:DHCP Relay Agent Information Option
RFC 3442:Classless Static Route Option for DHCPv4
配置设备为DHCP服务器,为DHCP客户端分配和管理IP地址以及其他网络参数。还可根据需求,为DHCP服务器配置其他自定义功能,以实现定制化DHCP服务。
开启DHCP服务器功能
(可选)配置DHCP服务器静态分配IP地址
配置DHCP服务器动态分配IP地址和网络参数
(可选)配置DHCP地址池管理功能
(可选)配置DHCP服务器提供启动文件
(可选)配置DHCP服务器根据用户类规则分配地址
配置DHCP服务器的安全性功能。以下所有配置任务均为可选配置,请根据实际情况选择配置。
配置DHCP服务器重新下发可信ARP
配置DHCP服务器伪服务器检测
配置DHCP服务器的其他自定义功能。以下所有配置任务均为可选配置,请根据实际情况选择配置。
配置DHCP服务器IP地址冲突检测功能
配置DHCP服务器强制回复NAK
配置DHCP服务器优先分配从外部获取到的DNS服务器地址
配置DHCP服务器监控VRRP状态
配置DHCP服务器基于ARP检测用户下线
配置DHCP服务器保存历史租约
设备可作为DHCP服务器向DHCP客户端提供IP地址和其他网络参数分配服务,需要先在设备上开启此功能。
启用DHCP服务器和DHCP中继代理功能共用service dhcp命令,这两个功能可以同时存在,但是报文是通过DHCP中继转发还是直接由DHCP服务器处理,取决于设备上是否配置了合法有效的地址池。如果存在地址池则由DHCP服务器处理,反之则由DHCP中继转发。
进入特权模式。
enable
进入全局配置模式。
configure terminal
启动DHCP服务器功能。
service dhcp
缺省情况下,DHCP服务器功能处于关闭状态。
向某些特定的DHCP客户端(例如服务器、打印机等)下发特定的IP地址及其它配置信息。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置客户端主机的IP地址和网络掩码。
host ipv4-address [ mask ]
缺省情况下,未配置客户端主机的IP地址和网络掩码。
配置客户端硬件地址或唯一标识。以下配置任务请选择其中一项进行配置。
配置客户端的硬件地址。
hardware-address hardware-address [ type ]
缺省情况下,未配置DHCP客户端的硬件地址。
配置客户端的唯一标识。
client-identifier [ unique-identifier ]
缺省情况下,未配置DHCP客户端标识。
客户端标识由媒介类型、MAC地址和接口名称组成。
(可选)配置客户端的名字。
client-name client-name
缺省情况下,未配置DHCP客户端的名字。名字可以用任何标准的ASCII字符集。名字不应包括后缀域名。
配置地址池属性,如指定地址租期、域名服务器地址以及自定义选项等信息。这些信息可以被DHCP服务器通过Option发送给客户端,实现向DHCP客户端提供动态的网络参数分配服务。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置DHCP地址池动态分配的主网段。
network ipv4-network-number mask [ low-ipv4-address high-ipv4-address ]
缺省情况下,未配置DHCP地址池动态分配的主网段。
(可选)配置分配给客户端的缺省网关。
default-router ipv4-address&<1-8>
缺省情况下,未配置DHCP客户端的缺省网关。
DHCP服务器为客户端指定的网关地址必须与分配给客户端的地址在同一个网段。
(可选)配置分配给客户端的域名。
domain-name domain-name
缺省情况下,未配置DHCP客户端的后缀域名。
DHCP客户端获得了指定后缀域名后,当访问具有同样后缀域名的主机时,可直接通过主机名访问。
(可选)配置分配给客户端的域名服务器。
dns-server ipv4-address&<1-8>
缺省情况下,未配置DHCP客户端的DNS服务器。
定义多个DNS服务器时,先定义的优先级高,DHCP客户端只有与先定义的DNS服务器通讯失败,才会选择下一个DNS服务器。
(可选)配置分配给客户端的NetBIOS WINS服务器。
netbios-name-server ipv4-address&<1-8>
缺省情况下,未配置DHCP客户端的NetBIOS WINS服务器。
定义多个WINS服务器时,先定义的优先级高,DHCP客户端只有与先定义的WINS服务器通讯失败,才会选择下一个WINS服务器。
(可选)配置分配给客户端的NetBIOS节点类型。
netbios-node-type type
缺省情况下,微软操作系统的节点类型为广播型或者复合型。如果没有配置WINS服务器,则为广播型节点;如果配置了WINS服务器,就为复合型节点。
(可选)定义DHCP服务器选项。
option code { ascii string | hex string | ip ipv4-address }
缺省情况下,未定义DHCP服务器选项。
以下所有配置任务均为可选配置,请根据实际情况选择配置。
配置地址租期
配置分配地址时添加可信ARP
配置强制不分配网关
配置地址池启用或关闭
配置地址池的告警阈值
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置地址租期。
lease { days [ hours ] [ minutes ] | infinite }
缺省情况下,静态地址池的缺省租期为永久,其它地址池的缺省租期为1天。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置添加可信ARP。
update arp
缺省情况下,DHCP分配地址时不添加可信ARP。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置强制不分配网关。
force-no-router
缺省情况下,DHCP服务器会分配网关给客户端。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置地址池启用或关闭。
pool-status { disable | enable }
缺省情况下,地址池创建后即启用。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建地址池,并进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置地址池的告警阈值。
lease-threshold threshold-percentage
缺省情况下,地址池告警阈值为90%。
有些DHCP客户端在启动过程中需要下载操作系统,配置文件等。DHCP服务器必须提供启动时需要的映像文件名,DHCP客户端才可以通过相应的服务器下载文件。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
配置DHCP客户端启动过程中需要访问的启动服务器列表。
next-server { ipv4-address&<1-8> }
缺省情况下,未配置DHCP客户端启动过程中需要访问的启动服务器列表。
定义多个启动服务器时,先定义的优先级高,DHCP客户端只有与先定义的启动服务器通讯失败,才会选择下一个启动服务器。
配置客户端启动文件名。
bootfile file-name
缺省情况下,未配置DHCP客户端缺省启动映像文件名。
在DHCP中继场景中,DHCP地址池可以根据Option82匹配信息进行地址分配。用户从不同的接入位置申请IP地址,其所带有的Option82信息可能存在差异。在DHCP服务器上配置用户类(CLASS)规则后,可以根据用户携带的Option82信息分配不同网段的IP地址给终端用户。
在地址分配过程中先根据客户端所处的网段确定可以分配的地址池,再根据其Option82信息进一步确定其所属的用户类,从用户类对应的网段范围中分配IP地址。当一个请求报文匹配地址池中的多个用户类时,按照用户类在地址池中配置的先后顺序,从对应的用户类网段范围中分配地址。如果该用户类分配地址已达到上限,则继续从下一个匹配的用户类进行分配,依此类推。
一个DHCP地址池可以关联多个用户类,每个用户类可以指定不同的网段范围。
每个用户类对应一个网段范围,网段范围必须从低地址到高地址,可以允许多个用户类之间的网段范围重复。如果指明了地址池关联的用户类,并且未配置用户类网段,则该用户类默认的网段范围和用户类所处的地址池的网段范围相同。
进入特权模式。
enable
进入全局配置模式。
configure terminal
创建用户类规则,并进入CLASS配置模式。
ip dhcp class class-name
缺省情况下,未配置用户类规则。
(可选)配置用户类的标识信息。
remark class-remark
缺省情况下,未配置用户类的标识信息。
进入Option82信息配置模式。
relay agent information
配置用户类规则匹配的Option82信息。
relay-information hex hex-string
缺省情况下,未配置Option82的匹配信息。
返回全局配置模式。
exit
进入DHCP地址池配置模式。
ip dhcp pool dhcp-pool
地址池关联用户类。
class class-name
缺省情况下,DHCP地址池中未配置关联的用户类。
(可选)配置用户类规则的IP地址范围。
address range low-ipv4-address high-ipv4-address
缺省情况下,用户类所能分配的地址网段范围,默认为地址池的网段范围。
返回全局配置模式。
exit
开启按照用户类规则进行地址分配功能。
ip dhcp use class
缺省情况下,未配置按照用户类规则进行地址分配。
可信ARP用于防止针对网关的ARP欺骗。DHCP提供配置命令来决定分配地址时是否下发可信ARP。当配置了添加可信ARP后,DHCP服务器在分配地址时,会添加可信ARP,从而有效防止ARP欺骗。可信ARP的优先级比动态ARP的优先级高,不会被动态ARP覆盖。
配置DHCP服务器重新下发可信ARP,只会对从配置有update arp的地址池上分配出去的地址重新下发可信ARP。
进入特权模式。
enable
进入全局配置模式。
configure terminal
重新下发可信ARP。
ip dhcp refresh arp
如果网络中私自部署DHCP服务器,当客户端申请地址时,会与这台服务器进行交互,导致客户端分配到错误的IP地址。这台服务器称为伪服务器。DHCP提供配置命令来决定是否开启伪服务器检测功能。当配置伪服务器检测功能时,DHCP会检查接收到的DHCP报文中是否携带Option54(Server Identifier Option,服务器标识选项)。如果携带该选项,并且选项内容与真实DHCP服务器标识不相符,则记录此伪服务器的IP地址和接收到报文的端口信息。伪服务器检测只是一种事后检测的安全功能,并不能预防非法DHCP服务器给客户端分配地址。
配置DHCP伪服务器检测功能后,如果网络中存在伪服务器,会记录在日志中。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置伪服务器检测。
ip dhcp server detect
缺省情况,DHCP伪服务器检测功能处于关闭状态。
排除地址是指从DHCP服务器地址池中排除指定的IP地址或IP地址段,排除地址作用是为了确保这些地址都不会由DHCP服务器提供给DHCP客户机。配置排除地址可提高地址分配效率。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置排除地址。
ip dhcp excluded-address low-ipv4-address [ high-ipv4-address ]
缺省情况下,DHCP服务器在整个地址池范围内分配IP地址。
DHCP服务器试图从DHCP地址池中分配IP地址时,会用Ping操作来检测该地址是否已被其它主机占用,如果已经被其他主机占用则记录下来,如果没被占用就分配给DHCP客户端。
检查ARP表项可辅助Ping冲突检测功能。当环境中存在静态配置IP地址的终端且二层隔离时,若Ping冲突检测功能失效(比如终端开启防火墙),动态申请的用户可能会分配到该IP,造成IP冲突。
以下所有配置任务均为可选配置,请根据实际情况选择配置。
配置DHCP服务器检测地址冲突时执行Ping的次数
配置DHCP服务器检测地址冲突时执行Ping的超时时间
配置ARP检查功能
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置DHCP服务器检测地址冲突时执行Ping的次数。
ip dhcp ping packets [ ping-times ]
缺省情况下,配置DHCP服务器检测地址冲突时执行Ping操作的次数为2。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置DHCP服务器检测地址冲突时执行Ping的超时时间。
ip dhcp ping timeout time
缺省情况下,DHCP服务器用Ping操作检测地址冲突时,等待应答的超时时间为500毫秒。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置ARP检查功能。
ip dhcp arp-probe
缺省情况下,ARP检查功能处于关闭状态。
当DHCP客户端从另一个网络环境中移入时,DHCP服务器将无法在本地查找到对应的租约记录信息,不予回复NAK,此时DHCP客户端需要不断发送Request报文直至超时后重新获取IP地址,导致IP地址获取时间变长。在DHCP服务器重启时丢失客户端租约,而客户端要求续租时也会遇到类似情况。在这种情况下,可以通过配置命令强制让DHCP服务器在查找不到租约记录时也给予回复NAK报文,触发客户端快速获取到IP地址。
在开启本功能的时候,在同一广播域内,不允许开启多台DHCP服务器。NAK命令的配置可能引起网络中其它服务器的功能异常。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置DHCP服务器强制回复NAK。
ip dhcp force-send-nak
缺省配置下,强制发送NAK报文功能处于开启状态。
当设备工作在PPPoE或DHCP Client场景下,可自动从外部获取到DNS地址,设置到本机的DHCP服务器上,避免用户必须进行DNS配置。给用户分配地址时,优先使用从外部获取到DNS地址。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置分配给用户的DNS服务器地址优先使用从DHCP Client/PPPoE获取到的DNS服务器地址。
ip dhcp dns dynamic
缺省情况下,分配给用户的DNS服务器地址是通过dns-server命令配置的。
在VRRP应用场景下,启动该功能后,主机Server处理DHCP相关报文,备机Server则不处理DHCP相关报文。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
进入SVI接口配置模式。
interface vlan interface-number
开启对VRRP状态的监控。
ip dhcp monitor-vrrp-state
缺省情况下,对接口VRRP状态进行监控功能处于关闭状态。
DHCP提供配置命令来决定是否基于ARP检测用户下线。当配置了基于ARP检测用户下线时,用户下线后,DHCP服务器会收到ARP老化通告,开始回收地址。如果一段时间内(默认5分钟),用户没有重新上线,DHCP服务器就回收该地址,分配给新用户;如果在该段时间内重新上线,用户可以继续使用该地址。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置基于ARP检测用户下线。
ip dhcp server arp-detect
缺省情况下,DHCP服务器未配置基于ARP检测用户下线。
开启DHCP保存历史租约功能,在IP地址分配出去后,用户下线,能够保留用户租约信息到数据库,当用户再次上线时,再分配该租约给用户。DHCP进程重启或者设备进行热备切换,也都能够保存历史租约。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启保存历史租约功能。
ip dhcp save-history-enable
缺省情况下,DHCP保存历史租约功能处于关闭状态。
当DHCP客户端与DHCP服务器不在同一网段时,需要使用DHCP中继来进行DHCP动态IP管理。
配置DHCP中继基本功能
配置DHCP中继扩展功能。以下所有配置任务均为可选配置,请根据实际情况选择配置。
配置Option82
配置DHCP中继发送DHCP请求到指定服务器
配置DHCP中继接口抑制
配置DHCP中继支持多网关IP
配置DHCP中继强制发送应答报文
配置DHCP中继指定源地址
配置DHCP中继丢弃VXLAN隧道口报文
DHCP中继功能一般是在设备某个接口上实现的,需要为该接口配置IP中继地址,即在DHCP中继设备上指定的DHCP服务器的IP地址。当配置DHCP中继功能时,从该接口上收到的DHCP广播报文被送到指定服务器。
DHCP中继需要借助网络中现有的单播路由,因此,网络中必须配置IPv4单播路由。
DHCP服务器和DHCP中继共用service dhcp命令,但这两个功能是互斥的,两者之间的切换依赖于是否配置了DHCP地址池。
进入特权模式。
enable
进入全局配置模式。
configure terminal
启动DHCP Relay功能。
service dhcp
缺省情况下,DHCP中继代理功能处于关闭状态。
配置DHCP服务器的IP地址。
ip helper-address { cycle-mode | [ vrf vrf-name ] ipv4-address }
缺省情况下,DHCP Relay未配置DHCP服务器地址。
DHCP服务器地址可以全局配置,也可以在三层接口上配置。全局或者每个三层接口上最多可以配置20个DHCP服务器地址。在接口上收到DHCP请求报文时,首先使用接口上的DHCP服务器列表;如果接口上没有配置DHCP服务器列表,则使用全局配置的DHCP服务器列表。
中继设备可以通过添加Option82的方式来详细标明DHCP客户端的多类网络信息,从而使服务器可以根据更精确的信息给用户分配不同权限的IP。
必须配置DHCP Relay基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
启动DHCP Option82功能。
ip dhcp relay information option82
缺省情况下,DHCP Option82功能处于关闭状态。
配置DHCP Option82子选项。以下配置步骤均为可选配置,请根据实际情况选择配置。
配置Circuit-ID的自定义变量填充内容。
ip dhcp relay information option82 user-defined circuit-id circuit-id-text
缺省情况下,未配置DHCP Option82子选项Circuit-ID的用户自定义填充内容。
配置Remote-ID的自定义变量填充内容。
ip dhcp relay information option82 user-defined remote-id remote-id-text
缺省情况下,未配置DHCP Option82子选项Remote-ID的用户自定义填充内容。
(可选)配置DHCP Option82的用户自定义MAC地址格式。
ip dhcp relay information option82 user-defined mac-format mac-format-type
缺省情况下,MAC地址字符串格式为H.H.H格式。
在DHCP中继代理应用环境中,通常会为每一个网络配备多个DHCP服务器,从而进行备份,防止因为一台服务器的工作不正常影响网络的正常使用。在DHCP租约过程中,当DHCP客户端在发送DHCP REQUEST时已经选定了服务器,此时会在请求的报文中携带一个Server-ID的Option选项,在某些特定的应用环境中为了减轻网络服务器压力,需要DHCP中继能够开启此选项,只把请求报文发给此选项里的DHCP服务器,而不是发送给每一个配置的DHCP服务器,这就是DHCP中继检查Server-ID功能。
当配置该功能后,DHCP中继仅将DHCP请求报文转发到Server-ID中指定的服务器。如果没有配置该命令,则向所有配置的DHCP服务器转发DHCP请求报文。
必须配置DHCP Relay基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启DHCP中继发送DHCP请求到指定服务器的功能。
ip dhcp relay check server-id
缺省情况下,DHCP中继将DHCP请求报文转发到所有DHCP服务器。
在指定接口上配置DHCP中继接口抑制后,将屏蔽该接口上收到的DHCP请求报文;而对于其他接口上收到的DHCP请求报文,则正常转发。
必须配置DHCP Relay基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入二层以太网接口配置模式。
interface ethernet-type interface-number
进入二层聚合接口配置模式。
interface aggregateport interface-number
开启DHCP Relay接口抑制功能。
ip dhcp relay suppression
缺省情况下,DHCP Relay接口抑制功能处于关闭状态。
开启支持多网关IP功能,DHCP中继会使用多个接口IP地址向服务器发起地址申请。正常情况下,DHCP中继的主IP地址作为网关IP,DHCP服务器会根据网关IP分配网段。当客户端无法通过主IP地址的网关申请到IP地址时,可以通过从IP地址作为网关申请IP地址。
开启DHCP中继网关自动切换功能后,DHCP中继转发3次DISCOVER报文且若未收到对应的应答报文,DHCP中继将自动切换为其他地址填充giaddr字段。
必须配置DHCP Relay基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启DHCP中继支持多网关IP功能。
ip dhcp relay multiple-giaddr
缺省情况下,DHCP中继支持多网关IP功能处于关闭状态。
(可选)开启DHCP中继网关自动切换功能。
ip dhcp smart-relay
缺省情况下,DHCP中继网关自动切换功能处于关闭状态。
开启强制发送应答报文功能后,DHCP中继查找MAC的出口时,如果查找不到出口,强制指定网关接口发送应答报文。如果没有开启此功能,DHCP中继查找MAC的出口时,如果查找不到出口,就丢弃报文。
必须配置DHCP Relay基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
开启DHCP relay强制发送应答报文功能。
ip dhcp relay force-send-reply-pack
缺省情况下,DHCP relay强制发送应答报文功能处于关闭状态。
在指定接口上配置命令ip dhcp relay source后,可指定DHCP中继报文的源地址。
一个接口下只能指定一个DHCP中继报文的源地址。
该功能需配合Option82功能一起使用。
进入特权模式。
enable
进入全局配置模式。
configure terminal
进入接口配置模式。
进入三层以太网接口配置模式。
interface ethernet-type interface-number
进入三层聚合接口配置模式。
interface aggregateport interface-number
进入SVI接口配置模式。
interface vlan interface-number
配置DHCP Relay指定的源地址。
ip dhcp relay source ipv4-address
缺省情况,未配置Relay报文的源地址。
在某些组网下,存在多台DHCP中继设备且它们之间通过VXLAN隧道连接,DHCP的查询报文通过VXLAN隧道广播,可配置丢弃VXLAN隧道口DHCP报文。
必须配置DHCP Relay基本功能。
进入特权模式。
enable
进入全局配置模式。
configure terminal
配置DHCP中继丢弃VXLAN隧道口报文功能。
ip dhcp relay discard overlay-tunnel
缺省情况下,接收VXLAN隧道口的DHCP报文。
可以通过show命令行查看功能配置后的运行情况以验证配置效果。
可以通过debug命令行列举输出的各种调试信息。
注意
输出调试信息,会占用系统资源。使用完毕后,请立即关闭调试开关。
可以通过执行clear命令来清除各类信息。
注意
在设备运行过程中执行clear命令,可能因为重要信息丢失而导致业务中断。
DHCP监视与维护
作用 |
命令 |
---|---|
清除DHCP地址绑定记录 |
clear ip dhcp binding { ipv4-address | * } |
清除DHCP地址冲突记录 |
clear ip dhcp conflict { ipv4-address | * } |
清除DHCP历史租约记录 |
clear ip dhcp history { mac-address | * } |
清除DHCP伪服务器记录 |
clear ip dhcp server detect { ipv4-address | * } |
清除DHCP服务器性能统计信息 |
clear ip dhcp server rate |
清除DHCP服务器的统计信息 |
clear ip dhcp server statistics |
清除DHCP中继的统计信息 |
clear ip dhcp relay statistics |
查看DHCP地址绑定情况 |
show ip dhcp binding |
查看DHCP服务器的冲突记录 |
show ip dhcp conflict |
查看DHCP服务器的数据库备份功能运行情况 |
show ip dhcp database |
查看PPPoE或DHCP客户端从外部获取到的DNS服务器地址 |
show ip dhcp dns dynamic |
查看DHCP历史租约记录 |
show ip dhcp history |
查看DHCP服务器地址池的ID和地址使用情况 |
show ip dhcp identifier |
查看DHCP服务器的地址池使用情况及其利用率等信息 |
show ip dhcp pool [ pool-name ] |
查看DHCP中继统计信息 |
show ip dhcp relay-statistic |
查看DHCP伪服务器信息 |
show ip dhcp server detect |
查看DHCP服务器统计信息 |
show ip dhcp server statistic |
查看DHCP用的套接字索引 |
show ip dhcp socket |
打开DHCP服务器调试开关 |
debug ip dhcp server agent |
打开DHCP服务器热备调试开关 |
debug ip dhcp server ha |
打开DHCP服务器地址池调试开关 |
debug ip dhcp server pool |
打开DHCP服务器联动VRRP的调试开关 |
debug ip dhcp server vrrp |
打开DHCP服务器所有调试开关 |
debug ip dhcp server all |
打开DHCP中继调试开关 |
debug ip dhcp relay |
如图1-16所示,Host作为DHCP客户端,从DHCP服务器Device A获取静态绑定的IP地址。Host的MAC地址为:0050.56b0.2f50。
配置Device A:
配置接口的IP地址。
开启DHCP Server服务,配置地址池参数。
配置Device A。
# 配置接口的IP地址。
DeviceA> enable
DeviceA # configure terminal
DeviceA(config)# interface gigabitethernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.1.1.1 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
# 开启DHCP Server服务。
DeviceA(config)# service dhcp
# 创建地址池pool1。
DeviceA(config)# ip dhcp pool pool1
# 配置采用静态绑定方式为客户端Host分配IP地址。
DeviceA(dhcp-config)# host 192.1.1.99 255.255.255.0
DeviceA(dhcp-config)# hardware-address 0050.56b0.2f50
配置Host。
# 配置Host启动DHCP获取地址的功能。(略)
# Host申请到IP地址192.1.1.99/24。
Device A的配置文件
hostname DeviceA
!
interface gigabitethernet 0/1
ip address 192.1.1.1 255.255.255.0
!
service dhcp
!
ip dhcp pool pool1
host 192.1.1.99 255.255.255.0
hardware-address 0050.56b0.2f50
!
未配置地址池。
未开启DHCP Server服务。
如图1-17所示,Device A作为DHCP服务器为同一网段中的客户端动态分配IP地址,地址池分为两个网段:192.1.1.0/25和192.1.1.128/25。
网段192.1.1.0/25内的IP地址租用期限为5天,域名后缀名为test.com,DNS服务器地址为192.1.1.130,网关地址为192.1.1.1;网段10.1.1.128/25内的IP地址租用期限为3天,域名后缀名为test.com,DNS服务器地址为192.1.1.130,网关地址为192.1.1.129。
配置Device A:
配置接口的IP地址。
开启DHCP Server服务,配置2个地址池的参数。
配置Device A
# 配置接口的IP地址。
DeviceA> enable
DeviceA # configure terminal
DeviceA(config)# interface gigabitethernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.1.1.1 255.255.255.128
DeviceA(config-if-GigabitEthernet 0/1)# exit
DeviceA(config)# interface gigabitethernet 0/2
DeviceA(config-if-GigabitEthernet 0/2)# ip address 192.1.1.129 255.255.255.128
DeviceA(config-if-GigabitEthernet 0/2)# exit
# 启用DHCP Server服务。
DeviceA(config)# service dhcp
# 配置地址池pool1的网络参数。
DeviceA(config)# ip dhcp pool pool1
DeviceA(dhcp-config)# network 192.1.1.0 255.255.255.128
DeviceA(dhcp-config)# default-router 192.1.1.1
DeviceA(dhcp-config)# dns-server 192.1.1.130
DeviceA(dhcp-config)# domain-name test.com
DeviceA(dhcp-config)# lease 5
DeviceA(dhcp-config)# exit
# 配置地址池pool2的网络参数。
DeviceA(config)# ip dhcp pool pool2
DeviceA(dhcp-config)# network 192.1.1.128 255.255.255.128
DeviceA(dhcp-config)# default-router 192.1.1.129
DeviceA(dhcp-config)# dns-server 192.1.1.130
DeviceA(dhcp-config)# domain-name test.com
DeviceA(dhcp-config)# lease 3
配置DNS Server
# 配置DNS Server的IP地址为192.1.1.130/25。(略)
配置Host
# 配置Host A、Host B、Host C启动DHCP获取地址的功能。(略)
# Host A和Host B申请到192.1.1.0/25网段的地址。
# Host C申请到192.1.1.128/25网段的地址。
# 在Device A通过show ip dhcp pool命令查看地址池配置及使用情况。
DeviceA(config)# show ip dhcp pool
Pool name Total Distributed Remained Percentage
------------ ----------- ----------- -------- -----------
pool1 126 2 124 0.98413
pool2 126 1 125 0.99206
Device A的配置文件
hostname DeviceA
!
interface gigabitethernet 0/1
ip address 192.1.1.1 255.255.255.128
!
interface gigabitethernet 0/2
ip address 192.1.1.129 255.255.255.128
!
service dhcp
!
ip dhcp pool pool1
network 192.1.1.0 255.255.255.128
default-router 192.1.1.1
dns-server 192.1.1.130
domain-name test.com
lease 5
!
ip dhcp pool pool2
network 192.1.1.128 255.255.255.128
default-router 192.1.1.129
dns-server 192.1.1.130
domain-name test.com
lease 3
!
未配置地址池。
未开启DHCP Server服务。
如图1-18所示,DHCP客户端Host所在网段为192.1.1.0/24,Device A为网关设备,Device B为DHCP服务器。DHCP客户端要想向DHCP服务器申请到IP地址等相关配置信息,需要将网关作为DHCP中继,使得DHCP报文能够被中继转发给DHCP服务器。
配置Device A。
配置接口的IP地址。
开启DHCP中继功能。
配置Device B。
配置接口的IP地址。
配置从Device B到Device A的接口GigabitEthernet 0/1的路由。
开启DHCP Server服务,配置地址池的参数。
配置Device A
# 配置接口的IP地址。
DeviceA> enable
DeviceA# configure terminal
DeviceA(config)# interface gigabitethernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.1.1.1 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
DeviceA(config)# interface gigabitethernet 0/2
DeviceA(config-if-GigabitEthernet 0/2)# ip address 172.2.2.2 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/2)# exit
# 开启DHCP中继功能。
DeviceA(config)# service dhcp
# 添加DHCP服务器的地址。
DeviceA(config)# ip helper-address 172.2.2.1
配置Device B
# 配置接口的IP地址。
DeviceB> enable
DeviceB# configure terminal
DeviceB(config)# interface gigabitethernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 172.2.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置到192.1.1.0/24网段的静态路由。
DeviceB(config)# ip route 192.1.1.0 255.255.255.0 gigabitethernet 0/1
# 启用DHCP Server功能。
DeviceB(config)# service dhcp
# 配置地址池pool1的网络参数。
DeviceB(config)# ip dhcp pool pool1
DeviceB(dhcp-config)# network 192.1.1.0 255.255.255.0
DeviceB(dhcp-config)# default-router 192.1.1.1
DeviceB(dhcp-config)# dns-server 192.1.1.2
DeviceB(dhcp-config)# exit
配置Host启动DHCP获取地址的功能。(略)
# Host申请到192.1.1.0/24网段的地址。
# 在Device B通过show ip dhcp pool命令查看地址池配置及使用情况。
DeviceB(config)# show ip dhcp pool
Pool name Total Distributed Remained Percentage
------------ ----------- ----------- -------- -----------
pool1 126 1 125 0.99206
Device A的配置文件
hostname DeviceA
!
interface gigabitethernet 0/1
ip address 192.1.1.1 255.255.255.0
!
interface gigabitethernet 0/2
!
service dhcp
ip helper-address 172.2.2.1
!
Device B的配置文件
hostname DeviceB
!
interface gigabitethernet 0/1
ip address 172.2.2.1 255.255.255.0
!
ip route 192.1.1.0 255.255.255.0 gigabitethernet 0/1
service dhcp
!
ip dhcp pool pool1
network 192.1.1.0 255.255.255.0
default-router 192.1.1.1
dns-server 192.1.1.2
!
DHCP中继没有启动DHCP Relay功能。
没有配置DHCP Relay与DHCP Service之间的路由。
在DHCP中继上没有配置DHCP服务器IP地址。
如图1-19所示,Device A作为DHCP服务器为客户端分配IP地址和其他网络配置参数;Device B作为DHCP中继在客户端与服务器之间转发DHCP报文。现要求实现:如果Device A接收到的请求报文中带有Option 82,则为该客户端分配地址范围192.1.1.200到192.1.1.254的IP地址;否则,为该客户端分配地址范围192.1.1.1到192.1.1.199的IP地址。
配置Device A
配置接口的IP地址。
开启DHCP中继功能。
开启Option82功能。
配置Device B
配置接口的IP地址。
配置从Device B到Device A的接口GigabitEthernet 0/1的路由。
开启DHCP Server服务,配置地址池的参数。
添加指定的用户类规则。
配置Device A
# 配置接口的IP地址。
DeviceA> enable
DeviceA# configure terminal
DeviceA(config)# interface gigabitethernet 0/1
DeviceA(config-if-GigabitEthernet 0/1)# ip address 192.1.1.1 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/1)# exit
DeviceA(config)# interface gigabitethernet 0/2
DeviceA(config-if-GigabitEthernet 0/2)# ip address 172.2.2.2 255.255.255.0
DeviceA(config-if-GigabitEthernet 0/2)# exit
# 开启DHCP中继功能。
DeviceA(config)# service dhcp
# 添加DHCP服务器的地址。
DeviceA(config)# ip helper-address 172.2.2.1
# 开启Option82功能。
DeviceA(config)# ip dhcp relay information option82
配置Device B
# 配置接口的IP地址。
DeviceB> enable
DeviceB# configure terminal
DeviceB(config)# interface gigabitethernet 0/1
DeviceB(config-if-GigabitEthernet 0/1)# ip address 172.2.2.1 255.255.255.0
DeviceB(config-if-GigabitEthernet 0/1)# exit
# 配置到192.1.1.0/24网段的静态路由。
DeviceB(config)# ip route 192.1.1.0 255.255.255.0 gigabitethernet 0/1
# 启用DHCP Server功能。
DeviceB(config)# service dhcp
# 配置用户类规则。
DeviceB(config)# ip dhcp class myclass
DeviceB(config-dhcp-class)# relay agent information
DeviceB(config-dhcp-class-relayinfo)# relay-information hex 060223*
# 创建地址池并配置相关网络参数。
DeviceB(config)# ip dhcp pool pool1
DeviceB(dhcp-config)# network 192.1.1.0 255.255.255.0
DeviceB(dhcp-config)# default-router 192.1.1.1
DeviceB(dhcp-config)# dns-server 192.1.1.2
# 设置匹配用户类时分配地址网段。
DeviceB(dhcp-config)# class myclass
DeviceB(config-dhcp-pool-class)# address range 192.1.1.200 192.1.1.254
DeviceB(config-dhcp-pool-class)# exit
配置Host启动DHCP获取地址的功能。(略)
在Device B捕获报文,查看匹配用户类规则的终端申请到的IP地址范围为192.1.1.200~192.1.1.254;不匹配时,申请到的IP地址范围为192.1.1.1~192.1.1.199。
Device A的配置文件
hostname DeviceA
!
service dhcp
ip helper-address 172.2.2.1
ip dhcp relay information option82
!
interface gigabitethernet 0/1
ip address 192.1.1.1 255.255.255.0
exit
interface gigabitethernet 0/2
ip address 172.2.2.2 255.255.255.0
!
Device B的配置文件
hostname DeviceB
!
ip route 192.1.1.0 255.255.255.0 gigabitethernet 0/1
service dhcp
!
interface gigabitethernet 0/1
ip address 172.2.2.1 255.255.255.0
!
ip dhcp class myclass
relay agent information
relay-information hex 060223*
!
ip dhcp pool pool1
network 192.1.1.0 255.255.255.0
default-router 192.1.1.1
dns-server 192.1.1.2
class myclass
address range 192.1.1.200 192.1.1.254
!
没有启动DHCP Relay功能。
没有配置DHCP Relay与DHCP Server之间的路由。
没有配置DHCP 服务器IP地址。