03-DHCP配置
本章节下载: 03-DHCP配置 (863.73 KB)
目 录
2.3.7 配置DHCP客户端使用的WINS服务器地址和NetBIOS节点类型
2.3.9 配置DHCP客户端使用的TFTP服务器地址及启动文件名
2.3.10 配置DHCP客户端使用的下一个提供服务的服务器IP地址
2.3.11 配置DHCP客户端使用的Option 184参数
2.11.3 配置DHCP服务器以RFC 1048规定的格式发送BOOTP应答报文
2.12 配置DHCP服务器发送DHCP报文的DSCP优先级
2.19 配置DHCP客户类从指定DHCP地址池获取IP地址及其他参数
3.3.8 配置DHCP中继发送DHCP报文的DSCP优先级
3.3.12 配置DHCP中继支持smart-relay功能
4.1.3 DHCP Snooping支持Option 82功能
4.4 配置DHCP Snooping支持Option 82功能
4.8 配置接口动态学习DHCP Snooping表项的最大数目
4.10.2 DHCP Snooping支持Option 82配置举例
设备支持两种运行模式:独立运行模式和IRF模式,缺省情况为独立运行模式。有关IRF模式的介绍,请参见“虚拟化技术配置指导”中的“IRF”。
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配IP地址等网络配置参数。
DHCP采用客户端/服务器通信模式,由客户端向服务器提出请求分配网络配置参数的申请,服务器返回为客户端分配的IP地址等配置信息,以实现IP地址等信息的动态配置。
在DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机),如图1-1所示。
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字段传递控制信息和网络配置参数,实现地址动态分配的同时,为客户端提供更加丰富的网络配置信息。
图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地址、用户名和密码。
· 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:子选项的取值。不同类型的子选项,取值格式有所不同,详细介绍请参见下文。
(2) Option 43子选项取值字段的格式
· ACS参数子选项的取值字段格式如图1-6所示。ACS的URL地址、用户名和密码长度可变,每个参数之间用空格(十六进制数为0x20)隔开。
图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地址。例如,Internet接入服务提供商限制同时接入网络的用户数目,用户必须动态获得自己的IP地址。
· 网络中只有少数主机需要固定的IP地址,大多数主机没有固定的IP地址需求。
设备作为MCE(Multi-VPN-instance Customer Edge,多VPN实例用户网络边界设备)时,在设备上配置DHCP服务器功能,不仅可以为公网上的DHCP客户端分配IP地址,还可以实现为私网内的DHCP客户端分配IP地址,但是公网和私网之间、不同私网之间的IP地址空间不能重叠。有关MCE的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。
每个DHCP地址池都拥有一组可供分配的地址和网络配置参数。DHCP服务器从地址池中为客户端选择并分配IP地址及其他参数。
地址池的地址管理方式有以下几种:静态绑定IP地址,即通过将客户端的MAC地址或客户端ID与IP地址绑定的方式,实现为特定的客户端分配特定的IP地址;动态选择IP地址,即在地址池中指定可供分配的IP地址范围,当收到客户端的IP地址申请时,从该地址范围中动态选择IP地址,分配给该客户端。
在地址池中指定可供分配的IP地址范围,有以下几种方法:
(1) 为地址池指定一个主网段,并将该网段划分为多个地址范围。
多个地址范围是指一个地址池动态分配的IP地址范围(公共地址范围)和多个为DHCP用户类分配的IP地址范围。
DHCP服务器通过定义DHCP用户类,实现为满足特定条件的客户端分配特定地址范围的IP地址。DHCP服务器根据客户端发送的请求报文,判断DHCP客户端所属的用户类。每个用户类可以配置多个匹配条件,只要客户端发送的DHCP请求报文满足任意一个匹配条件,就认为该客户端属于该用户类。在地址池下,可以为不同的用户类指定不同的地址范围。如果DHCP客户端属于某个用户类,则从该用户类的地址范围内选择地址分配给该客户端。
· 按照地址池下用户类地址范围的配置顺序,将DHCP客户端和用户类进行匹配。
· 如果DHCP客户端属于某个用户类,则从该用户类的地址范围中选择地址分配给客户端。
· 如果该用户类中没有可供分配的地址,则继续匹配下一个用户类。如果所有匹配上的用户类地址范围都没有可供分配的地址,则从公共地址范围中选择地址分配给客户端。
· 如果DHCP客户端不属于任何一个DHCP用户类,则会从地址池动态分配的IP地址范围(通过address range命令配置)中选择地址分配给DHCP客户端。
· 如果动态分配的IP地址范围内也没有空闲地址,或者没有配置动态分配的IP地址范围,则地址分配失败,即DHCP服务器无法为DHCP客户端分配地址。
采用此种地址分配方式时,地址选择的过程是:首先从地址池主网段中查找可供分配的IP地址。如果主网段中没有可供分配的IP地址,则按照该地址池下从网段的配置顺序,依次查找可供分配的IP地址。
DHCP服务器为客户端分配IP地址时,地址池的选择原则如下:
(1) 如果存在将客户端MAC地址或客户端ID与IP地址静态绑定的地址池,则选择该地址池,并将静态绑定的IP地址和其他网络参数分配给客户端。
(2) 如果接收到DHCP请求报文的接口引用了某个地址池,则选择该地址池,从该地址池中选取IP地址和其他网络参数分配给客户端。
(3) 如果不存在静态绑定的地址池,且接收到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.2 DHCP地址池”中所述的动态分配地址选择原则,顺序查找可供分配的IP地址,选择最先找到的IP地址。
(5) 如果未找到可用的IP地址,则从当前匹配地址池中依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。
· 如果客户端所在的网段发生变化,服务器不会为客户端分配曾经分配给它的IP地址,而是从匹配新网段的地址池中重新选择IP地址。
· 使用曾经发生过冲突的IP地址时,只有冲突状态超过一小时的地址租约才能够被服务器分配给新的DHCP客户端。
表2-1 DHCP服务器配置任务简介
配置DHCP服务器的地址池 |
||
启用DHCP服务 |
||
配置接口工作在DHCP服务器模式 |
||
配置IP地址冲突检测功能 |
||
配置Option 82的处理方式 |
||
配置DHCP服务器协议兼容性 |
||
配置DHCP服务器发送DHCP报文的DSCP优先级 |
||
配置DHCP服务器的DHCP报文限速功能 |
||
配置DHCP服务器租约固化功能 |
可选 |
|
配置DHCP服务器辅助网关信息 |
可选 |
|
配置DHCP服务器辅助路由信息 |
可选 |
|
配置DHCP服务器上的地址池所在的VPN信息 |
可选 |
|
配置DHCP服务器的日志信息功能 |
可选 |
|
配置DHCP客户类从指定DHCP地址池获取IP地址及其他参数 |
可选 |
表2-2 DHCP服务器地址池配置任务简介
创建DHCP地址池 |
||
配置DHCP客户端使用的网关地址 |
||
配置DHCP客户端使用的域名后缀 |
||
配置DHCP客户端使用的DNS服务器地址 |
||
配置DHCP客户端使用的WINS服务器地址和NetBIOS节点类型 |
||
配置DHCP客户端使用的BIMS服务器信息 |
||
配置DHCP客户端使用的TFTP服务器地址及启动文件名 |
||
配置DHCP客户端使用的下一个提供服务的服务器IP地址 |
||
配置DHCP客户端使用的Option 184参数 |
||
自定义DHCP选项 |
表2-3 创建DHCP地址池
创建DHCP地址池,并进入DHCP地址池视图 |
对一个DHCP地址池可以同时配置静态地址管理方式和动态地址管理方式。动态地址管理方式分为一个主网段多个地址范围和一个主网段多个从网段两种,用户可以根据实际需要,选择不同的动态地址管理方式。同一个地址池中不能同时配置两种动态地址管理方式。
在某些组网应用中,需要将一个网段下的不同客户端,按照一定的规则划分到不同的地址范围中。此时,可以按照客户端划分规则创建对应的DHCP用户类,并在地址池内为不同的用户类配置不同的地址范围,从而实现为特定的客户端分配特定范围的地址。在这种情况下,还可以配置一个公共地址范围,为不匹配任何用户类的客户端分配给该范围的地址。如果不配置公共地址范围,则不匹配任何用户类的客户端将无法获取到IP地址。
如果不需要对客户端进行分类,而仅需要限制网段内可分配的动态地址范围,则可以只配置公共地址范围,而不配置用户类的地址范围。
表2-4 配置一个主网段多个地址段的动态地址管理方式
创建DHCP用户类,并进入DHCP用户类视图 |
dhcp class class-name |
在地址池下,需要为DHCP用户类指定地址范围时,为必选 |
配置DHCP用户类的匹配规则 |
if-match rule rule-number { option option-code [ hex hex-string [ { offset offset length length | mask mask } | partial ] | ascii ascii-string [ offset offset | partial ] ] | relay-agent ip-address } |
缺省情况下,没有配置DHCP用户类的匹配规则 在地址池下,需要为DHCP用户类指定地址范围时,为必选 |
配置DHCP地址池动态分配的主网段 |
network network-address [ mask-length | mask mask ] |
|
(可选)配置地址池动态分配的IP地址范围,即公共地址范围 |
address range start-ip-address end-ip-address |
|
(可选)配置DHCP地址池为指定DHCP用户类动态分配的IP地址范围 |
缺省情况下,没有配置为指定DHCP用户类动态分配的IP地址范围 class命令中指定的DHCP用户类,必须通过dhcp class命令创建。否则,无法为该用户类分配指定范围的地址 |
|
(可选)配置动态分配的IP地址的租约有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
缺省情况下,IP地址租约有效期限为1天 |
(可选)配置DHCP地址池中不参与自动分配的IP地址 |
缺省情况下,DHCP地址池中的所有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地址段 |
· 在同一个DHCP地址池中,如果多次执行network或address range命令,新的配置会覆盖已有配置;如果多次执行class命令,则可以为多个用户类指定不同的地址范围;多次执行forbidden-ip命令,可以配置多个不参与自动分配的IP地址。
· 在DHCP地址池视图下通过forbidden-ip命令配置不参与自动分配的IP地址后,只有当前的地址池不能分配这些IP地址,其他地址池仍然可以分配这些IP地址;通过dhcp server forbidden-ip命令指定不参与自动分配的IP地址后,所有地址池都不能分配这些IP地址。
在配置了一个主网段和多个从网段的地址池中,从网段的作用是对主网段地址空间的补充。当主网段中没有空闲地址分配给客户端时,服务器会从该地址池中的从网段获取地址分配给客户端。
表2-5 配置一个主网段多个从网段的地址管理方式
配置DHCP地址池动态分配的主网段 |
network network-address [ mask-length | mask mask ] |
每个DHCP地址池中只能配置一个主网段,如果多次执行network命令配置主网段,则新的配置会覆盖已有配置 |
(可选)配置DHCP地址池动态分配的从网段 |
network network-address [ mask-length | mask mask ] secondary |
|
(可选)配置动态分配的IP地址的租约有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
缺省情况下,IP地址租约有效期限为1天 |
(可选)配置DHCP地址池中不参与自动分配的IP地址 |
缺省情况下,DHCP地址池中的所有IP地址都参与自动分配 多次执行forbidden-ip命令,可以配置多个不参与自动分配的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地址段 |
· 每个DHCP地址池中,最多可以配置32个从网段。
· 在DHCP地址池视图下通过forbidden-ip命令配置不参与自动分配的IP地址后,只有当前的地址池不能分配这些IP地址,其他地址池仍然可以分配这些IP地址;通过dhcp server forbidden-ip命令指定不参与自动分配的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地址。
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命令,可以配置多个静态地址绑定 同一地址只能绑定给一个客户端。不允许通过重复执行static-bind ip-address命令的方式修改IP地址与客户端的绑定关系。只有删除了某个地址的绑定关系,才能将该地址与其他客户端绑定 |
|
(可选)配置静态绑定IP地址的租约有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
缺省情况下,IP地址租约有效期限为1天 |
DHCP客户端访问本网段以外的服务器或主机时,数据必须通过网关进行转发。DHCP服务器可以为客户端指定网关的地址。
在DHCP服务器上,可以为每个地址池分别指定客户端对应的网关地址。目前,每个DHCP地址池视图下、每个从网段视图下最多可以配置8个网关地址。
表2-7 配置DHCP客户端使用的网关地址
进入DHCP地址池视图 |
||
配置为DHCP客户端分配的网关地址 |
缺省情况下,没有配置为DHCP客户端分配的网关地址 |
|
network network-address [ mask-length | mask mask ] secondary |
||
(可选)配置为DHCP客户端分配的网关地址 |
缺省情况下,没有配置为DHCP客户端分配的网关地址 |
DHCP地址池视图下执行gateway-list命令,配置的是为地址池中所有DHCP客户端分配的网关地址。如果用户需要为地址池下某个从网段的DHCP客户端分配其它的网关地址,可以在地址池的从网段视图下执行gateway-list命令。如果在地址池视图和从网段视图下都配置了网关地址,则优先将从网段视图下配置的网关地址分配给从网段的DHCP客户端。
在DHCP服务器上,可以为每个地址池指定客户端使用的域名后缀。
在客户端进行域名解析时,用户只需要输入域名的部分字段,客户端会自动将输入的域名加上从DHCP服务器获得的域名后缀进行解析。有关域名后缀的详细介绍,请参见“三层技术-IP业务配置指导”中的“域名解析”。
表2-8 配置DHCP客户端使用的域名后缀
进入DHCP地址池视图 |
||
配置为DHCP客户端分配的域名后缀 |
缺省情况下,没有配置为DHCP客户端分配的域名后缀 |
为了使DHCP客户端能够通过域名访问Internet上的主机,DHCP服务器应在为客户端指定DNS(Domain Name System,域名系统)服务器地址。目前,每个DHCP地址池视图下最多可以配置8个DNS服务器地址。
表2-9 配置DHCP客户端使用的DNS服务器地址
进入DHCP地址池视图 |
||
配置为DHCP客户端分配的DNS服务器地址 |
缺省情况下,没有配置为DHCP客户端分配的DNS服务器地址 |
对于使用Microsoft Windows操作系统的客户端,由WINS(Windows Internet Naming Service,Windows Internet名称服务)服务器为通过NetBIOS协议通信的主机提供主机名到IP地址的解析。所以,大部分Windows网络客户端需要进行WINS的设置。
为了使DHCP客户端实现主机名到IP地址的解析,DHCP服务器应该为客户端指定WINS服务器地址。目前,每个DHCP地址池视图下最多可以配置8个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服务器通信来获取映射关系,如果没有获取到,再发送广播报文来获取映射关系。
表2-10 配置DHCP客户端使用的WINS服务器地址和NetBIOS节点类型
进入DHCP地址池视图 |
||
配置为DHCP客户端分配的WINS服务器地址 |
缺省情况下,没有配置为DHCP客户端分配的WINS服务器地址 对于b类节点,为可选;其他情况下,为必选 |
|
配置为DHCP客户端分配的NetBIOS节点类型 |
缺省情况下,没有配置为DHCP客户端分配的NetBIOS节点类型 |
为了使DHCP客户端通过BIMS(Branch Intelligent Management System,分支网点智能管理系统)服务器进行软件的备份和升级等操作,DHCP服务器需要将BIMS服务器的IP地址、端口号以及加密的共享密钥等信息发给DHCP客户端。之后,DHCP客户端就可以定期向BIMS服务器发送连接请求,从BIMS服务器上获取配置文件,进行软件的备份和升级等操作。
表2-11 配置DHCP客户端使用的BIMS服务器信息
进入DHCP地址池视图 |
||
配置为DHCP客户端分配的BIMS服务器的IP地址、端口及共享密钥信息 |
bims-server ip ip-address [ port port-number ] sharekey { cipher | simple } key |
缺省情况下,没有配置为DHCP客户端分配的BIMS服务器信息 |
服务器自动配置功能在空配置启动的设备上不需要进行任何配置,但需要在DHCP服务器上配置一些必需的参数,包括TFTP服务器地址、TFTP服务器名和启动文件名。
表2-12 配置DHCP客户端使用的TFTP服务器地址及启动文件名
进入DHCP地址池视图 |
||
配置为DHCP客户端分配的TFTP服务器地址 |
缺省情况下,没有配置为DHCP客户端分配的TFTP服务器地址和TFTP服务器名 |
|
配置为DHCP客户端分配的TFTP服务器名 |
||
配置为DHCP客户端分配的启动文件名 |
缺省情况下,没有配置为DHCP客户端分配的启动文件名 |
设备在启动后,可能需要访问某些服务器获取设备运行需要的信息,例如从TFTP服务器上获取配置文件。通过本配置可以指定DHCP服务器为DHCP客户端分配的下一个提供服务的服务器IP地址,以便客户端启动后访问该服务器,获取必要的信息。
表2-13 配置DHCP客户端使用的下一个提供服务的服务器IP地址
进入DHCP地址池视图 |
||
配置DHCP地址池为DHCP客户端分配的下一个提供服务的服务器IP地址 |
缺省情况下,没有配置DHCP地址池为DHCP客户端分配的下一个提供服务的服务器IP地址 |
为了使具有语音功能的DHCP客户端能够在通过DHCP获取IP地址的同时,获取到语音呼叫所需的相关信息,需要在DHCP服务器上配置Option 184。Option 184内容的详细介绍,请参见“1.4.3 3. Option 184”。
表2-14 配置DHCP客户端使用的Option 184参数
进入DHCP地址池视图 |
||
自定义DHCP选项时,取值的获取比较复杂,配置错误可能会对DHCP的工作工程造成影响,请谨慎使用该功能。
本配置为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选项的方式进行扩展。
进入DHCP地址池视图 |
||
自定义DHCP选项 |
option code { ascii ascii-string | hex hex-string | ip-address ip-address&<1-8> } |
表2-16 常用Option配置说明
推荐的option命令参数 |
|||
只有启用DHCP服务后,其它相关的DHCP服务器配置才能生效。
启用DHCP服务 |
缺省情况下,DHCP服务处于禁止状态 |
配置接口工作在DHCP服务器模式后,当接口收到DHCP客户端发来的DHCP报文时,将从DHCP服务器的地址池中分配地址等参数。
表2-18 配置接口工作在DHCP服务器模式
配置接口工作在DHCP服务器模式 |
缺省情况下,接口工作在DHCP服务器模式 |
目前,仅以下类型的接口支持工作在DHCP服务器模式:三层以太网接口、LoopBack接口、串口、VLAN接口、三层以太网链路聚合接口、管理以太网接口、HDLC捆绑接口、L3VE接口。关于“串口”的详细介绍,请参见“接口管理”中的“WAN接口”;关于“HDLC捆绑接口”的详细介绍,请参见“二层技术-广域网接入”中的“HDLC”;关于“L3VE接口”的详细介绍,请参见“MPLS”中的“L2VPN接入L3VPN或IP骨干网”。
创建地址池,并在接口引用该地址池后,接口接收到DHCP请求,将优先为客户端分配静态绑定的IP地址;如果不存在静态绑定的IP地址,则从引用的地址池中选择IP地址分配给客户端。
为防止IP地址重复分配导致地址冲突,DHCP服务器为客户端分配地址前,需要先对该地址进行探测。
DHCP服务器的地址探测是通过ping功能实现的,通过检测是否能在指定时间内得到ping响应来判断是否存在地址冲突。DHCP服务器发送目的地址为待分配地址的ICMP回显请求报文。如果在指定时间内收到回显响应报文,则认为存在地址冲突。DHCP服务器从地址池中选择新的IP地址,并重复上述操作。如果在指定时间内没有收到回显响应报文,则继续发送ICMP回显请求报文,直到发送的回显显示报文数目达到最大值。如果仍然没有收到回显响应报文,则将地址分配给客户端,从而确保客户端获得的IP地址唯一。
DHCP服务器通过ping操作来检测是否发生地址冲突,而DHCP客户端则通过发送免费ARP报文检测是否发生地址冲突。
表2-20 配置IP地址冲突检测功能
(可选)配置DHCP服务器发送回显请求报文的最大数目 |
缺省情况下,DHCP服务器发送回显请求报文的最大数目为1 0表示DHCP服务器将IP地址分配给DHCP客户端之前,不会通过ping操作探测该地址是否冲突 |
|
(可选)配置DHCP服务器等待回显响应报文的超时时间 |
缺省情况下,DHCP服务器等待回显响应报文的超时时间为500毫秒 0表示DHCP服务器将IP地址分配给DHCP客户端之前,不会通过ping操作探测该地址是否冲突 |
DHCP服务器的用户下线检测功能以ARP表项老化功能为基础,当ARP表项老化时认为该表项对应的用户已经下线。
如果在接口上使能了DHCP服务器的用户下线检测功能,则当ARP表项老化时,系统会删除该表项对应用户的地址绑定信息。
表2-21 配置DHCP服务器的用户下线检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP服务器的用户下线检测功能 |
dhcp server client-detect enable |
缺省情况下,DHCP服务器的用户下线检测功能处于关闭状态 |
手工删除ARP表项,不会触发删除对应的地址绑定信息。
使用snmp-agent trap enable dhcp server [ address-exhaust | allocated-ip | ip-in-use ] *命令开启DHCP服务器的告警功能后,该系统会生成告警信息,用于报告该模块的重要事件。
· 当配置address-exhaust参数后,系统每5分钟检测一次地址池的地址耗尽状态,如果地址耗尽状态较前一次检测时发生变化(如由非耗尽状态变为耗尽状态),则发送Trap消息。
· 当配置allocated-ip参数后,系统每5分钟检测一次在过去5分钟内地址的IP地址租约成功分配率,如成功分配率低于设置的门限值,则发送Trap消息。
· 当配置ip-in-use参数后,系统每5分钟检测一次DHCP地址池的地址使用率,如使用率高于设置的门限值,则发送Trap消息。
管理员可以根据需要,手动对地址成功分配率告警门限值和地址池的地址使用率告警门限值进行配置。
生成的告警信息将发送到设备的SNMP模块,根据SNMP中设置的参数输出告警信息,如:接收SNMP告警信息的目的主机、告警信息发送队列的长度等。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
表2-22 配置DHCP服务器的告警功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启DHCP服务器的告警功能 |
snmp-agent trap enable dhcp server [ address-exhaust | allocated-ip | ip-in-use ] * |
缺省情况下,DHCP服务器的所有告警功能均处于开启状态 |
(可选)设置地址成功分配率告警门限值 |
dhcp server threshold allocated-ip threshold-value |
缺省情况下,IP地址租约成功分配率的告警门限值为0%,即不会因IP地址租约成功分配率过低产生告警 |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
(可选)设置地址池的地址使用率告警门限值 |
threshold ip-in-use threshold-value |
缺省情况下,地址池使用率告警门限值为100% |
如果配置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.3.7 配置DHCP中继支持Option 82功能”。
表2-23 配置Option 82的处理方式
配置DHCP服务器处理Option 82 |
缺省情况下,DHCP服务器处理Option 82 |
当DHCP客户端的行为不符合RFC协议规定时,为了与之兼容,需要配置DHCP服务器兼容性功能。
一般情况下,只有DHCP请求报文的广播标志位为1的时候,DHCP服务器才会以广播的方式发送应答报文。如果DHCP客户端发送的请求报文中广播标志位为0,且该客户端不支持接收单播的应答报文,则可以配置DHCP服务器忽略请求报文的广播标志位,始终以广播方式发送应答报文。
当已经存在IP地址的客户端发出请求报文(即报文中ciaddr字段不为0)时,无论是否启用DHCP服务器的广播回应报文功能,DHCP服务器都会以单播形式将回应报文发送给DHCP客户端(即目的地址为ciaddr)。
当请求报文通过DHCP中继转发到DHCP服务器(即报文中giaddr字段不为0)时,无论是否启用DHCP服务器的广播回应报文功能,DHCP服务器都会以单播形式将回应报文发送给DHCP中继(即目的地址为giaddr)。
表2-24 配置DHCP服务器始终以广播方式回复请求报文
启用DHCP服务器的广播回应报文功能 |
缺省情况下,DHCP服务器根据请求报文中的广播标志位来决定以广播还是单播的形式发送应答报文 |
BOOTP客户端申请到的地址租约是无限期的。在某些组网环境中,可能不希望出现无限期的地址租约。此时,可以通过配置DHCP服务器忽略BOOTP请求报文,避免分配无限期的地址租约。
表2-25 配置DHCP服务器忽略BOOTP请求报文
配置DHCP服务器忽略BOOTP请求报文 |
缺省情况下,DHCP服务器不会忽略BOOTP请求报文 |
有些BOOTP客户端发送的请求报文中,vend字段的格式不符合RFC 1048的要求。对于这种报文,DHCP服务器的缺省处理方法是不解析vend字段内容,将报文中vend字段的内容拷贝到回复报文中的vend字段回应给BOOTP客户端。
启用DHCP服务器的回应RFC 1048格式报文功能后,对于这种格式不符合RFC 1048要求的报文,DHCP服务器会将需要回应的选项以符合RFC 1048要求的格式,封装到回复报文的vend字段,并回应给BOOTP客户端。
表2-26 配置DHCP服务器以RFC 1048规定的格式发送BOOTP应答报文
启用DHCP服务器回应RFC 1048格式报文功能 |
缺省情况下,DHCP服务器回应RFC 1048格式报文功能处于关闭状态 本配置只在客户端通过BOOTP报文申请静态绑定地址时有效 |
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP服务器发送的DHCP报文的DSCP优先级。
表2-27 配置DHCP服务器发送DHCP报文的DSCP优先级
配置DHCP服务器发送DHCP报文的DSCP优先级 |
缺省情况下,DHCP服务器发送DHCP报文的DSCP优先级为56 |
配置DHCP服务器接口的DHCP报文限速功能后,当接口上收到的DHCP报文速率超过用户设定的限速值时,丢弃超过速率限制的DHCP报文。
表2-28 配置DHCP服务器接口的DHCP报文限速功能
配置DHCP服务器接口的DHCP报文限速功能 |
缺省情况下,DHCP服务器接口的DHCP报文限速功能处于关闭状态 |
DHCP服务器设备重启后,设备上记录的租约信息将丢失,影响DHCP服务器正常业务。
DHCP服务器租约固化功能将DHCP服务器的核心运行数据(在用地址租约、冲突表项)保存到指定的文件中,DHCP服务器设备重启后,自动根据该文件恢复DHCP服务器的租约信息,从而保证DHCP服务器的租约信息不会丢失。
表2-29 配置DHCP服务器租约固化功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定存储DHCP 服务器表项的文件名称 |
dhcp server database filename { filename | url url [ username username [ password { cipher | simple } key ] ] } |
缺省情况下,未指定存储文件名称 执行本命令后,会立即触发一次表项备份。之后,如果未配置dhcp server database update interval命令,若表项发生变化,默认在300秒之后刷新存储文件;若表项未发生变化,则不再刷新存储文件 |
(可选)将当前的DHCP 服务器表项保存到用户指定的文件中 |
dhcp server database update now |
本命令只用来触发一次DHCP 服务器表项的备份 |
(可选)配置刷新DHCP 服务器表项存储文件的延迟时间 |
dhcp server database update interval seconds |
缺省情况下,若DHCP 服务器表项不变化,则不刷新存储文件;若DHCP 服务器表项发生变化,默认在300秒之后刷新存储文件 |
(可选)中止固化文件的恢复 |
dhcp server database update stop |
本命令只用来在设备重启时触发一次终止DHCP服务器固化租约的恢复 |
图2-1 DHCP服务器辅助网关组网图
在某些接入组网类型(如IPoE和PPPoE)中,如图2-1所示,接入设备上除了配置接入特性还需要配置DHCP服务器功能。由于接入设备需要接入多种业务的客户端(如IPTV、IP电话和宽带业务等),而不同业务的设备需要获取不同网段的IP地址,所以接入设备的下行口一般不能配置IP地址。此时可以通过在接入设备的DHCP地址池中配置辅助网关功能使不同类型的业务流量能够正常转发。将辅助网关的IP地址和MAC地址信息添加到设备的地址管理模块,通过应答客户端的ARP请求,即可实现对不同类型的业务流量的引导。
如果绑定了VPN实例,需保证该VPN实例存在。满足了以上两个条件,该地址池所在的接入设备的辅助网关功能才能生效。
表2-30 配置DHCP服务器辅助网关信息
创建DHCP地址池,并进入DHCP地址池视图 |
||
配置DHCP服务器辅助网关信息 |
gateway-list ip-address&<1-64> export-route |
缺省情况下,未配置DHCP服务器辅助网关信息 |
图2-2 DHCP服务器辅助路由组网图
在某些特定的业务模型(如BRAS组网)下,BAS设备需要实时监测网络流量,并将统计数据发送到RADIUS服务器。该统计数据为用户上线以来产生的所有上下行流量数据,而不能是设备在某个时间段内发生的上下行流量数据。由于RADIUS服务器刷新计数的方法是覆盖以前数据而不是进行累加,所以当一台设备的上下行流量分别从两台BAS设备上通过时,在RADIUS服务器上记录的数据就会相互覆盖,这时RADIUS服务器得到的统计数据是不准确的。为了提高准确性,需保证一台设备的上下行流量经过同一台BAS设备。通过配置辅助路由信息,通知路由管理对外发布此网段路由,引导指定网段的下行数据流量。
表2-31 配置DHCP服务器的辅助路由信息
创建DHCP地址池,并进入DHCP地址池视图 |
||
配置DHCP服务器辅助路由信息 |
network network-address [ mask-length | mask mask ] export-route [ secondary ] |
缺省情况下,未配置DHCP服务器辅助路由信息 |
地址池绑定了VPN实例后,DHCP服务器通过响应绑定了相同VPN实例的客户端发来的状态变化信息,将该客户端的状态记录在地址池下。并且DHCP服务器还可以将网络划分成公网和私网。没有配置VPN属性的地址池被划分到公网,配置了VPN属性的地址池被划分到相应的VPN私网;当客户端申请租约时,如果DHCP服务器接收报文的接口配置了VPN属性,则DHCP服务器会从配置了同样VPN属性的地址池为客户端分配租约。
表2-32 指定DHCP服务器上的地址池所在的VPN信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池,并进入DHCP地址池视图 |
dhcp server ip-pool pool-name |
- |
指定DHCP服务器上的地址池所在的VPN信息 |
vpn-instance vpn-instance-name |
缺省情况下,未指定DHCP服务器上的地址池所在的VPN信息 |
DHCP服务器日志是为了满足管理员审计需求。设备生成DHCP日志信息会交给信息中心模块处理,信息中心模块的配置将决定日志信息的发送规则和发送方向。关于信息中心的详细描述请参见“网络管理和监控配置指导”中的“信息中心”。
比如大量DHCP客户端发生上下线操作时,DHCP服务器会输出大量日志信息,这可能会降低设备性能,影响DHCP服务器分配IP地址的速度。为了避免该情况的发生,用户可以关闭DHCP服务器日志信息功能,使得DHCP服务器不再输出日志信息。
表2-33 配置DHCP服务器日志信息功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器日志信息功能 |
dhcp log enable |
缺省情况下,DHCP服务器日志信息功能处于关闭状态 |
创建DHCP策略,并在接口引用该策略后,接口接收到DHCP请求时:
· 若接口关联了DHCP策略,则根据配置顺序逐个匹配DHCP策略下通过class命令指定的DHCP用户类。
¡ 若匹配成功,则该DHCP用户类的用户从关联的DHCP地址池上获取IP地址及其他参数;
¡ 若匹配用户类指定地址池中没有可供分配的地址,则地址分配失败,即DHCP服务器无法为DHCP客户端分配地址;
¡ 其他情况,则走以下流程分配。
· 若客户端存在静态绑定IP地址,则优先为客户端分配静态绑定的IP地址;如果不存在静态绑定,则走以下流程分配。
· 若接口引用了地址池,则从引用的地址池中选择IP地址分配给客户端,否则走以下流程分配。
· 从接口网段或者relay地址网段匹配的地址池内选择IP地址分配给客户端。
表2-34 配置DHCP客户类从指定DHCP地址池获取IP地址及其他参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP用户类,并进入DHCP用户类视图 |
dhcp class class-name |
缺省情况下,不存在任何DHCP用户类 |
配置DHCP用户类的匹配规则 |
if-match rule rule-number { option option-code [ hex hex-string [ { offset offset length length | mask mask } | partial ] | ascii ascii-string [ offset offset | partial ] ] | relay-agent ip-address } |
缺省情况下,没有配置DHCP用户类的匹配规则 |
退回系统视图 |
quit |
- |
创建DHCP策略视图,并进入DHCP策略视图 |
dhcp policy policy-name |
缺省情况下,不存在任何DHCP策略 需要注意的是,DHCP策略需要在接口上引用才生效 |
配置指定DHCP用户类关联DHCP地址池 |
class class-name ip-pool pool-name |
- |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口引用DHCP策略 |
dhcp apply policy policy-name |
缺省情况下,接口没有引用DHCP策略 需要注意的是,如果多次执行本命令,新的配置会覆盖已有配置 |
DHCP服务器重启或使用reset dhcp server ip-in-use命令清除租约后,DHCP服务器上不存在任何租约信息。此时客户端如果发出续约请求将会被拒绝,客户端需要重新申请IP地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP服务器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP服务器的相关信息。
表2-35 DHCP服务器显示和维护
显示DHCP的地址冲突信息 |
display dhcp server conflict [ ip ip-address ] [ vpn-instance vpn-instance-name ] |
显示DHCP服务器的表项备份信息 |
display dhcp server database |
display dhcp server expired [ [ ip ip-address ] [ vpn-instance vpn-instance-name ] | pool pool-name ] |
|
显示DHCP地址池的空闲地址信息 |
display dhcp server free-ip [ pool pool-name | vpn-instance vpn-instance-name ] |
显示DHCP地址绑定信息 |
display dhcp server ip-in-use [ [ ip ip-address ] [ 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 [ pool-name | vpn-instance vpn-instance-name ] |
清除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 ] |
常见的DHCP组网方式可以分为两类:
· DHCP服务器和客户端位于同一个网段,直接进行DHCP报文的交互;
· DHCP服务器和客户端位于不同的网段,必须通过DHCP中继实现IP地址的分配。
无论在哪种情况下,DHCP服务器的配置都是相同的。
Router B和Router C分别作为DHCP客户端和BOOTP客户端,从DHCP服务器Router A获取静态绑定的IP地址、域名服务器、网关地址。
· Router B的接口GigabitEthernet1/0/1的客户端ID为:
0030-3030-662e-6532-3030-2e30-3030-322d-4574-6865-726e-6574;
· Router C的接口GigabitEthernet1/0/1的MAC地址为:000f-e200-01c0。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 10.1.1.1 25
[RouterA-GigabitEthernet1/0/1] quit
# 启用DHCP服务。
# 配置接口GigabitEthernet1/0/1工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] dhcp select server
[RouterA-GigabitEthernet1/0/1] quit
# 创建DHCP地址池0。
[RouterA] dhcp server ip-pool 0
# 配置采用静态绑定方式为Router B分配IP地址。
# 配置采用静态绑定方式为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]
配置完成后,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 Jan 21 14:27:27 2014 Static(C)
· 作为DHCP服务器的Router A为网段10.1.1.0/24中的客户端动态分配IP地址,该地址池网段分为两个子网网段:10.1.1.0/25和10.1.1.128/25;
· Router A的两个以太网接口,GigabitEthernet1/0/1和GigabitEthernet1/0/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-4 DHCP组网图
(1) 配置DHCP server各接口的IP地址(略)
# 启用DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet1/0/1和GigabitEthernet1/0/2工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] dhcp select server
[RouterA-GigabitEthernet1/0/1] quit
[RouterA] interface gigabitethernet 1/0/2
[RouterA-GigabitEthernet1/0/2] dhcp select server
[RouterA-GigabitEthernet1/0/2] quit
# 配置不参与自动分配的IP地址(DNS服务器、WINS服务器和网关地址)。
[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
配置完成后,10.1.1.0/25和10.1.1.128/25网段的客户端可以从DHCP服务器Router A申请到相应网段的IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
· 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为10.10.1.0/24网段内的客户端分配的DNS服务器地址为10.10.1.20/24,网关的地址为10.10.1.254/24。
图2-5 DHCP用户类组网图
(1) 配置DHCP server各个接口的IP地址(略)
(2) 配置DHCP服务
# 启用DHCP服务,且配置DHCP服务器处理Option 82信息。
[RouterB] dhcp enable
[RouterB] dhcp server relay information enable
# 配置接口GigabitEthernet1/0/1工作在DHCP服务器模式。
[RouterB] interface gigabitethernet 1/0/1
[RouterB-GigabitEthernet1/0/1] dhcp select server
[RouterB-GigabitEthernet1/0/1] quit
# 创建DHCP用户类tt,设置匹配规则编号1,匹配请求报文中带有Option 82的客户端。
[RouterB-dhcp-class-tt] if-match rule 1 option 82
[RouterB-dhcp-class-tt] 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] gateway-list 10.10.1.254
[RouterB-dhcp-pool-aa] dns-list 10.10.1.20
配置完成后,10.10.1.0/24网段的客户端通过用户类分配方式可以从DHCP服务器Router B申请到相应地址范围的IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为它分配的IP地址。
· 作为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。
(1) 配置DHCP服务。
# 启用DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet1/0/1的主从IP地址,并配置该接口工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] ip address 10.1.1.1 24
[RouterA-GigabitEthernet1/0/1] ip address 10.1.2.1 24 sub
[RouterA-GigabitEthernet1/0/1] dhcp select server
[RouterA-GigabitEthernet1/0/1] quit
# 创建DHCP地址池aa,配置主网段地址范围和从网段地址范围,配置网关地址。
[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]
配置完成后,当DHCP服务器地址池主网段中没有空闲地址分配给客户端时,服务器会从该地址池中的从网段获取地址分配给客户端IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器已分配的主从网段IP地址。
DHCP客户端Router B从DHCP服务器Router A获取IP地址和PXE引导服务器地址信息:
· 客户端IP地址所在网段为10.1.1.0/24;
· 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-7 自定义DHCP选项典型配置举例
(1) 配置接口GigabitEthernet1/0/1的IP地址(略)
# 启用DHCP服务。
[RouterA] dhcp enable
# 配置接口GigabitEthernet1/0/1工作在DHCP服务器模式。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] dhcp select server
[RouterA-GigabitEthernet1/0/1] quit
# 配置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
配置完成后,Router B可以从DHCP服务器Router A获取到10.1.1.0/24网段的IP地址和PXE引导服务器地址。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
客户端从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地址。
由于在IP地址动态获取过程中采用广播方式发送请求报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。
DHCP中继功能的引入解决了这一难题:客户端可以通过DHCP中继与其他网段的DHCP服务器通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。
设备作为MCE(Multi-VPN-instance Customer Edge,多VPN实例用户网络边界设备)时,在设备上配置DHCP中继功能,不仅可以为公网上的DHCP服务器和DHCP客户端转发DHCP报文,还可以实现为私网内的DHCP服务器和DHCP客户端转发DHCP报文。有关MCE的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。
图3-1是DHCP中继的典型应用示意图。
图3-1 DHCP中继的典型组网应用
通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2 IP地址获取过程”。
图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.4.3 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不变并进行转发 |
||
根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发 |
||
根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发 |
表3-2 DHCP中继配置任务简介
启用DHCP服务 |
||
配置接口工作在DHCP中继模式 |
||
指定DHCP服务器的地址 |
||
配置DHCP中继的安全功能 |
||
配置DHCP中继的用户下线检测功能 |
可选 |
|
配置通过DHCP中继释放客户端的IP地址 |
||
配置DHCP中继支持Option 82功能 |
||
配置DHCP中继发送DHCP报文的DSCP优先级 |
||
配置DHCP报文限速功能 |
可选 |
|
配置DHCP中继支持代理功能 |
||
指定不同类型用户的DHCP服务器的地址 |
可选 |
|
配置DHCP中继支持smart-relay功能 |
可选 |
只有启用DHCP服务后,其它相关的DHCP中继配置才能生效。
启用DHCP服务 |
缺省情况下,DHCP服务处于禁止状态 |
配置接口工作在中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给DHCP服务器,由服务器分配地址。
DHCP客户端通过DHCP中继获取IP地址时,DHCP服务器上需要配置与DHCP中继连接DHCP客户端的接口IP地址所在网段(网络号和掩码)匹配的地址池,否则会导致DHCP客户端无法获得正确的IP地址。
表3-4 配置接口工作在DHCP中继模式
配置接口工作在DHCP中继模式 |
缺省情况下,启用DHCP服务后,接口工作在DHCP服务器模式 |
为了提高可靠性,可以在一个网络中设置多个DHCP服务器。DHCP中继上配置多个DHCP服务器后,DHCP中继会将客户端发来的DHCP报文转发给所有的服务器。
指定的DHCP服务器的IP地址不能与DHCP中继的接口IP地址在同一网段。否则,可能导致客户端无法获得IP地址。
表3-5 指定DHCP服务器的地址
指定DHCP服务器的地址 |
缺省情况下,没有在DHCP中继上指定DHCP服务器的地址 通过多次执行dhcp relay server-address命令可以指定多个DHCP服务器,一个接口下最多可以指定8个DHCP服务器 |
为了防止非法主机静态配置一个IP地址并访问外部网络,设备支持DHCP中继用户地址表项记录功能。
启用该功能后,当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与MAC地址的绑定关系,生成DHCP中继的用户地址表项。
本功能与其他IP地址安全功能(如ARP地址检查、授权ARP和IP Source Guard)配合,可以实现只允许匹配用户地址表项中绑定关系的报文通过DHCP中继,从而保证非法主机不能通过DHCP中继与外部网络通信。
表3-6 配置DHCP中继用户地址表项记录功能
启用DHCP中继的用户地址表项记录功能 |
缺省情况下,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地址对应的表项。
表3-7 配置DHCP中继动态用户地址表项定时刷新功能
开启DHCP中继动态用户地址表项定时刷新功能 |
缺省情况下,DHCP中继动态用户地址表项定时刷新功能处于开启状态 |
|
配置DHCP中继动态用户地址表项的定时刷新周期 |
dhcp relay client-information refresh [ auto | interval interval ] |
缺省情况下,定时刷新周期为auto,即根据表项的数目自动计算刷新时间间隔 |
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地址检查功能。在非第一跳DHCP中继设备上启用MAC地址检查功能,会使DHCP中继设备错误地丢弃报文,导致客户端地址申请不成功。
设备支持配置DHCP中继的MAC地址检查表项老化时间,当老化时间到达以后,该表项信息会被老化掉,DHCP中继收到该MAC地址对应的DHCP请求报文后重新进行合法性检查。
表3-8 启用DHCP中继的MAC地址检查功能
配置DHCP中继的MAC地址检查表项的老化时间 |
缺省情况下,DHCP中继的MAC地址检查表项的老化时间为30秒 如果未通过dhcp relay check mac-address命令启用DHCP中继的MAC地址检查功能,则本命令的配置不会生效 |
|
启用DHCP中继的MAC地址检查功能 |
缺省情况下,DHCP中继的MAC地址检查功能处于关闭状态 |
DHCP中继的用户下线检测功能以ARP表项老化功能为基础,ARP表项老化时认为该表项对应的用户已经下线。
如果接口上使能了DHCP中继用户下线检测功能,则ARP表项老化时,会删除对应的用户地址表项。同时,DHCP中继还会向DHCP服务器发送DHCP-RELEASE报文,释放下线用户的IP地址租约。
表3-9 配置DHCP中继的用户下线检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP中继的用户下线检测功能 |
dhcp relay client-detect enable |
缺省情况下,DHCP中继的用户下线检测功能处于关闭状态 |
手工删除ARP表项,不会触发删除对应的用户地址表项。
在某些情况下,可能需要通过DHCP中继手工释放客户端申请到的IP地址。如果DHCP中继上存在客户端IP地址对应的动态用户地址表项,则配置通过DHCP中继释放该客户端IP地址后,DHCP中继会主动向DHCP服务器发送DHCP-RELEASE报文。DHCP服务器收到该报文后,将会释放指定IP地址的租约。DHCP中继也会删除该动态用户地址表项。
释放的客户端IP地址必须是动态用户地址表项中存在的IP地址,否则DHCP中继无法释放该IP地址。
表3-10 配置通过DHCP中继释放客户端的IP地址
向DHCP服务器请求释放客户端申请到的IP地址 |
dhcp relay release ip client-ip [ vpn-instance vpn-instance-name ] |
为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。DHCP服务器的相关配置请参见“2.10 配置Option 82的处理方式”。
启用DHCP中继支持Option 82功能 |
缺省情况下,禁止DHCP中继支持Option 82功能 |
|
(可选)配置DHCP中继对包含Option 82的请求报文的处理策略 |
||
(可选)配置Circuit ID子选项的填充内容和填充格式 |
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex 如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP中继添加或替换Option 82失败 |
|
(可选)配置Remote ID子选项的填充内容和填充格式 |
dhcp relay information remote-id { normal [ format { ascii | hex } ] | string remote-id | sysname } |
缺省情况下,Remote ID子选项的填充模式为Normal;填充格式为hex |
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP中继发送的DHCP报文的DSCP优先级。
表3-12 配置DHCP中继发送DHCP报文的DSCP优先级
配置DHCP中继发送DHCP报文的DSCP优先级 |
缺省情况下,DHCP中继发送的DHCP报文的DSCP优先级为56 |
配置DHCP中继接口的DHCP报文限速功能后,当接口上收到的DHCP报文速率超过用户设定的限速值时,丢弃超过速率限制的DHCP报文。
表3-13 配置DHCP中继接口的DHCP报文限速功能
配置DHCP中继接口的DHCP报文限速功能 |
缺省情况下,DHCP中继接口的DHCP报文限速功能处于关闭状态 |
设备可以通过配置DHCP中继支持代理功能,来防止非法用户攻击DHCP服务器。
开启该功能后,DHCP中继收到DHCP服务器的应答报文,会把报文中的DHCP服务器地址修改为中继的接口地址,并转发给DHCP客户端。当DHCP客户端通过DHCP中继从DHCP服务器获取到IP地址等网络参数后,DHCP客户端会把DHCP中继当做自己的服务器,来进行后续的DHCP功能的报文交互。从而达到了把真正的DHCP服务器和DHCP客户端隔离开,保护DHCP服务器的目的。
表3-14 配置DHCP中继支持代理功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置DHCP中继接口支持代理功能 |
dhcp select relay proxy |
缺省情况下,启用DHCP服务后,接口工作在DHCP服务器模式 |
对于某些特定的用户接入方式(如IPoE接入方式),基于用户接入位置信息的不同,网络中存在大量不同类型的用户。为了使相同类型的用户可以从指定的DHCP服务器申请IP地址等网络参数,IPoE模块根据用户注册信息,使不同的用户选择不同的DHCP中继地址池,并从中继地址池下配置的DHCP服务器获取IP地址等网络参数。
为了提高可靠性,一个DHCP中继地址池下配置多个DHCP服务器地址,当DHCP客户端匹配该中继地址池后,DHCP中继会将DHCP客户端发来的DHCP报文转发给该地址池对应所有的DHCP服务器。
一台DHCP中继的一个接口下可能连接不同类型的用户,当DHCP中继转发DHCP客户端请求报文给DHCP服务器时,不能再以中继接口的IP地址作为选择地址池的依据。为了解决这个问题,需要使用gateway-list命令指定某个类型用户所在的网段,并将该地址添加到转发给DHCP服务器的报文字段中,为DHCP服务器选择地址池提供依据。
表3-15 指定中继地址池对应的DHCP服务器地址
指定匹配该地址池的DHCPv4客户端所在的网段地址 |
gateway-list ip-address&<1-64> [ export-route ] |
缺省情况下,未指定匹配该地址池的DHCP客户端所在的网段地址 |
指定中继地址池对应的DHCP服务器地址 |
remote-server ip-address&<1-8> |
缺省情况下,未指定中继地址池对应的DHCP服务器的地址 通过执行remote-server命令一次最多可以指定8个DHCP服务器的地址信息 |
· 当PPPoE用户下线时,DHCP中继需要查询中继用户地址表项,若存在对应表项,则会向DHCP服务器发送Release报文,通知DHCP服务器释放该地址租约。这就需要在DHCP中继上使用dhcp relay client-information record命令开启DHCP中继用户地址表项记录功能。
· 和PPPoE配合使用时,如果设备的地址池中配置了remote-server命令,则可以认定该设备一定是DHCP中继设备,所以不需要在接口视图下执行dhcp select relay命令。
DHCP服务器中配置有不同网段地址池,DHCP中继使用接口主IP地址填充报文的giaddr字段后与DHCP服务器进行通信,若此网段地址分配完毕,则用户不能获取到地址,即使此DHCP服务器上还有其他网段地址可以分配。为了解决这一问题,可通过开启smart-relay功能来使中继获取到除中继接口主地址外的其他地址来填充giaddr字段,从而获取其他网段地址。按照不同的组网环境,有以下两种地址获取方式:
· 对于普通组网环境,用户可以在DHCP中继接口配置从IP地址。这样,当匹配中继接口主地址的地址池分配完毕后,DHCP中继可以使用接口从地址来填充报文的giaddr字段。用户就可以从匹配DHCP中继接口上从IP地址的地址池中获取到IP地址。
· 对于某些特定的用户接入方式(如IPoE接入方式),用户可以配置中继地址池,并通过gateway-list命令指定IP地址。这样,当匹配中继接口主地址的地址池分配完毕后,DHCP中继可以使用该命令配置的IP地址来填充报文的giaddr字段。用户就可以从分配这些IP地址的地址池中获取到IP地址。
如果DHCP中继转发出第四次DHCP-discover报文时还没有收到DHCP 服务器的回应,则DHCP中继切换下一个可用地址填充giaddr字段。
需要注意的是,若要开启smart-relay功能请先配置DHCP中继用户地址表项记录功能。
表3-16 配置DHCP中继支持smart-relay功能(普通组网环境)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启用smart-relay功能 |
dhcp smart-relay enable |
缺省情况下,未开启dhcp smart-relay功能 |
启用DHCP中继的用户地址表项记录功能 |
dhcp relay client-information record |
缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态 |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中继模式 |
dhcp select relay |
缺省情况下,启用DHCP服务后,接口工作在DHCP服务器模式 |
配置DHCPv4客户端所在的网段地址 |
ip address ip-address { mask-length | mask } [ sub ] |
缺省情况下,接口下不存在任何地址 |
表3-17 配置DHCP中继支持smart-relay功能(特定用户接入方式)
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启smart-relay功能 |
dhcp smart-relay enable |
缺省情况下,未开启dhcp smart-relay功能 |
启用DHCP中继的用户地址表项记录功能 |
dhcp relay client-information record |
缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态 |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中继模式 |
dhcp select relay |
缺省情况下,启用DHCP服务后,接口工作在DHCP服务器模式 |
退回系统视图 |
quit |
- |
创建中继地址池,并进入中继地址池视图 |
dhcp server ip-pool pool-name |
缺省情况下,设备上不存在任何中继地址池 |
指定匹配该地址池的DHCPv4客户端所在的网段地址 |
gateway-list ip-address&<1-64> [ export-route ] |
缺省情况下,未指定匹配该地址池的DHCP客户端所在的网段地址 |
指定中继地址池对应的DHCP服务器地址 |
remote-server ip-address&<1-8> |
缺省情况下,未指定中继地址池对应的DHCP服务器的地址 通过执行remote-server命令一次最多可以指定8个DHCP服务器的地址信息 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP中继的统计信息。
表3-18 DHCP中继显示和维护
显示接口上指定的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中继的MAC地址检查表项 |
|
清除DHCP中继的用户地址表项信息 |
reset dhcp relay client-information [ interface interface-type interface-number | ip ip-address [ vpn-instance vpn-instance-name ] ] |
清除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中继通过GigabitEthernet1/0/1接口连接到DHCP客户端所在的网络,GigabitEthernet1/0/1接口的IP地址为10.10.1.1/24,GigabitEthernet1/0/2接口的IP地址为10.1.1.2/24。
图3-3 DHCP中继组网示意图
# 配置各接口的IP地址(略)。
# 启用DHCP服务。
[RouterA] dhcp enable
# 配置GigabitEthernet1/0/1接口工作在DHCP中继模式。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] dhcp select relay
# 指定DHCP服务器的地址。
[RouterA-GigabitEthernet1/0/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.21 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地址。
# 配置各接口的IP地址(略)。
# 启用DHCP服务。
[RouterA] dhcp enable
# 配置GigabitEthernet1/0/1接口工作在DHCP中继模式。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] dhcp select relay
# 指定DHCP服务器的地址。
[RouterA-GigabitEthernet1/0/1] dhcp relay server-address 10.1.1.1
# 配置Option 82的处理策略和填充内容。
[RouterA-GigabitEthernet1/0/1] dhcp relay information enable
[RouterA-GigabitEthernet1/0/1] dhcp relay information strategy replace
[RouterA-GigabitEthernet1/0/1] dhcp relay information circuit-id string company001
[RouterA-GigabitEthernet1/0/1] dhcp relay information remote-id string device001
为使Option 82功能正常使用,DHCP服务器也需要进行相应配置。
客户端不能通过DHCP中继获得配置信息。
DHCP中继或DHCP服务器的配置可能有问题。可以打开调试开关显示调试信息,并通过执行display命令显示接口状态信息的方法来分析定位。
· 检查DHCP服务器和DHCP中继是否启用了DHCP服务。
· 检查DHCP服务器是否配置有DHCP客户端所在网段的地址池。
· 检查具有DHCP中继功能的网络设备和DHCP服务器是否配置有相互可达的路由。
· 检查具有DHCP中继功能的网络设备是否在连接DHCP客户端所在网段的接口上指定了正确的DHCP服务器地址。
设备只有位于DHCP客户端与DHCP服务器之间,或DHCP客户端与DHCP中继之间时,DHCP Snooping功能配置后才能正常工作;设备位于DHCP服务器与DHCP中继之间时,DHCP Snooping功能配置后不能正常工作。
DHCP Snooping是DHCP的一种安全特性,具有如下功能:
网络中如果存在私自架设的非法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 Detection:根据DHCP Snooping表项来判断发送ARP报文的用户是否合法,从而防止非法用户的ARP攻击。ARP Detection的详细介绍请参见“安全配置指导”中的“ARP攻击防御”。
· IP Source Guard:通过动态获取DHCP Snooping表项对端口转发的报文进行过滤,防止非法报文通过该端口。IP Source Guard的详细介绍请参见“安全配置指导”中的“IP Source Guard”。
如图4-1所示,在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,以便DHCP Snooping设备正常转发DHCP服务器的应答报文,保证DHCP客户端能够从合法的DHCP服务器获取IP地址。
在多个DHCP Snooping设备级联的网络中,为了节省系统资源,不需要每台DHCP Snooping设备都记录所有DHCP客户端的IP地址和MAC地址的绑定信息,只需在与客户端直接相连不信任端口上记录绑定信息。间接与DHCP客户端相连的不信任端口不需要记录IP地址和MAC地址绑定信息。
图4-2 DHCP Snooping级联组网图
GE1/0/3和GE1/0/4 |
|||
GE1/0/3和GE1/0/4 |
Option 82记录了DHCP客户端的位置信息。管理员可以利用该选项定位DHCP客户端,实现对客户端的安全和计费等控制。Option 82的详细介绍请参见“1.4.3 2. 中继代理信息选项(Option 82)”。
如果DHCP Snooping支持Option 82功能,则当设备接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充模式等对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。具体的处理方式见表4-2。DHCP Snooping对Option 82的处理策略、填充模式与DHCP中继相同。
当设备接收到DHCP服务器的响应报文时,如果报文中含有Option 82,则删除Option 82,并转发给DHCP客户端;如果报文中不含有Option 82,则直接转发。
表4-2 DHCP Snooping支持Option 82的处理方式
收到DHCP请求报文 |
DHCP Snooping对报文的处理 |
|
保持报文中的Option 82不变并进行转发 |
||
根据DHCP Snooping上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发 |
||
根据DHCP Snooping上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发 |
如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping相关配置不会生效;该接口退出聚合组后,之前的配置才会生效。
表4-3 DHCP Snooping配置任务简介
配置DHCP Snooping基本功能 |
||
配置DHCP Snooping支持Option 82功能 |
||
配置DHCP Snooping表项备份功能 |
||
配置防止DHCP饿死攻击 |
||
配置防止伪造DHCP请求方向报文攻击 |
||
配置接口动态学习DHCP Snooping表项的最大数目 |
配置DHCP Snooping基本功能时,需要注意:
· 为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
· 目前,可以设置为DHCP Snooping信任端口的接口类型包括:二层以太网接口、二层聚合接口、三层以太网接口和三层以太网子接口。关于聚合接口的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
· 如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping相关配置不会生效;该接口退出聚合组后,之前的配置才会生效。
缺省情况下,DHCP Snooping功能处于关闭状态 |
||
此接口为连接DHCP服务器的接口 |
||
缺省情况下,在启用DHCP Snooping功能后,设备的所有端口均为不信任端口 |
||
此接口为连接DHCP客户端的接口 |
||
(可选)启用端口的DHCP Snooping表项记录功能 |
缺省情况下,在启用DHCP Snooping功能后,端口的DHCP Snooping表项记录功能处于关闭状态 |
配置DHCP Snooping支持Option 82功能时,需要注意:
· 如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping支持Option 82功能的配置不会生效;该接口退出聚合组后,之前的配置才会生效。
· 为使Option 82功能正常使用,需要在DHCP服务器和DHCP Snooping设备上都进行相应配置。 DHCP服务器的相关配置请参见“2.10 配置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”。
表4-5 配置DHCP Snooping支持Option 82功能
启用DHCP Snooping支持Option 82功能 |
缺省情况下,DHCP Snooping支持Option 82功能处于关闭状态 |
|
(可选)配置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的填充格式。 |
(可选)配置Circuit ID子选项的填充内容和填充格式 |
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex 如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP Snooping添加或替换Option 82失败 |
|
(可选)配置Remote ID子选项的填充内容和填充格式 |
缺省情况下,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表项不会丢失。
表4-6 配置DHCP Snooping表项固化功能
指定存储DHCP Snooping表项的文件名称 |
执行本命令后,会立即触发一次表项备份。之后,如果未配置dhcp snooping binding database update interval命令,若表项发生变化,默认在300秒之后刷新存储文件;若表项未发生变化,则不再刷新存储文件。如果配置了dhcp snooping binding database update interval命令,若表项发生变化,则到达刷新时间间隔后刷新存储文件;若表项未发生变化,则不再刷新存储文件 |
|
(可选)将当前的DHCP Snooping表项保存到用户指定的文件中 |
||
(可选)配置刷新DHCP Snooping表项存储文件的延迟时间 |
缺省情况下,若DHCP Snooping表项不变化,则不刷新存储文件;若DHCP Snooping表项发生变化,默认在300秒之后刷新存储文件 |
执行undo dhcp snooping enable命令关闭DHCP Snooping功能后,设备会删除所有DHCP Snooping表项,文件中存储的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地址表”。
表4-7 启用DHCP Snooping的MAC地址检查功能
启用DHCP Snooping的MAC地址检查功能 |
缺省情况下,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服务器。
表4-8 启用DHCP Snooping的DHCP请求方向报文检查功能
启用DHCP Snooping的DHCP请求方向报文检查功能 |
缺省情况下,DHCP Snooping的DHCP请求方向报文检查功能处于关闭状态 只能在二层以太网接口和二层聚合接口上启用DHCP Snooping的DHCP请求方向报文检查功能 |
通过本配置可以限制接口动态学习DHCP Snooping表项的最大数目,以防止接口学习到大量DHCP Snooping表项,占用过多的系统资源。
表4-9 配置接口动态学习DHCP Snooping表项的最大数目
配置接口动态学习DHCP Snooping表项的最大数目 |
缺省情况下,不限制接口动态学习DHCP Snooping表项的最大数目 |
在完成上述配置后,在任意视图下执行display命令可以显示DHCP Snooping的配置情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCP Snooping的统计信息。
表4-10 DHCP Snooping显示和维护
Switch B通过以太网端口GigabitEthernet1/0/1连接到合法DHCP服务器,通过以太网端口GigabitEthernet1/0/3连接到非法DHCP服务器,通过GigabitEthernet1/0/2连接到DHCP客户端。要求:
· 与合法DHCP服务器相连的端口可以转发DHCP服务器的响应报文,而其他端口不转发DHCP服务器的响应报文。
· 记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定信息。
图4-3 DHCP Snooping组网示意图
# 启用DHCP Snooping功能。
[SwitchB] dhcp snooping enable
# 设置GigabitEthernet1/0/1端口为信任端口。
[SwitchB] interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] port link-mode bridge
[SwitchB-GigabitEthernet1/0/1] dhcp snooping trust
[SwitchB-GigabitEthernet1/0/1] quit
# 在GigabitEthernet1/0/2上启用DHCP Snooping表项功能。
[SwitchB] interface gigabitethernet 1/0/2
[SwitchB-GigabitEthernet1/0/2] port link-mode bridge
[SwitchB-GigabitEthernet1/0/2] dhcp snooping binding record
[SwitchB-GigabitEthernet1/0/2] quit
配置完成后,DHCP客户端只能从合法DHCP服务器获取IP地址和其它配置信息,非法DHCP服务器无法为DHCP客户端分配IP地址和其他配置信息。且使用display dhcp snooping binding可查询到获取到的DHCP Snooping表项。
· Switch B上启用DHCP Snooping功能,并支持Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· 在GigabitEthernet1/0/2上配置Circuit ID填充内容为company001,Remote ID填充内容为device001;
· 在GigabitEthernet1/0/3上配置Circuit ID以verbose模式填充,接入节点标识为sysname,填充格式为ASCII格式,Remote ID填充内容为device001;
图4-4 DHCP Snooping支持Option 82配置示意图
# 启用DHCP Snooping功能。
[SwitchB] dhcp snooping enable
# 设置GigabitEthernet1/0/1端口为信任端口。
[SwitchB] interface gigabitethernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] dhcp snooping trust
[SwitchB-GigabitEthernet1/0/1] quit
# 在GigabitEthernet1/0/2上配置DHCP Snooping支持Option 82功能。
[SwitchB] interface gigabitethernet 1/0/2
[SwitchB-GigabitEthernet1/0/2] port link-mode bridge
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information enable
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information strategy replace
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information circuit-id string company001
[SwitchB-GigabitEthernet1/0/2] dhcp snooping information remote-id string device001
[SwitchB-GigabitEthernet1/0/2] quit
# 在端口GigabitEthernet1/0/3上配置DHCP Snooping支持Option 82功能。
[SwitchB] interface gigabitethernet 1/0/3
[SwitchB-GigabitEthernet1/0/3] port link-mode bridge
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information enable
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information strategy replace
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information circuit-id verbose node-identifier sysname format ascii
[SwitchB-GigabitEthernet1/0/3] dhcp snooping information remote-id string device001
配置完成后,使用display dhcp snooping information命令可查看到DHCP Snooping在端口GigabitEthernet1/0/2和GigabitEthernet1/0/3上Option 82的配置信息。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!