• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 新华三人才研学中心
  • 关于我们

04-三层技术-IP业务配置指导

目录

03-DHCP配置

本章节下载 03-DHCP配置  (507.48 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S9800/S9800/Configure/Operation_Manual/H3C_S9800_CG-Release_2109-6W100/04/201401/815421_30005_0.htm

03-DHCP配置

  录

1 DHCP概述

1.1 DHCP简介

1.2 DHCP的IP地址分配

1.2.1 IP地址分配策略

1.2.2 IP地址获取过程

1.2.3 IP地址的租约更新

1.3 DHCP报文格式

1.4 DHCP选项

1.4.1 DHCP选项简介

1.4.2 DHCP常用选项介绍

1.4.3 自定义的选项格式

1.5 协议规范

2 DHCP中继

2.1 DHCP中继简介

2.1.1 DHCP中继的应用环境

2.1.2 DHCP中继的基本原理

2.1.3 DHCP中继支持Option 82功能

2.2 DHCP中继配置任务简介

2.3 配置DHCP中继

2.3.1 启用DHCP服务

2.3.2 配置接口工作在DHCP中继模式

2.3.3 指定DHCP服务器的地址

2.3.4 配置DHCP中继的安全功能

2.3.5 配置通过DHCP中继释放客户端的IP地址

2.3.6 配置DHCP中继支持Option 82功能

2.3.7 配置DHCP中继发送DHCP报文的DSCP优先级

2.4 DHCP中继显示和维护

2.5 DHCP中继典型配置举例

2.5.1 DHCP中继配置举例

2.5.2 DHCP中继支持Option 82配置举例

2.6 DHCP中继常见配置错误举例

3 DHCP客户端

3.1 DHCP客户端简介

3.2 配置接口通过DHCP协议获取IP地址

3.3 配置接口使用的DHCP客户端ID

3.4 使能地址冲突检查功能

3.5 配置DHCP客户端发送DHCP报文的DSCP优先级

3.6 DHCP客户端显示和维护

3.7 DHCP客户端典型配置举例

4 DHCP Snooping

4.1 DHCP Snooping简介

4.1.1 DHCP Snooping作用

4.1.2 信任端口的典型应用环境

4.1.3 DHCP Snooping支持Option 82功能

4.2 DHCP Snooping配置任务简介

4.3 配置DHCP Snooping基本功能

4.4 配置DHCP Snooping支持Option 82功能

4.5 配置DHCP Snooping表项备份功能

4.6 配置防止DHCP饿死攻击

4.7 配置防止伪造DHCP请求方向报文攻击

4.8 配置接口动态学习DHCP Snooping表项的最大数目

4.9 配置DHCP Snooping报文限速功能

4.10 DHCP Snooping显示和维护

4.11 DHCP Snooping典型配置举例

4.11.1 DHCP Snooping配置举例

4.11.2 DHCP Snooping支持Option 82配置举例

 


1 DHCP概述

1.1  DHCP简介

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配IP地址等网络配置参数。

DHCP采用客户端/服务器通信模式,由客户端向服务器提出请求分配网络配置参数的申请,服务器返回为客户端分配的IP地址等配置信息,以实现IP地址等信息的动态配置。

在DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机),如图1-1所示。

DHCP客户端和DHCP服务器处于不同物理网段时,客户端可以通过DHCP中继与服务器通信,获取IP地址及其他配置信息。DHCP中继的详细介绍,请参见“2.1  DHCP中继简介”。

图1-1 DHCP典型应用

 

1.2  DHCP的IP地址分配

1.2.1  IP地址分配策略

针对客户端的不同需求,DHCP提供三种IP地址分配策略:

·     手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址。通过DHCP将配置的固定IP地址分配给客户端。

·     自动分配地址:DHCP为客户端分配租期为无限长的IP地址。

·     动态分配地址:DHCP为客户端分配具有一定有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。

1.2.2  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地址仍可分配给其他客户端。

1.2.3  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服务器的处理方式同上,不再赘述。

1.3  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地址等配置信息。

1.4  DHCP选项

1.4.1  DHCP选项简介

为了与BOOTP(Bootstrap Protocol,自举协议)兼容,DHCP保留了BOOTP的消息格式。DHCP和BOOTP消息的不同主要体现在选项(Options)字段。DHCP在BOOTP基础上增加的功能,通过Options字段来实现。

DHCP利用Options字段传递控制信息和网络配置参数,实现地址动态分配的同时,为客户端提供更加丰富的网络配置信息。

DHCP选项的格式如图1-4所示。

图1-4 DHCP选项格式

 

1.4.2  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。

1.4.3  自定义的选项格式

有些选项的内容,RFC 2132中没有统一规定,例如Option 43、Option 82和Option 184。下面将介绍设备上定义的几种选项格式。

1. 厂商特定信息选项(Option 43)

Option 43称为厂商特定信息选项。DHCP服务器和DHCP客户端通过Option 43交换厂商特定的信息。

设备作为DHCP客户端时,可以通过Option 43获取:

·     ACS(Auto-Configuration Server,自动配置服务器)的参数,包括URL地址、用户名和密码。

·     服务提供商标识,CPE(Customer Premises Equipment,用户侧设备)从DHCP服务器获取该信息后,将该信息通告给ACS,以便ACS选择服务提供商特有的配置和参数等。

·     PXE(Preboot eXecution Environment,预启动执行环境)引导服务器地址,以便客户端从PXE引导服务器获取启动文件或其他控制信息。

(1)     Option 43格式

图1-5 Option 43格式

 

为了提供可扩展性,通过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引导服务器地址子选项取值字段的格式

 

2. 中继代理信息选项(Option 82

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命令配置。

3. Option 184

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用户建立连接并通信。

1.5  协议规范

与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


2 DHCP中继

说明

DHCP中继功能中所指的“接口”为三层接口,包括VLAN接口、三层以太网接口等。三层以太网接口是指在以太网接口视图下通过port link-mode route命令切换为三层模式的以太网接口,有关以太网接口模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网接口配置”。

 

2.1  DHCP中继简介

2.1.1  DHCP中继的应用环境

由于在IP地址动态获取过程中采用广播方式发送请求报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。

DHCP中继功能的引入解决了这一难题:客户端可以通过DHCP中继与其他网段的DHCP服务器通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。

2.1.2  DHCP中继的基本原理

图2-1是DHCP中继的典型应用示意图。

图2-1 DHCP中继的典型组网应用

 

通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2  IP地址获取过程”。

图2-2 DHCP中继的工作过程

 

图2-2所示,DHCP中继的工作过程为:

(1)     具有DHCP中继功能的网络设备收到DHCP客户端以广播方式发送的DHCP-DISCOVER或DHCP-REQUEST报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并根据配置将报文单播转发给指定的DHCP服务器。

(2)     DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并通过DHCP中继将配置信息转发给客户端,完成对客户端的动态配置。

2.1.3  DHCP中继支持Option 82功能

Option 82记录了DHCP客户端的位置信息。管理员可以利用该选项定位DHCP客户端,实现根据Option 82为客户端分配特定范围的地址、对客户端进行安全和计费等控制。Option 82的详细介绍请参见“1.4.3  2. 中继代理信息选项(Option 82)”。

如果DHCP中继支持Option 82功能,则当DHCP中继接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充模式等对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。具体的处理方式见表2-1

如果DHCP中继收到的应答报文中带有Option 82,则会将Option 82删除后再转发给DHCP客户端。

表2-1 DHCP中继支持Option 82的处理方式

收到DHCP请求报文

处理策略

DHCP中继对报文的处理

收到的报文中带有Option 82

Drop

丢弃报文

Keep

保持报文中的Option 82不变并进行转发

Replace

根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发

收到的报文中不带有Option 82

-

根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发

 

2.2  DHCP中继配置任务简介

表2-2 DHCP中继配置任务简介

配置任务

说明

详细配置

启用DHCP服务

必选

2.3.1 

配置接口工作在DHCP中继模式

必选

2.3.2 

指定DHCP服务器的地址

必选

2.3.3 

配置DHCP中继的安全功能

可选

2.3.4 

配置通过DHCP中继释放客户端的IP地址

可选

2.3.5 

配置DHCP中继支持Option 82功能

可选

2.3.6 

配置DHCP中继发送DHCP报文的DSCP优先级

可选

2.3.7 

 

2.3  配置DHCP中继

2.3.1  启用DHCP服务

只有启用DHCP服务后,其它相关的DHCP中继配置才能生效。

表2-3 启用DHCP服务

操作

命令

说明

进入系统视图

system-view

-

启用DHCP服务

dhcp enable

缺省情况下,DHCP服务处于禁止状态

 

2.3.2  配置接口工作在DHCP中继模式

配置接口工作在中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给DHCP服务器,由服务器分配地址。

DHCP客户端通过DHCP中继获取IP地址时,DHCP服务器上需要配置与DHCP中继连接DHCP客户端的接口IP地址所在网段(网络号和掩码)匹配的地址池,否则会导致DHCP客户端无法获得正确的IP地址。

表2-4 配置接口工作在DHCP中继模式

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口工作在DHCP中继模式

dhcp select relay

缺省情况下,启用DHCP服务后,接口没有工作在DHCP中继模式

 

2.3.3  指定DHCP服务器的地址

为了提高可靠性,可以在一个网络中设置多个DHCP服务器。DHCP中继上配置多个DHCP服务器后,DHCP中继会将客户端发来的DHCP报文转发给所有的服务器。

指定的DHCP服务器的IP地址不能与DHCP中继的接口IP地址在同一网段。否则,可能导致客户端无法获得IP地址。

表2-5 指定DHCP服务器的地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

指定DHCP服务器的地址

dhcp relay server-address ip-address

缺省情况下,没有在DHCP中继上指定DHCP服务器的地址

通过多次执行dhcp relay server-address命令可以指定多个DHCP服务器,一个接口下最多可以指定8个DHCP服务器

 

2.3.4  配置DHCP中继的安全功能

1. 配置DHCP中继用户地址表项记录功能

为了防止非法主机静态配置一个IP地址并访问外部网络,设备支持DHCP中继用户地址表项记录功能。

启用该功能后,当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与硬件地址的绑定关系,生成DHCP中继的用户地址表项。

本功能与其他IP地址安全功能(如ARP地址检查和IP Source Guard)配合,可以实现只允许匹配用户地址表项中绑定关系的报文通过DHCP中继。从而,保证非法主机不能通过DHCP中继与外部网络通信。

表2-6 配置DHCP中继用户地址表项记录功能

操作

命令

说明

进入系统视图

system-view

-

启用DHCP中继的用户地址表项记录功能

dhcp relay client-information record

缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态

 

2. 配置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地址对应的表项。

表2-7 配置DHCP中继动态用户地址表项定时刷新功能

操作

命令

说明

进入系统视图

system-view

-

开启DHCP中继动态用户地址表项定时刷新功能

dhcp relay client-information refresh enable

缺省情况下,DHCP中继动态用户地址表项定时刷新功能处于开启状态

配置DHCP中继动态用户地址表项的定时刷新周期

dhcp relay client-information refresh [ auto | interval interval ]

缺省情况下,定时刷新周期为auto,即根据表项的数目自动计算刷新时间间隔

 

3. 配置防止DHCP饿死攻击

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请求报文后重新进行合法性检查。

表2-8 启用DHCP中继的MAC地址检查功能

操作

命令

说明

进入系统视图

system-view

-

配置DHCP中继的MAC地址检查表项的老化时间

dhcp relay check mac-address aging-time time

缺省情况下,DHCP中继的MAC地址检查表项的老化时间为300秒

如果未通过dhcp relay check mac-address命令启用DHCP中继的MAC地址检查功能,则本命令的配置不会生效

进入接口视图

interface interface-type interface-number

-

启用DHCP中继的MAC地址检查功能

dhcp relay check mac-address

缺省情况下,DHCP中继的MAC地址检查功能处于关闭状态

 

2.3.5  配置通过DHCP中继释放客户端的IP地址

在某些情况下,可能需要通过DHCP中继手工释放客户端申请到的IP地址。如果DHCP中继上存在客户端IP地址对应的动态用户地址表项,则配置通过DHCP中继释放该客户端IP地址后,DHCP中继会主动向DHCP服务器发送DHCP-RELEASE报文。DHCP服务器收到该报文后,将会释放指定IP地址的租约。DHCP中继也会删除该动态用户地址表项。

释放的客户端IP地址必须是动态用户地址表项中存在的IP地址,否则DHCP中继无法释放该IP地址。

表2-9 配置通过DHCP中继释放客户端的IP地址

操作

命令

说明

进入系统视图

system-view

-

向DHCP服务器请求释放客户端申请到的IP地址

dhcp relay release ip client-ip

-

 

2.3.6  配置DHCP中继支持Option 82功能

为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。

表2-10 配置DHCP中继支持Option 82功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

启用DHCP中继支持Option 82功能

dhcp relay information enable

缺省情况下,禁止DHCP中继支持Option 82功能

(可选)配置DHCP中继对包含Option 82的请求报文的处理策略

dhcp relay information strategy { drop | keep | replace }

缺省情况下,处理策略为replace

(可选)配置Circuit ID子选项的填充内容和填充格式

dhcp relay information circuit-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中继将丢弃该报文

(可选)配置Remote ID子选项的填充内容和填充格式

dhcp relay information remote-id { normal [ format { ascii | hex } ] | string remote-id | sysname }

缺省情况下,Remote ID子选项的填充模式为Normal;填充格式为hex

 

2.3.7  配置DHCP中继发送DHCP报文的DSCP优先级

DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP中继发送的DHCP报文的DSCP优先级。

表2-11 配置DHCP中继发送DHCP报文的DSCP优先级

操作

命令

说明

进入系统视图

system-view

-

配置DHCP中继发送DHCP报文的DSCP优先级

dhcp dscp dscp-value

缺省情况下,DHCP中继发送的DHCP报文的DSCP优先级为56

 

2.4  DHCP中继显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP中继的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令清除DHCP中继的统计信息。

表2-12 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]

显示DHCP中继的相关报文统计信息

display dhcp relay statistics [ interface interface-type interface-number ]

显示DHCP中继的MAC地址检查表项

display dhcp relay check mac-address

清除DHCP中继的用户地址表项信息

reset dhcp relay client-information [ interface interface-type interface-number | ip ip-address ]

清除DHCP中继的相关报文统计信息

reset dhcp relay statistics [ interface interface-type interface-number ]

 

2.5  DHCP中继典型配置举例

2.5.1  DHCP中继配置举例

1. 组网需求

·     DHCP客户端所在网段为10.10.1.0/24,DHCP服务器的IP地址为10.1.1.1/24;

·     由于DHCP客户端和DHCP服务器不在同一网段,因此,需要在客户端所在网段设置DHCP中继设备,以便客户端可以从DHCP服务器申请到10.10.1.0/24网段的IP地址及相关配置信息;

·     Switch A作为DHCP中继通过端口(属于VLAN10)连接到DHCP客户端所在的网络,交换机VLAN接口10的IP地址为10.10.1.1/24,VLAN接口20的IP地址为10.1.1.2/24。

2. 组网图

图2-3 DHCP中继组网示意图

 

3. 配置步骤

# 配置各接口的IP地址(略)。

# 启用DHCP服务。

<SwitchA> system-view

[SwitchA] dhcp enable

# 配置VLAN接口10工作在DHCP中继模式。

[SwitchA] interface vlan-interface 10

[SwitchA-Vlan-interface10] dhcp select relay

# 配置DHCP服务器的地址。

[SwitchA-Vlan-interface10] 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中继连接客户端的接口IP地址与DHCP服务器的IP地址不在同一网段,因此需要在DHCP服务器上通过静态路由或动态路由协议保证两者之间路由可达。

·     为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置。

 

2.5.2  DHCP中继支持Option 82配置举例

1. 组网需求

·     在DHCP中继Switch A上启用Option 82功能;

·     对包含Option 82的请求报文的处理策略为replace

·     Circuit ID填充内容为company001,Remote ID填充内容为device001;

·     Switch A将添加Option 82的DHCP请求报文转发给DHCP服务器,使得DHCP客户端可以获取到IP地址。

2. 组网图

图2-3所示。

3. 配置步骤

# 配置各接口的IP地址(略)。

# 启用DHCP服务。

<SwitchA> system-view

[SwitchA] dhcp enable

# 配置VLAN接口10工作在DHCP中继模式。

[SwitchA] interface vlan-interface 10

[SwitchA-Vlan-interface10] dhcp select relay

# 指定DHCP服务器的地址。

[SwitchA-Vlan-interface10] dhcp relay server-address 10.1.1.1

# 配置Option 82的处理策略和填充内容。

[SwitchA-Vlan-interface10] dhcp relay information enable

[SwitchA-Vlan-interface10] dhcp relay information strategy replace

[SwitchA-Vlan-interface10] dhcp relay information circuit-id string company001

[SwitchA-Vlan-interface10] dhcp relay information remote-id string device001

说明

为使Option 82功能正常使用,DHCP服务器也需要进行相应配置。

 

2.6  DHCP中继常见配置错误举例

1. 故障现象

客户端不能通过DHCP中继获得配置信息。

2. 故障分析

DHCP中继或DHCP服务器的配置可能有问题。可以打开调试开关显示调试信息,并通过执行display命令显示接口状态信息的方法来分析定位。

3. 故障处理

·     检查DHCP服务器和DHCP中继是否启用了DHCP服务。

·     检查DHCP服务器是否配置有DHCP客户端所在网段的地址池。

·     检查具有DHCP中继功能的网络设备和DHCP服务器是否配置有相互可达的路由。

·     检查具有DHCP中继功能的网络设备是否在连接DHCP客户端所在网段的接口上指定了正确的DHCP服务器地址。


3 DHCP客户端

3.1  DHCP客户端简介

为了方便用户配置和集中管理,可以指定设备的接口作为DHCP客户端,使用DHCP协议从DHCP服务器动态获得IP地址等参数。

DHCP客户端中对于接口的相关配置,目前只能在三层以太网接口(包括管理以太网口)和VLAN接口上进行。

多个具有相同MAC地址的VLAN接口通过中继以DHCP方式申请IP地址时,不能用Windows 2000 Server和Windows 2003 Server作为DHCP服务器。

3.2  配置接口通过DHCP协议获取IP地址

配置接口通过DHCP协议获取IP地址,需要注意:

·     接口作为DHCP客户端多次申请IP地址失败后,将停止申请,并为接口配置缺省IP地址。

·     接口可以采用多种方式获得IP地址,新的配置方式会覆盖原有的配置方式。

·     当接口被配置为通过DHCP动态获取IP地址后,不能再给该接口配置从IP地址。

·     如果DHCP服务器为接口分配的IP地址与设备上其他接口的IP地址在同一网段,则该接口不会使用该IP地址,且会再向DHCP服务器重新申请IP地址。

表3-1 配置接口通过DHCP协议获取IP地址

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口通过DHCP协议获取IP地址

ip address dhcp-alloc

缺省情况下,接口不通过DHCP协议获取IP地址

 

3.3  配置接口使用的DHCP客户端ID

DHCP客户端ID用来填充DHCP报文Option 61,作为识别DHCP客户端的唯一标识。DHCP服务器可以根据客户端ID为特定的客户端分配特定的IP地址。DHCP客户端ID包括类型和取值两部分,用户可以通过以下三种方法指定DHCP客户端ID:当客户端ID的取值为ASCII字符串时,对应的类型值为00;当客户端ID的取值为十六进制字符串时,对应的类型值为该十六进制字符串的前两个字符;当客户端ID使用指定接口的MAC地址时,对应的类型值为01。以上三种方式都需要由用户保证不同客户端的客户端ID不会相同。

表3-2 配置接口使用的DHCP客户端ID

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

-

配置接口使用的DHCP客户端ID

dhcp client identifier { ascii string | hex string | mac interface-type interface-number }

缺省情况下,根据本接口MAC地址生成DHCP客户端ID,如果本接口没有MAC地址,则获取设备第一个以太接口的MAC地址生成DHCP客户端ID

 

3.4  使能地址冲突检查功能

通常情况下,DHCP客户端上开启地址冲突检查功能,通过发送和接收ARP报文,对DHCP服务器分配的IP地址进行地址冲突检测。

如果攻击者仿冒地址拥有者进行ARP应答,就可以欺骗DHCP客户端,导致DHCP客户端无法正常使用分配到的IP地址。在网络中存在上述攻击者时,建议在客户端上关闭地址冲突检查功能。

表3-3 使能地址冲突检查功能

操作

命令

说明

进入系统视图

system-view

-

使能地址冲突检查功能

dhcp client dad enable

缺省情况下,地址冲突检查功能处于开启状态

 

3.5  配置DHCP客户端发送DHCP报文的DSCP优先级

DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP客户端发送的DHCP报文的DSCP优先级。

表3-4 配置DHCP客户端发送DHCP报文的DSCP优先级

操作

命令

说明

进入系统视图

system-view

-

配置DHCP客户端发送DHCP报文的DSCP优先级

dhcp client dscp dscp-value

缺省情况下,DHCP客户端发送的DHCP报文的DSCP优先级为56

 

3.6  DHCP客户端显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP客户端的信息,通过查看显示信息验证配置的效果。

表3-5 DHCP客户端显示和维护

操作

命令

显示DHCP客户端的相关信息

display dhcp client [ verbose ] [ interface interface-type interface-number ]

 

3.7  DHCP客户端典型配置举例

1. 组网需求

Switch的端口(属于VLAN1)接入局域网,VLAN接口1通过DHCP协议从DHCP服务器获取IP地址和DNS服务器地址信息。

2.  组网图

图3-1 DHCP客户端配置举例组网图

 

3. 配置步骤

# 配置VLAN接口1通过DHCP动态获取地址。

<Switch> system-view

[Switch] interface vlan-interface 1

[Switch-Vlan-interface1] ip address dhcp-alloc

[Switch-Vlan-interface1] quit

4. 验证配置

# 通过display dhcp client命令可以查看Switch申请到的IP地址和网络配置参数。


4 DHCP Snooping

说明

设备只有位于DHCP客户端与DHCP服务器之间,或DHCP客户端与DHCP中继之间时,DHCP Snooping功能配置后才能正常工作;设备位于DHCP服务器与DHCP中继之间时,DHCP Snooping功能配置后不能正常工作。

 

4.1  DHCP Snooping简介

4.1.1  DHCP Snooping作用

DHCP Snooping是DHCP的一种安全特性,具有如下功能:

1. 保证客户端从合法的服务器获取IP地址

网络中如果存在私自架设的非法DHCP服务器,则可能导致DHCP客户端获取到错误的IP地址和网络配置参数,从而无法正常通信。为了使DHCP客户端能通过合法的DHCP服务器获取IP地址,DHCP Snooping安全机制允许将端口设置为信任端口和不信任端口:

·     信任端口正常转发接收到的DHCP报文。

·     不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文后,丢弃该报文。

在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的伪DHCP服务器无法为DHCP客户端分配IP地址。

2. 记录DHCP客户端IP地址与MAC地址的对应关系

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.2  信任端口的典型应用环境

1. 连接DHCP服务器

图4-1 信任端口和非信任端口

 

图4-1所示,在DHCP Snooping设备上指向DHCP服务器方向的端口需要设置为信任端口,以便DHCP Snooping设备正常转发DHCP服务器的应答报文,保证DHCP客户端能够从合法的DHCP服务器获取IP地址。

2. DHCP Snooping级联网络

在多个DHCP Snooping设备级联的网络中,为了节省系统资源,不需要每台DHCP Snooping设备都记录所有DHCP客户端的IP地址和MAC地址的绑定信息,只需在与客户端直接相连不信任端口上记录绑定信息。间接与DHCP客户端相连的不信任端口不需要记录IP地址和MAC地址绑定信息。

图4-2 DHCP Snooping级联组网图

 

 

图4-2中设备各端口的角色如表4-1所示。

表4-1 端口的角色

设备

记录绑定信息的不信任端口

不记录绑定信息的不信任端口

信任端口

Switch A

FortyGigE1/0/1

FortyGigE1/0/3

FortyGigE1/0/2

Switch B

FortyGigE1/0/3和FortyGigE1/0/4

FortyGigE1/0/1

FortyGigE1/0/2

Switch C

FortyGigE1/0/1

FortyGigE1/0/3和FortyGigE1/0/4

FortyGigE1/0/2

 

4.1.3  DHCP Snooping支持Option 82功能

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

Drop

丢弃报文

Keep

保持报文中的Option 82不变并进行转发

Replace

根据DHCP Snooping上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发

收到的报文中不带有Option 82

-

根据DHCP Snooping上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发

 

4.2  DHCP Snooping配置任务简介

如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping相关配置不会生效;该接口退出聚合组后,之前的配置才会生效。

表4-3 DHCP Snooping配置任务简介

配置任务

说明

详细配置

配置DHCP Snooping基本功能

必选

4.3 

配置DHCP Snooping支持Option 82功能

可选

4.4 

配置DHCP Snooping表项备份功能

可选

4.5 

配置防止DHCP饿死攻击

可选

4.6 

配置防止伪造DHCP请求方向报文攻击

可选

4.7 

配置接口动态学习DHCP Snooping表项的最大数目

可选

4.8 

配置DHCP Snooping报文限速功能

可选

4.9 

 

4.3  配置DHCP Snooping基本功能

配置DHCP Snooping基本功能时,需要注意:

·     为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。

·     目前,可以设置为DHCP Snooping信任端口的接口类型包括:二层以太网接口、二层聚合接口。关于聚合接口的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。

·     如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping相关配置不会生效;该接口退出聚合组后,之前的配置才会生效。

表4-4 配置DHCP Snooping基本功能

操作

命令

说明

进入系统视图

system-view

-

启用DHCP Snooping功能

dhcp snooping enable

缺省情况下,DHCP Snooping功能处于关闭状态

进入接口视图

interface interface-type interface-number

此接口为连接DHCP服务器的接口

可支持二层以太网接口/二层聚合接口

配置端口为信任端口

dhcp snooping trust

缺省情况下,在启用DHCP Snooping功能后,设备的所有端口均为不信任端口

退回系统视图

quit

-

进入接口视图

interface interface-type interface-number

此接口为连接DHCP客户端的接口

可支持二层以太网接口/二层聚合接口

(可选)启用端口的DHCP Snooping表项记录功能

dhcp snooping binding record

缺省情况下,在启用DHCP Snooping功能后, 端口的DHCP Snooping表项记录功能处于关闭状态

 

4.4  配置DHCP Snooping支持Option 82功能

配置DHCP Snooping支持Option 82功能时,需要注意:

·     如果二层以太网接口加入聚合组,则在该接口上进行的DHCP Snooping支持Option 82功能的配置不会生效;该接口退出聚合组后,之前的配置才会生效。

·     为使Option 82功能正常使用,需要在DHCP服务器和DHCP Snooping设备上都进行相应配置。

·     如果以设备名称(sysname)作为节点标识填充DHCP报文的Option 82,则设备名称中不能包含空格;否则,DHCP Snooping将不处理该报文。用户可以通过sysname命令配置设备名称,该命令的详细介绍请参见“基本配置命令参考”中的“设备管理”。

表4-5 配置DHCP Snooping支持Option 82功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

可支持二层以太网接口/二层聚合接口

启用DHCP Snooping支持Option 82功能

dhcp snooping information enable

缺省情况下,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的填充格式;处理策略为keepdrop时,不需要配置Option 82的填充格式。

(可选)配置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

(可选)配置Remote ID子选项的填充内容和填充格式

dhcp snooping information remote-id { normal [ format { ascii | hex } ] | [ vlan vlan-id ] string remote-id | sysname }

缺省情况下,Remote ID子选项的填充模式为Normal,填充格式为hex

 

4.5  配置DHCP Snooping表项备份功能

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表项备份功能

操作

命令

说明

进入系统视图

system-view

-

指定存储DHCP Snooping表项的文件名称

dhcp snooping binding database filename { filename | url url [ username username [ password { cipher | simple } key ] ] }

缺省情况下,未指定存储文件名称

执行本命令后,会立即触发一次表项备份。之后,如果未配置dhcp snooping binding database update interval命令,若表项发生变化,默认在300秒之后刷新存储文件;若表项未发生变化,则不再刷新存储文件。如果配置了dhcp snooping binding database update interval命令,若表项发生变化,则到达刷新时间间隔后刷新存储文件;若表项未发生变化,则不再刷新存储文件

(可选)将当前的DHCP Snooping表项保存到用户指定的文件中

dhcp snooping binding database update now

本命令只用来触发一次DHCP Snooping表项的备份

(可选)配置DHCP Snooping表项存储文件的刷新时间间隔

dhcp snooping binding database update interval seconds

缺省情况下,若DHCP Snooping表项不变化,则不刷新存储文件;若DHCP Snooping表项发生变化,默认在300秒之后刷新存储文件

 

说明

执行undo dhcp snooping enable命令关闭DHCP Snooping功能后,设备会删除所有DHCP Snooping表项,文件中存储的DHCP Snooping表项也将被删除。

 

4.6  配置防止DHCP饿死攻击

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地址检查功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

可支持二层以太网接口/二层聚合接口

启用DHCP Snooping的MAC地址检查功能

dhcp snooping check mac-address

缺省情况下,DHCP Snooping的MAC地址检查功能处于关闭状态

 

4.7  配置防止伪造DHCP请求方向报文攻击

本功能用来检查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请求方向报文检查功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

可支持二层以太网接口/二层聚合接口

启用DHCP Snooping的DHCP请求方向报文检查功能

dhcp snooping check request-message

缺省情况下,DHCP Snooping的DHCP请求方向报文检查功能处于关闭状态

只能在二层以太网接口、二层聚合接口上启用DHCP Snooping的DHCP请求方向报文检查功能

 

4.8  配置接口动态学习DHCP Snooping表项的最大数目

通过本配置可以限制接口动态学习DHCP Snooping表项的最大数目,以防止接口学习到大量DHCP Snooping表项,占用过多的系统资源。

表4-9 配置接口动态学习DHCP Snooping表项的最大数目

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

可支持二层以太网接口/二层聚合接口

配置接口动态学习DHCP Snooping表项的最大数目

dhcp snooping max-learning-num number

缺省情况下,不限制接口动态学习DHCP Snooping表项的数目

 

4.9  配置DHCP Snooping报文限速功能

为了避免非法用户发送大量DHCP报文,对网络造成攻击,DHCP Snooping支持报文限速功能,限制接口接收DHCP报文的速率。当接口接收的DHCP报文速率超过限制的最高速率时,DHCP Snooping设备将丢弃超过速率限制的报文。

表4-10 配置DHCP Snooping报文限速功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图

interface interface-type interface-number

可支持二层以太网接口/二层聚合接口

启用DHCP Snooping的报文限速功能

dhcp snooping rate-limit rate

缺省情况下, DHCP Snooping的报文限速功能处于关闭状态,即不限制接口接收DHCP报文的速率

只能在二层以太网接口、二层聚合接口上启用DHCP Snooping的报文限速功能

如果二层以太网接口加入了聚合组,则该接口采用对应二层聚合接口下的DHCP Snooping报文限速配置,如果二层以太网接口离开聚合组,则该接口采用二层以太网接口下的DHCP Snooping报文限速配置

 

4.10  DHCP Snooping显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示DHCP Snooping的配置情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除DHCP Snooping的统计信息。

表4-11 DHCP Snooping显示和维护

操作

命令

显示DHCP Snooping表项信息

display dhcp snooping binding [ ip ip-address [ vlan vlan-id ] ]

显示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 ]

 

4.11  DHCP Snooping典型配置举例

4.11.1  DHCP Snooping配置举例

1. 组网需求

Switch通过以太网端口FortyGigE1/0/1连接到合法DHCP服务器,通过以太网端口FortyGigE1/0/3连接到非法DHCP服务器,通过FortyGigE1/0/2连接到DHCP客户端。要求:

·     与合法DHCP服务器相连的端口可以转发DHCP服务器的响应报文,而其他端口不转发DHCP服务器的响应报文。

·     记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定信息。

2. 组网图

图4-3 DHCP Snooping组网示意图

 

3. 配置步骤

# 启用DHCP Snooping功能。

<Switch> system-view

[Switch] dhcp snooping enable

# 设置FortyGigE1/0/1端口为信任端口。

[Switch] interface FortyGigE 1/0/1

[Switch-FortyGigE1/0/1] dhcp snooping trust

[Switch-FortyGigE1/0/1] quit

# 在FortyGigE1/0/2上启用安全表项功能。

[Switch] interface FortyGigE 1/0/2

[Switch-FortyGigE1/0/2] dhcp snooping binding record

[Switch-FortyGigE1/0/2] quit

4. 验证配置

配置完成后,DHCP客户端只能从合法DHCP服务器获取IP地址和其它配置信息,非法DHCP服务器无法为DHCP客户端分配IP地址和其他配置信息。且使用display dhcp snooping binding可查询到获取到的DHCP Snooping表项。

4.11.2  DHCP Snooping支持Option 82配置举例

1. 组网需求

·     Switch上启用DHCP Snooping功能,并支持Option 82功能;

·     对包含Option 82的请求报文的处理策略为replace

·     在FortyGigE1/0/2上配置Circuit ID填充内容为company001,Remote ID填充内容为device001;

·     在FortyGigE1/0/3上配置Circuit ID以verbose模式填充Option 82,接入节点标识为sysname,填充格式为ASCII格式,Remote ID填充内容为device001;

2. 组网图

图4-4 DHCP Snooping支持Option 82配置示意图

 

3. 配置步骤

# 启用DHCP Snooping功能。

<Switch> system-view

[Switch] dhcp snooping enable

# 设置FortyGigE1/0/1端口为信任端口。

[Switch] interface FortyGigE 1/0/1

[Switch-FortyGigE1/0/1] dhcp snooping trust

[Switch-FortyGigE1/0/1] quit

# 在FortyGigE1/0/2上配置DHCP Snooping支持Option 82功能。

[Switch] interface FortyGigE 1/0/2

[Switch-FortyGigE1/0/2] dhcp snooping information enable

[Switch-FortyGigE1/0/2] dhcp snooping information strategy replace

[Switch-FortyGigE1/0/2] dhcp snooping information circuit-id string company001

[Switch-FortyGigE1/0/2] dhcp snooping information remote-id string device001

[Switch-FortyGigE1/0/2] quit

# 在端口FortyGigE1/0/3上配置DHCP Snooping支持Option 82功能。

[Switch] interface FortyGigE 1/0/3

[Switch-FortyGigE1/0/3] dhcp snooping information enable

[Switch-FortyGigE1/0/3] dhcp snooping information strategy replace

[Switch-FortyGigE1/0/3] dhcp snooping information circuit-id verbose node-identifier sysname format ascii

[Switch-FortyGigE1/0/3] dhcp snooping information remote-id string device001

4. 验证配置

配置完成后,使用display dhcp snooping information命令可查看到DHCP Snooping在端口FortyGigE1/0/2和FortyGigE1/0/3上Option 82的配置信息。

 

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们