03-DHCP配置
本章节下载: 03-DHCP配置 (937.80 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.8 开启DHCP Snooping的MAC地址与端口检查功能
5.11.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功能中所指的“接口”为三层口,包括VLAN接口、三层以太网端口等。三层以太网端口是指被配置为三层模式的以太网端口,有关以太网端口模式切换的操作,请参见“二层技术-以太网交换配置指导”中的“以太网端口配置”。
在以下场合通常利用DHCP服务器来完成IP地址分配:
· 网络规模较大,手工配置需要很大的工作量,并难以对整个网络进行集中管理。
· 网络中主机数目大于该网络支持的IP地址数量,无法给每个主机分配一个固定的IP地址。例如,Internet接入服务提供商限制同时接入网络的用户数目,大量用户必须动态获得自己的IP地址。
· 网络中只有少数主机需要固定的IP地址,大多数主机没有固定的IP地址需求。
设备作为MCE(Multi-VPN-instance Customer Edge,多实例用户网络边界设备)时,在设备上配置DHCP服务器功能,不仅可以为公网上的DHCP客户端分配IP地址,还可以实现为私网内的DHCP客户端分配IP地址,但是公网和私网之间、不同私网之间的IP地址空间不能重叠。MCE的详细介绍,请参见“三层技术-IP路由配置指导”中的“MCE”。
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服务器,既节省了成本,又便于进行集中管理。
设备作为MCE(Multi-VPN-instance Customer Edge,多实例用户网络边界设备)时,在设备上配置DHCP中继功能,不仅可以为公网上的DHCP服务器和DHCP客户端转发DHCP报文,还可以实现为私网内的DHCP服务器和DHCP客户端转发DHCP报文,但是公网和私网之间、不同私网之间的IP地址空间不能重叠。MCE的详细介绍,请参见“三层技术-IP路由配置指导”中的“MCE”。
图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协议从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攻击防御”。
· MFF(MAC-Forced Forwarding):在MFF的自动方式中,设备截获到用户发送的ARP请求后,根据DHCP snooping表项查找该用户对应的网关地址,并回复网关的MAC地址,强制用户将所有流量发送到网关,使得网关可以监控用户之间的数据流量,从而防止用户之间的恶意攻击,更好的保障网络安全。MFF的详细介绍请参见“安全配置指导”中的“MFF”。
· IP Source Guard:通过动态获取DHCP Snooping表项对端口转发的报文进行过滤,防止非法报文通过该端口。IP Source Guard的详细介绍请参见“安全配置指导”中的“IP Source Guard”。
· VLAN映射:发送给用户的报文通过查找映射VLAN(SVLAN)对应的DHCP Snooping表项中的DHCP客户端IP地址、MAC地址和原始VLAN(CVLAN)的信息,将报文的SVLAN修改为原来的CVLAN。VLAN映射的详细介绍请参见“二层技术-以太网交换配置指导”中的“VLAN映射”。
如图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 |
Ethernet1/0/1 |
Ethernet1/0/3 |
Ethernet1/0/2 |
Switch B |
Ethernet1/0/3和Ethernet1/0/4 |
Ethernet1/0/1 |
Ethernet1/0/2 |
Switch C |
Ethernet1/0/1 |
Ethernet1/0/3和Ethernet1/0/4 |
Ethernet1/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的MAC地址与端口检查功能 |
可选 |
|
配置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 no-user-binding |
可选 缺省情况下,在使能DHCP Snooping功能后,设备的所有端口均记录客户端IP地址和MAC地址的绑定关系 |
· 为了使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 Snooping设备上开启该功能,DHCP Snooping设备将对收到的DHCP请求报文的MAC地址和接收端口进行检查,保证在同一VLAN内,DHCP Snooping表项里一个MAC地址只对应一个IP地址。当DHCP Snooping与安全模块配合使用时,可以防止相同MAC地址的用户申请多个IP地址。
表5-9 开启DHCP snooping的MAC地址与端口检查功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启DHCP snooping的MAC地址与端口检查功能 |
dhcp-snooping check mac-port |
缺省情况下,DHCP snooping的MAC地址与端口检查功能处于关闭状态 |
为了避免非法用户发送大量的DHCP报文,对网络造成攻击,DHCP Snooping支持报文限速功能,限制接口接收DHCP报文的速率。当接口接收的DHCP报文速率超过限制的最高速率时,DHCP Snooping设备将丢弃超过速率限制的报文。
表5-10 配置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-11 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通过以太网端口Ethernet1/0/1连接到DHCP服务器,通过以太网端口Ethernet1/0/2、Ethernet1/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
# 配置Ethernet1/0/1端口为信任端口。
[SwitchB] interface Ethernet 1/0/1
[SwitchB-Ethernet1/0/1] dhcp-snooping trust
[SwitchB-Ethernet1/0/1] quit
· Switch B上使能DHCP Snooping功能,并支持Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· 在Ethernet1/0/2上配置Ciruict ID填充内容为company001,Remote ID填充内容为device001;
· 在Ethernet1/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
# 配置Ethernet1/0/1端口为信任端口。
[SwitchB] interface Ethernet 1/0/1
[SwitchB-Ethernet1/0/1] dhcp-snooping trust
[SwitchB-Ethernet1/0/1] quit
# 在Ethernet1/0/2上配置DHCP Snooping支持Option 82功能。
[SwitchB] interface Ethernet 1/0/2
[SwitchB-Ethernet1/0/2] dhcp-snooping information enable
[SwitchB-Ethernet1/0/2] dhcp-snooping information strategy replace
[SwitchB-Ethernet1/0/2] dhcp-snooping information circuit-id string company001
[SwitchB-Ethernet1/0/2] dhcp-snooping information remote-id string device001
[SwitchB-Ethernet1/0/2] quit
# 在端口Ethernet1/0/3上配置DHCP Snooping支持Option 82功能。
[SwitchB] interface Ethernet 1/0/3
[SwitchB-Ethernet1/0/3] dhcp-snooping information enable
[SwitchB-Ethernet1/0/3] dhcp-snooping information strategy replace
[SwitchB-Ethernet1/0/3] dhcp-snooping information format verbose node-identifier sysname
[SwitchB-Ethernet1/0/3] dhcp-snooping information circuit-id format-type ascii
[SwitchB-Ethernet1/0/3] dhcp-snooping information remote-id format-type ascii
· BOOTP客户端中对于接口的相关配置,目前只能在三层以太网端口、三层聚合接口和VLAN接口上进行。
· 多个具有相同MAC地址的VLAN接口通过中继以BOOTP方式申请IP地址时,不能用Windows 2000 Server和Windows 2003 Server作为BOOTP服务器。
· 加入聚合组的接口不能配置为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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!