07-DHCP配置
本章节下载: 07-DHCP配置 (1.25 MB)
目 录
2.4.7 配置DHCP地址池支持ODAP按需分配子网段功能
2.4.13 配置DHCP客户端使用的WINS服务器地址和NetBIOS节点类型
2.4.16 配置DHCP客户端使用的下一个提供服务的服务器IP地址
2.4.17 配置DHCP客户端使用的Option 184参数
2.8 开启为MAC地址相同的DHCP客户端分配不同IP地址功能
2.14.2 配置DHCP服务器发送DHCP应答报文不携带Option 60选项
2.14.3 配置当DHCP客户端请求的新地址与之前DHCP服务器分配的地址不同或该地址对应的租约不存在时,DHCP服务器回复NAK报文功能
2.14.5 配置DHCP服务器以RFC 1048规定的格式发送BOOTP应答报文
2.15 配置DHCP服务器发送DHCP报文的DSCP优先级
2.19 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址
2.20 配置DHCP服务器收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式
2.24 配置当地址池的可分配地址资源耗尽时,系统生成日志信息
2.25 当收到同MAC的dhcp request报文时,可以直接控制下线已在线的老用户dhcp reboot-request user offline
3.12.2 通过smart-relay功能指定DHCP报文中填充的中继地址
3.13.2 指定DHCP中继向DHCP服务器转发报文的源地址(接口视图)
3.13.3 指定DHCP中继向DHCP服务器转发报文的源地址(DHCP中继地址池视图)
3.15 配置DHCP中继允许从同一个DHCP服务器接收DHCP-NAK报文的最大个数
3.16 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址
3.17 配置DHCP中继通过Option82信息转发DHCP应答报文
3.18 配置DHCP中继收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式
3.19 配置DHCP中继收到应答DHCP-DISCOVER报文的DHCP-NAK报文达到一定条件后,切换到向下一个远端DHCP地址池对应的服务器转发报文
3.22.1 DHCP客户端无法通过DHCP中继获取配置信息
5.1.3 DHCP Snooping支持Option 82功能
5.5 配置DHCP Snooping支持Option 82功能
5.7 配置接口动态学习DHCP Snooping表项的最大数目
5.11.2 DHCP Snooping支持Option 82配置举例
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)采用客户端/服务器模式,由服务器为网络设备动态地分配IP地址等网络配置参数。DHCP客户端和DHCP服务器处于不同物理网段时,客户端可以通过DHCP中继与服务器通信,获取IP地址及其他配置信息。DHCP中继的详细介绍,请参见“3.1 DHCP中继简介”。
图1-1 同网段DHCP组网应用
针对客户端的不同需求,DHCP提供三种IP地址分配策略:
· 手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址。通过DHCP将配置的固定IP地址分配给客户端。
· 自动分配地址:DHCP为客户端分配租期为无限长的IP地址。
· 动态分配地址:DHCP为客户端分配具有一定有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。
图1-2 IP地址动态获取过程
如图1-2所示,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报文,表明地址不能分配给该客户端。
客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内未收到回应,并且客户端上不存在与该地址同网段的其他地址时,客户端才使用此地址。否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,并重新申请IP地址。
如果网络中存在多个DHCP服务器,除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。
DHCP服务器分配给客户端的IP地址具有一定的租借期限(除自动分配的IP地址),该租借期限称为租约。当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,则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的报文格式如图1-3所示,括号中的数字表示该字段所占的字节。
图1-3 DHCP报文格式
各字段的解释如下:
· op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在options字段中标识。
· htype、hlen:DHCP客户端的硬件地址类型及长度。
· hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
· xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
· secs:DHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0。
· flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。
· ciaddr:DHCP客户端的IP地址。如果客户端有合法和可用的IP地址,则将其添加到此字段,否则字段设置为0。此字段不用于客户端申请某个特定的IP地址。
· yiaddr:DHCP服务器分配给客户端的IP地址。
· siaddr:DHCP客户端获取启动配置信息的服务器IP地址。
· giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
· chaddr:DHCP客户端的硬件地址。
· sname:DHCP客户端获取启动配置信息的服务器名称。
· file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
· options:可选变长选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。
为了与BOOTP(Bootstrap Protocol,自举协议)兼容,DHCP保留了BOOTP的消息格式。DHCP和BOOTP消息的不同主要体现在选项(Options)字段。DHCP在BOOTP基础上增加的功能,通过Options字段来实现。
DHCP利用Options字段传递控制信息和网络配置参数,实现地址动态分配的同时,为客户端提供更加丰富的网络配置信息。
DHCP选项的格式如图1-4所示。
图1-4 DHCP选项格式
常见的DHCP选项有:
· Option 3:路由器选项,用来指定为客户端分配的网关地址。
· Option 6:DNS服务器选项,用来指定为客户端分配的DNS服务器地址。
· Option 33:静态路由选项。该选项中包含一组有分类静态路由(即目的网络地址的掩码固定为自然掩码,不能划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果Option 33和Option 121同时存在,则忽略Option 33。
· Option 51:IP地址租约选项。
· Option 53:DHCP消息类型选项,标识DHCP消息的类型。
· Option 55:请求参数列表选项。客户端利用该选项指明需要从服务器获取哪些网络配置参数。该选项内容为客户端请求的参数对应的选项值。
· Option 60:厂商标识选项。客户端利用该选项标识自己所属的厂商;DHCP服务器可以根据该选项区分客户端所属的厂商,并为其分配特定范围的IP地址。
· Option 66:TFTP服务器名选项,用来指定为客户端分配的TFTP服务器的域名。
· Option 67:启动文件名选项,用来指定为客户端分配的启动文件名。
· Option 121:无分类路由选项。该选项中包含一组无分类静态路由(即目的网络地址的掩码为任意值,可以通过掩码来划分子网),客户端收到该选项后,将在路由表中添加这些静态路由。如果Option 33和Option 121同时存在,则忽略Option 33。
· Option 150:TFTP服务器地址选项,用来指定为客户端分配的TFTP服务器的地址。
更多DHCP选项的介绍,请参见RFC 2132和RFC 3442。
有些选项的内容,RFC 2132中没有统一规定,例如Option 43、Option 82和Option 184。下面将介绍设备上定义的几种选项。
Option 43称为厂商特定信息选项。DHCP服务器和DHCP客户端通过Option 43交换厂商特定的信息。
设备作为DHCP客户端时,可以通过Option 43获取:
· ACS(Auto-Configuration Server,自动配置服务器)的参数,包括URL地址、用户名和密码。
· 服务提供商标识,CPE(Customer Premises Equipment,用户侧设备)从DHCP服务器获取该信息后,将该信息通告给ACS,以便ACS选择服务提供商特有的配置和参数等。CPE和ACS的详细介绍,请参见“网络管理和监控配置指导”中的“CWMP(TR-069)”。
· PXE(Preboot eXecution Environment,预启动执行环境)引导服务器地址,以便客户端从PXE引导服务器获取启动文件或其他控制信息。
· 在无线网络中,AP(Access Point,接入点)作为DHCP客户端,可以通过Option 43获取AC(Access Controller,接入控制器)地址,以便AP从AC获取启动文件或其他控制信息。
为了提供可扩展性,通过Option 43为客户端分配更多的信息,Option 43采用子选项的形式,通过不同的子选项为用户分配不同的网络配置参数。如图1-5所示。子选项中各字段的含义为:
· Sub-option type:子选项类型。目前,子选项类型值可以为0x01表示ACS参数子选项,0x02表示服务提供商标识子选项,0x80表示PXE引导服务器地址子选项。
· Sub-option length:子选项的长度,不包括子选项类型和子选项长度字段。
· Sub-option value:子选项的取值。不同类型的子选项,取值格式有所不同。
· ACS参数子选项的取值字段格式如图1-6所示。ACS的URL地址、用户名和密码长度可变,每个参数之间用空格(十六进制数为20)隔开。
图1-6 ACS参数子选项取值字段的格式
· 服务提供商标识子选项的取值字段内容为服务提供商的标识。
· PXE引导服务器地址子选项的取值字段格式如图1-7所示。其中,PXE服务器类型目前取值只能为0;Server number为子选项中包含的PXE服务器地址的数目;Server IP addresses为PXE服务器的IP地址。
图1-7 PXE引导服务器地址子选项取值字段的格式
Option 82称为中继代理信息选项,该选项记录了DHCP客户端的位置信息。DHCP中继或DHCP Snooping设备接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加Option 82,并转发给DHCP服务器。
管理员可以从Option 82中获得DHCP客户端的位置信息,以便定位DHCP客户端,实现对客户端的安全和计费等控制。支持Option 82的服务器还可以根据该选项的信息制定IP地址和其他参数的分配策略,提供更加灵活的地址分配方案。
Option 82最多可以包含255个子选项。若定义了Option 82,则至少要定义一个子选项。目前设备只支持两个子选项:sub-option 1(Circuit ID,电路ID子选项)和sub-option 2(Remote ID,远程ID子选项)。
由于Option 82的内容没有统一规定,不同厂商通常根据需要进行填充。
设备上,Circuit ID的填充模式有以下几种:
· 采用string模式填充:sub-option 1的内容是用户配置的字符串。
· 采用normal模式填充:sub-option 1的内容是接收到DHCP客户端请求报文的接口所属的VLAN ID以及接口编号。
· 采用verbose模式填充:sub-option 1的内容包括用户配置的接入节点标识,接收到DHCP客户端请求报文的接口类型、接口编号和接口所属的VLAN ID。
Remote ID的填充模式有以下几种:
· 采用string模式填充:sub-option 2的内容是用户配置的字符串。
· 采用normal模式填充:sub-option 2的内容是接收到DHCP客户端请求报文的接口MAC地址(DHCP中继)或设备的桥MAC地址(DHCP Snooping)。
· 采用sysname模式填充:sub-option 2的内容是设备的系统名称。设备的系统名称可以通过系统视图下的sysname命令配置。
Option 184是RFC中规定的保留选项,用户可以自定义该选项中携带的信息。设备上,Option 184携带了语音呼叫所需的信息。通过Option 184,可以实现在为具有语音功能的DHCP客户端提供语音呼叫相关信息。
目前Option 184支持四个子选项,承载的内容如下:
· sub-option 1:网络呼叫处理器的IP地址,用来标识作为网络呼叫控制源及应用程序下载的服务器。只有定义了sub-option 1(网络呼叫处理器的IP地址子选项),其他子选项才能生效。
· sub-option 2:备用服务器的IP地址,当sub-option 1中携带的网络呼叫处理器不可达或不合法时,DHCP客户端使用该选项指定的备用服务器作为网络呼叫处理器。
· sub-option 3:语音VLAN信息,指定语音VLAN的ID及DHCP客户端是否会将所指定的VLAN作为语音VLAN。
· sub-option 4:自动故障转移呼叫路由,指定故障转移呼叫路由的IP地址及其关联的拨号串,即SIP(Session Initiation Protocol,会话初始协议)用户之间互相通信时对端的IP地址和呼叫号码。当网络呼叫处理器和备用服务器均不可达时,SIP用户可以使用对端IP地址及呼叫号码直接与对端SIP用户建立连接并通信。
与DHCP相关的协议规范有:
· RFC 2131:Dynamic Host Configuration Protocol
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
· RFC 3046:DHCP Relay Agent Information Option
· RFC 3442:The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4
DHCP服务器通过地址池保存IP地址和网络参数,从地址池中选择IP地址和网络参数分配给客户端。
地址池的地址管理方式有以下几种:静态绑定IP地址,即通过将客户端的MAC地址或客户端ID与IP地址绑定的方式,实现为特定的客户端分配特定的IP地址;动态选择IP地址,即在地址池中指定可供分配的IP地址范围,当收到客户端的IP地址申请时,从该地址范围中动态选择IP地址,分配给该客户端。
在地址池中指定可供分配的IP地址范围,有以下几种方法:
多个地址范围是指一个地址池动态分配的IP地址范围(公共地址范围)和多个为DHCP用户类分配的IP地址范围。
DHCP服务器通过定义DHCP用户类,实现为满足特定条件的客户端分配特定地址范围的IP地址。DHCP服务器根据客户端发送的请求报文,判断DHCP客户端所属的用户类。每个用户类可以配置多个匹配条件,只要客户端发送的DHCP请求报文满足任意一个匹配条件,就认为该客户端属于该用户类。在地址池下,可以为不同的用户类指定不同的地址范围。如果DHCP客户端属于某个用户类,则从该用户类的地址范围内选择地址分配给该客户端。
采用这种地址管理方式时,地址选择过程为:
(1) 按照地址池下用户类地址范围的配置顺序,将DHCP客户端和用户类进行匹配。
(2) 如果DHCP客户端属于某个用户类,则从该用户类的地址范围中选择地址分配给客户端。
(3) 如果该用户类中没有可供分配的地址,则继续匹配下一个用户类。如果所有匹配上的用户类地址范围都没有可供分配的地址,则从公共地址范围中选择地址分配给客户端。
(4) 如果DHCP客户端不属于任何一个DHCP用户类,则会从地址池动态分配的IP地址范围(通过address range命令配置)中选择地址分配给DHCP客户端。
(5) 如果动态分配的IP地址范围内也没有空闲地址,或者未配置动态分配的IP地址范围,则地址分配失败,即DHCP服务器无法为DHCP客户端分配地址。
每个地址范围内的地址都必须属于指定的主网段,否则无法分配该范围内的地址。
采用此种地址分配方式时,地址选择的过程是:首先从地址池主网段中查找可供分配的IP地址。如果主网段中没有可供分配的IP地址,则按照该地址池下从网段的配置顺序,依次查找可供分配的IP地址。
DHCP服务器为客户端分配IP地址时,按照如下顺序选择地址池:
(1) 如果存在将客户端MAC地址或客户端ID与IP地址静态绑定的地址池,则选择该地址池,并将静态绑定的IP地址和其他网络参数分配给客户端。
(2) 如果接收到DHCP请求报文的接口引用了某个地址池,则选择该地址池,从该地址池中选取IP地址和其他网络参数分配给客户端。
(3) 如果配置了DHCP策略,则DHCP客户端匹配某个DHCP用户类时,DHCP服务器选择与该DHCP用户类关联的DHCP地址池;DHCP客户端未匹配到DHCP用户类时,若配置了默认DHCP地址池,则选择该DHCP地址池;若未配置默认DHCP地址池或DHCP默认地址池不存在可供分配的IP地址时,IP地址或其他参数分配失败。
(4) 如果上述条件均不满足,则使用以下方法选择DHCP地址池:
¡ 如果客户端与服务器在同一网段,则将DHCP请求报文接收接口的IP地址与所有地址池配置的主网段进行匹配,并选择最长匹配的主网段所对应的地址池。如果未匹配到主网段,则将DHCP请求报文接收接口的IP地址与所有地址池配置的从网段进行匹配,并选择最长匹配的网段所对应的地址池。
¡ 如果客户端与服务器不在同一网段,即客户端通过DHCP中继获取IP地址,则将DHCP请求报文中giaddr字段指定的IP地址与所有地址池配置的主网段进行匹配,并选择最长匹配的网段所对应的地址池。如果未匹配到主网段,则将DHCP请求报文中giaddr字段指定的IP地址与所有地址池配置的从网段进行匹配,并选择最长匹配的网段所对应的地址池。
例如,DHCP服务器上配置了两个地址池,动态分配的网段分别是1.1.1.0/24和1.1.1.0/25,如果接收DHCP请求报文的接口IP地址为1.1.1.1/25,且未引用地址池,服务器将从1.1.1.0/25地址池中选择IP地址分配给客户端,1.1.1.0/25地址池中如果没有可供分配的IP地址,则服务器无法为客户端分配地址;如果接收DHCP请求报文的接口IP地址为1.1.1.130/25,服务器将从1.1.1.0/24地址池中选择IP地址分配给客户端。
· 配置地址池动态分配的网段和IP地址范围时,请尽量保证其与DHCP服务器接口或DHCP中继接口地址的网段一致,以免分配错误的IP地址。
· 建议合理规划DHCP服务器上各地址池中主网段的配置,尽量避免客户端匹配不到主网段、直接匹配从网段的情况发生。
DHCP服务器为客户端分配IP地址的优先次序如下:
(1) 与客户端MAC地址或客户端ID静态绑定的IP地址。
(2) DHCP服务器记录的曾经分配给客户端的IP地址。
(3) 客户端发送的DHCP-DISCOVER报文中Option 50字段指定的IP地址。Option 50为客户端请求的IP地址选项(Requested IP Address),客户端通过在DHCP-DISCOVER报文中添加该选项来指明客户端希望获取的IP地址。该选项的内容由客户端决定。
(4) 按照“2.1.1 地址池的地址管理方式”和“2.1.2 地址池的选取原则”中所述的动态分配地址选择原则,顺序查找可供分配的IP地址,选择最先找到的IP地址。
(5) 如果未找到可用的IP地址,则从当前匹配地址池中依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。
· 如果客户端所在的网段发生变化,服务器不会为客户端分配曾经分配给它的IP地址,而是从匹配新网段的地址池中重新选择IP地址。
· 使用曾经发生过冲突的IP地址时,只有冲突状态超过一小时的IP地址才能够被服务器分配给新的DHCP客户端。
DHCP服务器配置任务如下:
(1) (可选)创建DHCP用户类
(2) 配置DHCP服务器的地址池
(3) (可选)修改DHCP服务器的地址池选择方式
(4) (可选)开启为MAC地址相同的DHCP客户端分配不同IP地址功能
(5) 开启DHCP服务
(6) 配置接口工作在DHCP服务器模式
(7) (可选)配置高级功能
¡ 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址
(8) (可选)配置告警及日志功能
DHCP用户类通过DHCP请求报文中的硬件地址、Option信息或Giaddr字段来匹配一组特定的DHCP客户端,以实现为特定的DHCP客户端分配特定的IP地址和其他参数。
(1) 进入系统视图。
system-view
(2) 创建DHCP用户类,并进入DHCP用户类视图。
dhcp class class-name
(3) 配置DHCP用户类的匹配规则。
if-match rule rule-number { hardware-address hardware-address mask hardware-address-mask | option option-code [ ascii ascii-string [ offset offset | partial ] | hex hex-string [ mask mask | offset offset length length | partial ] ] | relay-agent gateway-address }
缺省情况下,未配置DHCP用户类的匹配规则。
DHCP服务器地址池配置任务如下:
(1) 创建DHCP地址池
(2) 配置为DHCP客户端分配地址
同一个地址池中不能同时配置两种动态地址管理方式,除了DHCP地址池支持动态分配子网段功能、DHCP地址池支持ODAP按需分配子网段功能和为NAT分配子网段功能,其他的动态地址管理方式可以和静态地址绑定方式配合使用。
¡ 配置静态地址绑定
(3) 配置为DHCP客户端分配其他参数
¡ 配置DHCP客户端使用的WINS服务器地址和NetBIOS节点类型
(4) (可选)为DHCP服务器上的地址池绑定VPN实例
(5) (可选)配置DHCP用户类白名单功能
(6) (可选)配置DHCP地址池老化地址保留功能
(7) (可选)配置DHCP地址池随机分配新地址功能
(8) (可选)配置DHCP服务器辅助网关信息
(9) (可选)配置DHCP服务器辅助路由信息
(1) 进入系统视图。
system-view
(2) 创建DHCP地址池,并进入DHCP地址池视图。
dhcp server ip-pool pool-name
在某些组网应用中,需要将一个网段下的不同客户端,按照一定的规则划分到不同的地址范围中。此时,可以按照客户端划分规则创建对应的DHCP用户类,并在地址池内为不同的用户类配置不同的地址范围,从而实现为特定的客户端分配特定范围的地址。在这种情况下,还可以配置一个公共地址范围,为不匹配任何用户类的客户端分配给该范围的地址。如果不配置公共地址范围,则不匹配任何用户类的客户端将无法获取到IP地址。
如果不需要对客户端进行分类,而仅需要限制网段内可分配的动态地址范围,则可以只配置公共地址范围,而不配置用户类的地址范围。
配置为客户端分配的IP地址时,需要注意:
· 在同一个DHCP地址池中,如果多次执行network或address range命令,新的配置会覆盖已有配置;如果多次执行class命令,则可以为多个用户类指定不同的地址范围;多次执行forbidden-ip命令,可以配置多个不参与自动分配的IP地址。
· 在DHCP地址池视图下通过forbidden-ip命令配置不参与自动分配的IP地址后,只有当前的地址池不能分配这些IP地址,其他地址池仍然可以分配这些IP地址;通过dhcp server forbidden-ip命令指定不参与自动分配的IP地址后,所有地址池都不能分配这些IP地址。
· 当用户配置class range命令修改已存在的为DHCP用户类动态分配的IP地址范围,且新的IP地址范围包括之前IP地址范围中已分配的地址租约时,如果DHCP服务器收到该地址租约的续约需求,DHCP服务器会给该DHCP客户端分配新的IP地址租约,已分配的地址租约会继续老化等待超期释放。如果需要已分配的地址租约立即释放,则需配置reset dhcp server ip-in-use命令进行清除地址租约操作。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP地址池动态分配的主网段。
network network-address [ mask-length | mask mask ]
缺省情况下,未配置主网段。
(4) (可选)配置地址池动态分配的IP地址范围,即公共地址范围。
address range start-ip-address end-ip-address
缺省情况下,未配置动态分配的IP地址范围。
(5) (可选)配置DHCP地址池为指定DHCP用户类动态分配的IP地址范围。
class class-name range start-ip-address end-ip-address
缺省情况下,未配置为指定DHCP用户类动态分配的IP地址范围。
class命令中指定的DHCP用户类,必须通过dhcp class命令创建。否则,无法为该用户类分配指定范围的地址。
(6) (可选)配置动态分配的IP地址的租约有效期限。
expired { allow-hint | { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } [ allow-hint ] }
缺省情况下,IP地址租约有效期限为1天。
(7) (可选)配置DHCP地址池中不参与自动分配的IP地址。
forbidden-ip ip-address&<1-8>
缺省情况下,DHCP地址池中的所有IP地址都参与自动分配。
(8) (可选)在系统视图配置全局不参与自动分配的IP地址。
a. 退回系统视图。
quit
b. 配置全局不参与自动分配的IP地址。
dhcp server forbidden-ip start-ip-address [ end-ip-address ] [ vpn-instance vpn-instance-name ]
缺省情况下,除DHCP服务器接口的IP地址外,DHCP地址池中的所有IP地址都参与自动分配。
在配置了一个主网段和多个从网段的地址池中,从网段的作用是对主网段地址空间的补充。当主网段中没有空闲地址分配给客户端时,服务器会从该地址池中的从网段获取地址分配给客户端。
在DHCP地址池视图下通过forbidden-ip命令配置不参与自动分配的IP地址后,只有当前的地址池不能分配这些IP地址,其他地址池仍然可以分配这些IP地址;通过dhcp server forbidden-ip命令指定不参与自动分配的IP地址后,所有地址池都不能分配这些IP地址。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP地址池动态分配的主网段。
network network-address [ mask-length | mask mask ]
缺省情况下,未配置主网段。
每个DHCP地址池中只能配置一个主网段,如果多次执行network命令配置主网段,则新的配置会覆盖已有配置。
(4) (可选)配置DHCP地址池动态分配的从网段。
network network-address [ mask-length | mask mask ] secondary
缺省情况下,未配置从网段。
每个DHCP地址池中,最多可以配置32个从网段。
(5) (可选)退回地址池视图。
quit
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置动态分配的IP地址的租约有效期限。
expired { allow-hint | { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } [ allow-hint ] }
缺省情况下,IP地址租约有效期限为1天。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP地址池中不参与自动分配的IP地址。
forbidden-ip ip-address&<1-8>
缺省情况下,DHCP地址池中的所有IP地址都参与自动分配。
多次执行forbidden-ip命令,可以配置多个不参与自动分配的IP地址段。
(4) (可选)在系统视图下配置全局不参与自动分配的IP地址。
a. 退回系统视图。
quit
b. 配置全局不参与自动分配的IP地址。
dhcp server forbidden-ip start-ip-address [ end-ip-address ] [ vpn-instance vpn-instance-name ]
缺省情况下,除DHCP服务器接口的IP地址外,DHCP地址池中的所有IP地址都参与自动分配。
多次执行dhcp server forbidden-ip命令,可以配置多个不参与自动分配的IP地址段。
某些客户端(如Web服务器等)需要固定的IP地址,通过以下几种方式可以实现为特定的客户端分配特定的IP地址:
· 将客户端的硬件地址与IP地址绑定:当具有此MAC地址的客户端申请IP地址时,DHCP服务器将根据客户端的MAC地址查找到对应的IP地址,并分配给客户端。
· 将客户端ID与IP地址绑定:某些客户端在向DHCP服务器发送DHCP-DISCOVER报文申请IP地址时,会构建客户端ID并添加到报文中一起发送。如果在DHCP服务器上将客户端ID与IP地址绑定,则当该客户端申请IP地址时,DHCP服务器将根据客户端ID查找到对应的IP地址并分配给客户端。
· 静态绑定的IP地址不能是DHCP服务器的接口IP地址,否则会导致IP地址冲突,被绑定的客户端将无法正常获取到IP地址。
· 如果作为DHCP客户端的设备,接口的MAC地址相同,则为了区分不同接口,采用静态绑定方式进行地址分配时,需要在服务器上配置静态绑定的客户端ID,而不能配置静态绑定的客户端MAC地址,否则可能导致客户端无法成功获取IP地址。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置静态地址绑定。
static-bind ip-address ip-address [ mask-length | mask mask ] { client-identifier client-identifier | hardware-address hardware-address [ ethernet | token-ring ] }
缺省情况下,未配置静态地址绑定。
同一地址只能绑定给一个客户端。不允许通过重复执行static-bind ip-address命令的方式修改IP地址与客户端的绑定关系。只有删除了某个地址的绑定关系,才能将该地址与其他客户端绑定。
(4) (可选)配置静态绑定IP地址的租约有效期限。
expired { allow-hint | { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } [ allow-hint ] }
缺省情况下,IP地址租约有效期限为1天。
本功能适用于转发控制分离组网,此类组网主要包括控制平面(CP)设备和数据平面(DP)设备。CP设备和DP设备之间通过建立OpenFlow和VXLAN两条传输通道实现表项下发和协议报文的控制。其中,OpenFlow作为CP设备和DP设备之间的表项下发通道,VXLAN隧道作为CP设备和DP设备之间的协议报文通道。DP设备负责将连接的终端用户按照不同业务划分到不同的VXLAN组网和转发终端用户报文等工作;CP设备负责所有终端用户的认证、授权等工作。
图2-1 DHCP地址池支持动态分配子网段功能原理图
如图2-1所示,CP设备通过VXLAN隧道连接多台DP设备,CP设备上开启了DHCP服务器功能,CP设备根据配置的子网段掩码长度将DHCP地址池中的地址空间分成多个子网段。
(1) 当某个DP下有用户上线时,CP设备按照DP和CP之间VXLAN隧道的DP端地址或用户所在的VXLAN ID来给DP设备动态分配一个子网段,并从该子网段中选择地址分给上线用户。同时,CP设备会将该子网段对应的网段路由下发给DP设备,当路由收敛结束后,外部网络可以访问到此DP设备下联的用户。
(2) 当某个子网段的用户全部下线后,CP设备会回收该子网段。
本功能实现了DHCP服务器对IP地址空间的灵活分配和回收,使地址空间分配更合理,并大幅节约了人力维护成本。
(1) 进入系统视图。
system-view
(2) 创建可动态分配子网段的DHCP地址池,并进入地址池视图。
dhcp server ip-pool pool-name subnet-alloc
(3) 配置DHCP地址池动态分配的主网段。
network network-address [ mask-length | mask mask ] [ export-route [ preference preference | tag tag ] * ]
缺省情况下,未配置主网段。
(4) (可选)配置可动态分配子网段的DHCP地址池分配子网段的模式。
subnet alloc-mode { dp-address | pool-name | vxlan-id }
缺省情况下,可动态分配子网段的DHCP地址池根据VXLAN ID为DP分配不同的子网段。
(5) 配置可动态分配子网段的DHCP地址池分配的子网段掩码长度。
subnet mask-length mask-length
缺省情况下,未配置可动态分配子网段的DHCP地址池分配的子网段掩码长度。
(6) (可选)配置可动态分配子网段的DHCP地址池回收子网段的延迟时间。
subnet idle-time time
缺省情况下,可动态分配子网段的DHCP地址池回收子网段的延迟时间为1秒。
某个子网段用户全部下线后,CP会回收此空闲的子网段。当该用户再次上线时,该用户可能会分配到其他子网网段的地址。当网络中存在频繁上下线的用户时,为了避免用户获取到不同网段的地址,可以配置本功能适当增加CP延时回收空闲的子网网段的时间。
(7) (可选)关闭可动态分配子网段的DHCP地址池下发路由信息的功能。
subnet export-route disable
缺省情况下,可动态分配子网段的DHCP地址池下发路由信息的功能处于开启状态。
当CP和DP属于同一台设备时,CP只需要下发一条网段路由即可。管理员可以关闭可动态分配子网段的DHCP地址池下发路由信息的功能,并通过network export-route命令统一向DP下发路由信息。
ODAP(On-Demand Address Pool,按需地址池)根据实际需求动态分配和回收子网段,可以充分利用地址资源。ODAP适用于大量用户上线的组网环境。ODAP组网主要包括服务器子网管理设备(ODAP服务器)和本地子网管理设备(ODAP客户端)。
图2-2 ODAP按需地址池分配子网段功能原理图
如图2-2所示,一台ODAP服务器可下连多台ODAP客户端,ODAP服务器和ODAP客户端均作为DHCP服务器。ODAP服务器上的DHCP地址池中创建了含有大量地址的网段地址空间,ODAP服务器根据配置的子网掩码长度将这些地址空间分成多个子网段。ODAP客户端上的DHCP地址池不创建网段地址空间,ODAP客户端需要先从ODAP服务器申请子网段,再从该子网段中选择地址分给DHCP客户端。一个ODAP客户端下可能包含多个VXLAN,当配置DHCP地址池分配子网段的模式为vxlan-id,那么一个ODAP客户端需要申请多个子网段。当某个ODAP客户端地址池中所有子网段地址使用率小于等于下限时,ODAP客户端将没有用户上线的子网段释放给ODAP服务器。
相比于动态分配子网段功能,ODAP功能降低了ODAP服务器工作负担,使ODAP组网适用于更大规模的动态网段分配组网环境。
当ODAP客户端发生故障或者与ODAP服务器之间连接中断时,ODAP服务器感知不到此类事件,导致ODAP服务器无法回收该ODAP客户端的子网段。配置subnet force-renew命令后,ODAP服务器会主动向所有ODAP客户端发送DHCP_FORCERENEW报文请求申请到的子网段信息。ODAP客户端收到该报文后,会通过DHCP_REQUEST报文将自己申请到的子网段信息发送给ODAP服务器。ODAP服务器统计DHCP REQUEST报文中记录的所有子网段信息,未统计到的子网段都会被ODAP服务器直接回收。本功能保证了子网段资源不会被浪费。
当发生以下情况后,用户需要通过配置reset dhcp odap-client subnet命令释放ODAP客户端上申请到的子网段:
· 在ODAP客户端上配置origin dhcp subnet mask-length命令修改ODAP客户端向服务器申请子网段的掩码长度;
· 在ODAP客户端上配置subnet alloc-mode命令修改DHCP地址池分配子网段的模式;
· 修改ODAP客户端上地址池所在的VPN;
· 当DHCP服务器配置或用户需求发生变化时,也需要在ODAP客户端上执行本命令释放已经申请到的子网段,以便获取新的子网段。
只有当ODAP客户端没有将地址分配给DHCP客户端时,才能执行本操作,否则会导致原网段被删除,在某些组网条件(IPoE组网)下用户会下线。
ODAP组网中,由于ODAP客户端故障或ODAP客户端无法处理大量用户上下线等问题,管理员需要将ODAP客户端上的子网段信息和租约信息迁移到其他ODAP客户端上。ODAP客户端通过ODAP客户端网段ID标识从ODAP服务器上申请到的子网段。迁移过程完成后,目的ODAP客户端生成的ODAP客户端网段ID和源ODAP客户端的ODAP客户端网段ID不同。目的ODAP客户端向ODAP服务器发起网段续约操作后,ODAP服务器发现续约网段对应的ODAP客户端网段ID发生变化,会直接拒绝ODAP客户端的续约请求。
在ODAP客户端配置的ODAP客户端向ODAP服务器请求子网段的掩码长度需要和ODAP服务器上配置的动态分配的IP地址网段的掩码长度相同,否则ODAP客户端无法申请到子网段。
(1) 进入系统视图。
system-view
(2) 创建ODAP客户端类型的DHCP地址池,并进入DHCP地址池视图。
dhcp server ip-pool pool-name odap-client
(3) 配置ODAP客户端向ODAP服务器请求子网段的掩码长度。
origin dhcp subnet mask-length mask-len
缺省情况下,未配置ODAP客户端向ODAP服务器请求子网段的掩码长度。
(4) (可选)配置所有子网段地址使用率的上下限。
subnet utilization mark high mark-high low mark-low
缺省情况下,所有子网地址使用率的上限为100,下限为0。
(5) 配置在ODAP客户端发送的请求报文中giaddr字段填充的地址。
subnet giaddr ip-address
缺省情况下,ODAP客户端发送的请求报文中giaddr字段填充的地址为0.0.0.0。
(6) 配置ODAP服务器的地址。
remote-server ip-address&<1-8> [ public | vpn-instance vpn-instance-name ]
缺省情况下,未配置ODAP服务器的地址。
(7) (可选)配置DHCP地址池分配子网段的模式。
subnet alloc-mode { dp-address | pool-name | vxlan-id }
缺省情况下,DHCP地址池根据VXLAN ID为DP分配不同的子网段。
指定为pool-name参数时,ODAP客户端会主动向ODAP服务器申请一个初始子网段。配置其他模式时,只有DHCP客户端上线后,ODAP客户端才会向ODAP服务器申请子网段。
(8) (可选)配置子网段的路由优先级和路由标识。
subnet export-route preference preference tag tag
缺省情况下,子网段路由的路由优先级为70,路由标识值为0。
(9) (可选)在用户视图下配置ODAP客户端释放申请到的子网段。
a. 退回系统视图。
quit
b. 退回用户视图。
quit
c. 配置ODAP客户端释放申请到的子网段。
reset dhcp odap-client subnet [ vpn-instance vpn-instance-name ]
(1) 进入系统视图。
system-view
(2) 创建ODAP服务器类型的DHCP地址池,并进入DHCP地址池视图。
dhcp server ip-pool pool-name odap-server
(3) 配置DHCP地址池动态分配的IP地址网段。
network network-address [ mask-length | mask mask ] [ export-route [ preference preference | tag tag ] * ] [ secondary ]
(4) 配置可动态分配子网段的DHCP地址池分配子网网段的掩码长度。
subnet mask-length mask-length
缺省情况下,未配置可动态分配子网段的DHCP地址池分配子网网段的掩码长度。
(5) (可选)触发一次ODAP服务器的子网强制更新操作。
subnet force-renew
在转发控制分离组网中,根据NAT设备承担的业务类型分为CP(Control Plane,控制平面)设备和DP(Data Plane,数据平面)设备,即:
· 将NAT地址分配和端口块分配等控制平面的业务提取出来由CP设备(一般由vBRAS设备承担)来完成。
· 地址转换、用户数据报文转发、NAT ALG等数据平面的业务由DP设备完成。
DP设备进行地址转换操作前,需要向CP设备申请子网段地址空间。管理员需要在CP设备创建一个为NAT分配子网段的DHCP地址池,该地址池不支持通过命令行创建网段地址空间,只能向上级ODAP服务器申请子网段。当DHCP地址池收到ODAP服务器分配的子网段后,将该子网段分配给DP设备上的NAT地址组进行地址转换。当DP设备不需要进行地址转换后,CP设备上的DHCP地址池回收为DP设备分配的子网段,并将该子网段释放给ODAP服务器。NAT的详细介绍,请参见“NAT配置指导”中的“NAT”。
(1) 进入系统视图。
system-view
(2) 创建为NAT分配子网段的DHCP地址池,并进入DHCP地址池视图。
dhcp server ip-pool pool-name nat
(3) 配置向ODAP服务器请求子网段的掩码长度。
origin dhcp subnet mask-length mask-len
缺省情况下,未配置向ODAP服务器请求子网段的掩码长度。
(4) 配置在发送的请求报文中giaddr字段填充的地址。
subnet giaddr ip-address
缺省情况下,发送的请求报文中giaddr字段填充的地址为0.0.0.0。
(5) 配置ODAP服务器的地址。
remote-server ip-address&<1-8> [ public | vpn-instance vpn-instance-name ]
缺省情况下,未配置ODAP服务器的地址。
具体配置步骤请参见“2.4.7 4. 配置ODAP服务器”。
在AAA组网中,终端用户经过AAA认证后,AAA会从配置的DHCP地址池中选择IP地址分配给该用户。配置AAA关联某个独立的DHCP地址池时,会出现如下问题:
· 为不同位置的接入用户选择不同的DHCP服务器;
· 当前AAA设备既需要作为DHCP服务器也需要作为DHCP中继,作为DHCP服务器可以直接为客户端分配地址;作为DHCP中继可以将用户的请求报文转发给DHCP服务器,并将DHCP服务器的应答报文转发给终端用户。
为了解决上述问题,DHCP新增DHCP地址池组功能,管理员可以将多个DHCP地址池添加到同一个DHCP地址池组中,DHCP地址池包括普通地址池和中继地址池。配置AAA关联地址池组后,AAA按照匹配顺序选择地址池组中的地址池为终端用户分配IP地址。
DHCP地址池组按照如下匹配顺序选择DHCP地址池:
(1) 绑定DP地址的本地地址池
(2) 未绑定DP地址的本地地址池
(3) 绑定DP地址的中继地址池
(4) 未绑定DP地址的中继地址池
对于同一种类型的地址池,DHCP地址池的匹配顺序按照在DHCP地址池组视图下执行display this命令显示的地址池名称从上到下依次匹配。
当DHCP地址池匹配最后一个地址池,仍无法为用户分配地址,则无法为该终端用户分配地址。
如果DHCP中继上配置的DHCP地址池组关联了中继地址池,DHCP地址池组匹配到中继地址池时,无法判断中继地址池关联的服务器是否存在可分配的地址资源。为了解决这个问题,管理员需要在中继地址池内通过network命令配置和中继地址池关联的服务器相同的网段信息,且通过dhcp server forbidden-ip或forbidden-ip命令配置和中继地址池关联的服务器相同的IP地址不参与自动分配。当中继地址池关联的服务器为客户端分配一个IP地址后,中继收到应答报文时,也会在对应的中继地址池配置的可分配地址资源中去掉这个地址。这就保证了中继地址池上的空闲地址信息和远端服务器的空闲地址信息相同,地址池组只要检查中继地址池的空闲地址情况,就能确定关联的远端服务器是否存在空闲地址。
对于存在漫游用户的组网,需要保证地址池组中同属于本地地址池或中继地址池,漫游用户才能正常获得IP地址。
(1) 进入系统视图。
system-view
(2) 创建DHCP地址池,并进入DHCP地址池视图。
dhcp server ip-pool pool-name [ subnet-alloc ]
缺省情况下,设备上不存在DHCP地址池。
(3) 创建DHCP地址池组,并进入DHCP地址池组视图。
dhcp pool-group group-name
缺省情况下,设备上不存在DHCP地址池组。
(4) 将DHCP地址池添加DHCP地址池组中。
pool pool-name
缺省情况下,DHCP地址池未添加到DHCP地址池组。
DHCP地址池组中只允许加入普通类型的地址池和可动态分配子网段的DHCP地址池,且加入的DHCP地址池所在VPN必须和DHCP地址池组一致。
(5) (可选)为DHCP地址池组绑定VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DHCP地址池组未绑定VPN实例。
如果DHCP地址池组已经绑定了DHCP地址池,则无法再修改VPN实例。
DHCP客户端访问本网段以外的服务器或主机时,数据必须通过网关进行转发。DHCP服务器可以为客户端指定网关的地址。
· 在DHCP服务器上,可以为每个地址池分别指定客户端对应的网关地址。目前,每个DHCP地址池视图下、每个从网段视图下最多可以配置64个网关地址。
· DHCP地址池视图下执行gateway-list命令,配置的是为地址池中所有DHCP客户端分配的网关地址。如果用户需要为地址池下某个从网段的DHCP客户端分配其它的网关地址,可以在地址池的从网段视图下执行gateway-list命令。如果在地址池视图和从网段视图下都配置了网关地址,则优先将从网段视图下配置的网关地址分配给从网段的DHCP客户端。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置为DHCP客户端分配的网关地址。
gateway-list ip-address&<1-64>
缺省情况下,未配置为DHCP客户端分配的网关地址。
(4) (可选)在从网段视图中配置为DHCP客户端分配的网关地址。
a. 进入从网段视图。
network network-address [ mask-length | mask mask ] secondary
b. 配置为DHCP客户端分配的网关地址。
gateway-list ip-address&<1-64>
缺省情况下,未配置为DHCP客户端分配的网关地址。
在DHCP服务器上,可以为每个地址池指定客户端使用的域名后缀。
在客户端进行域名解析时,用户只需要输入域名的部分字段,客户端会自动将输入的域名加上从DHCP服务器获得的域名后缀进行解析。有关域名后缀的详细介绍,请参见“三层技术-IP业务配置指导”中的“域名解析”。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置为DHCP客户端分配的域名后缀。
domain-name domain-name
缺省情况下,未配置为DHCP客户端分配的域名后缀。
为了使DHCP客户端能够通过域名访问Internet上的主机,DHCP服务器应在为客户端指定DNS(Domain Name System,域名系统)服务器地址。目前,每个DHCP地址池视图下最多可以配置8个DNS服务器地址。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置为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服务器应该为客户端指定WINS服务器地址。
DHCP客户端在网络上使用NetBIOS协议通信时,需要在主机名和IP地址之间建立映射关系。根据获取映射关系方式的不同,NetBIOS节点分为四种:
· b类节点(b-node):“b”代表广播(broadcast),即此类节点采用广播方式获取映射关系。源节点通过发送带有目的节点主机名的广播报文来获取目的节点的IP地址,目的节点收到广播报文后,就将自己的IP地址返回给源节点。
· p类节点(p-node):“p”代表端到端(peer-to-peer),即此类节点采用发送单播报文与WINS服务器通信的方式获取映射关系。源节点给WINS服务器发送单播报文,WINS服务器收到单播报文后,返回源节点请求的目的节点名所对应的IP地址。
· m类节点(m-node):“m”代表混合(mixed),是具有部分广播特性的p类节点。即此类节点首先发送广播报文来获取映射关系,如果没有获取到,则再发送单播报文与WINS服务器通信来获取映射关系。
· h类节点(h-node):“h”代表混合(hybrid),是具备“端到端”通信机制的b类节点。即此类节点首先发送单播报文与WINS服务器通信来获取映射关系,如果没有获取到,再发送广播报文来获取映射关系。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置为DHCP客户端分配的WINS服务器地址。
nbns-list ip-address&<1-8>
缺省情况下,未配置为DHCP客户端分配的WINS服务器地址。
对于b类节点,为可选;其他情况下,为必选。每个DHCP地址池视图下最多可以配置8个WINS服务器地址。
(4) 配置为DHCP客户端分配的NetBIOS节点类型。
netbios-type { b-node | h-node | m-node | p-node }
缺省情况下,未配置为DHCP客户端分配的NetBIOS节点类型。
为了使DHCP客户端通过BIMS(Branch Intelligent Management System,分支网点智能管理系统)服务器进行软件的备份和升级等操作,DHCP服务器需要将BIMS服务器的IP地址、端口号以及加密的共享密钥等信息发给DHCP客户端。之后,DHCP客户端就可以定期向BIMS服务器发送连接请求,从BIMS服务器上获取配置文件,进行软件的备份和升级等操作。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置为DHCP客户端分配的BIMS服务器的IP地址、端口及共享密钥信息。
bims-server ip ip-address [ port port-number ] sharekey { cipher | simple } string
缺省情况下,未配置为DHCP客户端分配的BIMS服务器信息。
服务器自动配置功能在空配置启动的设备上不需要进行任何配置,但需要在DHCP服务器上配置一些必需的参数,包括TFTP服务器地址、TFTP服务器名和启动文件名或远程启动文件的HTTP形式URL等。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP客户端使用的TFTP服务器信息。请选择其中至少一项进行配置。
¡ 配置DHCP客户端使用的TFTP服务器地址。
tftp-server ip-address ip-address
缺省情况下,未配置DHCP客户端使用的TFTP服务器地址。
¡ 配置DHCP客户端使用的TFTP服务器名。
tftp-server domain-name domain-name
缺省情况下,未配置DHCP客户端使用的TFTP服务器名。
(4) 配置DHCP客户端使用的启动文件名。
bootfile-name bootfile-name
缺省情况下,未配置DHCP客户端使用的启动文件名。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP客户端使用的远程启动文件的HTTP形式URL。
bootfile-name url
缺省情况下,未配置DHCP客户端使用的远程启动文件的HTTP形式URL。
设备在启动后,可能需要访问某些服务器获取设备运行需要的信息,例如从TFTP服务器上获取配置文件。通过本配置可以指定DHCP服务器为DHCP客户端分配的下一个提供服务的服务器IP地址,以便客户端启动后访问该服务器,获取必要的信息。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP地址池为DHCP客户端分配的下一个提供服务的服务器IP地址。
next-server ip-address
缺省情况下,未配置DHCP地址池为DHCP客户端分配的下一个提供服务的服务器IP地址。
为了使具有语音功能的DHCP客户端能够在通过DHCP获取IP地址的同时,获取到语音呼叫所需的相关信息,需要在DHCP服务器上配置Option 184。Option 184内容的详细介绍,请参见“1.6.3 Option 184”。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置网络呼叫处理器的地址。
voice-config ncp-ip ip-address
缺省情况下,未配置网络呼叫处理器的地址。
只有配置了网络呼叫处理器的地址,其他配置才能生效。
(4) (可选)配置备用服务器的地址。
voice-config as-ip ip-address
缺省情况下,未配置备用服务器的地址。
(5) (可选)配置语音VLAN。
voice-config voice-vlan vlan-id { disable | enable }
缺省情况下,未配置语音VLAN。
(6) (可选)配置自动故障转移呼叫路由。
voice-config fail-over ip-address dialer-string
缺省情况下,未配置自动故障转移呼叫路由。
本配置为DHCP服务器提供了灵活的选项配置方式,使得DHCP服务器可以为DHCP客户端提供更加丰富的选项内容。在以下情况下,可以使用本命令自定义DHCP选项:
· 随着DHCP的不断发展,新的DHCP选项会陆续出现。通过自定义DHCP选项,可以方便地添加新的DHCP选项。
· 有些选项的内容,RFC中没有统一规定。厂商可以根据需要定义选项的内容,如Option 43。通过自定义DHCP选项,可以为DHCP客户端提供厂商指定的信息。
· 设备上只提供了有限的选项配置命令(如gateway-list、dns-list命令),对于没有专门命令来配置的DHCP选项,可以通过option命令配置选项内容。例如,可以通过option 4 ip-address 1.1.1.1命令指定为DHCP客户端分配的时间服务器地址为1.1.1.1。
· 扩展已有的DHCP选项。当前已提供的方式无法满足用户需求时(比如通过dns-list命令最多只能配置8个DNS服务器地址,如果用户需要配置的DNS服务器地址数目大于8,则该命令无法满足需求),可以通过自定义DHCP选项的方式进行扩展。
表2-1中列出了常用的DHCP选项名称、对应的配置命令和推荐的Option命令参数信息。
表2-1 常用Option选项信息
选项编号 |
选项名称 |
对应的配置命令 |
推荐的option命令参数 |
3 |
Router Option |
gateway-list |
ip-address |
6 |
Domain Name Server Option |
dns-list |
ip-address |
15 |
Domain Name |
domain-name |
ascii |
44 |
NetBIOS over TCP/IP Name Server Option |
nbns-list |
ip-address |
46 |
NetBIOS over TCP/IP Node Type Option |
netbios-type |
hex |
66 |
TFTP server name |
tftp-server |
ascii |
67 |
Bootfile name |
bootfile-name |
ascii |
43 |
Vendor Specific Information |
- |
hex |
· 自定义DHCP选项时,取值的获取比较复杂,配置错误可能会对DHCP的工作过程造成影响,请谨慎使用该功能。
· 用户可在DHCP地址池中自定义选项信息。
· 用户可在DHCP选项组中自定义选项信息,并在DHCP地址池中配置DHCP用户类和DHCP选项组关联,为DHCP客户端分配选项信息。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 自定义DHCP地址池选项。
option code { ascii ascii-string | hex hex-string | ip-address ip-address&<1-8> }
缺省情况下,未自定义DHCP地址池选项。
DHCP服务器在应答DHCP客户端报文时,如果DHCP选项组的选项编号和DHCP地址池选项编号相同且匹配用户类时,以DHCP选项组的选项为准。
(1) 进入系统视图。
system-view
(2) 创建DHCP选项组,并进入DHCP选项组视图。
dhcp option-group option-group-number
(3) 自定义DHCP选项组选项。
option code { ascii ascii-string | hex hex-string | ip-address ip-address&<1-8> }
缺省情况下,未定义DHCP选项组的选项。
DHCP服务器在应答客户端报文时,如果多个DHCP选项组的选项编号相同时,以最先匹配的DHCP用户类对应的DHCP选项组的选项为准。
(4) 返回系统视图。
quit
(5) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(6) 配置DHCP用户类与DHCP选项组的关联。
class class-name option-group option-group-number
缺省情况下,未配置指定DHCP用户类与DHCP 选项组的关联。
当地址池绑定了VPN实例后,DHCP服务器可以将网络划分成公网和VPN私网。未配置VPN属性的地址池被划分到公网,配置了VPN属性的地址池被划分到相应的VPN私网,这样,对于处于公网或VPN私网中的客户端,服务器都能够选择合适的地址池来为客户端分配租约并且记录该客户端的状态信息。
DHCP服务器可以通过如下方式判断DHCP客户端所属的VPN实例:
· 认证模块(如IPoE),用户接入时在AAA服务器处授权获得VPN实例信息;
· DHCP服务器接收报文的接口绑定的VPN实例即为该客户端所属的VPN实例。
如果以上两种方式都可获取到DHCP客户端所属的VPN实例,则以认证模块为准。
设备作为MCE(Multi-VPN-instance Customer Edge,多VPN实例用户网络边界设备)时,在设备上配置DHCP服务器功能,不仅可以为公网上的DHCP客户端分配IP地址,还可以实现为私网内的DHCP客户端分配IP地址,但是公网和私网之间、不同私网之间的IP地址空间不能重叠。MCE的详细介绍,请参见“MPLS配置指导”中的“MCE”。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 为DHCP服务器上的地址池绑定VPN实例。
vpn-instance vpn-instance-name
缺省情况下,DHCP服务器上的地址池未绑定VPN实例。
配置DHCP用户类白名单功能,DHCP服务器只有收到属于用户类白名单的DHCP客户端发送的请求报文,才会进行处理。
如果DHCP客户端请求的是静态绑定租约,则DHCP服务器不进行白名单检查直接进行处理。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 开启DHCP用户类白名单功能。
verify class
缺省情况下, DHCP用户类白名单功能处于关闭状态。
(4) 配置DHCP用户类白名单包括的用户类名。
valid class class-name&<1-8>
缺省情况下,未配置DHCP用户类白名单包括的用户类名。
当DHCP客户端下线后,DHCP服务器会将该客户端对应的地址保存在老化租约中。为了确保DHCP客户端再次上线时能使用到之前用过的IP地址,管理员可以通过配置DHCP地址池老化地址保留功能来确定老化租约保留模式、保留老化租约最大数目和保留时间。DHCP地址池老化地址保留模式包括:
· 按客户端ID保留模式:如果用户第一次上线时,DHCP服务器记录用户的客户端ID信息和分配给用户的IP地址,当用户下线并再次上线时,仍然可以获取到之前使用的IP地址,这种保留模式为按客户端ID保留。
· 按客户端MAC地址保留模式:如果用户第一次上线时,DHCP服务器记录用户的MAC地址和分配给用户的IP地址,当用户下线并再次上线时,仍然可以获取到之前使用的IP地址,这种保留模式为按客户端MAC地址保留。
如果管理员希望DHCP地址池不保留IP地址老化租约,DHCP客户端下线后释放的IP地址可以直接用来分配给其他的DHCP客户端,管理员可以关闭DHCP地址池老化地址保留功能。
当网络中存在多个DHCP客户端的客户端ID相同时,需要配置按客户端MAC地址保留模式。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 开启DHCP地址池老化地址保留功能。
reserve expired-ip enable
缺省情况下,保留DHCP老化租约的功能处于开启状态。
(4) 配置DHCP地址池下老化地址保留模式。
reserve expired-ip mode { client-id | mac } [ limit limit-number | time time ] *
缺省情况下,当开启了DHCP地址池老化地址保留功能,则设备按照客户端ID保留IP地址。
目前DHCP地址池正常的地址分配方式是尽量保证同一用户上线能够获得相同的IP地址。但是在某些应用中,用户需要实现每次上线能够获得不同的IP地址的需求。针对这种需求,设备需提供DHCP地址池随机分配新地址的需求。本功能保证用户在断线重拨后可以获得不同的IP地址。
只有开启了DHCP服务器老化地址保留功能,本功能才生效。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池。
dhcp server ip-pool pool-name
(3) 配置DHCP地址池随机分配新地址功能。
allocate-new-ip enable
缺省情况下,DHCP地址池随机分配新地址功能处于关闭状态。
在某些接入组网类型(如IPoE和PPPoE)中,如图2-3所示,接入设备上除了配置接入特性还需要配置DHCP服务器功能。由于接入设备需要接入多种业务的客户端(如IPTV、IP电话和宽带业务等),而不同业务的设备需要获取不同网段的IP地址,所以接入设备的下行口一般不能配置IP地址。此时可以通过在接入设备的DHCP地址池中配置辅助网关功能使不同类型的业务流量能够正常转发。本特性使用辅助网关的IP地址和MAC地址信息应答客户端的ARP请求,即可实现对不同类型的业务流量的引导。
图2-3 DHCP服务器辅助网关组网图
如果地址池绑定了VPN实例,需保证该VPN实例存在。满足了以上条件,该接入设备的辅助网关功能才能生效。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP服务器辅助网关信息。
gateway-list ip-address&<1-64> export-route
缺省情况下,未配置DHCP服务器辅助网关信息。
在某些特定的业务模型(如BRAS组网)下,BRAS设备需要实时监测网络流量,并将统计数据发送到RADIUS服务器。该统计数据为用户上线以来产生的所有上下行流量数据,而不能是设备在某个时间段内发生的上下行流量数据。由于RADIUS服务器刷新计数的方法是覆盖以前数据而不是进行累加,所以当一台设备的上下行流量分别从两台BRAS设备上通过时,在RADIUS服务器上记录的数据就会相互覆盖,这时RADIUS服务器得到的统计数据是不准确的。为了提高准确性,需保证一台设备的上下行流量经过同一台BRAS设备。通过配置辅助路由信息,并对外发布此网段路由,引导指定网段的下行数据流量来保证上下行流量从一台BRAS设备经过。
图2-4 DHCP服务器辅助路由组网图
如果地址池绑定了VPN实例,需保证该VPN实例存在。满足了以上条件,该接入设备的辅助路由功能才能生效。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP服务器辅助路由信息。
network network-address [ mask-length | mask mask ] [ secondary ] export-route [ preference preference | tag tag ] *
缺省情况下,未配置DHCP服务器辅助路由信息。
创建地址池,并在接口引用该地址池后,接口接收到DHCP请求,将优先为客户端分配静态绑定的IP地址;如果不存在静态绑定的IP地址,则从引用的地址池中选择IP地址分配给客户端。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口引用地址池。
dhcp server apply ip-pool pool-name
缺省情况下,接口未引用地址池。
如果接口引用的地址池不存在,将导致无法动态分配地址。
创建DHCP策略,并在接口引用该策略后,该接口接收到DHCP请求报文时,则根据配置顺序逐个匹配DHCP策略中通过class ip-pool命令指定的DHCP用户类。匹配情况如下:
· 若匹配DHCP用户类成功,当该DHCP用户类关联的DHCP地址池中存在可供分配的地址信息时,则从该DHCP地址池中分配IP地址和其他参数;当该DHCP用户类关联的DHCP地址池中不存在可供分配的地址信息时,IP地址和其他参数分配失败。
· 若匹配DHCP策略中的所有DHCP用户类失败,当配置了默认DHCP地址池时,则从该地址池中分配IP地址和其他参数;当未配置默认DHCP地址池或默认DHCP地址池中不存在可供分配的地址信息时,IP地址和其他参数分配失败。
若接收DHCP请求报文的接口引用的DHCP策略不存在或匹配的DHCP用户类关联的DHCP地址池不存在时,IP地址和其他参数分配失败。
DHCP策略需要在接口上引用才生效。
DHCP策略中关联的IP地址池只能为本地地址池。
(1) 进入系统视图。
system-view
(2) 创建DHCP策略,并进入DHCP策略视图。
dhcp policy policy-name
(3) 指定DHCP用户类关联的DHCP地址池。
class class-name ip-pool pool-name
缺省情况下,未指定DHCP用户类关联的DHCP地址池。
(4) 指定默认DHCP地址池。
default ip-pool pool-name
缺省情况下,未指定默认DHCP地址池。
(5) 退回系统视图。
quit
(6) 进入接口视图。
interface interface-type interface-number
(7) 指定接口引用的DHCP策略。
dhcp apply-policy policy-name
缺省情况下,接口未引用DHCP策略。
缺省情况下,IPoE用户上线后,设备为IPoE用户优先选择通过由AAA授权的地址池。开启本功能后,DHCP服务器按照如下顺序选择地址池:
(1) IPoE用户匹配的DHCP用户类关联的DHCP地址池;
(2) 授权地址池;
(3) 默认DHCP地址池,若未配置默认DHCP地址池或DHCP默认地址池不存在可供分配的IP地址时,IP地址或其他参数分配失败。
AAA授权地址池详细介绍,请参见“BRAS业务配置指导”中的“AAA”。
管理员需要在IPoE用户上线前就确定好地址分配方式,当IPoE用户上线后再修改地址池选择方式,已经分配的地址租约无法正常续约。当IPoE用户的IP地址租约到期后,IPoE用户会下线,IPoE会删除该用户会话。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置为IPoE用户优先选择DHCP策略关联的地址池。
dhcp server policy-first enable
缺省情况下,设备为IPoE用户选择授权地址池。
目前,当网络中只存在一台DHCP服务器时,相同MAC地址的多个DHCP客户端中只有一台DHCP客户端能够获取到IP地址。在某些组网应用中,需要实现相同MAC地址的DHCP客户端可以获取到不同的IP地址。针对这种需求,DHCP服务器需要支持为MAC地址相同的DHCP客户端分配不同IP地址的功能。
开启本功能后,DHCP服务器通过以下方式来区分MAC地址相同的DHCP客户端:
· 如果网络中存在DHCP Snooping或DHCP中继,需要在DHCP Snooping或DHCP中继上开启支持Option 82功能。DHCP服务器根据DHCP请求报文中的DHCP客户端MAC地址和Option 82字段区分不同的DHCP客户端,并为不同的客户端分配不同的IP地址。
· 如果网络中不存在DHCP Snooping和DHCP中继,DHCP服务器根据DHCP客户端MAC地址、收到DHCP请求报文的接口名或接口VLAN信息区分不同的DHCP客户端,并为不同的客户端分配不同的IP地址。
(1) 进入系统视图。
system-view
(2) 开启为MAC地址相同的DHCP客户端分配不同IP地址功能。
dhcp server multi-ip per-mac enable
缺省情况下,为MAC地址相同的DHCP客户端分配不同IP地址功能处于关闭状态。
只有开启DHCP服务后,其它相关的DHCP服务器配置才能生效。
(1) 进入系统视图。
system-view
(2) 开启DHCP服务。
dhcp enable
缺省情况下,DHCP服务处于关闭状态。
配置接口工作在DHCP服务器模式后,当接口收到DHCP客户端发来的DHCP报文时,将从DHCP服务器的地址池中分配地址等参数。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口工作在DHCP服务器模式。
dhcp select server
缺省情况下,接口工作在DHCP服务器模式。
为防止IP地址重复分配导致地址冲突,DHCP服务器为客户端分配地址前,需要先对该地址进行探测。
DHCP服务器的地址探测是通过ping功能实现的,通过检测是否能在指定时间内得到ping响应来判断是否存在地址冲突。DHCP服务器发送目的地址为待分配地址的ICMP回显请求报文。如果在指定时间内收到ICMP回显响应报文,则认为存在地址冲突。DHCP服务器从地址池中选择新的IP地址,并重复上述操作。如果在指定时间内未收到ICMP回显响应报文,则继续发送ICMP回显请求报文,直到发送的ICMP回显显示报文数目达到最大值。如果仍然未收到ICMP回显响应报文,则将地址分配给客户端,从而确保客户端获得的IP地址唯一。
DHCP服务器通过ping操作来检测是否发生地址冲突,而DHCP客户端则通过发送免费ARP报文检测是否发生地址冲突。
(1) 进入系统视图。
system-view
(2) (可选)配置DHCP服务器发送ICMP回显请求报文的最大数目。
dhcp server ping packets number
缺省情况下,DHCP服务器发送ICMP回显请求报文的最大数目为1。
0表示DHCP服务器将IP地址分配给DHCP客户端之前,不会通过ping操作探测该地址是否冲突。
(3) (可选)配置DHCP服务器等待ICMP回显响应报文的超时时间。
dhcp server ping timeout milliseconds
缺省情况下,DHCP服务器等待ICMP回显响应报文的超时时间为500毫秒。
0表示DHCP服务器将IP地址分配给DHCP客户端之前,不会通过ping操作探测该地址是否冲突。
如果配置DHCP服务器处理Option 82,则当DHCP服务器收到带有Option 82的报文后,会在响应报文中携带Option 82,并为客户端分配IP地址等信息。
如果配置DHCP服务器忽略Option 82,则当DHCP服务器收到带有Option 82的报文后,不会在响应报文中携带Option 82,只为客户端分配IP地址等信息。
为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。DHCP中继支持Option 82功能的相关配置请参见“3.9 配置DHCP中继支持Option 82功能”。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器处理Option 82。
dhcp server relay information enable
缺省情况下,DHCP服务器处理Option 82。
如果网络中存在DHCP中继,DHCP服务器收到的DHCP请求报文中源MAC地址会被DHCP中继替换。所以这种组网情况下DHCP服务器安全功能不适用,只能开启DHCP中继的安全功能。关于DHCP中继的安全功能的介绍,请参见“3.7 配置DHCP中继的安全功能”。
配置DHCP Flood攻击防范功能后,DHCP服务器会根据DHCP报文中的源MAC地址统计收到的DHCP报文数,并创建一个check状态的DHCP防Flood攻击表项。当收到某个MAC地址对应DHCP客户端发送的报文数在指定的时间内达到配置的最大报文数时,DHCP服务器认为受到了该DHCP客户端的攻击,DHCP防Flood攻击表项状态从check状态变成restrain状态,且DHCP服务器丢弃该DHCP客户端发送的DHCP报文。当某个MAC地址对应的DHCP Flood攻击表项老化时间到达后,设备会检查接口表项报文抑制速率,如果速率小于DHCP Flood攻击报文速率阈值,设备会删除此表项。设备再次收到源MAC地址为此MAC地址的DHCP请求报文时,会重新统计接收到的报文数目;如果速率大于等于DHCP Flood攻击报文速率阈值,则设备不会删除此表项,老化时间重新刷新。
本特性仅在standard工作模式下支持。有关系统工作模式的介绍,请参见“基础分册配置指导”中的“设备管理”。
(1) 进入系统视图。
system-view
(2) (可选)配置DHCP Flood攻击报文速率阈值。
dhcp flood-protection threshold packet-number milliseconds
缺省情况下,DHCP Flood攻击检测的最大报文数为6,检测时间为5000毫秒。
(3) (可选)配置DHCP Flood攻击表项老化时间。
dhcp flood-protection aging-time time
缺省情况下,DHCP Flood攻击表项老化时间为300秒。
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启DHCP Flood攻击防范功能。
dhcp flood-protection enable
缺省情况下,DHCP Flood攻击防范功能处于关闭状态。
DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致DHCP服务器消耗过多的系统资源,无法处理正常业务。DHCP报文字段的相关内容请参见“1.3 DHCP报文格式”。
如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则通过mac-address max-mac-count命令限制端口可以学习到的MAC地址数,并配置学习到的MAC地址数达到最大值时,丢弃源MAC地址不在MAC地址表里的报文,能够避免攻击者申请过多的IP地址,在一定程度上阻止了DHCP饿死攻击。此时,不存在DHCP饿死攻击的端口下的DHCP客户端可以正常获取IP地址,但存在DHCP饿死攻击的端口下的DHCP客户端仍可能无法获取IP地址。
如果封装DHCP请求报文的数据帧的MAC地址都相同,则通过mac-address max-mac-count命令无法防止DHCP饿死攻击。在这种情况下,需要开启DHCP 服务器的MAC地址检查功能。开启该功能后,DHCP服务器检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,进行后续处理;如果不一致,则丢弃该报文。mac-address max-mac-count命令的详细介绍,请参见“二层技术-以太网交换”中的“MAC地址表”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP服务器源MAC检查功能。
dhcp server check mac-address
缺省情况下,DHCP服务器的MAC地址检查功能处于关闭状态。
某接口开启DHCP接口攻击抑制功能后,该接口收到DHCP报文后,会统计收到的DHCP报文数,同时创建一个check状态的DHCP接口攻击抑制表项。当接口收到的DHCP报文数在指定的时间内达到配置的最大报文数时,则认为该接口受到了DHCP报文攻击,DHCP接口攻击抑制表项状态从check状态变成restrain状态。在DHCP接口攻击抑制表项的老化时间到期之前,设备会限制被攻击的接口每秒钟接收DHCP报文的速率,防止DHCP攻击报文持续冲击CPU。当某个接口对应的DHCP接口攻击抑制表项老化时间到达后,接口会查询当前接口收到报文的速率,如果速率达不到攻击标准,设备会删除此表项,接口再次收到DHCP报文时,会重新统计接收到的报文数目;如果速率超过攻击标准,则DHCP接口攻击抑制表项老化时间重新刷新。
(1) 进入系统视图。
system-view
(2) (可选)配置DHCP接口攻击抑制阈值。
dhcp interface-rate-suppression threshold packet-number milliseconds
缺省情况下,当在5000毫秒内某个接口收到的DHCP报文个数超过3000,则认为该接口受到DHCP报文攻击。
(3) (可选)配置DHCP接口攻击抑制表项的老化时间。
dhcp interface-rate-suppression aging-time time
缺省情况下,DHCP接口攻击抑制表项的老化时间为300秒。
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启DHCP接口攻击抑制功能。
dhcp interface-rate-suppression enable
缺省情况下,DHCP接口攻击抑制功能处于关闭状态。
当DHCP客户端的行为不符合RFC协议规定时,为了与之兼容,需要配置DHCP服务器兼容性功能。
一般情况下,只有DHCP请求报文的广播标志位为1的时候,DHCP服务器才会以广播的方式发送应答报文。如果DHCP客户端发送的请求报文中广播标志位为0,且该客户端不支持接收单播的应答报文,则可以配置DHCP服务器忽略请求报文的广播标志位,始终以广播方式发送应答报文。
当已经存在IP地址的客户端发出请求报文(即报文中ciaddr字段不为0)时,无论是否开启DHCP服务器的广播回应报文功能,DHCP服务器都会以单播形式将回应报文发送给DHCP客户端(即目的地址为ciaddr)。
当请求报文通过DHCP中继转发到DHCP服务器(即报文中giaddr字段不为0)时,无论是否开启DHCP服务器的广播回应报文功能,DHCP服务器都会以单播形式将回应报文发送给DHCP中继(即目的地址为giaddr)。
(1) 进入系统视图。
system-view
(2) 开启DHCP服务器的广播回应报文功能。
dhcp server always-broadcast
缺省情况下,DHCP服务器的广播回应报文功能处于关闭状态。DHCP服务器根据请求报文中的广播标志位来决定以广播还是单播的形式发送应答报文。
如果网络中存在不支持解析Option 60的DHCP客户端,DHCP服务器需要配置DHCP服务器发送DHCP应答报文时不携带Option 60选项功能。配置该功能后,DHCP服务器无论收到的DHCP报文中是否携带Option 60选项,也无论DHCP地址池中是否已经配置了Option 60选项内容,DHCP服务器应答的DHCP报文中都不携带Option 60选项。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器发送DHCP应答报文不携带Option 60选项。
dhcp server reply-exclude-option60
缺省情况下,DHCP服务器发送DHCP应答报文时可以携带Option 60选项。
本功能只在以下环境中生效:
· DHCP客户端不发送DHCP-DISCOVER报文却直接发送DHCP-REQUEST报文请求IP地址,DHCP服务器收到DHCP客户端发送的DHCP-REQUEST报文中的请求地址与之前DHCP服务器分配的地址不同或该地址对应的租约不存在。
· DHCP客户端收到DHCP-OFFER报文后发送DHCP-REQUEST请求报文,DHCP服务器收到DHCP客户端发送的DHCP-REQUEST报文中的请求地址与之前DHCP服务器分配的地址不同或该地址对应的租约不存在。
未开启本功能时,当收到DHCP客户端发送的DHCP-REQUEST报文中的请求地址与之前DHCP服务器分配的地址不同或该地址对应的租约不存在时,DHCP服务器不回复应答报文。当DHCP服务器上保存的地址租约到期后,DHCP服务器才会应答DHCP客户端的请求并分配新的IP地址。
开启本功能时,如果DHCP客户端请求的新地址与之前使用的地址不同或该地址对应的租约不存在时,DHCP服务器直接回复NAK报文拒绝DHCP客户端的地址请求,DHCP客户端收到NAK报文后,重新申请IP地址。
(1) 进入系统视图。
system-view
(2) 当DHCP客户端请求的新地址与之前使用的地址不同或者租约不存在时,DHCP服务器回复NAK报文的功能。
dhcp server request-ip-address check
缺省情况下,当收到DHCP客户端发送的DHCP-REQUEST报文中的请求地址与之前DHCP服务器分配的地址不同或该地址对应的租约不存在时,DHCP服务器不回复NAK报文。
BOOTP客户端申请到的地址租约是无限期的。在某些组网环境中,可能不希望出现无限期的地址租约。此时,可以通过配置DHCP服务器忽略BOOTP请求报文,避免分配无限期的地址租约。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器忽略BOOTP请求报文。
dhcp server bootp ignore
缺省情况下,DHCP服务器不会忽略BOOTP请求报文。
有些BOOTP客户端发送的请求报文中,vend字段的格式不符合RFC 1048的要求。对于这种报文,DHCP服务器的缺省处理方法是不解析vend字段内容,将报文中vend字段的内容拷贝到回复报文中的vend字段回应给BOOTP客户端。
开启DHCP服务器的回应RFC 1048格式报文功能后,对于这种格式不符合RFC 1048要求的报文,DHCP服务器会将需要回应的选项以符合RFC 1048要求的格式,封装到回复报文的vend字段,并回应给BOOTP客户端。
本配置只在客户端通过BOOTP报文申请静态绑定地址时有效。
(1) 进入系统视图。
system-view
(2) 开启DHCP服务器回应RFC 1048格式报文功能。
dhcp server bootp reply-rfc-1048
缺省情况下,DHCP服务器回应RFC 1048格式报文功能处于关闭状态。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP服务器发送的DHCP报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器发送DHCP报文的DSCP优先级。
dhcp dscp dscp-value
缺省情况下,DHCP服务器发送DHCP报文的DSCP优先级为56。
配置DHCP服务器接口的DHCP报文限速功能后,当接口上收到的DHCP报文速率超过用户设定的限速值时,丢弃超过速率限制的DHCP报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP服务器接口的DHCP报文限速功能。
dhcp rate-limit rate
缺省情况下,DHCP服务器接口的DHCP报文限速功能处于关闭状态。
DHCP服务器重启后,设备上记录的租约信息将丢失,会影响DHCP服务器的正常业务。
DHCP服务器租约固化功能将DHCP服务器的在用地址租约和冲突表项保存到指定的文件中,DHCP服务器设备重启后,自动根据该文件恢复DHCP服务器的租约信息,从而保证DHCP服务器的租约信息不会丢失。
当DHCP服务器设备重启后,自动根据该文件恢复DHCP服务器的租约信息,租约恢复的过程中,DHCP服务器不能提供DHCP业务。所以当恢复过程出现问题导致恢复过程无法结束时,用户可配置dhcp server database update stop命令终止当前的DHCP服务器表项恢复操作,以便DHCP服务器能及时提供DHCP服务。
(1) 进入系统视图。
system-view
(2) 指定存储DHCP服务器表项的文件名称。
dhcp server database filename { filename | url url [ username username [ password { cipher | simple } string ] ] }
缺省情况下,未指定存储DHCP服务器表项的文件名称。
执行本命令后,会立即触发一次表项备份。
(3) (可选)将当前的DHCP服务器表项保存到用户指定的文件中。
dhcp server database update now
本命令只用来触发一次DHCP服务器表项的备份。
(4) (可选)配置刷新DHCP服务器表项存储文件的延迟时间。
dhcp server database update interval interval
缺省情况下,若DHCP服务器表项不变化,则不刷新存储文件;若DHCP服务器表项发生变化,默认在300秒之后刷新存储文件。
(5) (可选)终止当前的DHCP服务器表项恢复操作。
dhcp server database update stop
本命令只用来触发一次终止DHCP服务器表项信息的恢复。
DHCP服务器的用户下线探测功能以ARP表项老化功能为基础,当ARP表项老化时认为该表项对应的用户已下线。
如果在接口上开启了DHCP服务器的用户下线探测功能,则当ARP表项老化时,系统会删除该表项对应用户的地址绑定信息。
手工删除ARP表项,不会触发DHCP服务器删除对应用户的地址绑定信息。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP服务器的用户下线探测功能。
dhcp client-detect
缺省情况下,DHCP服务器的用户下线探测功能处于关闭状态。
当DHCP服务器上配置的认证授权模块分配的地址和已在线DHCP客户端的地址发生冲突时,已在线的客户端不受影响,认证授权用户上线失败。配置本功能后,DHCP服务器会释放已在线DHCP客户端的IP地址,并通知接入模块此地址冲突不可用。当认证授权用户再次发起地址申请时,可以正常申请到该地址,不会再发生地址冲突问题。
(1) 进入系统视图。
system-view
(2) 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址。
dhcp conflict-ip-address offline
缺省情况下,当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,已在线DHCP客户端不受影响。
在IPoE组网中,用户的物理接入位置发生变化时,例如无线终端用户漫游时,若用户需要下线后重新上线,但DHCP服务器又未能及时收到用户的下线请求,将会导致DHCP服务器会认为该终端用户还在线。这种情况下,用户再次上线时发送的DHCP-DISCOVER报文会被DHCP服务器认为是攻击报文而丢弃,导致用户无法再次上线。
为了解决这个问题,需要在DHCP服务器上开启本功能。当DHCP服务器收到物理位置发生变化,MAC地址不变的上线用户发送的DHCP-DISCOVER报文时,先释放将对应MAC地址的已在线租约,再为该用户分配IP地址。
开启本功能后,可能会导致正常在线的用户掉线。因此,仅在网络中不存在DHCP攻击,又需要解决漫游用户的上线问题时,才建议开启本功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP服务器收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式。
dhcp session-mismatch action fast-renew
缺省情况下,DHCP服务器收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP-DISCOVER报文时,直接丢弃该DHCP-DISCOVER报文。
缺省情况下,授权IP地址冲突检测功能处于开启状态。当DHCP服务器发现AAA分给新用户的授权地址与已在线用户地址冲突时,会通知PPPoE接入模块此地址冲突不可用。因此,AAA授权地址分配失败,用户无法成功上线。在某些特殊组网中,存在同一用户重复上线的情况,用户再次上线时,AAA会为该用户授权同一个IP地址。为了避免因为IP地址冲突检测而导致用户无法获取到IP地址的问题,建议管理员关闭授权IP地址冲突检测功能。AAA的详细介绍,请参见“BRAS业务配置指导”中的“AAA”。
本功能只适用于PPPoE接入网络。PPPoE的详细介绍,请参见“BRAS业务配置指导”中的“PPPoE”。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器忽略授权IP地址冲突。
dhcp authorized-ip-conflict ignore
缺省情况下,当开启了DHCP服务后,DHCP进行授权IP地址冲突检测。
DHCP地址池告警功能是用来将设备发生了的重要事件告知给网络管理员,比如DHCP服务器单个DHCP地址池地址资源耗尽/恢复,DHCP服务器所有地址池地址分配成功率低于阈值,单个DHCP地址池地址使用率高于等于阈值/恢复到低于阈值。
当上述事件发生时,DHCP模块会生成告警信息,并将告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
设置地址池使用率告警门限阈值后,如果发生了地址池中地址使用率高于等于阈值或地址池中的地址使用率重新下降到低于(threshold-value×0.9)%的事件,DHCP模块会同时生成告警信息和日志信息。
DHCP模块将告警信息和日志信息交给信息中心模块处理,通过设置信息中心的参数,最终决定这两种信息的输出规则(即是否允许输出以及输出方向)。有关信息中心参数配置请参见“网络管理和监控配置指导”中的“信息中心”。
(1) 进入系统视图。
system-view
(2) 开启DHCP告警功能。
snmp-agent trap enable dhcp server [ address-exhaust | allocated-ip | ip-in-use ] *
缺省情况下,DHCP服务器的告警功能均处于开启状态。
(3) (可选)设置在5分钟内成功分配出去的地址租约数所占地址池收到的DHCP客户端请求数比率的门限阈值。
dhcp server allocated-ip threshold threshold-value
缺省情况下,设备不会发送告警信息。
(4) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(5) (可选)设置地址池使用率告警门限阈值。
ip-in-use threshold threshold-value
缺省情况下,地址池使用率告警门限阈值为100%。
DHCP服务器日志是为了满足管理员审计需求。设备生成DHCP日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
比如大量DHCP客户端发生上下线操作时,DHCP服务器会输出大量日志信息,这可能会降低设备性能,影响DHCP服务器分配IP地址的速度。为了避免该情况的发生,用户可以关闭DHCP服务器日志信息功能。
(1) 进入系统视图。
system-view
(2) 开启DHCP服务器日志信息功能。
dhcp log enable
缺省情况下,DHCP服务器日志信息功能处于关闭状态。
开启本功能后,当DHCP地址池中可分配的地址资源耗尽时,系统将生成DHCP日志信息,并交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
当DHCP地址池中地址使用率,即(总地址数—可分配地址数)/总地址数,重新下降到低于90%时,系统也会生成日志信息通知管理员。
关闭DHCP服务器日志信息功能后,本功能还可以正常运行。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
(3) dhcp server ip-pool pool-name
(4) 配置当地址池的可分配地址资源耗尽时,系统生成日志信息。
exhaustion log enable
缺省情况下,当地址池的可分配地址资源耗尽时,系统不会生成日志信息。
对接入用户,当用户下线时,如果DHCP服务器感知不到用户下线的动作,则DHCP服务器不会删除该用户的地址租约。当该用户重新上线后,如果用户上线的认证域发生变化,则用户发送DHCP报文中的Option选项信息会发生变化。DHCP服务器收到请求报文后,发现存在相同MAC地址的地址租约,则DHCP服务器不会再解析请求报文中的Option选项信息(涉及的选项包括Option 16、Option 17和Option 60),直接使用已存在租约的地址应答该请求报文。这就造成用户一直获取之前认证域的地址,导致用户无法正常访问网络。
配置本功能后,DHCP服务器收到用户发送的请求报文,会删除相同MAC地址的地址租约,且不应答该请求。当用户等待超时后,会重新发送DHCP请求。DHCP服务器收到请求报文后,会按照Option选项选择正确认证域对应的地址池,并从该地址池中选择地址分配给用户,保证用户可以在新的认证域中正常上线。
当DHCP服务器收到客户端的请求后,如果发现之前为该客户端分配过租约,则使用已分配租约中的地址应答请求。
(1) 进入系统视图。
system-view
(2) 配置当DHCP服务器收到客户端发送的DHCP-DISCOVER报文后,如果发现之前为该客户端分配过租约,则直接释放已分配的租约。
dhcp discover user offline
(3) 配置当DHCP服务器收到客户端重启后发送的DHCP-REQUEST报文后,如果发现之前为该客户端分配过租约,则直接释放已分配的租约。
dhcp reboot-request user offline
DHCP服务器重启或使用reset dhcp server ip-in-use命令清除租约后,DHCP服务器上不存在租约信息。此时客户端如果发出续约请求将会被拒绝,客户端需要重新申请IP地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP服务器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP服务器的相关信息。
表2-2 DHCP服务器显示和维护
操作 |
命令 |
显示DHCP防Flood攻击表项信息 |
(独立运行模式) display dhcp flood-protection slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] | state { check | restrain } ] (IRF模式) display dhcp flood-protection chassis chassis-number slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] | state { check | restrain } ] |
显示DHCP接口攻击抑制表项信息 |
(独立运行模式) display dhcp interface-rate-suppression slot slot-number [ interface interface-type interface-number | state { check | restrain } ] (IRF模式) display dhcp interface-rate-suppression chassis chassis-number slot slot-number [ interface interface-type interface-number | state { check | restrain } ] |
显示DHCP地址池组的信息 |
display dhcp pool-group [ name pool-group-name ] [ vpn-instance vpn-instance-name ] |
显示DHCP的地址冲突信息 |
display dhcp server conflict [ dp-address ip-address | ip ip-address | vxlan vxlan-id ] [ vpn-instance vpn-instance-name ] |
显示DHCP服务器的表项备份信息 |
display dhcp server database |
显示租约过期的地址绑定信息 |
display dhcp server expired [ [ dp-address ip-address | ip ip-address | mac mac-address | vxlan vxlan-id ] [ vpn-instance vpn-instance-name ] | pool pool-name ] [ verbose ] |
显示DHCP地址池的空闲地址信息 |
display dhcp server free-ip [ pool pool-name | vpn-instance vpn-instance-name ] |
显示DHCP地址绑定信息 |
display dhcp server ip-in-use [ [ dp-address ip-address | ip ip-address | subnet network-address mask-length | vxlan vxlan-id ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
显示DHCP服务器的统计信息 |
display dhcp server statistics [ pool pool-name | vpn-instance vpn-instance-name ] |
显示DHCP地址池的信息 |
display dhcp server pool [ name pool-name | pool-group pool-group-name | [ vpn-instance vpn-instance-name ] [ nat | odap-client [ host ] | odap-server | subnet-alloc ] ] |
清除DHCP防Flood攻击表项信息 |
(独立运行模式) reset dhcp flood-protection slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] ] (IRF模式) reset dhcp flood-protection chassis chassis-number slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] ] |
清除DHCP接口攻击抑制表项信息 |
(独立运行模式) reset dhcp interface-rate-suppression slot slot-number [ interface interface-type interface-number ] (IRF模式) reset dhcp interface-rate-suppression chassis chassis-number slot slot-number [ interface interface-type interface-number ] |
清除DHCP的地址冲突信息 |
reset dhcp server conflict [ ip ip-address ] [ vpn-instance vpn-instance-name ] |
清除租约过期的地址绑定信息 |
reset dhcp server expired [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
清除DHCP的正式绑定和临时绑定信息 |
reset dhcp server ip-in-use [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
清除DHCP服务器的统计信息 |
reset dhcp server statistics [ vpn-instance vpn-instance-name ] |
Router B和Router C分别作为DHCP客户端和BOOTP客户端,从DHCP服务器Router A获取静态绑定的IP地址、域名服务器、网关地址。
其中:
· Router B的接口GigabitEthernet3/1/1的客户端ID为:
0030-3030-662e-6532-3030-2e30-3030-322d-4574-6865-726e-6574;
· Router C的接口GigabitEthernet3/1/1的MAC地址为:000f-e200-01c0。
图2-5 静态绑定地址组网图
(1) 配置接口的IP地址
<RouterA> system-view
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] ip address 10.1.1.1 25
[RouterA-GigabitEthernet3/1/1] quit
(2) 配置DHCP服务
# 创建DHCP地址池0。
[RouterA] dhcp server ip-pool 0
# 配置采用静态绑定方式为Router B分配IP地址。
[RouterA-dhcp-pool-0] static-bind ip-address 10.1.1.5 25 client-identifier 0030-3030-662e-6532-3030-2e30-3030-322d-4574-6865-726e-6574
# 配置采用静态绑定方式为Router C分配IP地址。
[RouterA-dhcp-pool-0] static-bind ip-address 10.1.1.6 25 hardware-address 000f-e200-01c0
# 配置域名服务器、网关地址。
[RouterA-dhcp-pool-0] dns-list 10.1.1.2
[RouterA-dhcp-pool-0] gateway-list 10.1.1.126
[RouterA-dhcp-pool-0] quit
# 开启DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet3/1/1工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] dhcp select server
[RouterA-GigabitEthernet3/1/1] quit
配置完成后,Router B和Router C可以从DHCP服务器Router A分别申请到IP地址10.1.1.5和10.1.1.6,并获取相关网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
[RouterA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.5 0030-3030-662e-6532- Jan 21 14:27:27 2014 Static(C)
3030-2e30-3030-322d-
4574-6865-726e-6574
10.1.1.6 000f-e200-01c0 Unlimited Static(C)
· 作为DHCP服务器的Router A为网段10.1.1.0/24中的客户端动态分配IP地址,该地址池网段分为两个子网网段:10.1.1.0/25和10.1.1.128/25;
· Router A的两个以太网接口,GigabitEthernet3/1/1和GigabitEthernet3/1/2的地址分别为10.1.1.1/25和10.1.1.129/25;
· 10.1.1.0/25网段内的地址租用期限为10天12小时,域名后缀为aabbcc.com,DNS服务器地址为10.1.1.2/25,WINS服务器地址为10.1.1.4/25,网关的地址为10.1.1.126/25;
· 10.1.1.128/25网段内的地址租用期限为5天,域名后缀为aabbcc.com,DNS服务器地址为10.1.1.2/25,无WINS服务器地址,网关的地址为10.1.1.254/25。
图2-6 DHCP组网图
(1) 配置DHCP server各接口的IP地址(略)
(2) 配置DHCP服务
# 配置不参与自动分配的IP地址(DNS服务器、WINS服务器和网关地址)。
<RouterA> system-view
[RouterA] dhcp server forbidden-ip 10.1.1.2
[RouterA] dhcp server forbidden-ip 10.1.1.4
[RouterA] dhcp server forbidden-ip 10.1.1.126
[RouterA] dhcp server forbidden-ip 10.1.1.254
# 配置DHCP地址池1,用来为10.1.1.0/25网段内的客户端分配IP地址和网络配置参数。
[RouterA] dhcp server ip-pool 1
[RouterA-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.128
[RouterA-dhcp-pool-1] expired day 10 hour 12
[RouterA-dhcp-pool-1] domain-name aabbcc.com
[RouterA-dhcp-pool-1] dns-list 10.1.1.2
[RouterA-dhcp-pool-1] gateway-list 10.1.1.126
[RouterA-dhcp-pool-1] nbns-list 10.1.1.4
[RouterA-dhcp-pool-1] quit
# 配置DHCP地址池2,用来为10.1.1.128/25网段内的客户端分配IP地址和网络配置参数。
[RouterA] dhcp server ip-pool 2
[RouterA-dhcp-pool-2] network 10.1.1.128 mask 255.255.255.128
[RouterA-dhcp-pool-2] expired day 5
[RouterA-dhcp-pool-2] domain-name aabbcc.com
[RouterA-dhcp-pool-2] dns-list 10.1.1.2
[RouterA-dhcp-pool-2] gateway-list 10.1.1.254
[RouterA-dhcp-pool-2] quit
# 开启DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet3/1/1和GigabitEthernet3/1/2工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] dhcp select server
[RouterA-GigabitEthernet3/1/1] quit
[RouterA] interface gigabitethernet 3/1/2
[RouterA-GigabitEthernet3/1/2] dhcp select server
[RouterA-GigabitEthernet3/1/2] quit
配置完成后,10.1.1.0/25和10.1.1.128/25网段的客户端可以从DHCP服务器Router A申请到相应网段的IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
[RouterA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.3 0031-3865-392e-6262- Jan 14 22:25:03 2015 Auto(C)
3363-2e30-3230-352d-
4745-302f-30
10.1.1.5 0031-fe65-4203-7e02- Jan 14 22:25:03 2015 Auto(C)
3063-5b30-3230-4702-
620e-712f-5e
10.1.1.130 3030-3030-2e30-3030- Jan 9 10:45:11 2015 Auto(C)
662e-3030-3033-2d45-
7568-6572-1e
10.1.1.131 3030-0020-fe02-3020- Jan 9 10:45:11 2015 Auto(C)
7052-0201-2013-1e02
0201-9068-23
10.1.1.132 2020-1220-1102-3021- Jan 9 10:45:11 2015 Auto(C)
7e52-0211-2025-3402
0201-9068-9a
10.1.1.133 2021-d012-0202-4221- Jan 9 10:45:11 2015 Auto(C)
8852-0203-2022-55e0
3921-0104-31
· Router A作为DHCP中继转发DHCP报文。在Router A上配置DHCP中继支持Option 82功能,使得Router A能够为DHCP客户端发送的请求报文添加Option 82。
· Router B作为DHCP服务器为客户端分配IP地址和其他网络配置参数。如果Router B接收到的请求报文中带有Option 82,则为该客户端分配地址范围10.10.1.2到10.10.1.10内的IP地址。如果Router B接收到的请求报文匹配硬件地址aabb-aabb-aab0,硬件地址掩码为ffff-ffff-fff0,则为该客户端分配地址围10.10.1.11到10.10.1.26内的IP地址。
· Router B为10.10.1.0/24网段内的客户端分配的DNS服务器地址为10.10.1.20/24,网关的地址为10.10.1.254/24。
图2-7 按DHCP用户类分配地址组网图
(1) 配置DHCP server各个接口的IP地址(略)
(2) 配置DHCP服务
# 创建DHCP用户类tt,设置匹配规则编号1,匹配请求报文中带有Option 82的客户端。
<RouterB> system-view
[RouterB] dhcp class tt
[RouterB-dhcp-class-tt] if-match rule 1 option 82
[RouterB-dhcp-class-tt] quit
# 创建DHCP用户类ss,设置匹配规则编号1,匹配硬件地址aabb-aabb-aab0,硬件地址掩码ffff-ffff-fff0的请求报文。
[RouterB] dhcp class ss
[RouterB-dhcp-class-ss] if-match rule 1 hardware-address aabb-aabb-aab0 mask ffff-ffff-fff0
[RouterB-dhcp-class-ss] quit
# 创建DHCP地址池aa,配置地址范围和用户类tt的地址范围,配置网关和DNS服务器的地址。
[RouterB] dhcp server ip-pool aa
[RouterB-dhcp-pool-aa] network 10.10.1.0 mask 255.255.255.0
[RouterB-dhcp-pool-aa] address range 10.10.1.2 10.10.1.100
[RouterB-dhcp-pool-aa] class tt range 10.10.1.2 10.10.1.10
[RouterB-dhcp-pool-aa] class ss range 10.10.1.11 10.10.1.26
[RouterB-dhcp-pool-aa] gateway-list 10.10.1.254
[RouterB-dhcp-pool-aa] dns-list 10.10.1.20
[RouterB-dhcp-pool-aa] quit
# 开启DHCP服务,且配置DHCP服务器处理Option 82信息。
[RouterB] dhcp enable
[RouterB] dhcp server relay information enable
# 配置接口GigabitEthernet3/1/1工作在DHCP服务器模式。
[RouterB] interface gigabitethernet 3/1/1
[RouterB-GigabitEthernet3/1/1] dhcp select server
[RouterB-GigabitEthernet3/1/1] quit
配置完成后,10.10.1.0/24网段的客户端通过用户类分配方式可以从DHCP服务器Router B申请到相应地址范围的IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为它分配的IP地址。
[RouterB] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.10.1.2 0031-3865-392e-6262- Jan 14 22:25:03 2015 Auto(C)
3363-2e30-3230-352d-
4745-302f-30
10.10.1.11 aabb-aabb-aab1 Jan 14 22:25:03 2015 Auto(C)
Router B作为DHCP服务器只为局域网中匹配硬件地址aabb-aabb-0000,硬件地址掩码为ffff-ffff-0000的DHCP客户端动态分配网段为10.1.1.0/24的IP地址。
图2-8 用户类白名单功能典型组网图
(1) 配置DHCP服务器接口的IP地址(略)
(2) 配置DHCP服务
# 创建DHCP用户类ss,设置匹配规则编号1,匹配硬件地址为aabb-aabb-0000,硬件地址掩码为ffff-ffff-0000
<RouterB> system-view
[RouterB] dhcp class ss
[RouterB-dhcp-class-ss] if-match rule 1 hardware-address aabb-aabb-0000 mask ffff-ffff-0000
[RouterB-dhcp-class-ss] quit
# 创建DHCP地址池aa,配置可分配的地址范围为10.1.1.0/24,开启用户类白名单功能,配置白名单中包括的用户类为ss
[RouterB] dhcp server ip-pool aa
[RouterB-dhcp-pool-aa] network 10.1.1.0 mask 255.255.255.0
[RouterB-dhcp-pool-aa] verify class
[RouterB-dhcp-pool-aa] valid class ss
[RouterB-dhcp-pool-aa] quit
# 开启DHCP服务
[RouterB] dhcp enable
# 配置接口GigabitEthernet3/1/1工作在DHCP服务器模式
[RouterB] interface gigabitethernet 3/1/1
[RouterB-GigabitEthernet3/1/1] dhcp select server
[RouterB-GigabitEthernet3/1/1] quit
配置完成后,匹配硬件地址aabb-aabb-0000,硬件地址掩码ffff-ffff-0000的客户端可以从DHCP服务器Router B申请到地址范围为10.1.1.0/24网段的IP地址。通过display dhcp server ip-in-use命令可以查看DHCP服务器分配的IP地址。
[RouterB] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.2 aabb-aabb-ab01 Jan 14 22:25:03 2015 Auto(C)
· 作为DHCP服务器的Router A为局域网中的客户端动态分配IP地址。
· DHCP服务器地址池中有两个网段的地址:10.1.1.0/24和10.1.2.0/24。当10.1.1.0/24网段没有空闲地址后,DHCP服务器继续从10.1.2.0/24网段中选择IP地址分配给客户端。
· Router A为网段10.1.1.0/24内的客户端分配的网关地址为10.1.1.254/24;为网段10.1.2.0/24内的客户端分配的网关地址为和10.1.2.254/24。
图2-9 主从网段组网图
# 创建DHCP地址池aa,配置主网段地址范围和从网段地址范围,配置网关地址。
<RouterA> system-view
[RouterA] dhcp server ip-pool aa
[RouterA-dhcp-pool-aa] network 10.1.1.0 mask 255.255.255.0
[RouterA-dhcp-pool-aa] gateway-list 10.1.1.254
[RouterA-dhcp-pool-aa] network 10.1.2.0 mask 255.255.255.0 secondary
[RouterA-dhcp-pool-aa-secondary] gateway-list 10.1.2.254
[RouterA-dhcp-pool-aa-secondary] quit
[RouterA-dhcp-pool-aa] quit
# 开启DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet3/1/1的主从IP地址,并配置该接口工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] ip address 10.1.1.1 24
[RouterA-GigabitEthernet3/1/1] ip address 10.1.2.1 24 sub
[RouterA-GigabitEthernet3/1/1] dhcp select server
[RouterA-GigabitEthernet3/1/1] quit
配置完成后,当DHCP服务器地址池主网段中没有空闲地址分配给客户端时,服务器会从该地址池中的从网段获取地址分配给客户端IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器已分配的主从网段IP地址。(此处只截取部分显示信息)
[RouterA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.2 0031-3865-392e-6262- Jan 14 22:25:03 2015 Auto(C)
3363-2e30-3230-352d-
4745-302f-30
10.1.2.2 3030-3030-2e30-3030- Jan 14 22:25:03 2015 Auto(C)
662e-3030-3033-2d45-
7568-6572-1e
DHCP客户端Router B从DHCP服务器Router A获取IP地址和PXE引导服务器地址信息:
· 客户端IP地址所在网段为10.1.1.0/24;
· 匹配硬件地址aabb-aabb-0000,硬件地址掩码ffff-ffff-0000的客户端的PXE引导服务器地址为2.3.4.5和3.3.3.3,其他客户端的PXE引导服务器地址为1.2.3.4和2.2.2.2。
DHCP服务器需要通过自定义DHCP选项的方式配置Option 43的内容,从而实现为客户端分配PXE引导服务器地址。Option 43和PXE服务器地址列表的格式分别如图1-5和图1-7。DHCP服务器上地址池中配置的Option 43选项内容为80 0B 00 00 02 01 02 03 04 02 02 02 02,其中80为子选项类型(Sub-option type),0B为子选项长度(Sub-option length),00 00为PXE服务器类型(PXE server type),02为服务器数目(Server number),01 02 03 04 02 02 02 02为服务器的IP地址1.2.3.4和2.2.2.2。
图2-10 自定义DHCP选项典型配置举例
(1) 配置接口GigabitEthernet3/1/1的IP地址(略)
(2) 配置DHCP服务
# 创建DHCP用户类ss,设置匹配规则编号1,匹配硬件地址aabb-aabb-0000,硬件地址掩码为ffff-ffff-0000。
<RouterA> system-view
[RouterA] dhcp class ss
[RouterA-dhcp-class-ss] if-match rule 1 hardware-address aabb-aabb-0000 mask ffff-ffff-0000
[RouterA-dhcp-class-ss] quit
# 创建DHCP选项组1,配置选项信息。
[RouterA] dhcp option-group 1
[RouterA-dhcp-option-group-1] option 43 hex 800B0000020203040503030303
# 配置DHCP地址池0。
[RouterA] dhcp server ip-pool 0
[RouterA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[RouterA-dhcp-pool-0] option 43 hex 800B0000020102030402020202
[RouterA-dhcp-pool-0] class ss option-group 1
[RouterA-dhcp-pool-0] quit
# 开启DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet3/1/1工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] dhcp select server
[RouterA-GigabitEthernet3/1/1] quit
配置完成后,Router B可以从DHCP服务器Router A获取到10.1.1.0/24网段的IP地址和PXE引导服务器地址。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
[RouterA] display dhcp server ip-in-use
IP address Client identifier/ Lease expiration Type
Hardware address
10.1.1.2 aabb-aabb-ab01 Jan 14 22:25:03 2015 Auto(C)
客户端从DHCP服务器动态获得的IP地址与其他主机IP地址冲突。
可能是网络上有主机私自配置了IP地址,导致冲突。
(1) 禁用客户端的网卡或断开其网线,从另外一台主机执行ping操作,检查网络中是否已经存在该IP地址的主机。
(2) 如果能够收到ping操作的响应消息,则说明该IP地址已由用户静态配置。在DHCP服务器上执行dhcp server forbidden-ip命令,禁止该IP地址参与动态地址分配。
(3) 重新启用客户端的网卡或连接好其网线,在客户端释放并重新获取IP地址。以Windows XP为例,在Windows环境下运行cmd进入DOS环境,使用ipconfig /release命令释放IP地址,之后使用ipconfig /renew重新获取IP地址。
DHCP客户端和DHCP服务器处于不同物理网段时,客户端可以通过DHCP中继与DHCP服务器通信,获取IP地址及其他配置信息。
图3-1是DHCP中继的典型应用示意图。
图3-1 DHCP中继的典型组网应用
通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2 IP地址获取过程”。
图3-2 DHCP中继的工作过程
如图3-2所示,DHCP中继的工作过程为:
(1) 具有DHCP中继功能的网络设备收到DHCP客户端以广播方式发送的DHCP-DISCOVER或DHCP-REQUEST报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并根据配置将报文单播转发给指定的DHCP服务器。
(2) DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并通过DHCP中继将配置信息转发给客户端,完成对客户端的动态配置。
Option 82记录了DHCP客户端的位置信息。管理员可以利用该选项定位DHCP客户端,实现根据Option 82为客户端分配特定范围的地址、对客户端进行安全和计费等控制。Option 82的详细介绍请参见“1.6.2 中继代理信息选项(Option 82)”。
如果DHCP中继支持Option 82功能,则当DHCP中继接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充模式等对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。具体的处理方式见表3-1。
如果DHCP中继收到的应答报文中带有Option 82,则会将Option 82删除后再转发给DHCP客户端。
表3-1 DHCP中继支持Option 82的处理方式
收到DHCP请求报文 |
处理策略 |
DHCP中继对报文的处理 |
收到的报文中带有Option 82 |
Drop |
丢弃报文 |
Keep |
保持报文中的Option 82不变并进行转发 |
|
Replace |
根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发 |
|
收到的报文中不带有Option 82 |
- |
根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发 |
设备作为MCE(Multi-VPN-instance Customer Edge,多VPN实例用户网络边界设备)时,在设备上配置DHCP中继功能,不仅可以为公网上的DHCP服务器和DHCP客户端转发DHCP报文,还可以实现为私网内的DHCP服务器和DHCP客户端转发DHCP报文。MCE的详细介绍,请参见“MPLS配置指导”中的“MCE”。
· 建议将设备配置为DHCP中继代理模式。DHCP中继代理模式的详细介绍请参见“3.7.5 配置DHCP中继支持代理功能”。
· 在IPoE三层接入的场景中,请在DHCP中继上配置DHCP中继支持代理功能,并关闭DHCP中继用户地址表项记录功能。
· DHCP中继设备如果开启了MAC地址检查功能,请同时配置DHCP Flood攻击防范功能。
DHCP中继配置任务如下:
(1) 开启DHCP服务
(2) 配置接口工作在DHCP中继模式
(3) 指定DHCP服务器的地址
(4) (可选)配置高级功能
¡ 配置DHCP中继允许从同一个DHCP服务器接收DHCP-NAK报文的最大个数
¡ 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址
¡ 配置DHCP中继通过Option82信息转发DHCP应答报文
¡ 配置DHCP中继收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式
¡ 配置DHCP中继收到应答DHCP-DISCOVER报文的DHCP-NAK报文达到一定条件后,切换到向下一个远端DHCP地址池对应的服务器转发报文
只有开启DHCP服务后,其它相关的DHCP中继配置才能生效。
(1) 进入系统视图。
system-view
(2) 开启DHCP服务。
dhcp enable
缺省情况下,DHCP服务处于关闭状态。
配置接口工作在中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给DHCP服务器,由服务器分配地址。
DHCP客户端通过DHCP中继获取IP地址时,DHCP服务器上需要配置与DHCP中继连接DHCP客户端的接口IP地址所在网段(网络号和掩码)匹配的地址池,否则会导致DHCP客户端无法获得正确的IP地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口工作在DHCP中继模式。
dhcp select relay
缺省情况下,开启DHCP服务后,接口工作在DHCP服务器模式。
为了提高可靠性,可以在一个网络中设置多个DHCP服务器。DHCP中继上配置多个DHCP服务器后,DHCP中继会将客户端发来的DHCP报文转发给所有的服务器。
指定的DHCP服务器的IP地址不能与DHCP中继的接口IP地址在同一网段。否则,可能导致客户端无法获得IP地址。
当DHCP服务器同时配置了主、从IP地址时,不支持指定DHCP中继对应的DHCP服务器地址为DHCP服务器的从IP地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 指定DHCP中继对应的DHCP服务器地址。
dhcp relay server-address ip-address
缺省情况下,未指定DHCP服务器的地址。
通过多次执行dhcp relay server-address命令可以指定多个DHCP服务器,一个接口下最多可以指定8个DHCP服务器。
对于某些特定的用户接入方式(如IPoE接入方式),基于用户接入位置信息的不同,网络中存在大量不同类型的用户。为了使相同类型的用户可以从指定的DHCP服务器申请IP地址等网络参数,IPoE模块根据用户注册信息,使不同的用户选择不同的DHCP中继地址池,并从中继地址池下配置的DHCP服务器获取IP地址等网络参数。
为了提高可靠性,一个DHCP中继地址池下配置多个DHCP服务器地址,当DHCP客户端匹配该中继地址池后,DHCP中继会将DHCP客户端发来的DHCP报文转发给该地址池对应所有的DHCP服务器。
一台DHCP中继的一个接口下可能连接不同类型的用户,当DHCP中继转发DHCP客户端请求报文给DHCP服务器时,不能再以中继接口的IP地址作为选择地址池的依据。为了解决这个问题,需要使用gateway-list命令指定某个类型用户所在的网段,并将该地址添加到转发给DHCP服务器的报文字段中,为DHCP服务器选择地址池提供依据。
配置本功能需要注意:
· 当IPoE或PPPoE用户下线时,DHCP中继需要查询中继用户地址表项,若存在对应表项,则会向DHCP服务器发送Release报文,通知DHCP服务器释放该地址租约。这就需要在DHCP中继上使用dhcp relay client-information record命令开启DHCP中继用户地址表项记录功能。
· 和IPoE或PPPoE配合使用时,如果设备的地址池中配置了remote-server命令,则可以认定该设备一定是DHCP中继设备,所以不需要在接口视图下执行dhcp select relay命令。
(1) 进入系统视图。
system-view
(2) 创建DHCP中继地址池,并进入中继地址池视图。
dhcp server ip-pool pool-name
(3) 指定匹配该地址池的DHCPv4客户端所在的网段地址。
gateway-list ip-address&<1-64> [ export-route ]
缺省情况下,未指定匹配该地址池的DHCP客户端所在的网段地址。
(4) 指定中继地址池对应的DHCP服务器地址。
remote-server ip-address&<1-8>
缺省情况下,未指定中继地址池对应的DHCP服务器的地址。
通过执行remote-server命令一次最多可以指定8个DHCP服务器的地址信息。
一般来说,DHCP中继是向所有DHCP服务器转发DHCP请求报文(即polling方式),且DHCP客户端会选择最快收到DHCP应答报文。如果用户想指定一台DHCP服务器作为主用DHCP服务器,其他DHCP服务器只在主用DHCP服务器不可用或没有空闲地址时才起作用,就需要DHCP中继支持优先选择用户期望的DHCP服务器作为主用DHCP服务器的功能。
当DHCP中继使用主备方式选择DHCP服务器后,会优先向配置的第一个DHCP服务器地址转发DHCP请求报文。当该DHCP服务器确定无法分配IP地址时,DHCP中继将之后的DHCP请求报文向下一个DHCP服务器地址转发。如果DHCP中继已切换到配置的最后一个DHCP服务器地址且发现该DHCP服务器仍不可用,则重新选择第一个配置的DHCP服务器地址进入下一个循环。
主备方式有两种配置方法:
· 对于普通组网,用户可以在DHCP中继接口上指定多个DHCP服务器地址。这样当配置DHCP中继主备方式选择DHCP服务器时,配置的第一个地址对应的DHCP服务器为主用DHCP服务器,之后配置的地址对应的DHCP服务器为备用DHCP服务器。
· 对于某些用户接入方式(如IPoE方式),用户必须配置中继地址池,并指定多个DHCP服务器地址。这样当配置DHCP中继主备方式选择DHCP服务器时,配置的第一个地址对应的DHCP服务器为主用DHCP服务器,之后配置的地址对应的DHCP服务器为备用DHCP服务器。
此外,本特性还支持配置以下功能:
· 配置DHCP服务器应答超时切换时间,缺省应答超时切换时间为30秒。当DHCP中继向DHCP服务器转发DHCP请求报文,如果超过配置的应答超时切换时间后还未收到该DHCP服务器的应答报文,则DHCP中继认为该DHCP服务器已不可用,并切换到下一个DHCP服务器。
· 配置回切主用DHCP服务器并指定回切延迟时间,缺省DHCP中继是不回切的。当用户在DHCP中继配置了回切主用DHCP服务器延迟时间且当前生效的不是主用DHCP服务器时,经过该回切延迟时间后,DHCP服务器会将DHCP请求报文转发到主用DHCP服务器。如果主用DHCP服务器不可用或没有空闲地址时则重新使用当前生效的DHCP服务器;如果主用DHCP服务器可用则继续使用主用DHCP服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP中继选择DHCP服务器方式。
dhcp relay server-address algorithm { master-backup | polling }
缺省情况下,DHCP中继同时向所有DHCP服务器转发DHCP请求报文(polling方式)。
(4) (可选)配置DHCP服务器应答超时切换时间。
dhcp relay dhcp-server timeout time
缺省情况下,DHCP服务器应答超时切换时间为30秒。
(5) (可选)配置回切主用DHCP服务器并指定回切延迟时间。
dhcp relay master-server switch-delay delay-time
缺省情况下,DHCP中继不回切到主用DHCP服务器。
(1) 进入系统视图。
system-view
(2) 进入DHCP地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP中继选择DHCP服务器方式。
remote-server algorithm { master-backup | polling }
缺省情况下,DHCP中继同时向所有DHCP服务器转发DHCP请求报文(polling方式)。
(4) (可选)配置DHCP服务器应答超时切换时间。
dhcp-server timeout time
缺省情况下,DHCP服务器应答超时切换时间为30秒。
(5) (可选)配置回切主用DHCP服务器并指定回切延迟时间。
master-server switch-delay delay-time
缺省情况下,DHCP中继不回切到主用DHCP服务器。
本功能只适用于DHCP中继使用DHCP地址池组中的DHCP中继地址池选择对应DHCP服务器的组网环境。
配置本功能后,DHCP中继根据如下原则判断DHCP服务器是否可用:
· 当DHCP中继向DHCP服务器转发第一个DHCP请求报文时,开始对请求报文进行计数,并开始计时。每经过一个timeout时长后,DHCP中继都会检查向DHCP服务器转发的报文数。
¡ 如果在timeout内收到应答报文,中继会清除报文计数,关闭timeout计时器。再次发送请求时,中继会重新进行报文计数,并重新开始timeout计时。
¡ 如果中继向服务器转发了不多于dead-count-value个请求报文,未收到一个应答报文时,则DHCP中继会在下次转发报文时重新开始计时,并继续报文计数。
¡ 如果DHCP中继向服务器转发了多于dead-count-value个请求报文,却仍未收到一个应答报文,则认为该DHCP服务器不可用或没有空闲地址。
· 当DHCP中继在转发了用户续约报文后连续收到DHCP服务器应答的nak-count个DHCP-NAK报文后,也会认为该DHCP服务器不可用或没有空闲地址。
当DHCP中继认为某台DHCP服务器不可用或没有空闲地址后,定时器开始计时。在dead-time时长内,DHCP中继认为该DHCP服务器不可用。当再次匹配到该DHCP服务器时,也不会向其转发DHCP请求报文。经过dead-time时长后,DHCP中继会重新认为该DHCP服务器可用。当再次匹配到该DHCP服务器时,会向其转发DHCP请求报文。
DHCP中继认为所有DHCP服务器都不可用后,如果DHCP中继收到一个请求报文,则中继地址池会重新认为所有的DHCP服务器可用,并重新开始向第一个DHCP服务器转发报文。
对于将DHCP中继选择DHCP服务器方式配置成polling方式的中继地址池,timeout会选择该地址池中所有DHCP服务器的timeout中的最大值。
对于同一台DHCP服务器来说,DHCP中继优先使用指定判断条件;如果指定判断条件不存在,则使用共用判断条件。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器可用性探测功能。
dhcp server [ ip-address [ vpn-instance vpn-instance-name ] ] { dead-count dead-count-value | dead-time dead-time | nak-count nak-count-value | timeout timeout } *
缺省情况下,DHCP中继在25秒还未收到DHCP服务器应答,则DHCP中继认为该DHCP服务器不可用。
为了防止非法主机静态配置一个IP地址并访问外部网络,设备支持DHCP中继用户地址表项记录功能。
开启该功能后,当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与硬件地址的绑定关系,生成DHCP中继的用户地址表项。
本功能与其他IP地址安全功能(如ARP地址检查、授权ARP和IP Source Guard)配合,可以实现只允许匹配用户地址表项中绑定关系的报文通过DHCP中继。从而,保证非法主机不能通过DHCP中继与外部网络通信。
同步串口作为DHCP客户端申请IP地址时,DHCP中继不会记录该客户端对应的用户地址表项。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继的用户地址表项记录功能。
dhcp relay client-information record
缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态。
DHCP客户端释放动态获取的IP地址时,会向DHCP服务器单播发送DHCP-RELEASE报文,DHCP中继不会处理该报文的内容。如果此时DHCP中继上记录了该IP地址与MAC地址的绑定关系,则会造成DHCP中继的用户地址表项无法实时刷新。为了解决这个问题,DHCP中继支持动态用户地址表项的定时刷新功能。
DHCP中继动态用户地址表项定时刷新功能开启时,DHCP中继每隔指定时间采用客户端获取到的IP地址和DHCP中继接口的MAC地址向DHCP服务器发送DHCP-REQUEST报文:
· 如果DHCP中继接收到DHCP服务器响应的DHCP-ACK报文或在指定时间内未接收到DHCP服务器的响应报文,则表明这个IP地址已经可以进行分配,DHCP中继会删除动态用户地址表中对应的表项。为了避免地址浪费,DHCP中继收到DHCP-ACK报文后,会发送DHCP-RELEASE报文释放申请到的IP地址。
· 如果DHCP中继接收到DHCP服务器响应的DHCP-NAK报文,则表示该IP地址的租约仍然存在,DHCP中继不会删除该IP地址对应的表项。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继动态用户地址表项定时刷新功能。
dhcp relay client-information refresh enable
缺省情况下,DHCP中继动态用户地址表项定时刷新功能处于开启状态。
(3) (可选)配置DHCP中继动态用户地址表项的定时刷新周期。
dhcp relay client-information refresh [ auto | interval interval ]
缺省情况下,定时刷新周期为auto,即根据表项的数目自动计算刷新时间间隔。
配置DHCP Flood攻击防范功能后,DHCP中继会根据DHCP报文中的源MAC地址统计收到的DHCP报文数,并创建一个check状态的DHCP防Flood攻击表项。当收到某个MAC地址对应DHCP客户端发送的报文数在指定的时间内达到配置的最大报文数时,DHCP中继认为受到了该DHCP客户端的攻击,DHCP防Flood攻击表项状态从check状态变成restrain状态,且DHCP中继丢弃该DHCP客户端发送的DHCP报文。DHCP中继在DHCP Flood攻击表项老化时间到达后设备会检查接口表项报文抑制速率,如果速率小于DHCP Flood攻击报文速率阈值,设备会删除此表项,设备再次收到源MAC地址为此MAC地址的DHCP请求报文时,会重新统计接收到的报文数目;如果速率大于等于DHCP Flood攻击报文速率阈值,设备不会删除此表项,老化时间重新刷新。
本特性仅在standard工作模式下支持。有关系统工作模式的介绍,请参见“基础分册配置指导”中的“设备管理”。
(1) 进入系统视图。
system-view
(2) (可选)配置DHCP Flood攻击报文速率阈值。
dhcp flood-protection threshold packet-number milliseconds
缺省情况下,DHCP Flood攻击检测的最大报文数为6,检测时间为5000毫秒。
(3) (可选)配置DHCP Flood攻击表项老化时间。
dhcp flood-protection aging-time time
缺省情况下,DHCP Flood攻击检测表项老化时间为300秒。
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启DHCP Flood攻击防范功能。
dhcp flood-protection enable
缺省情况下,DHCP Flood攻击防范功能处于关闭状态。
DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致DHCP服务器消耗过多的系统资源,无法处理正常业务。
如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则限制三层接口上可以学习到的ARP表项数,或限制二层端口上可以学习到的MAC地址数,并配置学习到的MAC地址数达到最大值时,丢弃源MAC地址不在MAC地址表里的报文,能够避免攻击者申请过多的IP地址,在一定程度上缓解DHCP饿死攻击。
如果封装DHCP请求报文的数据帧的源MAC地址都相同,则通过上述方法无法防止DHCP饿死攻击。在这种情况下,需要开启DHCP中继的MAC地址检查功能。开启该功能后,DHCP中继检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,将其转发给DHCP服务器;如果不一致,则丢弃该报文。
因为DHCP中继转发DHCP报文时会修改报文的源MAC地址,所以只能在靠近DHCP客户端的第一跳DHCP中继设备上开启MAC地址检查功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP中继的MAC地址检查功能。
dhcp relay check mac-address
缺省情况下,DHCP中继的MAC地址检查功能处于关闭状态。
设备可以通过配置DHCP中继支持代理功能,来防止非法用户攻击DHCP服务器。
开启该功能后,DHCP中继收到DHCP服务器的应答报文,会把报文中的DHCP服务器地址修改为中继的接口地址,并转发给DHCP客户端。当DHCP客户端通过DHCP中继从DHCP服务器获取到IP地址等网络参数后,DHCP客户端会把DHCP中继当做自己的服务器,来进行后续的DHCP功能的报文交互。从而达到了把真正的DHCP服务器和DHCP客户端隔离开,保护DHCP服务器的目的。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP中继支持代理功能。
dhcp select relay proxy
缺省情况下,开启DHCP服务后,接口工作在DHCP服务器模式。
DHCP中继的用户下线探测功能以ARP表项老化功能为基础,当ARP表项老化时认为该表项对应的用户已经下线。
如果在接口上配置了DHCP中继的用户下线检测功能,则当ARP表项老化时,DHCP中继认为该表项对应的用户已经下线,删除对应的用户地址表项,并通过发送Release报文通知DHCP服务器删除下线用户的IP地址租约。
手工删除ARP表项,不会触发DHCP中继删除对应的用户地址表项。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继的用户地址表项记录功能。
dhcp relay client-information record
缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态。
用户需要开启DHCP中继用户地址表项记录功能,否则用户下线探测功能无法完全生效。
(3) 进入接口视图。
interface interface-type interface-number
(4) 配置接口工作在DHCP中继模式。
dhcp select relay
缺省情况下,开启DHCP服务后,接口工作在DHCP服务器模式。
(5) 开启DHCP中继的用户下线探测功能。
dhcp client-detect
缺省情况下,DHCP中继的用户下线探测功能处于关闭状态。
某接口开启DHCP接口攻击抑制功能后,该接口收到DHCP报文后,会统计收到的DHCP报文数,同时创建一个check状态的DHCP接口攻击抑制表项。当接口收到的DHCP报文数在指定的时间内达到配置的最大报文数时,则认为该接口受到了DHCP报文攻击,DHCP接口攻击抑制表项状态从check状态变成restrain状态,在DHCP接口攻击抑制表项的老化时间到期之前设备会限制被攻击的接口每秒钟接收DHCP报文的速率,防止DHCP攻击报文持续冲击CPU。
(1) 进入系统视图。
system-view
(2) (可选)配置DHCP接口攻击抑制阈值。
dhcp interface-rate-suppression threshold packet-number milliseconds
缺省情况下,当在5000毫秒内某个接口收到的DHCP报文个数超过3000,则认为该接口受到DHCP报文攻击。
(3) (可选)配置DHCP接口攻击抑制表项的老化时间。
dhcp interface-rate-suppression aging-time time
缺省情况下,DHCP接口攻击抑制表项的老化时间为300秒。
(4) 进入接口视图。
interface interface-type interface-number
(5) 开启DHCP接口攻击抑制功能。
dhcp interface-rate-suppression enable
缺省情况下,DHCP接口攻击抑制功能处于关闭状态。
在某些情况下,可能需要通过DHCP中继手工释放客户端申请到的IP地址。如果DHCP中继上存在客户端IP地址对应的动态用户地址表项,则配置通过DHCP中继释放该客户端IP地址后,DHCP中继会主动向DHCP服务器发送DHCP-RELEASE报文。DHCP服务器收到该报文后,将会释放指定IP地址的租约。DHCP中继也会删除该动态用户地址表项。
释放的客户端IP地址必须是动态用户地址表项中存在的IP地址,否则DHCP中继无法释放该IP地址。
(1) 进入系统视图。
system-view
(2) 向DHCP服务器请求释放客户端申请到的IP地址。
dhcp relay release ip ip-address [ vpn-instance vpn-instance-name ]
为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。DHCP服务器的相关配置请参见“2.12 配置Option 82的处理方式”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP中继支持Option 82功能。
dhcp relay information enable
缺省情况下,DHCP中继支持Option 82功能处于关闭状态。
(4) (可选)配置DHCP中继对包含Option 82的请求报文的处理策略。
dhcp relay information strategy { drop | keep | replace }
缺省情况下,处理策略为replace。
DHCP中继对包含Option 82请求报文的处理策略为replace时,需要配置Option 82的填充模式和填充格式;处理策略为keep或drop时,不需要配置Option 82的填充模式和填充格式。
(5) (可选)配置Circuit ID子选项的填充模式和填充格式。
dhcp relay information circuit-id { bas [ sub-interface-vlan ] [ with-vxlan ] | string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] [ interface [ vlan-in-vlan ] ] } [ sub-interface-vlan ] [ format { ascii | hex } ] }
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex。
如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP中继添加或替换Option 82失败。
(6) (可选)配置Remote ID子选项的填充模式和填充格式。
dhcp relay information remote-id { normal [ format { ascii | hex } ] | string remote-id | sysname }
缺省情况下,Remote ID子选项的填充模式为Normal;填充格式为hex。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP中继发送的DHCP报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCP中继发送DHCP报文的DSCP优先级。
dhcp dscp dscp-value
缺省情况下,DHCP中继发送的DHCP报文的DSCP优先级为56。
配置DHCP中继接口的DHCP报文限速功能后,当接口上收到的DHCP报文速率超过用户设定的限速值时,丢弃超过速率限制的DHCP报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP中继接口的DHCP报文限速功能。
dhcp rate-limit rate
缺省情况下,DHCP中继接口的DHCP报文限速功能处于关闭状态。
当未开启该功能时,DHCP中继收到DHCP客户端的请求报文后,只能将接口的主IP地址添加到报文中,然后转发给DHCP服务器。对于某些特定需求,DHCP中继需要添加指定的地址到报文中,这时就需要配置此功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 手工指定在DHCP报文中填充的中继地址。
dhcp relay gateway ip-address
缺省情况下,DHCP中继填充的中继地址是接口下的主IP地址。
当DHCP中继收到DHCP客户端发来的请求报文时,会使用中继接口的主IP地址填充请求报文的giaddr字段,然后转发给DHCP服务器,DHCP服务器根据giaddr字段中的地址选择合适的地址池为客户端分配IP地址。当DHCP服务器中该网段地址分配完毕后,不管DHCP服务器上是否存在其他网段的地址,都不会再为该DHCP中继下的其他DHCP客户端分配IP地址。
DHCP中继通过smart-relay解决上述问题,开启该功能后,DHCP中继可以使用除中继接口主地址外的其他IP地址来填充giaddr字段,从而使DHCP客户端可以获取到其他网段的IP地址。
DHCP中继转发3次DHCP-DISCOVER报文后,若还未收到DHCP服务器的应答报文,DHCP中继将使用下一个可用IP地址来填充giaddr字段。DHCP中继使用所有配置的IP地址填充giaddr字段之后,将重新选择第一个配置的IP地址进入下一个循环。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继支持smart-relay功能。
dhcp smart-relay enable
缺省情况下,DHCP中继支持smart-relay功能处于关闭状态。
在某些组网中,多个DHCP中继接口IP地址相同或者中继接口IP到服务器没有可达路由,用户需要配置本命令指定一个IP地址或选择中继设备上的另一个接口的IP地址填充到转发给DHCP服务器的DHCP请求报文中的源地址字段中。
指定DHCP中继向DHCP服务器转发报文的源地址有两种配置方法:
· 对于普通组网,管理员可以在DHCP中继接口上指定DHCP中继向DHCP服务器转发报文的源地址。当使用ip-address时,会同时修改报文中的源地址和giaddr字段,导致giaddr字段地址和DHCP中继接口地址不在同一网段。因此,指定这个参数时需要先开启DHCP中继支持Option 82功能,DHCP中继收到DHCP请求报文时在Option 82选项填充的中继接口的主IP地址,DHCP服务器可以根据该地址来给DHCP客户端分配IP地址。DHCP中继收到DHCP应答报文后,通过查找MAC地址表中的接口信息向DHCP客户端转发。
· 对于某些用户接入方式(如IPoE方式),管理员必须配置中继地址池,并在地址池中指定DHCP中继向DHCP服务器转发报文的源地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 指定DHCP中继向DHCP服务器转发报文的源地址。
dhcp relay source-address { ip-address [ option { 60 [ option-text ] | code } ] | gateway | relay-interface }
缺省情况下,DHCP中继向DHCP服务器转发报文的源地址为向DHCP服务器转发报文出接口的地址。
参数 |
说明 |
ip-address { 60 [ option-text ] | code } |
如果DHCP请求报文中携带指定的Option选项,则发送给DHCP服务器的报文源地址和giaddr字段值为指定的IP地址。 |
gateway |
发送给DHCP服务器的报文源地址会取DHCP报文中giaddr字段的地址,如果giaddr字段为空,则按照缺省情况填充地址 |
relay-interface |
发送给DHCP服务器的报文源地址为DHCP中继连接DHCP客户端接口的IP地址,如果该接口不存在地址,则按照缺省情况填充地址 |
(1) 进入系统视图。
system-view
(2) 创建DHCP中继地址池,并进入中继地址池视图。
dhcp server ip-pool pool-name
(3) 指定DHCP中继向DHCP服务器转发报文的源地址。
dhcp-server source-address { ip-address | gateway | interface interface-type interface-number }
缺省情况下,DHCP中继向DHCP服务器转发报文的源地址为向DHCP服务器转发报文出接口的地址。
参数 |
说明 |
ip-address |
发送给DHCP服务器的报文源地址为指定的IP地址 |
gateway |
发送给DHCP服务器的报文源地址会取DHCP报文中giaddr字段的地址,如果giaddr字段为空,则按照缺省情况填充地址 |
interface interface-type interface-number |
发送给DHCP服务器的报文源地址为指定接口的IP地址,如果该接口不存在地址,则按照缺省情况填充地址 |
某些局域网内(比如WLAN组网中)不建议使用广播报文进行通信,这时用户可以开启DHCP中继单播转发应答报文功能。开启本功能后,DHCP中继会忽略DHCP应答报文中的广播标志位,统一以单播形式向DHCP客户端转发DHCP应答报文。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继单播转发DHCP应答报文功能。
dhcp relay always-unicast
缺省情况下,DHCP中继根据应答报文中的广播标志位选择广播还是单播转发DHCP应答报文。
本功能只适用于DHCP中继使用主备方式选择DHCP服务器的组网环境中。
当DHCP中继使用中继地址池指定DHCP服务器地址时,可以通过配置gateway-list命令指定多个类型用户所在网段地址。当收到DHCP客户端的续约请求报文后,DHCP中继会向主备方式当前选择到的DHCP服务器地址转发DHCP续约请求报文。当DHCP中继收到该DHCP服务器应答的DHCP-NAK报文达到配置的最大值时,DHCP中继会执行以下操作:
· 如果未配置gateway-only参数,则DHCP中继会继续向下一个DHCP服务器发送续约报文;
· 如果配置了gateway-only参数并开启了DHCP中继的smart-relay功能,则DHCP中继使用gateway-list命令配置的下一个地址修改DHCP请求报文中的giaddr字段;
· 如果未配置gateway-only参数并开启DHCP中继的smart-relay功能,则DHCP中继既会向下一个DHCP服务器发送续约报文,也会使用gateway-list命令配置的下一个地址修改DHCP请求报文中的giaddr字段。
(1) 进入系统视图。
system-view
(2) 进入DHCP中继地址池视图。
dhcp server ip-pool pool-name
(3) 配置DHCP中继允许从同一个DHCP服务器接收DHCP-NAK报文的最大个数。
dhcp-server nak-count nak-count-value [ gateway-only ]
缺省情况下,DHCP中继允许接收DHCP-NAK报文的最大个数为10。
当DHCP服务器为新DHCP客户端分配的IP地址和中继记录的用户地址表项冲突,或者DHCP中继上配置的认证授权模块分配的地址和已在线DHCP客户端的地址发生冲突时,已在线的客户端不受影响,新客户端或认证授权用户上线失败。配置本功能后,DHCP中继会有以下处理方式:
· 如果是认证授权模块分配的地址和DHCP中继记录的用户地址表项冲突,则中继向DHCP服务器发送DHCP-RELEASE报文释放冲突地址,并通知接入模块此地址冲突不可用;
· 如果DHCP服务器发送的应答报文中记录的地址和DHCP中继记录的用户表项冲突,则中继向DHCP服务器发送DHCP-RELEASE报文释放冲突地址,并丢弃该应答报文,新客户端无法获取到IP地址。
当新客户端或认证授权用户再次发起地址申请时,可以正常申请到该地址,不会再发生地址冲突问题。
只有开启了DHCP中继用户地址表项记录功能后,在DHCP中继上配置本功能才生效。
(1) 进入系统视图。
system-view
(2) 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址。
dhcp conflict-ip-address offline
缺省情况下,当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,已在线DHCP客户端不受影响。
对于某些组网环境,DHCP中继需要通过DHCP服务器的DHCP应答报文中携带的Option 82信息(VLAN ID)把DHCP应答报文转发给DHCP客户端。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP中继支持Option 82功能。
dhcp relay information enable
缺省情况下,DHCP中继支持Option 82功能处于关闭状态。
(4) 配置Circuit ID子选项的填充模式和填充格式。
dhcp relay information circuit-id { bas [ sub-interface-vlan ] [ with-vxlan ] | string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] [ interface [ vlan-in-vlan ] ] } [ sub-interface-vlan ] [ format { ascii | hex } ] }
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex。
如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP中继添加或替换Option 82失败。
(5) 配置DHCP中继通过Option82信息转发DHCP应答报文。
dhcp relay forward reply by-option82
缺省情况下,DHCP中继不通过Option82信息转发DHCP应答报文。
在IPoE组网中,用户的物理接入位置发生变化时,例如无线终端用户漫游时,若用户需要下线后重新上线,但DHCP中继又未能及时收到用户的下线请求,将会导致DHCP中继会认为该终端用户还在线。这种情况下,用户再次上线时发送的DHCP请求报文会被DHCP中继认为是攻击报文而丢弃,导致用户无法再次上线。
为了解决这个问题,需要在DHCP中继上开启本功能。当DHCP中继收到物理位置发生变化,MAC地址不变的上线用户发送的DHCP请求报文时,先释放将对应MAC地址的已在线租约,再为该用户分配IP地址。
开启本功能后,可能会导致正常在线的用户掉线。因此,仅在网络中不存在DHCP攻击,又需要解决漫游用户的上线问题时,才建议开启本功能。
只有通过配置dhcp relay client-information record命令开启了DHCP中继用户表项记录功能后,本功能才生效。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP中继收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式。
dhcp session-mismatch action fast-renew
缺省情况下,DHCP中继收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求报文时,直接丢弃该DHCP请求报文。
某些DHCP服务器上的地址池中不存在可分配的DHCP地址时,收到DHCP客户端发送的DHCP-DISCOVER报文后,会应答DHCP-NAK报文。DHCP中继收到DHCP-NAK报文后,会将该报文直接转发给DHCP客户端。如果DHCP中继上创建了DHCP地址池组,且在DHCP地址池组中添加了多个远端DHCP地址池。DHCP中继无论收到多少应答DHCP-DISCOVER报文的DHCP-NAK报文,也不会切换到下一个远端DHCP地址池。这就导致DHCP中继将收到的DHCP请求报文全部转发给不存在可分配的DHCP地址的DHCP服务器,DHCP客户端无法获取到DHCP地址。配置本功能后,当DHCP中继在seconds时间内收到应答DHCP-DISCOVER报文的DHCP-NAK报文超过nak-count时,将切换到下一个远端DHCP地址池对应的服务器转发报文,保证DHCP客户端可以获取到DHCP地址。
(1) 进入系统视图。
system-view
(2) 创建DHCP地址池组。
dhcp pool-group pool-group-name
(3) 配置DHCP中继收到应答DHCP-DISCOVER报文的DHCP-NAK报文达到一定条件后,切换到向下一个远端DHCP地址池对应的服务器转发报文。
discover-nak-count nak-count seconds
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP中继的统计信息。
表3-2 DHCP中继显示和维护
操作 |
命令 |
显示DHCP防Flood攻击表项信息 |
(独立运行模式) display dhcp flood-protection slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] | state { check | restrain } ] (IRF模式) display dhcp flood-protection chassis chassis-number slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] | state { check | restrain } ] |
显示DHCP接口攻击抑制表项信息 |
(独立运行模式) display dhcp interface-rate-suppression slot slot-number [ interface interface-type interface-number | state { check | restrain } ] (IRF模式) display dhcp interface-rate-suppression chassis chassis-number slot slot-number [ interface interface-type interface-number | state { check | restrain } ] |
显示接口上指定的DHCP服务器地址信息 |
display dhcp relay server-address [ interface interface-type interface-number ] |
显示DHCP中继上的Option 82配置信息 |
display dhcp relay information [ interface interface-type interface-number ] |
显示DHCP中继的用户地址表项信息 |
display dhcp relay client-information [ interface interface-type interface-number | ip ip-address [ vpn-instance vpn-instance-name ] ] |
显示DHCP中继的相关报文统计信息 |
display dhcp relay statistics [ interface interface-type interface-number ] |
清除DHCP防Flood攻击表项信息 |
(独立运行模式) reset dhcp flood-protection slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] ] (IRF模式) reset dhcp flood-protection chassis chassis-number slot slot-number [ mac-address mac-address [ interface interface-type interface-number ] ] |
清除DHCP接口攻击抑制表项信息 |
(独立运行模式) reset dhcp interface-rate-suppression slot slot-number [ interface interface-type interface-number ] (IRF模式) reset dhcp interface-rate-suppression chassis chassis-number slot slot-number [ interface interface-type interface-number ] |
清除DHCP中继的相关报文统计信息 |
reset dhcp relay statistics [ interface interface-type interface-number ] |
· DHCP客户端所在网段为10.10.1.0/24,DHCP服务器的IP地址为10.1.1.1/24;
· 由于DHCP客户端和DHCP服务器不在同一网段,因此,需要在客户端所在网段设置DHCP中继设备,以便客户端可以从DHCP服务器申请到10.10.1.0/24网段的IP地址及相关配置信息;
· Router A作为DHCP中继通过GigabitEthernet3/1/1接口连接到DHCP客户端所在的网络,GigabitEthernet3/1/1接口的IP地址为10.10.1.1/24,GigabitEthernet3/1/2接口的IP地址为10.1.1.2/24。
图3-3 DHCP中继组网示意图
# 配置各接口的IP地址(略)。
# 开启DHCP服务。
<RouterA> system-view
[RouterA] dhcp enable
# 配置GigabitEthernet3/1/1接口工作在DHCP中继模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] dhcp select relay
# 指定DHCP服务器的地址。
[RouterA-GigabitEthernet3/1/1] dhcp relay server-address 10.1.1.1
配置完成后,DHCP客户端可以通过DHCP中继从DHCP服务器获取IP地址及相关配置信息。通过display dhcp relay statistics命令可以显示DHCP中继转发的DHCP报文统计信息;如果在DHCP中继上通过dhcp relay client-information record命令开启了DHCP中继的用户地址表项记录功能,则可以通过display dhcp relay client-information命令可以显示通过DHCP中继获取IP地址的客户端信息。
· 由于DHCP中继连接DHCP客户端的接口IP地址与DHCP服务器的IP地址不在同一网段,因此需要在DHCP服务器上通过静态路由或动态路由协议保证两者之间路由可达。
· 为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置。DHCP服务器的配置方法,请参见“2.27 DHCP服务器典型配置举例”。
· 在DHCP中继Router A上开启Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· Circuit ID填充内容为company001,Remote ID填充内容为device001;
· Router A将添加Option 82的DHCP请求报文转发给DHCP服务器Router B,使得DHCP客户端可以获取到IP地址。
如图3-3所示。
# 配置各接口的IP地址(略)。
# 开启DHCP服务。
<RouterA> system-view
[RouterA] dhcp enable
# 配置GigabitEthernet3/1/1接口工作在DHCP中继模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] dhcp select relay
# 指定DHCP服务器的地址。
[RouterA-GigabitEthernet3/1/1] dhcp relay server-address 10.1.1.1
# 配置Option 82的处理策略和填充内容。
[RouterA-GigabitEthernet3/1/1] dhcp relay information enable
[RouterA-GigabitEthernet3/1/1] dhcp relay information strategy replace
[RouterA-GigabitEthernet3/1/1] dhcp relay information circuit-id string company001
[RouterA-GigabitEthernet3/1/1] dhcp relay information remote-id string device001
为使Option 82功能正常使用,DHCP服务器也需要进行相应配置。
· DHCP客户端所在网段为22.22.22.0/24;
· 由于DHCP客户端和DHCP服务器不在同一网段,需要在DHCP客户端所在网段设置DHCP中继,以便DHCP客户端可以从DHCP服务器申请到22.22.22.0/24网段的IP地址及相关配置信息;
· DHCP中继Router A通过接口GigabitEthernet3/1/1连接到DHCP客户端所在的网络,接口GigabitEthernet3/1/1的IP地址为22.22.22.1/24,通过接口GigabitEthernet3/1/2连接Router B,接口GigabitEthernet3/1/2的IP地址为1.1.1.100/24,通过接口GigabitEthernet3/1/3连接Router C,接口GigabitEthernet3/1/3的IP地址为2.2.2.100/24;
· Router B配置了22.22.22.0网段的地址池,但未开启DHCP服务;Router C配置了22.22.22.0网段的地址池,也未开启DHCP服务。
图3-4 DHCP中继组网示意图
(1) 配置各设备上各接口的IP地址(略)。
(2) 配置DHCP服务器Router B和Router C(略)。
(3) 配置DHCP中继Router A。
# 开启DHCP服务。
<RouterA> system-view
[RouterA] dhcp enable
# 配置GigabitEthernet3/1/1接口工作在DHCP中继模式。
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] dhcp select relay
# 指定DHCP服务器的IP地址。
[RouterA-GigabitEthernet3/1/1] dhcp relay server-address 1.1.1.1
[RouterA-GigabitEthernet3/1/1] dhcp relay server-address 2.2.2.2
# 指定DHCP中继选择DHCP服务器方式为主备方式。
[RouterA-GigabitEthernet3/1/1] dhcp relay server-address algorithm master-backup
# 配置回切主用DHCP服务器并指定回切延迟时间为3分钟。
[RouterA-GigabitEthernet3/1/1] dhcp relay master-server switch-delay 3
[RouterA-GigabitEthernet3/1/1] quit
# 配置完成后,DHCP客户端一开始不能申请到IP地址,等待大约30秒后打印日志信息。
DHCPR/3/DHCPR_SERVERCHANGE: -MDC=1;
Switched to the server at 2.2.2.2 because the current server did not respond.
# 用户开启Router B的DHCP服务。
# 此时DHCP客户端仍然无法申请到IP地址,再等待大约3分钟后打印日志信息。
DHCPR/3/DHCPR_SWITCHMASTER: -MDC=1;
Switched to the master DHCP server at 1.1.1.1.
# 此时DHCP客户端可以成功申请到IP地址。
DHCP客户端无法通过DHCP中继获得配置信息。
DHCP中继或DHCP服务器的配置可能有问题。可以打开调试开关显示调试信息,并通过执行display命令显示接口状态信息的方法来分析定位。
· 检查DHCP服务器和DHCP中继是否开启了DHCP服务。
· 检查DHCP服务器是否配置有DHCP客户端所在网段的地址池。
· 检查具有DHCP中继功能的网络设备和DHCP服务器是否配置有相互可达的路由。
· 检查具有DHCP中继功能的网络设备是否在连接DHCP客户端所在网段的接口上指定了正确的DHCP服务器地址。
为了方便用户配置和集中管理,可以指定设备的接口作为DHCP客户端,使用DHCP协议从DHCP服务器动态获得IP地址等参数。
DHCP客户端中对于接口的相关配置,目前只能在三层以太网接口(包括子接口)、VLAN接口和三层聚合接口上进行。
DHCP客户端配置任务如下:
(2) 配置接口使用的DHCP客户端ID
DHCP客户端使用客户端ID从DHCP服务器获取特定地址时配置。
(3) (可选)开启地址冲突检查功能
(4) (可选)配置DHCP客户端发送DHCP报文的DSCP优先级
配置接口通过DHCP协议获取IP地址,需要注意:
· 接口可以采用多种方式获得IP地址,新的配置方式会覆盖原有的配置方式。
· 当接口被配置为通过DHCP动态获取IP地址后,不能再给该接口配置从IP地址。
· 如果DHCP服务器为接口分配的IP地址与设备上其他接口的IP地址在同一网段,则该接口不会使用该IP地址,且会再向DHCP服务器重新申请IP地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口通过DHCP协议获取IP地址。
ip address dhcp-alloc
缺省情况下,接口不通过DHCP协议获取IP地址。
DHCP客户端ID用来填充DHCP报文Option 61,作为识别DHCP客户端的唯一标识。DHCP服务器可以根据客户端ID为特定的客户端分配特定的IP地址。DHCP客户端ID包括类型和取值两部分,用户可以通过ASCII字符串、十六进制数和指定接口的MAC地址来指定DHCP客户端ID:
· 当客户端ID的取值为ASCII字符串时,对应的类型值为00;
· 当客户端ID的取值为十六进制数时,对应的类型值为该十六进制数的前两个字符;
· 当客户端ID使用指定接口的MAC地址时,对应的类型值为01。
DHCP客户端ID类型值可通过命令display dhcp server ip-in-use或display dhcp client进行查看。
用户在指定客户端ID时,需要确保不同客户端的客户端ID不能相同。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口使用的DHCP客户端ID。
dhcp client identifier { ascii ascii-string | hex hex-string | mac interface-type interface-number }
缺省情况下,根据本接口MAC地址生成DHCP客户端ID,如果本接口没有MAC地址,则获取设备第一个以太接口的MAC地址生成DHCP客户端ID。
通常情况下,DHCP客户端上开启地址冲突检查功能,通过发送和接收ARP报文,对DHCP服务器分配的IP地址进行地址冲突检测。
如果攻击者仿冒地址拥有者进行ARP应答,就可以欺骗DHCP客户端,导致DHCP客户端无法正常使用分配到的IP地址。在网络中存在上述攻击者时,建议在客户端上关闭地址冲突检查功能。
(1) 进入系统视图。
system-view
(2) 开启地址冲突检查功能。
dhcp client dad enable
缺省情况下,地址冲突检查功能处于开启状态。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP客户端发送的DHCP报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCP客户端发送DHCP报文的DSCP优先级。
dhcp client dscp dscp-value
缺省情况下,DHCP客户端发送的DHCP报文的DSCP优先级为56。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP客户端的信息,通过查看显示信息验证配置的效果。
表4-1 DHCP客户端显示和维护
操作 |
命令 |
显示DHCP客户端的相关信息 |
display dhcp client [ verbose ] [ interface interface-type interface-number ] |
Router B的以太网接口GigabitEthernet3/1/1接入局域网,通过DHCP协议从DHCP服务器获取IP地址、DNS服务器地址和静态路由信息:
· DHCP客户端的IP地址所在网段为10.1.1.0/24;
· DNS服务器地址为20.1.1.1;
· 静态路由信息为到达20.1.1.0/24网段的下一跳地址是10.1.1.2。
DHCP服务器需要通过自定义选项的方式配置Option 121的内容,以便为客户端分配静态路由信息。Option 121的格式如图4-1所示。其中,目的描述符由子网掩码长度和目的网络地址两部分组成。在本例中,目的描述符字段取值为18 14 01 01(十六进制数值,表示子网掩码长度为24,目的网络地址为20.1.1.0);下一跳地址字段取值为0A 01 01 02(十六进制数值,表示下一跳地址为10.1.1.2)。
图4-1 Option 121选项格式
图4-2 DHCP客户端配置举例组网图
(1) 配置DHCP服务器Router A
# 配置接口的IP地址。
<RouterA> system-view
[RouterA] interface gigabitethernet 3/1/1
[RouterA-GigabitEthernet3/1/1] ip address 10.1.1.1 24
[RouterA-GigabitEthernet3/1/1] quit
# 配置不参与自动分配的IP地址。
[RouterA] dhcp server forbidden-ip 10.1.1.2
# 配置DHCP地址池0,采用动态绑定方式分配IP地址。可分配的网段为10.1.1.0/24,租约有效期限为10天,DNS服务器地址为20.1.1.1,到达20.1.1.0/24网段的下一跳地址是10.1.1.2。
[RouterA] dhcp server ip-pool 0
[RouterA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[RouterA-dhcp-pool-0] expired day 10
[RouterA-dhcp-pool-0] dns-list 20.1.1.1
[RouterA-dhcp-pool-0] option 121 hex 181401010A010102
[RouterA-dhcp-pool-0] quit
# 开启DHCP服务。
[RouterA] dhcp enable
(2) 配置DHCP客户端Router B
# 配置接口GigabitEthernet3/1/1通过DHCP动态获取地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 3/1/1
[RouterB-GigabitEthernet3/1/1] ip address dhcp-alloc
[RouterB-GigabitEthernet3/1/1] quit
# 通过display dhcp client命令可以查看Router B申请到的IP地址和网络配置参数。
[RouterB] display dhcp client verbose
GigabitEthernet3/1/1 DHCP client information:
Current state: BOUND
Allocated IP: 10.1.1.3 255.255.255.0
Allocated lease: 864000 seconds, T1: 331858 seconds, T2: 756000 seconds
Lease from May 21 19:00:29 2012 to May 31 19:00:29 2012
DHCP server: 10.1.1.1
Transaction ID: 0xcde72232
Classless static routes:
Destination: 20.1.1.0, Mask: 255.255.255.0, NextHop: 10.1.1.2
DNS servers: 20.1.1.1
Client ID type: acsii(type value=00)
Client ID value: 000c.29d3.8659-GE3/1/1
Client ID (with type) hex: 0030-3030-632e-3239-
6433-2e38-3635-392d-
4574-6830-2f30-2f32
T1 will timeout in 3 days 19 hours 48 minutes 43 seconds
# 通过display ip routing-table命令可以查看Router B的路由表中添加了到达20.1.1.0/24网络的静态路由。
[RouterB] display ip routing-table
Destinations : 9 Routes : 9
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.3 GE3/1/1
10.1.1.3/32 Direct 0 0 127.0.0.1 InLoop0
20.1.1.0/24 Static 70 0 10.1.1.2 GE3/1/1
10.1.1.255/32 Direct 0 0 10.1.1.3 GE3/1/1
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
DHCP Snooping是DHCP的一种安全特性。
DHCP Snooping设备只有位于DHCP客户端与DHCP服务器之间,或DHCP客户端与DHCP中继之间时,DHCP Snooping功能配置后才能正常工作;设备位于DHCP服务器与DHCP中继之间时,DHCP Snooping功能配置后不能正常工作。
网络中如果存在私自架设的非法DHCP服务器,则可能导致DHCP客户端获取到错误的IP地址和网络配置参数,从而无法正常通信。为了使DHCP客户端能通过合法的DHCP服务器获取IP地址,DHCP Snooping安全机制允许将端口设置为信任端口和不信任端口:
· 信任端口正常转发接收到的DHCP报文。
· 不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文后,丢弃该报文。
在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的伪DHCP服务器无法为DHCP客户端分配IP地址。
DHCP Snooping通过监听DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文,记录DHCP Snooping表项,其中包括客户端的MAC地址、DHCP服务器为DHCP客户端分配的IP地址、与DHCP客户端连接的端口及VLAN等信息。利用这些信息可以实现:
· ARP快速应答:根据DHCP Snooping表项来判断是否进行ARP快速应答,从而减少ARP广播报文。
· ARP Detection:根据DHCP Snooping表项来判断发送ARP报文的用户是否合法,从而防止非法用户的ARP攻击。ARP Detection的详细介绍请参见“安全配置指导”中的“ARP攻击防御”。
· IP Source Guard:通过动态获取DHCP Snooping表项对端口转发的报文进行过滤,防止非法报文通过该端口。IP Source Guard的详细介绍请参见“安全配置指导”中的“IP Source Guard”。
· VLAN映射:发送给用户的报文通过查找指定VLAN对应的DHCP Snooping表项中的DHCP客户端IP地址、MAC地址和原始VLAN的信息,将报文的指定VLAN修改为原始VLAN。VLAN映射的详细介绍请参见“二层技术-以太网交换配置指导”中的“VLAN映射”。
如图5-1所示,在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,以便DHCP Snooping设备正常转发DHCP服务器的应答报文,保证DHCP客户端能够从合法的DHCP服务器获取IP地址。
在多个DHCP Snooping设备级联的网络中,为了节省系统资源,不需要每台DHCP Snooping设备都记录所有DHCP客户端的IP地址和MAC地址的绑定信息,只需在与客户端直接相连不信任端口上记录绑定信息。间接与DHCP客户端相连的不信任端口不需要记录IP地址和MAC地址绑定信息。
图5-2 DHCP Snooping级联组网图
设备 |
记录绑定信息的不信任端口 |
不记录绑定信息的不信任端口 |
信任端口 |
Device A |
Port A1 |
Port A3 |
Port A2 |
Device B |
Port B3和Port B4 |
Port B1 |
Port B2 |
Device C |
Port C1 |
Port C3和Port C4 |
Port C2 |
Option 82记录了DHCP客户端的位置信息。管理员可以利用该选项定位DHCP客户端,实现对客户端的安全和计费等控制。Option 82的详细介绍请参见“1.6.2 中继代理信息选项(Option 82)”。
如果DHCP Snooping支持Option 82功能,则当设备接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充模式等对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。具体的处理方式见表5-2。DHCP Snooping对Option 82的处理策略、填充模式与DHCP中继相同。
当设备接收到DHCP服务器的响应报文时,如果报文中含有Option 82,则删除Option 82,并转发给DHCP客户端;如果报文中不含有Option 82,则直接转发。
表5-2 DHCP Snooping支持Option 82的处理方式
收到DHCP请求报文 |
处理策略 |
DHCP Snooping对报文的处理 |
收到的报文中带有Option 82 |
Drop |
丢弃报文 |
Keep |
保持报文中的Option 82不变并进行转发 |
|
Replace |
根据DHCP Snooping上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发 |
|
收到的报文中不带有Option 82 |
- |
根据DHCP Snooping上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发 |
配置DHCP Snooping基本功能时,需要注意:
· 如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping相关配置不会生效;该接口退出聚合组后,之前的配置才会生效。
· 为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
· 目前,可以设置为DHCP Snooping信任端口的接口类型包括:二层以太网接口、二层聚合接口、三层以太网接口、三层聚合接口。关于聚合接口的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
DHCP Snooping配置任务如下:
(2) (可选)配置DHCP Snooping支持Option 82功能
(3) (可选)配置DHCP Snooping表项固化功能
(4) (可选)配置接口动态学习DHCP Snooping表项的最大数目
(5) (可选)配置DHCP Snooping安全功能
(6) (可选)开启DHCP Snooping日志信息功能
(1) 进入系统视图。
system-view
(2) 开启DHCP Snooping功能。
dhcp snooping enable
缺省情况下,DHCP Snooping功能处于关闭状态。
(3) 进入接口视图。
interface interface-type interface-number
此接口为连接DHCP服务器的接口。
(4) 配置端口为信任端口。
dhcp snooping trust
缺省情况下,在开启DHCP Snooping功能后,设备的所有端口均为不信任端口。
(5) (可选)开启端口的DHCP Snooping表项记录功能。
a. 退回系统视图
quit
b. 进入接口视图。
interface interface-type interface-number
此接口为连接DHCP客户端的接口。
c. 开启DHCP Snooping表项记录功能。
dhcp snooping binding record
缺省情况下,DHCP Snooping表项记录功能处于关闭状态。
配置DHCP Snooping支持Option 82功能时,需要注意:
· 如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping支持Option 82功能的配置不会生效;该接口退出聚合组后,之前的配置才会生效。
· 为使Option 82功能正常使用,需要在DHCP服务器和DHCP Snooping设备上都进行相应配置。 DHCP服务器的相关配置请参见“2.12 配置Option 82的处理方式”。
· 如果以设备名称(sysname)作为节点标识填充DHCP报文的Option 82,则设备名称中不能包含空格;否则,DHCP Snooping将不处理该报文。用户可以通过sysname命令配置设备名称,该命令的详细介绍请参见“基本配置命令参考”中的“设备管理”。
· DHCP Snooping功能和QinQ功能同时使用,或DHCP Snooping设备接收到的DHCP报文带有两层VLAN Tag时,如果采用verbose模式填充Option 82,则sub-option 1中VLAN ID字段的格式为“第一层VLAN Tag.第二层VLAN Tag”。例如,第一层VLAN Tag为10(十六进制值为a),第二层VLAN Tag为20(十六进制值为14),则VLAN ID字段的内容为“000a.0014”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP Snooping支持Option 82功能。
dhcp snooping information enable
缺省情况下,DHCP Snooping支持Option 82功能处于关闭状态。
(4) (可选)配置DHCP Snooping对包含Option 82的请求报文的处理策略。
dhcp snooping information strategy { drop | keep | replace }
缺省情况下,对带有Option 82的请求报文的处理策略为replace。
DHCP Snooping对包含Option 82请求报文的处理策略为replace时,需要配置Option 82的填充模式和填充格式;处理策略为keep或drop时,不需要配置Option 82的填充模式和填充格式。
(5) (可选)配置Circuit ID子选项的填充模式和填充格式。
dhcp snooping information circuit-id { [ vlan vlan-id ] string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] } [ format { ascii | hex } ] }
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex。
如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP Snooping添加或替换Option 82失败。
(6) (可选)配置Remote ID子选项的填充模式和填充格式。
dhcp snooping information remote-id { normal [ format { ascii | hex } ] | [ vlan vlan-id ] string remote-id | sysname }
缺省情况下,Remote ID子选项的填充模式为Normal,填充格式为hex。
DHCP Snooping设备重启后,设备上记录的DHCP Snooping表项将丢失。如果DHCP Snooping与安全模块(如IP Source Guard)配合使用,则表项丢失会导致安全模块无法通过DHCP Snooping获取到相应的表项,进而导致DHCP客户端不能顺利通过安全检查、正常访问网络。
DHCP Snooping表项固化功能将DHCP Snooping表项保存到指定的文件中,DHCP Snooping设备重启后,自动根据该文件恢复DHCP Snooping表项,从而保证DHCP Snooping表项不会丢失。
· 执行dhcp snooping binding database filename命令后,会立即触发一次表项备份。之后,如果未配置dhcp snooping binding database update interval命令,若表项发生变化,默认在300秒之后刷新存储文件;若表项未发生变化,则不再刷新存储文件。如果配置了dhcp snooping binding database update interval命令,若表项发生变化,则到达刷新时间间隔后刷新存储文件;若表项未发生变化,则不再刷新存储文件。
· 执行undo dhcp snooping enable命令关闭DHCP Snooping功能后,设备会删除所有DHCP Snooping表项,文件中存储的DHCP Snooping表项也将被删除。
(1) 进入系统视图。
system-view
(2) 指定存储DHCP Snooping表项的文件名称。
dhcp snooping binding database filename { filename | url url [ username username [ password { cipher | simple } string ] ] }
缺省情况下,未指定存储文件名称。
执行本命令后,会立即触发一次表项备份。
(3) (可选)将当前的DHCP Snooping表项保存到用户指定的文件中。
dhcp snooping binding database update now
本命令只用来触发一次DHCP Snooping表项的备份。
(4) (可选)配置刷新DHCP Snooping表项存储文件的延迟时间。
dhcp snooping binding database update interval interval
缺省情况下,若DHCP Snooping表项不变化,则不刷新存储文件;若DHCP Snooping表项发生变化,默认在300秒之后刷新存储文件。
通过本配置可以限制接口动态学习DHCP Snooping表项的最大数目,以防止接口学习到大量DHCP Snooping表项,占用过多的系统资源。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口动态学习DHCP Snooping表项的最大数目。
dhcp snooping max-learning-num max-number
缺省情况下,不限制接口动态学习DHCP Snooping表项的数目。
DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致DHCP服务器消耗过多的系统资源,无法处理正常业务。DHCP报文字段的相关内容请参见“1.3 DHCP报文格式”。
如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则通过mac-address max-mac-count命令限制端口可以学习到的MAC地址数,并配置学习到的MAC地址数达到最大值时,丢弃源MAC地址不在MAC地址表里的报文,能够避免攻击者申请过多的IP地址,在一定程度上缓解DHCP饿死攻击。此时,不存在DHCP饿死攻击的端口下的DHCP客户端可以正常获取IP地址,但存在DHCP饿死攻击的端口下的DHCP客户端仍可能无法获取IP地址。
如果封装DHCP请求报文的数据帧的MAC地址都相同,则通过mac-address max-mac-count命令无法防止DHCP饿死攻击。在这种情况下,需要开启DHCP Snooping的MAC地址检查功能。开启该功能后,DHCP Snooping设备检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,将其转发给DHCP服务器;如果不一致,则丢弃该报文。mac-address max-mac-count命令的详细介绍,请参见“二层技术-以太网交换”中的“MAC地址表”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP Snooping的MAC地址检查功能。
dhcp snooping check mac-address
缺省情况下,DHCP Snooping的MAC地址检查功能处于关闭状态。
本功能用来检查DHCP续约报文、DHCP-DECLINE和DHCP-RELEASE三种DHCP请求方向的报文,以防止非法客户端伪造这三种报文对DHCP服务器进行攻击。
伪造DHCP续约报文攻击是指攻击者冒充合法的DHCP客户端,向DHCP服务器发送伪造的DHCP续约报文,导致DHCP服务器和DHCP客户端无法按照自己的意愿及时释放IP地址租约。如果攻击者冒充不同的DHCP客户端发送大量伪造的DHCP续约报文,则会导致大量IP地址被长时间占用,DHCP服务器没有足够的地址分配给新的DHCP客户端。
伪造DHCP-DECLINE/DHCP-RELEASE报文攻击是指攻击者冒充合法的DHCP客户端,向DHCP服务器发送伪造的DHCP-DECLINE/DHCP-RELEASE报文,导致DHCP服务器错误终止IP地址租约。
在DHCP Snooping设备上开启DHCP请求方向报文检查功能,可以有效地防止伪造DHCP请求方向报文攻击。如果开启了该功能,则DHCP Snooping设备接收到上述报文后,检查本地是否存在与请求方向报文匹配的DHCP Snooping表项。若存在,则接收报文信息与DHCP Snooping表项信息一致时,认为该报文为合法的DHCP请求方向报文,将其转发给DHCP服务器;不一致时,认为该报文为伪造的DHCP请求方向报文,将其丢弃。若不存在,则认为该报文合法,将其转发给DHCP服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP Snooping的DHCP请求方向报文检查功能。
dhcp snooping check request-message
缺省情况下,DHCP Snooping的DHCP请求方向报文检查功能处于关闭状态。
在某些组网环境下,用户需要在DHCP Snooping设备的某一端口上丢弃该端口收到的所有DHCP请求方向报文,而又不影响其他端口正常接收DHCP报文。这时,用户可以在该端口上开启DHCP Snooping报文阻断功能。
当端口上开启了DHCP Snooping报文阻断功能后,该端口收到的所有DHCP请求方向的报文都将被丢弃。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP Snooping报文阻断功能。
dhcp snooping deny
缺省情况下,DHCP Snooping报文阻断功能处于关闭状态。
DHCP Snooping日志是为了满足管理员的审计需求。DHCP Snooping设备生成DHCP Snooping日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
当DHCP Snooping设备输出大量日志信息时,可能会降低设备性能。为了避免该情况的发生,用户可以关闭DHCP Snooping日志信息功能,使得DHCP Snooping设备不再输出日志信息。
(1) 进入系统视图。
system-view
(2) 开启DHCP Snooping日志信息功能。
dhcp snooping log enable
缺省情况下,DHCP Snooping日志信息功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示DHCP Snooping的配置情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCP Snooping的统计信息。
表5-3 DHCP Snooping显示和维护
操作 |
命令 |
显示DHCP Snooping表项信息 |
display dhcp snooping binding [ ip ip-address [ vlan vlan-id ] ] [ verbose ] |
显示DHCP Snooping上Option 82的配置信息 |
display dhcp snooping information { all | interface interface-type interface-number } |
显示DHCP Snooping设备上的DHCP报文统计信息(独立运行模式) |
display dhcp snooping packet statistics [ slot slot-number ] |
显示DHCP Snooping设备上的DHCP报文统计信息(IRF模式) |
display dhcp snooping packet statistics [ chassis chassis-number slot slot-number ] |
显示信任端口信息 |
display dhcp snooping trust |
显示DHCP Snooping表项备份信息 |
display dhcp snooping binding database |
清除DHCP Snooping表项 |
reset dhcp snooping binding { all | ip ip-address [ vlan vlan-id ] } |
清除DHCP Snooping设备上的DHCP报文统计信息(独立运行模式) |
reset dhcp snooping packet statistics [ slot slot-number ] |
清除DHCP Snooping设备上的DHCP报文统计信息(IRF模式) |
reset dhcp snooping packet statistics [ chassis chassis-number slot slot-number ] |
Device B通过以太网端口GigabitEthernet3/1/1连接到合法DHCP服务器,通过以太网端口GigabitEthernet3/1/3连接到非法DHCP服务器,通过GigabitEthernet3/1/2连接到DHCP客户端。要求:
· 与合法DHCP服务器相连的端口可以转发DHCP服务器的响应报文,而其他端口不转发DHCP服务器的响应报文。
· 记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定信息。
图5-3 DHCP Snooping组网示意图
# 开启DHCP Snooping功能。
<DeviceB> system-view
[DeviceB] dhcp snooping enable
# 设置GigabitEthernet3/1/1端口为信任端口。
[DeviceB] interface gigabitethernet 3/1/1
[DeviceB-GigabitEthernet3/1/1] dhcp snooping trust
[DeviceB-GigabitEthernet3/1/1] quit
# 在GigabitEthernet3/1/2上开启DHCP Snooping表项功能。
[DeviceB] interface gigabitethernet 3/1/2
[DeviceB-GigabitEthernet3/1/2] dhcp snooping binding record
[DeviceB-GigabitEthernet3/1/2] quit
配置完成后,DHCP客户端只能从合法DHCP服务器获取IP地址和其它配置信息,非法DHCP服务器无法为DHCP客户端分配IP地址和其他配置信息。且使用display dhcp snooping binding可查询到获取到的DHCP Snooping表项。
· Device B上开启DHCP Snooping功能,并支持Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· 在GigabitEthernet3/1/2上配置Circuit ID填充内容为company001,Remote ID填充内容为device001;
· 在GigabitEthernet3/1/3上配置Circuit ID以verbose模式填充,接入节点标识为sysname,填充格式为ASCII格式,Remote ID填充内容为device001;
图5-4 DHCP Snooping支持Option 82配置示意图
# 开启DHCP Snooping功能。
<DeviceB> system-view
[DeviceB] dhcp snooping enable
# 设置GigabitEthernet3/1/1端口为信任端口。
[DeviceB] interface gigabitethernet 3/1/1
[DeviceB-GigabitEthernet3/1/1] dhcp snooping trust
[DeviceB-GigabitEthernet3/1/1] quit
# 在GigabitEthernet3/1/2上配置DHCP Snooping支持Option 82功能。
[DeviceB] interface gigabitethernet 3/1/2
[DeviceB-GigabitEthernet3/1/2] dhcp snooping information enable
[DeviceB-GigabitEthernet3/1/2] dhcp snooping information strategy replace
[DeviceB-GigabitEthernet3/1/2] dhcp snooping information circuit-id string company001
[DeviceB-GigabitEthernet3/1/2] dhcp snooping information remote-id string device001
[DeviceB-GigabitEthernet3/1/2] quit
# 在端口GigabitEthernet3/1/3上配置DHCP Snooping支持Option 82功能。
[DeviceB] interface gigabitethernet 3/1/3
[DeviceB-GigabitEthernet3/1/3] dhcp snooping information enable
[DeviceB-GigabitEthernet3/1/3] dhcp snooping information strategy replace
[DeviceB-GigabitEthernet3/1/3] dhcp snooping information circuit-id verbose node-identifier sysname format ascii
[DeviceB-GigabitEthernet3/1/3] dhcp snooping information remote-id string device001
配置完成后,使用display dhcp snooping information命令可查看到DHCP Snooping在端口GigabitEthernet3/1/2和GigabitEthernet3/1/3上Option 82的配置信息。
BOOTP是Bootstrap Protocol(自举协议)的简称。指定设备的接口作为BOOTP客户端后,该接口可以通过BOOTP协议从BOOTP服务器获取IP地址等信息,从而方便用户配置。
使用BOOTP协议时,管理员需要在BOOTP服务器上为每个BOOTP客户端配置BOOTP参数文件,该文件包括BOOTP客户端的MAC地址及其对应的IP地址等信息。当BOOTP客户端向BOOTP服务器发起请求时,服务器会查找BOOTP参数文件,并返回相应的配置信息。
由于BOOTP协议需要在BOOTP服务器上为每个客户端事先配置参数文件,BOOTP一般运行在相对稳定的环境中。当网络变化频繁时,推荐采用DHCP协议。
由于DHCP服务器可以与BOOTP客户端进行交互,因此用户可以不配置BOOTP服务器,而使用DHCP服务器为BOOTP客户端分配IP地址。
BOOTP客户端从BOOTP服务器动态获取IP地址的具体过程如下:
(1) BOOTP客户端以广播方式发送BOOTP请求报文,其中包含了BOOTP客户端的MAC地址;
(2) BOOTP服务器接收到请求报文后,根据报文中的BOOTP客户端MAC地址,从配置文件数据库中查找对应的IP地址等信息,并向客户端返回包含这些信息的BOOTP响应报文;
(3) BOOTP客户端从接收到的响应报文中即可获得IP地址等信息。
在下面的IP地址动态获取过程中,BOOTP服务器的功能可以用DHCP服务器替代。
与BOOTP相关的协议规范有:
· RFC 951:Bootstrap Protocol (BOOTP)
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
BOOTP客户端中对于接口的相关配置,目前只能在三层以太网接口(包括子接口)、三层聚合接口和VLAN接口上进行。
(3) 配置接口通过BOOTP协议获取IP地址。
ip address bootp-alloc
缺省情况下,接口不通过BOOTP协议获取IP地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后BOOTP客户端的运行情况,通过查看显示信息验证配置的效果。
表6-1 BOOTP客户端显示和维护
操作 |
命令 |
显示BOOTP客户端的相关信息 |
display bootp client [ interface interface-type interface-number ] |
Router B的以太网接口GigabitEthernet3/1/1接入局域网,通过BOOTP协议从DHCP服务器获取IP地址。
如图2-6所示。
下面只列出图2-6中,作为客户端的Router B的配置。
# 配置接口GigabitEthernet3/1/1通过BOOTP动态获取地址。
<RouterB> system-view
[RouterB] interface gigabitethernet 3/1/1
[RouterB-GigabitEthernet3/1/1] ip address bootp-alloc
通过display bootp client命令可以查看BOOTP客户端申请到的IP地址。
为了使BOOTP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置,具体内容请参见“2.27 DHCP服务器典型配置举例”。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!