03-DHCP配置
本章节下载: 03-DHCP配置 (904.22 KB)
目 录
2.3.7 配置DHCP客户端的WINS服务器地址和NetBIOS节点类型
2.3.11 配置DHCP客户端的TFTP服务器地址及启动文件名
2.3.12 配置DHCP客户端的下一个提供服务的服务器IP地址
2.11 配置DHCP服务器发送的DHCP报文的DSCP优先级
3.3.8 配置DHCP中继发送的DHCP报文的DSCP优先级
4.3 配置DHCP客户端发送的DHCP报文的DSCP优先级
5.1.3 DHCP Snooping支持Option 82功能
5.4 配置DHCP Snooping支持Option 82功能
5.10.2 DHCP Snooping支持Option 82配置举例
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配IP地址等网络配置参数。
DHCP采用客户端/服务器通信模式,由客户端向服务器提出配置申请,服务器返回为客户端分配的IP地址等相应的配置信息,以实现IP地址等信息的动态配置。
在DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机),如图1-1所示。
图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报文发送给客户端。DHCP-OFFER报文的发送方式由DHCP-DISCOVER报文中的flag字段决定,具体请参见“1.3 DHCP报文格式”的介绍。
(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地址。如果DHCP客户端希望继续使用该地址,需要更新IP地址租约。
在DHCP客户端的IP地址租约期限达到一半时间时,DHCP客户端会向为它分配IP地址的DHCP服务器单播发送DHCP-REQUEST报文,以进行IP租约的更新。如果客户端可以继续使用此IP地址,则DHCP服务器回应DHCP-ACK报文,通知DHCP客户端已经获得新IP租约;如果此IP地址不可以再分配给该客户端,则DHCP服务器回应DHCP-NAK报文,通知DHCP客户端不能获得新的租约。
如果在租约的一半时间进行的续约操作失败,DHCP客户端会在租约期限达到7/8时,广播发送DHCP-REQUEST报文进行续约。DHCP服务器的处理方式同上,不再赘述。
DHCP有8种类型的报文,每种报文的格式相同,只是某些字段的取值不同。DHCP报文格式基于BOOTP的报文格式,具体格式如图1-3所示(括号中的数字表示该字段所占的字节)。
图1-3 DHCP报文格式
各字段的解释如下:
· op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在option字段中标识。
· htype、hlen:DHCP客户端的硬件地址类型及长度。
· hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
· xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
· secs:DHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0。
· flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。
· ciaddr:DHCP客户端的IP地址。
· yiaddr:DHCP服务器分配给客户端的IP地址。
· siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。
· giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
· chaddr:DHCP客户端的硬件地址。
· sname:DHCP客户端获取IP地址等信息的服务器名称。
· file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
· options:可选变长选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。
为了与BOOTP(Bootstrap Protocol,自举协议)兼容,DHCP保留了BOOTP的消息格式。DHCP和BOOTP消息的不同主要体现在选项(Option)字段。DHCP在BOOTP基础上增加的功能,通过Option字段来实现。
DHCP利用Option字段传递控制信息和网络配置参数,实现地址的动态分配,为客户端提供更加丰富的网络配置信息。
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 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格式
为了提供可扩展性,通过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,则至少要定义一个子选项。目前,DHCP中继支持两个子选项:sub-option 1(Circuit ID,电路ID子选项)和sub-option 2(Remote ID,远程ID子选项);DHCP Snooping设备支持三个子选项:sub-option 1(Circuit ID,电路ID子选项)、sub-option 2(Remote ID,远程ID子选项)和sub-option 9(子选项9)。
由于Option 82的内容没有统一规定,不同厂商通常根据需要进行填充。
设备上,可以通过两种方式配置Option 82的内容:
· 用户自定义方式:用户手工指定Option 82的内容;
· 非用户自定义方式:采用默认的normal模式、verbose模式、private模式或者standard模式填充Option 82。
目前,只有DHCP Snooping设备支持填充sub-option 9、支持private和standard填充模式。
normal和verbose填充模式中,子选项内容的填充格式可以是ASCII格式和HEX格式。
采用不同的填充模式时,各种子选项的内容如下:
(1) 采用normal模式填充
· sub-option 1的内容是接收到DHCP客户端请求报文的接口所属的VLAN ID以及接口编号。如图1-8所示,子选项类型值为1,电路ID类型值为0。
图1-8 normal模式填充的sub-option 1
· sub-option 2的内容是接收到DHCP客户端请求报文的接口MAC地址(DHCP中继)或设备的桥MAC地址(DHCP Snooping设备)。如图1-9所示,子选项类型值为2,远程ID类型值为0。
图1-9 normal模式填充的sub-option 2
(2) 采用verbose模式填充
· sub-option 1的内容包括用户配置的接入节点标识(在报文中添加Option 82的设备的标识)、接收到DHCP客户端请求报文的接口类型、接口编号和VLAN ID,如图1-10所示。
图1-10 verbose模式填充的sub-option 1
图1-10中除VLAN ID固定为两字节外,其他sub-option 1的填充内容均为可变长度。
· sub-option 2的内容是接收到DHCP客户端请求报文的接口MAC地址(DHCP中继)或设备的桥MAC地址(DHCP Snooping设备)。verbose和normal填充模式的sub-option 2内容相同,如图1-9所示。
private填充模式和standard填充模式中,子选项的内容如下:
(3) 采用private模式填充
· sub-option 1的内容是接收到DHCP客户端请求报文的接口所属的VLAN ID、Module(接口的子卡号)和Port(该接口的编号)。如图1-11所示,子选项类型值为1。
图1-11 private模式填充的sub-option 1
· sub-option 2的内容是接收到DHCP客户端请求报文的DHCP Snooping设备的桥MAC地址。如图1-12所示,子选项类型值为2。
图1-12 private模式填充的sub-option 2
· sub-option 9的内容是Sysname和Loopback0接口的主IP地址。如图1-13所示,子选项类型值为9。
图1-13 private模式填充的sub-option 9
(4) 采用standard模式填充
· sub-option 1的内容是接收到DHCP客户端请求报文的接口所属的VLAN ID、Module(接口的子卡号)和Port(该接口的编号)。如图1-14所示,子选项类型值为1,电路ID类型值为0。
图1-14 standard模式填充的sub-option 1
· sub-option 2的内容是接收到DHCP客户端请求报文的DHCP Snooping设备的桥MAC地址。子选项类型值为2,远程ID类型值为0,格式跟normal模式的sub-option 2相同,如图1-9所示。
Option 184是RFC中规定的保留选项,用户可以自定义该选项中携带的信息。设备上,Option 184携带了语音呼叫所需的信息。通过Option 184,可以实现在为具有语音功能的DHCP客户端分配IP地址的同时,为客户端提供语音呼叫相关信息。
目前Option 184支持四个子选项,承载的内容如下:
· sub-option 1,网络呼叫处理器的IP地址:用来标识作为网络呼叫控制源及应用程序下载的服务器。
· sub-option 2,备用服务器的IP地址:当sub-option 1中携带的网络呼叫处理器不可达或不合法时,DHCP客户端使用该选项指定的备用服务器作为网络呼叫处理器。
· sub-option 3,语音VLAN信息:指定语音VLAN的ID及DHCP客户端是否会将所指定的VLAN ID作为语音VLAN。
· sub-option 4,自动故障转移呼叫路由:指定故障转移呼叫路由的IP地址及其关联的拨号串,即SIP(Session Initiation Protocol,会话初始协议)用户之间互相通信时对端的IP地址和呼叫号码。当网络呼叫处理器和备用服务器均不可达时,SIP用户可以使用对端IP地址及呼叫号码直接与对端SIP用户建立连接并通信。
只有定义了sub-option 1(网络呼叫处理器的IP地址子选项),其他子选项才能生效。
与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地址需求。
DHCP地址池分为两类:
· 普通模式的地址池:支持静态绑定和动态分配两种地址分配方式。
· 扩展模式的地址池:只支持地址的动态分配方式。
DHCP服务器从地址池中为客户端选择并分配IP地址及其他相关参数。
DHCP服务器的普通模式地址池采用树状结构:树根是自然网段的地址池,分支是该网段的子网地址池,叶节点是手工绑定的客户端地址。同一级别地址池的顺序由配置的先后决定。这种树状结构实现了配置的继承性,即子网配置继承自然网段的配置,客户端的配置继承子网的配置。这样,对于一些通用参数(如DNS服务器地址),只需要在自然网段或者子网上配置即可。具体的继承情况如下:
(1) 在父子关系建立时,子地址池将会继承父地址池的已有配置。
(2) 在父子关系建立后,对父地址池进行的配置,子地址池是否会继承,则有下面两种情况:
· 如果子地址池没有该项配置,则继承父地址池的配置;
· 如果子地址池已有该项配置,则不会继承父地址池的配置。
· 设备独立存储每个扩展模式地址池。扩展地址池之间不存在父子关系和继承关系。
· IP地址的租用有效期限不具有继承关系。
DHCP服务器为客户端分配IP地址时,地址池的选择原则如下:
(1) 如果存在将客户端MAC地址或客户端ID与IP地址静态绑定的地址池,则选择该地址池,并将静态绑定的IP地址分配给客户端。该地址池的配置方法请参见“2.3.3 1. 配置采用静态绑定方式进行地址分配”。
(2) 如果接收到DHCP请求报文的接口引用了扩展模式的地址池,则选择该地址池,从该地址池中选取IP地址分配给客户端。如果该地址池中没有可供分配的IP地址,则服务器无法为客户端分配IP地址。该地址池的配置方法请参见“2.3.4 配置扩展模式地址池采用动态分配方式进行地址分配”。
(3) 如果不存在静态绑定的地址池,且接收到DHCP请求报文的接口没有引用扩展模式的地址池,则选择包含DHCP请求报文接收接口的IP地址(客户端与服务器在同一网段时)或DHCP请求报文中giaddr字段指定的IP地址(客户端与服务器不在同一网段,客户端通过DHCP中继获取IP地址时)、网段最小的普通模式地址池。如果该地址池中没有可供分配的IP地址,则服务器无法为客户端分配地址,服务器不会将父地址池中的IP地址分配给客户端。该地址池的配置方法请参见“2.3.3 2. 配置采用动态分配方式进行地址分配”。
例如,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服务器为客户端分配IP地址的优先次序如下:
(1) 与客户端MAC地址或客户端ID静态绑定的IP地址。
(2) DHCP服务器记录的曾经分配给客户端的IP地址。
(3) 客户端发送的DHCP-DISCOVER报文中Option 50字段指定的IP地址。
(4) 在扩展或普通模式的动态分配地址池中,顺序查找可供分配的IP地址,最先找到的IP地址。
(5) 如果未找到可用的IP地址,则依次查询租约过期、曾经发生过冲突的IP地址,如果找到则进行分配,否则将不予处理。
Option 50为客户端请求的IP地址选项(Requested IP Address),客户端通过在DHCP-DISCOVER报文中添加该选项来指明客户端希望获取的IP地址。该选项的内容由客户端决定。
表2-1 DHCP服务器配置任务简介
操作 |
说明 |
详细配置 |
配置DHCP服务器的地址池 |
必选 |
|
使能DHCP服务 |
必选 |
|
配置接口工作在DHCP服务器模式 |
必选 |
|
配置接口引用扩展模式的地址池 |
使用扩展模式的地址池时,为必选;使用普通模式的地址池时,不需要执行该配置任务 |
|
配置DHCP服务器的安全功能 |
可选 |
|
配置DHCP服务器的用户下线检测功能 |
可选 |
|
配置Option 82的处理方式 |
可选 |
|
配置DHCP服务器发送Trap消息 |
可选 |
|
配置DHCP报文的DSCP优先级 |
可选 |
表2-2 DHCP服务器地址池配置任务简介
操作 |
说明 |
详细配置 |
|
创建DHCP地址池 |
必选 |
||
配置普通模式地址池的地址分配方式 |
配置采用静态绑定方式进行地址分配 |
对于普通模式地址池,二者必选其一,且对同一个地址池只能选一种方式 |
|
配置采用动态分配方式进行地址分配 |
|||
配置扩展模式地址池采用动态分配方式进行地址分配 |
对于扩展模式地址池,为必选 |
||
配置DHCP客户端的域名后缀 |
可选 |
||
配置DHCP客户端的DNS服务器地址 |
可选 |
||
配置DHCP客户端的WINS服务器地址和NetBIOS节点类型 |
可选 |
||
配置DHCP客户端的BIMS服务器信息 |
可选 |
||
配置DHCP客户端的网关地址 |
可选 |
||
配置DHCP客户端的Option 184参数 |
可选 |
||
配置DHCP客户端的TFTP服务器地址及启动文件名 |
可选 |
||
配置DHCP客户端的下一个提供服务的服务器IP地址 |
可选 |
||
配置DHCP自定义选项 |
可选 |
创建DHCP地址池时,需要指定地址池的类型:普通模式地址池或扩展模式地址池。
表2-3 创建DHCP地址池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建DHCP地址池并进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
必选 缺省情况下,没有创建DHCP地址池 |
普通模式地址池和扩展模式地址池中地址分配方式的配置方法不同,其余网络参数(如域名后缀、DNS服务器地址等)的配置方法相同。
根据客户端的实际需要,可以将地址池配置为采用静态绑定或动态分配方式进行地址分配,但对一个DHCP地址池不能同时配置这两种方式。
动态地址分配需要指定用于分配的网段,而静态地址绑定则可以看作是只包含一个地址的特殊的DHCP地址池。
某些客户端(如WWW服务器等)需要固定的IP地址,可以通过将客户端的MAC地址与IP地址绑定的方式实现。当具有此MAC地址的客户端申请IP地址时,DHCP服务器将根据客户端的MAC地址查找到对应的IP地址,并分配给客户端。
某些客户端在向DHCP服务器发送DHCP-DISCOVER报文申请IP地址时,会构建客户端ID并添加到报文中一起发送。如果在DHCP服务器上将客户端ID与IP地址绑定,则当该客户端申请IP地址时,DHCP服务器将根据客户端ID查找到对应的IP地址并分配给客户端。
目前一个DHCP地址池中只能配置一个静态绑定,可以是IP地址与MAC地址的绑定,也可以是IP地址与客户端ID的绑定。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入普通模式地址池视图 |
dhcp server ip-pool pool-name |
- |
|
配置静态绑定的IP地址 |
static-bind ip-address ip-address [ mask-length | mask mask ] |
必选 缺省情况下,没有配置静态绑定的IP地址 |
|
配置静态绑定的MAC地址或客户端ID |
配置静态绑定的客户端MAC地址 |
static-bind mac-address mac-address |
二者必选其一 缺省情况下,没有配置静态绑定的MAC地址和客户端ID |
配置静态绑定的客户端ID |
static-bind client-identifier client-identifier |
||
配置静态绑定IP地址的租用有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
可选 缺省情况下,IP地址租用有效期限为unlimited,即租约期限为无限长 |
· static-bind ip-address和static-bind mac-address或static-bind client-identifier命令必须配合使用。
· 在同一个DHCP地址池中,如果配置了static-bind mac-address命令后,再配置static-bind client-identifier命令,则后面的配置将会覆盖前面的配置,反之亦然。
· 在同一个DHCP地址池中,如果多次执行static-bind ip-address或static-bind mac-address或static-bind client-identifier命令,新的配置会覆盖已有配置。
· 静态绑定的IP地址不能是DHCP服务器的接口IP地址,否则会导致IP地址冲突,被绑定的客户端将无法正常获取到IP地址。
· 静态绑定的客户端ID,要与在待绑定客户端通过display dhcp client verbose命令显示的客户端ID一致。否则,客户端无法成功获取IP地址。
· 静态绑定方式的DHCP地址池可以配置租期,且租期会生效。但通过命令display dhcp server ip-in-use all查看时,显示的租期还是会是Unlimited,不会随配置改变。
· 设备作为DHCP客户端时,需要在DHCP服务器上配置IP地址与客户端ID静态绑定,设备作为BOOTP客户端时,需要配置IP地址与客户端MAC静态绑定,否则设备无法申请到静态绑定的IP地址。
· 如果作为DHCP客户端的设备,接口的MAC地址相同,则为了区分不同接口,采用静态绑定方式进行地址分配时,需要在服务器上配置静态绑定的客户端ID,而不能配置静态绑定的客户端MAC地址,否则可能导致客户端无法成功获取IP地址。
对于采用动态地址分配方式的地址池,需要配置该地址池可分配的网段。目前,一个地址池中只能配置一个地址段。
DHCP服务器在分配地址时,需要排除已经被占用的IP地址(如网关、FTP服务器等)。否则,同一地址分配给两个客户端会造成IP地址冲突。
DHCP服务器可以为不同的地址池指定不同的地址租用期限,但同一DHCP地址池中的所有地址都具有相同的期限。地址租用有效期限不具有继承关系。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入普通模式地址池视图 |
dhcp server ip-pool pool-name |
- |
配置动态分配的网段 |
network network-address [ mask-length | mask mask ] |
必选 缺省情况下,没有配置动态分配的网段,即没有可供分配的IP地址 |
在网段的基础上进一步限制动态分配的IP地址范围 |
network ip range min-address max-address |
可选 缺省情况下,没有配置动态分配的IP地址范围 |
配置动态分配的IP地址的租用有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
可选 缺省情况下,IP地址租用有效期限为1天 |
退回系统视图 |
quit |
- |
配置DHCP地址池中不参与自动分配的IP地址 |
dhcp server forbidden-ip low-ip-address [ high-ip-address ] |
可选 缺省情况下,除DHCP服务器接口的IP地址外,DHCP地址池中的所有IP地址都参与自动分配 |
· 在同一个DHCP地址池中,如果多次执行network或network ip range命令,新的配置会覆盖已有配置。
· 通过dhcp server forbidden-ip命令指定不参与自动分配的IP地址后,所有动态分配方式的地址池(包括普通模式地址池和扩展模式地址池)都不能分配这些IP地址。
· 多次执行dhcp server forbidden-ip命令,可以配置多个不参与自动分配的IP地址段。
扩展模式地址池只支持动态方式分配地址,不支持静态绑定方式。
配置扩展模式地址池的地址分配方式时,需要指定:
· 可分配的IP地址范围:扩展模式地址池中采用最小IP地址、最大IP地址的方式指定地址范围。
· 分配的IP地址的掩码。
只有同时配置了可分配的IP地址范围和掩码,该地址池才会生效。
表2-6 配置扩展模式地址池采用动态分配方式进行地址分配
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入扩展模式地址池视图 |
dhcp server ip-pool pool-name extended |
- |
配置动态分配的IP地址范围 |
network ip range min-address max-address |
必选 缺省情况下,没有配置动态分配的IP地址范围,即没有可供分配的IP地址 |
配置动态分配的IP地址掩码 |
network mask mask |
必选 缺省情况下,没有配置动态分配的IP地址掩码 |
配置为指定厂商的DHCP客户端动态分配的IP地址范围 |
vendor-class-identifier hex-string&<1-255> ip range min-address max-address |
可选 缺省情况下,没有配置DHCP扩展地址池为指定厂商的客户端动态分配的IP地址范围 |
配置动态分配的IP地址的租用有效期限 |
expired { day day [ hour hour [ minute minute [ second second ] ] ] | unlimited } |
可选 缺省情况下,IP地址租用有效期限为1天 |
配置该地址池中不参与自动分配的IP地址 |
forbidden-ip ip-address&<1-8> |
可选 缺省情况下,除DHCP服务器接口的IP地址外,扩展模式地址池中的所有IP地址都参与自动分配 |
在扩展模式的DHCP地址池视图下通过forbidden-ip命令配置不参与自动分配的IP地址后,只有当前扩展模式的地址池不能分配这些IP地址,其他地址池仍然可以分配这些IP地址。
在DHCP服务器上,可以为每个地址池指定客户端使用的域名后缀。在给客户端分配IP地址的同时,也将域名后缀发送给客户端。
在客户端进行域名解析时,用户只需要输入域名的部分字段,客户端会自动将输入的域名加上域名后缀进行解析。有关域名后缀的详细介绍,请参见“三层技术-IP业务配置指导”中的“IPv4域名解析”。
表2-7 配置DHCP客户端的域名后缀
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置为DHCP客户端分配的域名后缀 |
domain-name domain-name |
必选 缺省情况下,没有配置为DHCP客户端分配的域名后缀 |
通过域名访问Internet上的主机时,需要将域名解析为IP地址,这是通过DNS(Domain Name System,域名系统)实现的。为了使DHCP客户端能够通过域名访问Internet上的主机,DHCP服务器应在为客户端分配IP地址的同时指定DNS服务器地址。目前,每个DHCP地址池最多可以配置8个DNS服务器地址。
表2-8 配置DHCP客户端的DNS服务器地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置为DHCP客户端分配的DNS服务器地址 |
dns-list ip-address&<1-8> |
必选 缺省情况下,没有配置为DHCP客户端分配的DNS服务器地址 |
对于使用Microsoft Windows操作系统的客户端,由WINS(Windows Internet Naming Service,Windows Internet名称服务)服务器为通过NetBIOS协议通信的主机提供主机名到IP地址的解析。所以,大部分Windows网络客户端需要进行WINS的设置。
为了使DHCP客户端实现主机名到IP地址的解析,DHCP服务器应在为客户端分配IP地址的同时指定WINS服务器地址。目前,每个DHCP地址池最多可以配置8个WINS服务器地址。
DHCP客户端在网络上使用NetBIOS协议通信时,需要在主机名和IP地址之间建立映射关系。根据获取映射关系方式的不同,NetBIOS节点分为四种:
· 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-9 配置DHCP客户端的WINS服务器地址和NetBIOS节点类型
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置为DHCP客户端分配的WINS服务器地址 |
nbns-list ip-address&<1-8> |
必选 对于b类节点,为可选 缺省情况下,没有配置为DHCP客户端分配的WINS服务器地址 |
配置为DHCP客户端分配的NetBIOS节点类型 |
netbios-type { b-node | h-node | m-node | p-node } |
必选 缺省情况下,没有配置为DHCP客户端分配的NetBIOS节点类型 |
如果配置DHCP客户端为b类NetBIOS节点,则不需要配置WINS服务器地址。
为了使DHCP客户端通过BIMS(Branch Intelligent Management System,分支网点智能管理系统)服务器进行软件的备份和升级等操作,DHCP服务器需要在为DHCP客户端分配IP地址的同时,将BIMS服务器的IP地址、端口号以及加密的共享密钥等信息也发给DHCP客户端。之后,DHCP客户端就可以定期向BIMS服务器发送连接请求,从BIMS服务器上获取配置文件,进行软件的备份和升级等操作。
表2-10 配置DHCP客户端的BIMS服务器信息
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置为DHCP客户端分配的BIMS服务器的IP地址、端口及共享密钥信息 |
bims-server ip ip-address [ port port-number ] sharekey [ cipher | simple ] key |
必选 缺省情况下,没有配置为DHCP客户端分配的BIMS服务器信息 |
DHCP客户端访问本网段以外的服务器或主机时,数据必须通过网关进行转发。DHCP服务器可以在为客户端分配IP地址的同时指定网关的地址。
在DHCP服务器上,可以为每个地址池分别指定客户端对应的网关地址。在给客户端分配IP地址的同时,也将网关地址发送给客户端。目前,每个DHCP地址池最多可以配置8个网关地址。
表2-11 配置DHCP客户端的网关地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置为DHCP客户端分配的网关地址 |
gateway-list ip-address&<1-8> |
必选 缺省情况下,没有配置为DHCP客户端分配的网关地址 |
为了使具有语音功能的DHCP客户端能够在通过DHCP获取IP地址的同时,获取到语音呼叫所需的相关信息,需要在DHCP服务器上配置Option 184。Option 184内容的详细介绍,请参见“1.4.3 3. Option 184”。
表2-12 配置DHCP客户端的Option 184参数
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置网络呼叫处理器的地址 |
voice-config ncp-ip ip-address |
必选 缺省情况下,没有配置网络呼叫处理器的地址 |
配置备用服务器的地址 |
voice-config as-ip ip-address |
可选 缺省情况下,没有配置备用服务器的地址 |
配置语音VLAN |
voice-config voice-vlan vlan-id { disable | enable } |
可选 缺省情况下,没有配置语音VLAN |
配置自动故障转移呼叫路由 |
voice-config fail-over ip-address dialer-string |
可选 缺省情况下,没有配置自动故障转移呼叫路由 |
只有配置了网络呼叫处理器的地址,其他配置才能生效。
设备在空配置启动时自动获取并执行配置文件的功能,被称为自动配置。具体过程如下:
(1) 设备在空配置启动时,系统会自动将处于up状态的接口(如缺省VLAN对应的虚接口)设置为DHCP客户端,并向DHCP服务器获取IP地址及后续获取配置文件所需要的信息(例如:TFTP服务器的IP地址、TFTP服务器名、启动文件名等)。
(2) 如果获取到相关信息,则DHCP客户端就可发起TFTP请求,从指定的TFTP服务器获取配置文件,之后设备就使用获取到的配置文件进行设备初始化工作。如果没有获取到相关信息,则设备在空配置的情况下正常启动。
自动配置功能在空配置启动的设备上不需要进行任何配置,但需要在DHCP服务器上配置一些必需的参数,包括TFTP服务器地址、TFTP服务器名和启动文件名。
表2-13 配置DHCP客户端的TFTP服务器地址及启动文件名
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置为DHCP客户端分配的TFTP服务器地址 |
tftp-server ip-address ip-address |
二者至少选择其一 缺省情况下,没有配置为DHCP客户端分配的TFTP服务器地址和TFTP服务器名 |
配置为DHCP客户端分配的TFTP服务器名 |
tftp-server domain-name domain-name |
|
配置为DHCP客户端分配的启动文件名 |
bootfile-name bootfile-name |
必选 缺省情况下,没有配置为DHCP客户端分配的启动文件名 |
设备在启动后,可能需要访问某些服务器获取设备运行需要的信息,例如从TFTP服务器上获取配置文件。通过本配置可以指定DHCP服务器为DHCP客户端分配的下一个提供服务的服务器IP地址,以便客户端启动后访问该服务器,获取必要的信息。
表2-14 配置DHCP客户端的下一个提供服务的服务器IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置DHCP地址池为DHCP客户端分配的下一个提供服务的服务器IP地址 |
next-server ip-address |
必选 缺省情况下,没有配置DHCP地址池为DHCP客户端分配的下一个提供服务的服务器IP地址 |
通过配置DHCP自定义选项,用户可以:
· 定义新的DHCP选项。随着DHCP的不断发展,新的可选项会陆续出现,为了支持这些新的选项,可以通过手工定义的方式将新选项添加到DHCP服务器的属性列表中。
· 定义已有选项的内容。有些选项的内容,RFC 2132中没有统一规定。厂商可以根据需要定义选项的内容,如Option 43。通过配置DHCP自定义选项,可以为DHCP客户端提供厂商指定的信息。
· 扩展已有的DHCP选项。当前已提供的方式无法满足用户需求时(比如通过dns-list命令最多只能配置8个DNS服务器地址,如果用户需要配置的DNS服务器地址数目大于8,则该命令无法满足需求),可以通过配置DHCP自定义选项的方式进行扩展。
表2-15 配置DHCP自定义选项
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入DHCP地址池视图 |
dhcp server ip-pool pool-name [ extended ] |
- |
配置DHCP自定义选项 |
option code { ascii ascii-string | hex hex-string&<1-16> | ip-address ip-address&<1-8> } |
必选 缺省情况下,没有配置DHCP自定义选项 |
表2-16 常用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服务器配置才能生效。
表2-17 使能DHCP服务
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于禁止状态 |
配置接口工作在DHCP服务器模式后,当接口收到DHCP客户端发来的DHCP报文时,将从DHCP服务器的地址池中分配地址。
表2-18 配置接口工作在DHCP服务器模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCP服务器模式 |
dhcp select server global-pool [ subaddress ] |
可选 缺省情况下,接口工作在DHCP服务器模式 |
subaddress关键字只在客户端与DHCP服务器之间通信不需要通过三层路由转发时有效。如果客户端与服务器之间通过DHCP中继相连,则不管是否输入subaddress关键字,当服务器为客户端分配IP地址时,都是从与DHCP中继接口(与客户端相连的接口)的主IP地址在同一网段的地址池中选择地址分配给客户端。
当客户端与DHCP服务器之间通信不需要通过三层路由转发时,根据是否输入subaddress关键字,DHCP服务器的处理不同:
· 如果输入subaddress关键字,当服务器为客户端分配IP地址时,将优先从与服务器接口(与客户端相连的接口)的主IP地址在同一网段的地址池中选择地址分配给客户端,如果该地址池中没有可供分配的IP地址,则从与服务器接口的从IP地址在同一网段的地址池中选择地址分配给客户端。如果接口有多个从IP地址,则从第一个从IP地址依次匹配。
· 如果不输入subaddress关键字,当服务器为客户端分配IP地址时,将只能从与服务器接口的主IP地址在同一网段的地址池中选择地址分配给客户端。
创建扩展模式的地址池,并在接口引用该地址池后,接口接收到DHCP请求,将优先为客户端分配静态绑定的IP地址;如果不存在静态绑定的IP地址,则从引用的扩展模式地址池中选择IP地址分配给客户端。引用的地址池中不存在可供分配的IP地址时,设备无法为客户端分配IP地址,设备不会将其他地址池中的地址分配给客户端。
表2-19 配置接口引用扩展模式的地址池
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口引用扩展模式的地址池 |
dhcp server apply ip-pool pool-name |
可选 缺省情况下,接口没有引用任何扩展模式的地址池,接口接收到DHCP请求后,将从普通模式地址池中选择IP地址分配给客户端 |
接口只能引用扩展模式的地址池,且引用的地址池必须已经存在。
在配置DHCP服务器后,为了提高DHCP服务的安全性,需要配置DHCP服务的安全功能。
在配置DHCP服务的安全功能之前,需完成DHCP服务器的必配任务:
· 使能DHCP服务;
· 配置DHCP服务器的地址池。
如果网络中有私自架设的DHCP服务器,当客户端申请IP地址时,这台DHCP服务器就会与DHCP客户端进行交互,导致客户端获得错误的IP地址。这种私设的DHCP服务器称为伪DHCP服务器。
使能伪DHCP服务器检测功能后,DHCP服务器会检查接收到的DHCP报文中是否携带Option 54(Server Identifier Option,服务器标识选项)。如果携带该选项,则DHCP服务器记录此选项中的IP地址,即给客户端分配IP地址的服务器IP地址,并记录接收到DHCP报文的接口信息,以便管理员及时发现并处理伪DHCP服务器。
表2-20 配置伪DHCP服务器检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能伪DHCP服务器检测功能 |
dhcp server detect |
必选 缺省情况下,禁止伪DHCP服务器检测功能 |
· 使能伪DHCP服务器检测功能后,对所有DHCP服务器都会进行记录,包括合法的DHCP服务器。管理员需要从日志信息中查找伪DHCP服务器。
· 使能伪DHCP服务器检测功能后,对每个DHCP服务器只记录一次。
为防止IP地址重复分配导致地址冲突,DHCP服务器为客户端分配地址前,需要先对该地址进行探测。
地址探测是通过ping功能实现的,通过检测是否能在指定时间内得到ping响应来判断是否有地址冲突。DHCP服务器发送目的地址为待分配地址的ICMP回显请求报文,如果在指定时间内收到回显响应报文,DHCP服务器从地址池中选择新的IP地址,并重复上述操作;如果在指定时间内没有收到回显响应报文,则继续发送ICMP回显请求报文,直到发送的回显请求报文达到最大值,如果仍然没有收到回显响应报文,则将地址分配给客户端,从而确保客户端被分得的IP地址唯一。
DHCP服务器通过ping操作来检测是否发生地址冲突,而DHCP客户端则通过发送免费ARP报文检测是否发生地址冲突。
表2-21 配置IP地址重复分配检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器发送回显请求报文的最大数目 |
dhcp server ping packets number |
可选 缺省情况下,DHCP服务器发送回显请求报文的最大数目为1 0表示不进行ping操作 |
配置DHCP服务器等待回显响应报文的超时时间 |
dhcp server ping timeout milliseconds |
可选 缺省情况下,DHCP服务器等待回显响应报文的超时时间为500毫秒 0表示不进行ping操作 |
DHCP服务器的用户下线检测功能以ARP表项老化功能为基础,当ARP表项老化时认为该表项对应的用户已经下线。
如果在接口上使能了DHCP服务器的用户下线检测功能,则当ARP表项老化时,系统会删除该表项对应用户的地址绑定信息。
表2-22 配置DHCP服务器的用户下线检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP服务器的用户下线检测功能 |
dhcp server client-detect enable |
必选 缺省情况下,DHCP服务器的用户下线检测功能处于关闭状态 |
手工删除ARP表项,不会触发删除对应的地址绑定信息。
如果配置DHCP服务器处理Option 82,则当DHCP服务器收到带有Option 82的报文后,会在响应报文中携带Option 82,并为客户端分配IP地址等信息。
如果配置DHCP服务器忽略Option 82,则当DHCP服务器收到带有Option 82的报文后,不会在响应报文中携带Option 82,只为客户端分配IP地址等信息。
在配置Option 82的处理方式之前,需完成DHCP服务器的必配任务:
· 使能DHCP服务;
· 配置DHCP服务器的地址池。
表2-23 配置Option 82的处理方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器处理Option 82 |
dhcp server relay information enable |
可选 缺省情况下,DHCP服务器处理Option 82 |
为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继(或DHCP Snooping设备)上都进行相应配置。DHCP中继支持Option 82功能的相关配置请参见“3.3.7 配置DHCP中继支持Option 82功能”;DHCP Snooping支持Option 82功能的相关配置请参见“5.4 配置DHCP Snooping支持Option 82功能”。
在配置DHCP服务器发送Trap消息之前,需要先通过snmp-agent target-host命令配置Trap消息的目的地址。snmp-agent target-host命令的详细介绍,请参见“网络管理和监控命令参考”中的“SNMP”。
在DHCP服务器上,可以配置成功分配IP地址的比率、地址池的平均IP利用率、地址池的最大IP利用率达到门限值时,向网管服务器发送Trap消息,以便网络管理员及时了解DHCP服务器的使用情况。
表2-24 配置DHCP服务器发送Trap消息的门限值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器在指定条件下,向网管服务器发送Trap消息 |
dhcp server threshold { allocated-ip threshold-value | average-ip-use threshold-value | max-ip-use threshold-value } |
可选 缺省情况下,DHCP服务器不会向网管服务器发送Trap消息 |
在IPv4报文头中,包含一个8bit的ToS字段,用于标识IP报文的服务类型。RFC 2474对这8个bit进行了定义,将前6个bit定义为DSCP优先级,最后2个bit作为保留位。在报文传输的过程中,DSCP优先级可以被网络设备识别,并作为报文传输优先程度的参考。
用户可以对DHCP服务器发送的DHCP报文的DSCP优先级进行配置。
表2-25 配置DHCP服务器发送的DHCP报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器发送的DHCP报文的DSCP优先级 |
dhcp dscp dscp-value |
可选 缺省情况下,DHCP服务器发送的DHCP报文的DSCP优先级为56 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP服务器的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP服务器的相关信息。
表2-26 DHCP服务器显示和维护
操作 |
命令 |
显示DHCP的地址冲突统计信息 |
display dhcp server conflict { all | ip ip-address } [ | { begin | exclude | include } regular-expression ] |
显示DHCP地址池中的租约超期信息 |
display dhcp server expired { all | ip ip-address | pool [ pool-name ] } [ | { begin | exclude | include } regular-expression ] |
显示DHCP地址池的可用地址信息 |
display dhcp server free-ip [ | { begin | exclude | include } regular-expression ] |
显示DHCP地址池中不参与自动分配的IP地址 |
display dhcp server forbidden-ip [ | { begin | exclude | include } regular-expression ] |
显示DHCP地址池中的地址绑定信息 |
display dhcp server ip-in-use { all | ip ip-address | pool [ pool-name ] } [ | { begin | exclude | include } regular-expression ] |
显示DHCP服务器的统计信息 |
display dhcp server statistics [ | { begin | exclude | include } regular-expression ] |
显示DHCP地址池的树状结构信息 |
display dhcp server tree { all | pool [ pool-name ] } [ | { begin | exclude | include } regular-expression ] |
清除DHCP地址冲突的统计信息 |
reset dhcp server conflict { all | ip ip-address } |
清除DHCP动态地址绑定信息 |
reset dhcp server ip-in-use { all | ip ip-address | pool [ pool-name ] } |
清除DHCP服务器的统计信息 |
reset dhcp server statistics |
执行save命令时不会保存DHCP服务器的租约信息,故当系统重新启动或使用reset dhcp server ip-in-use命令清除租约后,配置文件中将没有任何租约信息。此时客户端如果发出续约请求将会被拒绝,客户端需要重新申请IP地址。
常见的DHCP组网方式可分为两类:一种是DHCP服务器和客户端在同一个子网内,直接进行DHCP报文的交互;第二种是DHCP服务器和客户端处于不同的子网中,必须通过DHCP中继代理实现IP地址的分配。无论哪种情况下,DHCP的配置都是相同的。
Switch B和Switch C分别作为DHCP客户端和BOOTP客户端,从DHCP服务器Switch A获取静态绑定的IP地址、域名服务器、网关地址等信息。
其中:
· Switch B上VLAN接口2的客户端ID为:
3030-3066-2e65-3234-392e-3830-3530-2d56-6c61-6e2d-696e-7465-7266-6163-6532;
· Switch C上VLAN接口2的MAC地址为:000f-e249-8050。
图2-1 静态绑定地址组网图
(1) 配置接口的IP地址
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 25
[SwitchA-Vlan-interface2] quit
(2) 配置DHCP服务
# 使能DHCP服务。
[SwitchA] dhcp enable
# 配置VLAN接口2工作在DHCP服务器模式。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] dhcp select server global-pool
[SwitchA-Vlan-interface2] quit
# 配置DHCP地址池0,采用静态绑定方式为Switch B分配IP地址。
[SwitchA] dhcp server ip-pool 0
[SwitchA-dhcp-pool-0] static-bind ip-address 10.1.1.5 25
[SwitchA-dhcp-pool-0] static-bind client-identifier 3030-3066-2e65-3234-392e-3830-3530-2d56-6c61-6e2d-696e-7465-7266-6163-6532
[SwitchA-dhcp-pool-0] dns-list 10.1.1.2
[SwitchA-dhcp-pool-0] gateway-list 10.1.1.126
[SwitchA-dhcp-pool-0] quit
# 配置DHCP地址池1,采用静态绑定方式为Switch C分配IP地址。
[SwitchA] dhcp server ip-pool 1
[SwitchA-dhcp-pool-1] static-bind ip-address 10.1.1.6 25
[SwitchA-dhcp-pool-1] static-bind mac-address 000f-e249-8050
[SwitchA-dhcp-pool-1] dns-list 10.1.1.2
[SwitchA-dhcp-pool-1] gateway-list 10.1.1.126
(3) 验证配置结果
配置完成后,Switch B和Switch C可以从DHCP服务器Switch A分别申请到IP地址10.1.1.5和10.1.1.6,并获取相关网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
· 作为DHCP服务器的Switch A为网段10.1.1.0/24中的客户端动态分配IP地址,该地址池网段分为两个子网网段:10.1.1.0/25和10.1.1.128/25;
· Switch A的两个VLAN接口,VLAN接口1和VLAN接口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。
· 10.1.1.0/25网段与10.1.1.128/25网段的域名后缀、DNS服务器地址相同,可以只配置10.1.1.0/24网段的域名后缀和DNS服务器地址,10.1.1.0/25网段与10.1.1.128/25网段继承10.1.1.0/24网段的配置。
图2-2 DHCP组网图
(1) 配置端口所属VLAN及对应VLAN接口的IP地址(略)
(2) 配置DHCP服务
# 使能DHCP服务。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口1和VLAN接口2工作在DHCP服务器模式。
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] dhcp select server global-pool
[SwitchA-Vlan-interface1] quit
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] dhcp select server global-pool
[SwitchA-Vlan-interface2] quit
# 配置不参与自动分配的IP地址(DNS服务器、WINS服务器和网关地址)。
[SwitchA] dhcp server forbidden-ip 10.1.1.2
[SwitchA] dhcp server forbidden-ip 10.1.1.4
[SwitchA] dhcp server forbidden-ip 10.1.1.126
[SwitchA] dhcp server forbidden-ip 10.1.1.254
# 配置DHCP地址池0的共有属性(网段、客户端域名后缀、DNS服务器地址)。
[SwitchA] dhcp server ip-pool 0
[SwitchA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-0] domain-name aabbcc.com
[SwitchA-dhcp-pool-0] dns-list 10.1.1.2
[SwitchA-dhcp-pool-0] quit
# 配置DHCP地址池1的属性(网段、网关、地址租用期限、WINS服务器地址)。
[SwitchA] dhcp server ip-pool 1
[SwitchA-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.128
[SwitchA-dhcp-pool-1] gateway-list 10.1.1.126
[SwitchA-dhcp-pool-1] expired day 10 hour 12
[SwitchA-dhcp-pool-1] nbns-list 10.1.1.4
[SwitchA-dhcp-pool-1] quit
# 配置DHCP地址池2的属性(网段、地址租用期限、网关)。
[SwitchA] dhcp server ip-pool 2
[SwitchA-dhcp-pool-2] network 10.1.1.128 mask 255.255.255.128
[SwitchA-dhcp-pool-2] expired day 5
[SwitchA-dhcp-pool-2] gateway-list 10.1.1.254
(3) 验证配置结果
配置完成后,10.1.1.0/25和10.1.1.128/25网段的客户端可以从DHCP服务器Switch A申请到相应网段的IP地址和网络配置参数。通过display dhcp server ip-in-use命令可以查看DHCP服务器为客户端分配的IP地址。
DHCP客户端Switch B从DHCP服务器Switch A获取IP地址和PXE引导服务器地址信息:
· IP地址所在网段为10.1.1.0/24;
· PXE引导服务器地址为1.2.3.4和2.2.2.2。
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-3 自定义选项典型配置举例
(1) 配置各接口的IP地址(略)
(2) 配置DHCP服务
# 使能DHCP服务。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置VLAN接口2工作在DHCP服务器模式。
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] dhcp select server global-pool
[SwitchA-Vlan-interface2] quit
# 配置DHCP地址池0。
[SwitchA] dhcp server ip-pool 0
[SwitchA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-0] option 43 hex 80 0B 00 00 02 01 02 03 04 02 02 02 02
(3) 验证配置结果
配置完成后,Switch B可以从DHCP服务器Switch 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,点击[确认]按钮,进入命令行界面,使用ipconfig/release命令释放IP地址,之后使用ipconfig/renew重新获取IP地址。
DHCP中继中对于接口的相关配置,目前只能在VLAN接口上进行。
由于在IP地址动态获取过程中采用广播方式发送请求报文,因此DHCP只适用于DHCP客户端和服务器处于同一个子网内的情况。为进行动态主机配置,需要在所有网段上都设置一个DHCP服务器,这显然是很不经济的。
DHCP中继功能的引入解决了这一难题:客户端可以通过DHCP中继与其他网段的DHCP服务器通信,最终获取到IP地址。这样,多个网络上的DHCP客户端可以使用同一个DHCP服务器,既节省了成本,又便于进行集中管理。
图3-1是DHCP中继的典型应用示意图。
图3-1 DHCP中继的典型组网应用
通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2 IP地址动态获取过程”。
图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的详细介绍请参见“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 |
Drop |
任意 |
丢弃报文 |
Keep |
任意 |
保持报文中的Option 82不变并进行转发 |
|
Replace |
normal |
采用normal模式填充Option 82,替换报文中原有的Option 82并进行转发 |
|
verbose |
采用verbose模式填充Option 82,替换报文中原有的Option 82并进行转发 |
||
用户自定义 |
采用用户自定义的内容填充Option 82,替换报文中原有的Option 82并进行转发 |
||
收到的报文中不带有Option 82 |
- |
normal |
采用normal模式填充Option 82并进行转发 |
verbose |
采用verbose模式填充Option 82并进行转发 |
||
用户自定义 |
采用用户自定义的内容填充Option 82并进行转发 |
表3-2 DHCP中继配置任务简介
配置任务 |
说明 |
详细配置 |
使能DHCP服务 |
必选 |
|
配置接口工作在DHCP中继模式 |
必选 |
|
配置DHCP服务器组 |
必选 |
|
配置DHCP中继的安全功能 |
可选 |
|
配置DHCP中继的用户下线检测功能 |
可选 |
|
配置通过DHCP中继释放客户端的IP地址 |
可选 |
|
配置DHCP中继支持Option 82功能 |
可选 |
|
配置DHCP报文的DSCP优先级 |
可选 |
只有使能DHCP服务后,其它相关的DHCP中继配置才能生效。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP服务 |
dhcp enable |
必选 缺省情况下,DHCP服务处于禁止状态 |
配置接口工作在中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给DHCP服务器,由服务器分配地址。
表3-4 配置接口工作在DHCP中继模式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口工作在DHCP中继模式 |
dhcp select relay |
必选 缺省情况下,使能DHCP服务后,接口工作在DHCP服务器模式 |
DHCP客户端通过DHCP中继获取IP地址时,DHCP服务器上需要配置与DHCP中继连接DHCP客户端的接口的IP地址所在网段(网络号和掩码)完全相同的地址池,否则会导致DHCP客户端无法获得正确的IP地址。
为了提高可靠性,可以在一个网络中设置多个DHCP服务器。多个DHCP服务器构成一个DHCP服务器组。当接口与DHCP服务器组建立归属关系后,会将客户端发来的DHCP报文转发给服务器组中的所有服务器。
表3-5 配置DHCP服务器组
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP服务器组中DHCP服务器的IP地址 |
dhcp relay server-group group-id ip ip-address |
必选 缺省情况下,没有配置DHCP服务器组中服务器的IP地址 |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口与DHCP服务器组的归属关系 |
dhcp relay server-select group-id |
必选 缺省情况下,接口没有与任何一个DHCP服务器组建立归属关系 |
· 设备上最多可以配置20个DHCP服务器组。
· 通过重复执行dhcp relay server-group命令,可以在一个DHCP服务器组中配置多个DHCP服务器的IP地址。每个DHCP服务器组中最多可以配置8个DHCP服务器地址。
· DHCP服务器组中服务器的IP地址不能与DHCP中继连接客户端的接口IP地址在同一网段。否则,可能导致客户端无法获得IP地址。
· 每个DHCP服务器组可以对应多个接口。但每个接口只能对应一个DHCP服务器组。在同一接口下多次执行dhcp relay server-select命令,新的配置会覆盖已有配置。但是,如果新指定的DHCP服务器组不存在时,新的归属关系配置不成功,接口还是维持与上一次配置的DHCP服务器组的归属关系。
· dhcp relay server-select命令中所指定的组号,需事先通过dhcp relay server-group命令进行配置。
为了防止非法主机静态配置一个IP地址并访问外部网络,设备支持DHCP中继的地址匹配检查功能。
接口上使能该功能后,当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与MAC地址的绑定关系,生成DHCP中继的动态用户地址表项。同时,为满足用户采用合法固定IP地址访问外部网络的需求,DHCP中继也支持静态配置用户地址表项,即在DHCP中继上手工配置IP地址与MAC地址的绑定关系。
DHCP中继接收到主机发送的报文后,如果在用户地址表中(包括DHCP中继动态记录的表项以及手工配置的用户地址表项)没有与报文源IP地址和源MAC地址匹配的表项,则不学习该主机的ARP表项。DHCP中继收到应答给该主机的报文后,无法将应答报文发送给该主机。从而,保证非法主机不能通过DHCP中继与外部网络通信。
表3-6 配置DHCP中继的地址匹配检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP中继的静态用户地址表项 |
dhcp relay security static ip-address mac-address [ interface interface-type interface-number ] |
可选 缺省情况下,没有配置DHCP中继的静态用户地址表项 |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP中继的地址匹配检查功能 |
dhcp relay address-check enable |
必选 缺省情况,禁止DHCP中继的地址匹配检查功能 |
· 目前,只能在VLAN接口上执行dhcp relay address-check enable命令。
· 在接口上使能DHCP中继的地址匹配检查功能之前,需要先使能DHCP服务、并配置该接口工作在DHCP中继模式,否则地址匹配检查功能不会生效。
· 执行dhcp relay address-check enable命令后将只检查IP和MAC地址,不检查接口。
· 通过dhcp relay security static命令配置静态用户地址表项时,如果静态用户地址表项与接口绑定,配置的接口必须工作在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中继动态用户地址表项定时刷新周期
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启DHCP中继动态用户地址表项定时刷新功能 |
dhcp relay security refresh enable |
可选 缺省情况下,DHCP中继动态用户地址表项定时刷新功能处于开启状态 |
配置DHCP中继动态用户地址表项的定时刷新周期 |
dhcp relay security tracker { interval | auto } |
可选 缺省情况下,定时刷新周期为auto,即根据表项的数目自动计算刷新时间间隔 |
如果网络中有私自架设的DHCP服务器,当客户端申请IP地址时,这台DHCP服务器就会与DHCP客户端进行交互,导致客户端获得错误的IP地址,这种私设的DHCP服务器称为伪DHCP服务器。
使能伪DHCP服务器检测功能后,DHCP中继会检查接收到的DHCP报文中是否携带Option 54(Server Identifier Option,服务器标识选项)。如果携带该选项,则DHCP中继记录此选项中的IP地址,即给客户端分配IP地址的服务器IP地址,并记录接收到报文的接口信息,以便管理员及时发现并处理伪DHCP服务器。
表3-8 配置伪DHCP服务器检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能伪DHCP服务器检测功能 |
dhcp relay server-detect |
必选 缺省情况下,禁止伪DHCP服务器检测功能 |
· 使能伪DHCP服务器检测功能后,对所有DHCP服务器都会进行记录,包括合法的DHCP服务器,管理员需要从日志信息中查找伪DHCP服务器。
· 使能伪DHCP服务器检测功能后,对每个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服务器;如果不一致,则丢弃该报文。
表3-9 使能DHCP中继的MAC地址检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP中继的MAC地址检查功能 |
dhcp relay check mac-address |
必选 缺省情况下,DHCP中继的MAC地址检查功能处于关闭状态 |
由于DHCP中继转发DHCP报文时会修改报文的源MAC地址,所以只能在靠近DHCP客户端的第一跳DHCP中继设备上使能MAC地址检查功能。在非第一跳DHCP中继设备上使能MAC地址检查功能,会使DHCP中继设备错误的丢弃报文,导致客户端地址申请不成功。
DHCP中继的用户下线检测功能以ARP表项老化功能为基础,ARP表项老化时认为该表项对应的用户已经下线。
如果接口上使能了DHCP中继用户下线检测功能,则ARP表项老化时,会删除对应的用户地址表项。同时,DHCP中继还会向DHCP服务器发送DHCP-RELEASE报文,释放下线用户的IP地址租约。
表3-10 配置DHCP中继的用户下线检测功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP中继的用户下线检测功能 |
dhcp relay client-detect enable |
必选 缺省情况下,DHCP中继的用户下线检测功能处于关闭状态 |
手工删除ARP表项,不会触发删除对应的用户地址表项。该ARP表项对应的用户下线时,需要通过undo dhcp relay security命令手工删除对应的用户地址表项。
在某些情况下,可能需要通过DHCP中继手工释放客户端申请到的IP地址。如果DHCP中继上存在客户端IP地址对应的动态用户地址表项,则配置通过DHCP中继释放该客户端IP地址后,DHCP中继会主动向DHCP服务器发送DHCP-RELEASE报文。DHCP服务器收到该报文后,将会释放指定IP地址的租约。DHCP中继也会删除该动态用户地址表项。
表3-11 配置通过DHCP中继释放客户端的IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
向DHCP服务器请求释放客户端申请到的IP地址 |
dhcp relay release ip client-ip |
必选 |
· 释放的客户端IP地址必须是动态用户地址表项中存在的IP地址,否则DHCP中继无法释放该IP地址。
· 只有使能DHCP中继的地址匹配检查功能或IP Source Guard功能后,才会自动生成DHCP中继的动态用户地址表项。有关IP Source Guard的详细介绍,请参见“安全配置指导”中的“IP Source Guard”。
在配置DHCP中继支持Option82功能之前,需完成DHCP中继的必配任务,即:
· 使能DHCP服务
· 配置接口工作在DHCP中继模式
· 配置DHCP服务器组
表3-12 配置DHCP中继支持Option 82功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图 |
interface interface-type interface-number |
- |
|
使能DHCP中继支持Option 82功能 |
dhcp relay information enable |
必选 缺省情况下,禁止DHCP中继支持Option 82功能 |
|
配置DHCP中继对包含Option 82的请求报文的处理策略 |
dhcp relay information strategy { drop | keep | replace } |
可选 缺省情况下,处理策略为replace |
|
配置非用户自定义的Option 82 |
配置Option 82的填充模式 |
dhcp relay information format { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] } |
可选 缺省情况下,Option 82的填充模式为normal |
配置Circuit ID子选项的填充格式 |
dhcp relay information circuit-id format-type { ascii | hex } |
可选 缺省情况下,Circuit ID子选项的填充格式由Option 82的填充模式决定,每个字段的填充格式不同 配置的填充格式只对非用户自定义的填充内容有效 |
|
配置Remote ID子选项的填充格式 |
dhcp relay information remote-id format-type { ascii | hex } |
可选 缺省情况下,采用HEX格式填充Remote ID子选项 配置的填充格式只对非用户自定义的填充内容有效 |
|
配置用户自定义的Option 82 |
配置Circuit ID子选项的内容 |
dhcp relay information circuit-id string circuit-id |
可选 缺省情况下,Circuit ID子选项的内容由Option 82的填充模式决定 |
配置Remote ID子选项的内容 |
dhcp relay information remote-id string { remote-id | sysname } |
可选 缺省情况下,Remote ID子选项的内容由Option 82的填充模式决定 |
· 为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。DHCP服务器的相关配置请参见“2.9 配置Option 82的处理方式”。
· DHCP中继对包含Option 82请求报文的处理策略为replace时,需要配置Option 82的填充格式;处理策略为keep或drop时,不需要配置Option 82的填充格式。
· 如果以节点的设备名称(sysname)作为节点标识填充DHCP报文的Option 82,则设备名称中不能包含空格;否则,DHCP中继将丢弃该报文。
在IPv4报文头中,包含一个8bit的ToS字段,用于标识IP报文的服务类型。RFC 2474对这8个bit进行了定义,将前6个bit定义为DSCP优先级,最后2个bit作为保留位。在报文传输的过程中,DSCP优先级可以被网络设备识别,并作为报文传输优先程度的参考。
用户可以对DHCP中继发送的DHCP报文的DSCP优先级进行配置。
表3-13 配置DHCP中继发送的DHCP报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP中继发送的DHCP报文的DSCP优先级 |
dhcp dscp dscp-value |
可选 缺省情况下,DHCP中继发送的DHCP报文的DSCP优先级为56 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP中继的统计信息。
表3-14 DHCP中继显示和维护
操作 |
命令 |
显示接口对应的DHCP服务器组的信息 |
display dhcp relay { all | interface interface-type interface-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCP中继上Option 82的配置信息 |
display dhcp relay information { all | interface interface-type interface-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCP中继的用户地址表项信息 |
display dhcp relay security [ ip-address | dynamic | static ] [ | { begin | exclude | include } regular-expression ] |
显示DHCP中继用户地址表项的统计信息 |
display dhcp relay security statistics [ | { begin | exclude | include } regular-expression ] |
显示DHCP中继动态用户地址表项的定时刷新周期 |
display dhcp relay security tracker [ | { begin | exclude | include } regular-expression ] |
显示DHCP服务器组中服务器的IP地址。 |
display dhcp relay server-group { group-id | all } [ | { begin | exclude | include } regular-expression ] |
显示DHCP中继的相关报文统计信息 |
display dhcp relay statistics [ server-group { group-id | all } ] [ | { begin | exclude | include } regular-expression ] |
清除DHCP中继的统计信息 |
reset dhcp relay statistics [ server-group group-id ] |
· 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中继通过端口(属于VLAN1)连接到DHCP客户端所在的网络,交换机VLAN接口1的IP地址为10.10.1.1/24,VLAN接口2的IP地址为10.1.1.2/24。
图3-3 DHCP中继组网示意图
# 配置各接口的IP地址(略)。
# 使能DHCP服务。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置DHCP服务器的地址。
[SwitchA] dhcp relay server-group 1 ip 10.1.1.1
# 配置VLAN接口1工作在DHCP中继模式。
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] dhcp select relay
# 配置VLAN接口1对应DHCP服务器组1。
[SwitchA-Vlan-interface1] dhcp relay server-select 1
配置完成后,DHCP客户端可以通过DHCP中继从DHCP服务器获取IP地址及相关配置信息。通过display dhcp relay statistics命令可以显示DHCP中继转发的DHCP报文统计信息;如果在DHCP中继上通过dhcp relay address-check enable命令使能了DHCP中继的地址匹配检查功能,则可以通过display dhcp relay security命令可以显示通过DHCP中继获取IP地址的客户端信息。
· 由于DHCP中继连接客户端的接口IP地址与DHCP服务器的IP地址不在同一网段,因此需要在DHCP服务器上通过静态路由或动态路由协议保证两者之间路由可达。
· 为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置。DHCP服务器的配置方法,请参见“2.13 DHCP服务器典型配置举例”。
· 在DHCP中继Switch A上使能Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· Ciruict ID填充内容为company001,Remote ID填充内容为device001;
· Switch A将添加Option 82的DHCP请求报文转发给DHCP服务器Switch B,使得DHCP客户端可以获取到IP地址。
如图3-3所示。
# 配置各接口的IP地址(略)。
# 使能DHCP服务。
<SwitchA> system-view
[SwitchA] dhcp enable
# 配置DHCP服务器的地址。
[SwitchA] dhcp relay server-group 1 ip 10.1.1.1
# 配置VLAN接口1工作在DHCP中继模式。
[SwitchA] interface vlan-interface 1
[SwitchA-Vlan-interface1] dhcp select relay
# 配置VLAN接口1对应DHCP服务器组1。
[SwitchA-Vlan-interface1] dhcp relay server-select 1
# 配置Option 82的处理策略和填充内容。
[SwitchA-Vlan-interface1] dhcp relay information enable
[SwitchA-Vlan-interface1] dhcp relay information strategy replace
[SwitchA-Vlan-interface1] dhcp relay information circuit-id string company001
[SwitchA-Vlan-interface1] 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服务器组的IP地址配置正确。
· DHCP客户端中对于接口的相关配置,目前只能在VLAN接口上进行。
· 多个具有相同MAC地址的VLAN接口通过中继以DHCP方式申请IP地址时,不能用Windows 2000 Server和Windows 2003 Server作为DHCP服务器。
指定设备的接口作为DHCP客户端后,可以使用DHCP协议从DHCP服务器动态获得IP地址等参数,方便用户配置,也便于集中管理。
表4-1 配置接口使用DHCP方式获取IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口使用DHCP方式获取IP地址 |
ip address dhcp-alloc [ client-identifier mac interface-type interface-number ] |
必选 · 空配置启动时,使用软件功能缺省值,接口不使用DHCP方式获取IP地址。 · 缺省配置启动时,使用软件功能出厂值,指定接口的MAC地址作为客户端ID来获取IP地址。 关于空配置启动和缺省配置启动,请参见“基础配置指导”中的“配置文件管理”。 |
:
· 接口可以采用多种方式获得IP地址,新的配置方式会覆盖原有的配置方式。
· 当接口被配置为通过DHCP动态获取IP地址后,不能再给该接口配置从IP地址。
· 如果DHCP服务器为接口分配的IP地址与设备上其他接口的IP地址在同一网段,则该接口不会使用该IP地址,且不再向DHCP服务器申请IP地址,除非手动删除冲突接口的IP地址,并重新使能接口(先后执行shutdown和undo shutdown命令)或重新配置接口使用DHCP方式获取IP地址(先后执行undo ip address dhcp-alloc和ip address dhcp-alloc命令)。
在IPv4报文头中,包含一个8bit的ToS字段,用于标识IP报文的服务类型。RFC 2474对这8个bit进行了定义,将前6个bit定义为DSCP优先级,最后2个bit作为保留位。在报文传输的过程中,DSCP优先级可以被网络设备识别,并作为报文传输优先程度的参考。
用户可以对DHCP客户端发送的DHCP报文的DSCP优先级进行配置。
表4-2 配置DHCP客户端发送的DHCP报文的DSCP优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置DHCP客户端发送的DHCP报文的DSCP优先级 |
dhcp client dscp dscp-value |
可选 缺省情况下,DHCP客户端发送的DHCP报文的DSCP优先级为56 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP客户端的信息,通过查看显示信息验证配置的效果。
表4-3 DHCP客户端显示和维护
操作 |
命令 |
显示DHCP客户端的相关信息 |
display dhcp client [ verbose ] [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
Switch B的端口(属于VLAN2)接入局域网,VLAN接口2通过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的内容,以便为客户端分配静态路由信息。其中,目的描述符由子网掩码长度和目的网络地址两部分组成。在本例中,目的描述符字段取值为18 14 01 01(十六进制数值,表示子网掩码长度为24,目的网络地址为20.1.1.0);下一跳地址字段取值为0A 01 01 02(十六进制数值,表示下一跳地址为10.1.1.2)。
图4-1 DHCP客户端配置举例组网图
(1) 配置DHCP服务器Switch A
# 配置接口的IP地址。
<SwitchA> system-view
[SwitchA] interface vlan-interface 2
[SwitchA-Vlan-interface2] ip address 10.1.1.1 24
[SwitchA-Vlan-interface2] quit
# 使能DHCP服务。
[SwitchA] dhcp enable
# 配置不参与自动分配的IP地址。
[SwitchA] 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。
[SwitchA] dhcp server ip-pool 0
[SwitchA-dhcp-pool-0] network 10.1.1.0 mask 255.255.255.0
[SwitchA-dhcp-pool-0] expired day 10
[SwitchA-dhcp-pool-0] dns-list 20.1.1.1
[SwitchA-dhcp-pool-0] option 121 hex 18 14 01 01 0A 01 01 02
(2) 配置DHCP客户端Switch B
# 配置VLAN接口2通过DHCP动态获取地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 2
[SwitchB-Vlan-interface2] ip address dhcp-alloc
(3) 验证配置结果
# 通过display dhcp client命令可以查看Switch B申请到的IP地址和网络配置参数。
[SwitchB-Vlan-interface2] display dhcp client verbose
Vlan-interface2 DHCP client information:
Current machine state: BOUND
Allocated IP: 10.1.1.3 255.255.255.0
Allocated lease: 864000 seconds, T1: 432000 seconds, T2: 756000 seconds
Lease from 2009.02.20 11:06:35 to 2009.03.02 11:06:35
DHCP server: 10.1.1.1
Transaction ID: 0x410090f0
Classless static route:
Destination: 20.1.1.0, Mask: 255.255.255.0, NextHop: 10.1.1.2
DNS server: 20.1.1.1
Client ID: 3030-3066-2e65-3230-
302e-3030-3032-2d45-
7468-6572-6e65-7430-
2f30
T1 will timeout in 4 days 23 hours 59 minutes 50 seconds.
# 通过display ip routing-table命令可以查看Switch B的路由表中添加了到达20.1.1.0/24网络的静态路由。
[SwitchB-Vlan-interface2] display ip routing-table
Routing Tables: Public
Destinations : 5 Routes : 5
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.3 Vlan2
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 Vlan2
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
设备只有位于DHCP客户端与DHCP服务器之间,或DHCP客户端与DHCP中继之间时,DHCP Snooping功能配置后才能正常工作;设备位于DHCP服务器与DHCP中继之间时,DHCP Snooping功能配置后不能正常工作。
DHCP Snooping是DHCP的一种安全特性,具有如下功能:
(1) 保证客户端从合法的服务器获取IP地址。
(2) 记录DHCP客户端IP地址与MAC地址的对应关系。
网络中如果存在私自架设的伪DHCP服务器,则可能导致DHCP客户端获取错误的IP地址和网络配置参数,无法正常通信。为了使DHCP客户端能通过合法的DHCP服务器获取IP地址,DHCP Snooping安全机制允许将端口设置为信任端口和不信任端口:
· 信任端口正常转发接收到的DHCP报文。
· 不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文后,丢弃该报文。
连接DHCP服务器和其他DHCP Snooping设备的端口需要设置为信任端口,其他端口设置为不信任端口,从而保证DHCP客户端只能从合法的DHCP服务器获取IP地址,私自架设的伪DHCP服务器无法为DHCP客户端分配IP地址。
DHCP Snooping通过监听DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文,记录DHCP Snooping表项,其中包括客户端的MAC地址、获取到的IP地址、与DHCP客户端连接的端口及该端口所属的VLAN等信息。利用这些信息可以实现:
· ARP Detection:根据DHCP Snooping表项来判断发送ARP报文的用户是否合法,从而防止非法用户的ARP攻击。ARP Detection的详细介绍请参见“安全配置指导”中的“ARP攻击防御”。
· IP Source Guard:通过动态获取DHCP Snooping表项对端口转发的报文进行过滤,防止非法报文通过该端口。IP Source Guard的详细介绍请参见“安全配置指导”中的“IP Source Guard”。
如图5-1所示,连接DHCP服务器的端口需要配置为信任端口,以便DHCP Snooping设备正常转发DHCP服务器的应答报文,保证DHCP客户端能够从合法的DHCP服务器获取IP地址。
在多个DHCP Snooping设备级联的网络中,为了节省系统资源,不需要每台DHCP Snooping设备都记录所有DHCP客户端的IP地址和MAC地址绑定,只需在与客户端直接相连的DHCP Snooping设备上记录绑定信息。通过将间接与DHCP客户端相连的端口配置为不记录IP地址和MAC地址绑定的信任端口,可以实现该功能。如果DHCP客户端发送的请求报文从此类信任端口到达DHCP Snooping设备,DHCP Snooping设备不会记录客户端IP地址和MAC地址的绑定。
图5-2 DHCP Snooping级联组网图
设备 |
不信任端口 |
不记录绑定信息的信任端口 |
记录绑定信息的信任端口 |
Switch A |
GigabitEthernet1/0/1 |
GigabitEthernet1/0/3 |
GigabitEthernet1/0/2 |
Switch B |
GigabitEthernet1/0/3和GigabitEthernet1/0/4 |
GigabitEthernet1/0/1 |
GigabitEthernet1/0/2 |
Switch C |
GigabitEthernet1/0/1 |
GigabitEthernet1/0/3和GigabitEthernet1/0/4 |
GigabitEthernet1/0/2 |
Option 82记录了DHCP客户端的位置信息。管理员可以利用该选项定位DHCP客户端,实现对客户端的安全和计费等控制。Option 82的详细介绍请参见“1.4.3 2. 中继代理信息选项(Option 82)”。
如果DHCP Snooping支持Option 82功能,则当设备接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充模式等对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。具体的处理方式见表5-2。
当设备接收到DHCP服务器的响应报文时,如果报文中含有Option 82,则删除Option 82,并转发给DHCP客户端;如果报文中不含有Option 82,则直接转发。
表5-2 DHCP Snooping支持Option 82的处理方式
收到DHCP请求报文 |
处理策略 |
填充模式 |
DHCP Snooping对报文的处理 |
收到的报文中带有Option 82 |
Drop |
- |
丢弃报文 |
Keep |
任意 |
保持报文中的Option 82不变并进行转发 |
|
Replace |
normal |
采用normal模式填充Option 82,替换报文中原有的Option 82并进行转发 |
|
verbose |
采用verbose模式填充Option 82,替换报文中原有的Option 82并进行转发 |
||
用户自定义 |
采用用户自定义的内容填充Option 82,替换报文中原有的Option 82并进行转发 |
||
Append |
normal |
保持报文中的Option 82不变并进行转发 |
|
verbose |
保持报文中的Option 82不变并进行转发 |
||
private |
在报文中原有Option 82的基础上追加子选项9的内容,如果原有Option 82中携带子选项9,在原有子选项9的基础上追加内容,然后转发报文 |
||
standard |
保持报文中的Option 82不变并进行转发 |
||
用户自定义 |
保持报文中的Option 82不变并进行转发 |
||
收到的报文中不带有Option 82 |
- |
normal |
采用normal模式填充Option 82并进行转发 |
private |
采用private填充Option 82并进行转发 |
||
standard |
采用standard模式填充Option 82并进行转发 |
||
verbose |
采用verbose模式填充Option 82并进行转发 |
||
用户自定义 |
采用用户自定义的内容填充Option 82并进行转发 |
DHCP Snooping对Option 82的处理策略、填充模式与DHCP中继相同。
表5-3 DHCP Snooping配置任务简介
配置任务 |
说明 |
详细配置 |
配置DHCP Snooping基本功能 |
必选 |
|
配置DHCP Snooping支持Option 82功能 |
可选 |
|
配置DHCP Snooping表项备份功能 |
可选 |
|
配置防止DHCP饿死攻击 |
可选 |
|
配置防止伪造DHCP续约报文攻击 |
可选 |
|
配置DHCP Snooping报文限速功能 |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
使能DHCP Snooping功能 |
dhcp-snooping |
必选 缺省情况下,DHCP Snooping功能处于关闭状态 |
进入接口视图 |
interface interface-type interface-number |
- 此接口为连接DHCP服务器的接口 |
配置端口为信任端口,并记录客户端IP地址和MAC地址的绑定关系 |
dhcp-snooping trust |
必选 缺省情况下,在使能DHCP Snooping功能后,设备的所有端口均为不信任端口 |
退回系统视图 |
quit |
- |
进入接口视图 |
interface interface-type interface-number |
- 此接口为间接与DHCP客户端相连的接口 |
配置端口为不记录IP地址和MAC地址绑定的信任端口 |
dhcp-snooping trust no-user-binding |
可选 缺省情况下,在使能DHCP Snooping功能后,设备的所有端口均为不信任端口 |
· 为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
· 目前,可以配置为DHCP Snooping信任端口的接口类型包括:二层以太网端口、二层聚合接口。关于聚合接口的详细介绍,请参见“二层技术-以太网交换配置指导”中的“以太网链路聚合”。
· 如果二层以太网端口加入聚合组,则在该接口上进行的DHCP Snooping相关配置不会生效;该接口退出聚合组后,之前的配置才会生效。
· DHCP Snooping功能可以与基本QinQ、灵活QinQ功能同时使用:接收到DHCP客户端发送给DHCP服务器的报文后,如果报文不带有VLAN Tag,则为其添加一层VLAN Tag;如果报文只带一层VLAN Tag,则在报文前面再添加一层VLAN Tag,(添加的VLAN Tag为第一层VLAN Tag,原来的VLAN Tag为第二层VLAN Tag),并通过DHCP Snooping表项记录两层VLAN Tag;如果报文带有两层VLAN Tag,则不添加VLAN Tag,直接转发给DHCP服务器。
· 在添加VLAN Tag的同时,还需要修改原有的VLAN Tag时,DHCP Snooping功能不能与灵活QinQ功能同时使用。
表5-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 { append | drop | keep | replace } |
可选 缺省情况下,处理策略为replace |
|
配置非用户自定义的Option 82 |
配置Option 82的填充模式 |
dhcp-snooping information format { normal | private private | standard | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] } |
可选 缺省情况下,Option 82的填充模式为normal |
配置Circuit ID子选项的填充格式 |
dhcp-snooping information circuit-id format-type { ascii | hex } |
可选 缺省情况下,Circuit ID子选项的填充格式由Option 82的填充模式决定,每个字段的填充格式不同 配置的填充格式只对非用户自定义的填充内容有效 Private填充模式下,仅配置为hex格式有效 |
|
配置Remote ID子选项的填充格式 |
dhcp-snooping information remote-id format-type { ascii | hex } |
可选 缺省情况下,采用HEX格式填充Remote ID子选项 配置的填充格式只对非用户自定义的填充内容有效 Private填充模式下,仅配置为hex格式有效 |
|
配置子选项9使能 |
dhcp-snooping information [ vlan vlan-id ] sub-option sub-option-code |
可选 缺省情况下,子选项9没有使能 配置append策略情况下,填充sysname和Loopback0接口的主IP,其它策略情况下仅填充sysname |
|
配置用户自定义的Option 82 |
配置Circuit ID子选项的内容 |
dhcp-snooping information [ vlan vlan-id ] circuit-id string circuit-id |
可选 缺省情况下,Circuit ID子选项的内容由Option 82的填充模式决定 |
配置Remote ID子选项的内容 |
dhcp-snooping information [ vlan vlan-id ] remote-id string { remote-id | sysname } |
可选 缺省情况下,Remote ID子选项的内容由Option 82的填充模式决定 |
|
配置子选项9的内容 |
dhcp-snooping information [ vlan vlan-id ] sub-option sub-option-code [ string user-string&<1-8> ] |
可选 缺省情况下,子选项9不填充 |
· 只能在二层以太网端口、二层聚合接口上配置DHCP Snooping支持Option 82功能。
· 如果二层以太网端口加入聚合组,则该接口上进行的DHCP Snooping支持Option 82功能的配置不会生效;该接口退出聚合组后,之前的配置才会生效。
· 为使Option 82功能正常使用,需要在DHCP服务器和DHCP Snooping上都进行相应配置。DHCP服务器的相关配置请参见“2.9 配置Option 82的处理方式”。
· DHCP Snooping对包含Option 82请求报文的处理策略为replace时,需要配置Option 82的填充格式;处理策略为keep或drop时,不需要配置Option 82的填充格式。
· 如果以设备名称(sysname)作为节点标识填充DHCP报文的Option 82,则设备名称中不能包含空格;否则,DHCP Snooping将丢弃该报文。用户可以通过sysname命令配置设备名称,该命令的详细介绍请参见“基本配置命令参考”中的“设备管理”。
· DHCP Snooping功能和QinQ功能同时使用,或DHCP Snooping设备接收到的DHCP报文带有两层VLAN Tag时,如果采用normal或verbose模式填充Option 82,则sub-option 1中VLAN ID字段的格式为“第一层VLAN Tag.第二层VLAN Tag”。例如,第一层VLAN Tag为10(十六进制值为a),第二层VLAN Tag为20(十六进制值为14),则VLAN ID字段的内容为“000a.0014”。
DHCP Snooping设备重启后,设备上记录的DHCP Snooping表项将丢失。如果DHCP Snooping与安全模块(如IP Source Guard)配合使用,则表项丢失会导致安全模块无法通过DHCP Snooping获取到相应的表项,进而导致DHCP客户端不能顺利通过安全检查、正常访问网络。
DHCP Snooping表项备份功能将DHCP Snooping表项保存到指定的文件中,DHCP Snooping设备重启后,自动根据该文件恢复DHCP Snooping表项,从而保证DHCP Snooping表项不会丢失。
表5-6 配置DHCP Snooping表项备份功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
指定存储DHCP Snooping表项的文件名称 |
dhcp-snooping binding database filename filename |
必选 缺省情况下,未指定存储文件名称 执行本命令后,会立即触发一次表项备份。之后,按照dhcp-snooping binding database update interval命令设置的刷新时间间隔定时更新表项文件 |
将当前的DHCP Snooping表项保存到用户指定的文件中 |
dhcp-snooping binding database update now |
可选 本命令只用来触发一次DHCP Snooping表项的备份 |
配置DHCP Snooping表项存储文件的刷新时间间隔 |
dhcp-snooping binding database update interval minutes |
可选 缺省情况下,不会定期刷新DHCP Snooping表项存储文件 |
执行undo dhcp-snooping命令关闭DHCP Snooping功能后,设备会删除所有DHCP Snooping表项,文件中存储的DHCP Snooping表项也将被删除。
DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致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服务器;如果不一致,则丢弃该报文。
表5-7 使能DHCP Snooping的MAC地址检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP Snooping的MAC地址检查功能 |
dhcp-snooping check mac-address |
必选 缺省情况下,DHCP Snooping的MAC地址检查功能处于关闭状态 |
只能在二层以太网端口、二层聚合接口上使能DHCP Snooping的MAC地址检查功能。
伪造DHCP续约报文攻击是指攻击者冒充合法的DHCP客户端,向DHCP服务器发送伪造的DHCP续约报文,导致DHCP服务器和DHCP客户端无法按照自己的意愿及时释放IP地址租约。如果攻击者冒充不同的DHCP客户端发送大量伪造的DHCP续约报文,则会导致大量IP地址被长时间占用,DHCP服务器没有足够的地址分配给新的DHCP客户端。
在DHCP Snooping设备上使能DHCP Request报文检查功能,可以有效地防止伪造DHCP续约报文攻击。如果使能了该功能,则DHCP Snooping设备接收到DHCP Request报文后,检查本地是否存在与DHCP Request报文匹配的DHCP Snooping表项。若存在,则DHCP Request报文信息与DHCP Snooping表项信息一致时,认为该报文为合法的续约报文,将其转发给DHCP服务器;不一致时,认为该报文为伪造的续约报文,将其丢弃。若不存在,则认为该报文合法,将其转发给DHCP服务器。
表5-8 使能DHCP Snooping的DHCP Request报文检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP Snooping的DHCP Request报文检查功能 |
dhcp-snooping check request-message |
必选 缺省情况下,DHCP Snooping的DHCP Request报文检查功能处于关闭状态 |
只能在二层以太网端口、二层聚合接口上使能DHCP Snooping的DHCP Request报文检查功能。
为了避免非法用户发送大量的DHCP报文,对网络造成攻击,DHCP Snooping支持报文限速功能,限制接口接收DHCP报文的速率。当接口接收的DHCP报文速率超过限制的最高速率时,DHCP Snooping设备将丢弃超过速率限制的报文。
表5-9 配置DHCP Snooping报文限速功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
使能DHCP Snooping的报文限速功能 |
dhcp-snooping rate-limit rate |
必选 缺省情况下,关闭DHCP Snooping的报文限速功能,即不限制接口接收DHCP报文的速率 |
· 只能在二层以太网端口和二层聚合接口上使能DHCP Snooping的报文限速功能。
· 如果二层以太网端口加入了聚合组,则该接口采用对应二层聚合接口下的DHCP Snooping报文限速配置。
在完成上述配置后,在任意视图下执行display命令可以显示DHCP Snooping的配置情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除DHCP Snooping的统计信息。
表5-10 DHCP Snooping显示和维护
操作 |
命令 |
显示DHCP Snooping表项信息 |
display dhcp-snooping [ ip ip-address ] [ | { begin | exclude | include } regular-expression ] |
显示DHCP Snooping上Option 82的配置信息 |
display dhcp-snooping information { all | interface interface-type interface-number } [ | { begin | exclude | include } regular-expression ] |
显示DHCP Snooping设备上的DHCP报文统计信息 |
display dhcp-snooping packet statistics [ slot slot-number ] [ | { begin | exclude | include } regular-expression ] |
显示信任端口信息 |
display dhcp-snooping trust [ | { begin | exclude | include } regular-expression ] |
显示DHCP Snooping表项备份信息 |
display dhcp-snooping binding database [ | { begin | exclude | include } regular-expression ] |
清除DHCP Snooping表项 |
reset dhcp-snooping { all | ip ip-address } |
清除DHCP Snooping设备上的DHCP报文统计信息 |
reset dhcp-snooping packet statistics [ slot slot-number ] |
Switch B通过以太网端口GigabitEthernet1/0/1连接到DHCP服务器,通过以太网端口GigabitEthernet1/0/2、GigabitEthernet1/0/3连接到DHCP客户端。要求:
· 与DHCP服务器相连的端口可以转发DHCP服务器的响应报文,而其他端口不转发DHCP服务器的响应报文。
· 记录DHCP-REQUEST报文和信任端口收到的DHCP-ACK报文中DHCP客户端IP地址及MAC地址的绑定关系。
图5-3 DHCP Snooping组网示意图
# 使能DHCP Snooping功能。
<SwitchB> system-view
[SwitchB] dhcp-snooping
# 配置GigabitEthernet1/0/1端口为信任端口。
[SwitchB] interface GigabitEthernet 1/0/1
[SwitchB-GigabitEthernet1/0/1] dhcp-snooping trust
[SwitchB-GigabitEthernet1/0/1] quit
· Switch B上使能DHCP Snooping功能,并支持Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· 在GigabitEthernet1/0/2上配置Ciruict ID填充内容为company001,Remote ID填充内容为device001;
· 在GigabitEthernet1/0/3上配置以verbose模式填充Option 82,接入节点标识为sysname,填充格式为ASCII格式。
· Switch B将添加Option 82的DHCP请求报文转发给DHCP服务器Switch A,使得DHCP客户端可以获取到IP地址。
如图5-3所示。
# 使能DHCP Snooping功能。
<SwitchB> system-view
[SwitchB] dhcp-snooping
# 配置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] 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] dhcp-snooping information enable
[SwitchB-GigabitEthernet1/0/3] dhcp-snooping information strategy replace
[SwitchB-GigabitEthernet1/0/3] dhcp-snooping information format verbose node-identifier sysname
[SwitchB-GigabitEthernet1/0/3] dhcp-snooping information circuit-id format-type ascii
[SwitchB-GigabitEthernet1/0/3] dhcp-snooping information remote-id format-type ascii
· BOOTP客户端中对于接口的相关配置,目前只能在VLAN接口上进行。
· 多个具有相同MAC地址的VLAN接口通过中继以BOOTP方式申请IP地址时,不能用Windows 2000 Server和Windows 2003 Server作为BOOTP服务器。
BOOTP是Bootstrap Protocol(自举协议)的简称。指定设备的接口作为BOOTP客户端后,该接口可以使用BOOTP协议从BOOTP服务器获得IP地址等信息,从而方便用户配置。
使用BOOTP协议,管理员需要在BOOTP服务器上为每个BOOTP客户端配置BOOTP参数文件,该文件包括BOOTP客户端的MAC地址及其对应的IP地址等信息。当BOOTP客户端向BOOTP服务器发起请求时,服务器会查找BOOTP参数文件,并返回相应的配置信息。
由于需要在BOOTP服务器上为每个客户端事先配置参数文件,BOOTP一般运行在相对稳定的环境中。当网络变化频繁时,可以采用DHCP协议。
由于DHCP服务器可以与BOOTP客户端进行交互,因此用户可以不配置BOOTP服务器,而使用DHCP服务器为BOOTP客户端分配IP地址。
在下面的IP地址动态获取过程中,BOOTP服务器的功能可以用DHCP服务器替代。
BOOTP客户端从BOOTP服务器动态获取IP地址的具体过程如下:
(1) BOOTP客户端以广播方式发送BOOTP请求报文,其中包含了BOOTP客户端的MAC地址;
(2) BOOTP服务器接收到请求报文后,根据报文中的BOOTP客户端MAC地址,从配置文件数据库中查找对应的IP地址等信息,并向客户端返回包含这些信息的BOOTP响应报文;
(3) BOOTP客户端从接收到的响应报文中即可获得IP地址等信息。
与BOOTP相关的协议规范有:
· RFC 951:Bootstrap Protocol (BOOTP)
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
表6-1 配置接口通过BOOTP协议获取IP地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口通过BOOTP协议获取IP地址 |
ip address bootp-alloc |
必选 缺省情况下,接口不通过BOOTP协议获取IP地址 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后BOOTP客户端的运行情况,通过查看显示信息验证配置的效果。
表6-2 BOOTP客户端显示和维护
操作 |
命令 |
显示BOOTP客户端的相关信息 |
display bootp client [ interface interface-type interface-number ] [ | { begin | exclude | include } regular-expression ] |
Switch B的端口(属于VLAN1)接入局域网,VLAN接口1通过BOOTP协议从DHCP服务器获取IP地址。
如图2-2所示。
下面只列出图2-2中,作为客户端的Switch B的配置。
# 配置VLAN接口1通过BOOTP动态获取地址。
<SwitchB> system-view
[SwitchB] interface vlan-interface 1
[SwitchB-Vlan-interface1] ip address bootp-alloc
通过display bootp client命令可以查看BOOTP客户端申请到的IP地址。
为了使BOOTP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行一些配置,具体内容请参见“2.13 DHCP服务器典型配置举例”。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!