03-DHCP配置
本章节下载: 03-DHCP配置 (683.93 KB)
目 录
2.6.2 指定远端BAS IP地址池对应的DHCP服务器地址
2.12.2 通过smart-relay功能指定DHCP报文中填充的中继地址
2.13.2 指定DHCP中继向DHCP服务器转发报文的源地址(接口视图)
2.13.3 指定DHCP中继向DHCP服务器转发报文的源地址(远端BAS IP地址池视图)
2.15 配置DHCP中继通过Option82信息转发DHCP应答报文
2.16 配置DHCP中继允许从同一个DHCP服务器接收DHCP-NAK报文的最大个数
2.17 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址
2.18 配置DHCP中继收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式
2.20 配置DHCP中继收到应答DHCP-DISCOVER报文的DHCP-NAK报文后,切换到向下一个远端DHCP地址池对应的服务器转发报文的条件
2.23.1 DHCP客户端无法通过DHCP中继获取配置信息
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)采用客户端/服务器模式,由服务器为网络设备动态地分配IP地址等网络配置参数。DHCP客户端和DHCP服务器处于不同物理网段时,客户端可以通过DHCP中继与服务器通信,获取IP地址及其他配置信息。DHCP中继的详细介绍,请参见“2.1 DHCP中继简介”。
图1-1 同网段DHCP组网应用
针对客户端的不同需求,DHCP提供三种IP地址分配策略:
· 手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定固定的IP地址。通过DHCP将配置的固定IP地址分配给客户端。
· 自动分配地址:DHCP为客户端分配租期为无限长的IP地址。
· 动态分配地址:DHCP为客户端分配具有一定有效期限的IP地址,到达使用期限后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。
图1-2 IP地址动态获取过程
如图1-2所示,DHCP客户端从DHCP服务器获取IP地址,主要通过四个阶段进行:
(1) 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。
(2) 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCP-DISCOVER报文后,根据IP地址分配的优先次序选出一个IP地址,与其他参数一起通过DHCP-OFFER报文发送给客户端。
(3) 选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发来DHCP-OFFER报文,客户端只接受第一个收到的DHCP-OFFER报文,然后以广播方式发送DHCP-REQUEST报文,该报文中包含DHCP服务器在DHCP-OFFER报文中分配的IP地址。
(4) 确认阶段,即DHCP服务器确认IP地址的阶段。DHCP服务器收到DHCP客户端发来的DHCP-REQUEST报文后,只有DHCP客户端选择的服务器会进行如下操作:如果确认将地址分配给该客户端,则返回DHCP-ACK报文;否则返回DHCP-NAK报文,表明地址不能分配给该客户端。
客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内未收到回应,并且客户端上不存在与该地址同网段的其他地址时,客户端才使用此地址。否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,并重新申请IP地址。
如果网络中存在多个DHCP服务器,除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。
DHCP服务器分配给客户端的IP地址具有一定的租借期限(除自动分配的IP地址),该租借期限称为租约。当租借期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,则DHCP客户端需要申请延长IP地址租约。
在DHCP客户端的IP地址租约期限达到一半左右时间时,DHCP客户端会向为它分配IP地址的DHCP服务器单播发送DHCP-REQUEST报文,以进行IP租约的更新。如果客户端可以继续使用此IP地址,则DHCP服务器回应DHCP-ACK报文,通知DHCP客户端已经获得新IP租约;如果此IP地址不可以再分配给该客户端,则DHCP服务器回应DHCP-NAK报文,通知DHCP客户端不能获得新的租约。
如果在租约的一半左右时间进行的续约操作失败,DHCP客户端会在租约期限达到7/8时,广播发送DHCP-REQUEST报文进行续约。DHCP服务器的处理方式同上,不再赘述。
DHCP有8种类型的报文,每种报文的格式都相同,只是某些字段的取值不同。DHCP的报文格式如图1-3所示,括号中的数字表示该字段所占的字节。
图1-3 DHCP报文格式
各字段的解释如下:
· op:报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。具体的报文类型在options字段中标识。
· htype、hlen:DHCP客户端的硬件地址类型及长度。
· hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
· xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
· secs:DHCP客户端开始DHCP请求后所经过的时间。目前没有使用,固定为0。
· flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播方式发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。
· ciaddr:DHCP客户端的IP地址。如果客户端有合法和可用的IP地址,则将其添加到此字段,否则字段设置为0。此字段不用于客户端申请某个特定的IP地址。
· yiaddr:DHCP服务器分配给客户端的IP地址。
· siaddr:DHCP客户端获取启动配置信息的服务器IP地址。
· giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
· chaddr:DHCP客户端的硬件地址。
· sname:DHCP客户端获取启动配置信息的服务器名称。
· file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
· options:可选变长选项字段,包含报文的类型、有效租期、DNS服务器的IP地址、WINS服务器的IP地址等配置信息。
为了与BOOTP(Bootstrap Protocol,自举协议)兼容,DHCP保留了BOOTP的消息格式。DHCP和BOOTP消息的不同主要体现在选项(Options)字段。DHCP在BOOTP基础上增加的功能,通过Options字段来实现。
DHCP利用Options字段传递控制信息和网络配置参数,实现地址动态分配的同时,为客户端提供更加丰富的网络配置信息。
DHCP选项的格式如图1-4所示。
图1-4 DHCP选项格式
常见的DHCP选项有:
· Option 3:路由器选项,用来指定为客户端分配的网关地址。如果Option 3和Option 121同时存在,则忽略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 3、Option 33和Option 121同时存在,则忽略Option 3和Option 33。
· Option 150:TFTP服务器地址选项,用来指定为客户端分配的TFTP服务器的地址。
更多DHCP选项的介绍,请参见RFC 2132和RFC 3442。
有些选项的内容,RFC 2132中没有统一规定,例如Option 43、Option 82和Option 184。下面将介绍设备上定义的几种选项。
Option 43称为厂商特定信息选项。DHCP服务器和DHCP客户端通过Option 43交换厂商特定的信息。
设备作为DHCP客户端时,可以通过Option 43获取:
· ACS(Auto-Configuration Server,自动配置服务器)的参数,包括URL地址、用户名和密码。
· 服务提供商标识,CPE(Customer Premises Equipment,用户侧设备)从DHCP服务器获取该信息后,将该信息通告给ACS,以便ACS选择服务提供商特有的配置和参数等。
· PXE(Preboot eXecution Environment,预启动执行环境)引导服务器地址,以便客户端从PXE引导服务器获取启动文件或其他控制信息。
· 在无线网络中,AP(Access Point,接入点)作为DHCP客户端,可以通过Option 43获取AC(Access Controller,接入控制器)地址,以便AP从AC获取启动文件或其他控制信息。
为了提供可扩展性,通过Option 43为客户端分配更多的信息,Option 43采用子选项的形式,通过不同的子选项为用户分配不同的网络配置参数。如图1-5所示。子选项中各字段的含义为:
· Sub-option type:子选项类型。目前,子选项类型值可以为0x01表示ACS参数子选项,0x02表示服务提供商标识子选项,0x80表示PXE引导服务器地址子选项。
· Sub-option length:子选项的长度,不包括子选项类型和子选项长度字段。
· Sub-option value:子选项的取值。不同类型的子选项,取值格式有所不同。
· ACS参数子选项的取值字段格式如图1-6所示。ACS的URL地址、用户名和密码长度可变,每个参数之间用空格(十六进制数为20)隔开。
图1-6 ACS参数子选项取值字段的格式
· 服务提供商标识子选项的取值字段内容为服务提供商的标识。
· PXE引导服务器地址子选项的取值字段格式如图1-7所示。其中,PXE服务器类型目前取值只能为0;Server number为子选项中包含的PXE服务器地址的数目;Server IP addresses为PXE服务器的IP地址。
图1-7 PXE引导服务器地址子选项取值字段的格式
Option 82称为中继代理信息选项,该选项记录了DHCP客户端的位置信息。DHCP中继或DHCP Snooping设备接收到DHCP客户端发送给DHCP服务器的请求报文后,在该报文中添加Option 82,并转发给DHCP服务器。
管理员可以从Option 82中获得DHCP客户端的位置信息,以便定位DHCP客户端,实现对客户端的安全和计费等控制。支持Option 82的服务器还可以根据该选项的信息制定IP地址和其他参数的分配策略,提供更加灵活的地址分配方案。
Option 82最多可以包含255个子选项。若定义了Option 82,则至少要定义一个子选项。目前设备只支持两个子选项:sub-option 1(Circuit ID,电路ID子选项)和sub-option 2(Remote ID,远程ID子选项)。
由于Option 82的内容没有统一规定,不同厂商通常根据需要进行填充。
设备上,Circuit ID的填充模式有以下几种:
· 采用string模式填充:sub-option 1的内容是用户配置的字符串。
· 采用normal模式填充:sub-option 1的内容是接收到DHCP客户端请求报文的接口所属的VLAN ID以及接口编号。
· 采用verbose模式填充:sub-option 1的内容包括用户配置的接入节点标识,接收到DHCP客户端请求报文的接口类型、接口编号和接口所属的VLAN ID。
Remote ID的填充模式有以下几种:
· 采用string模式填充:sub-option 2的内容是用户配置的字符串。
· 采用normal模式填充:sub-option 2的内容是接收到DHCP客户端请求报文的接口MAC地址(DHCP中继)或设备的桥MAC地址(DHCP Snooping)。
· 采用sysname模式填充:sub-option 2的内容是设备的系统名称。设备的系统名称可以通过系统视图下的sysname命令配置。
Option 184是RFC中规定的保留选项,用户可以自定义该选项中携带的信息。设备上,Option 184携带了语音呼叫所需的信息。通过Option 184,可以实现在为具有语音功能的DHCP客户端提供语音呼叫相关信息。
目前Option 184支持四个子选项,承载的内容如下:
· sub-option 1:网络呼叫处理器的IP地址,用来标识作为网络呼叫控制源及应用程序下载的服务器。只有定义了sub-option 1(网络呼叫处理器的IP地址子选项),其他子选项才能生效。
· sub-option 2:备用服务器的IP地址,当sub-option 1中携带的网络呼叫处理器不可达或不合法时,DHCP客户端使用该选项指定的备用服务器作为网络呼叫处理器。
· sub-option 3:语音VLAN信息,指定语音VLAN的ID及DHCP客户端是否会将所指定的VLAN作为语音VLAN。
· sub-option 4:自动故障转移呼叫路由,指定故障转移呼叫路由的IP地址及其关联的拨号串,即SIP(Session Initiation Protocol,会话初始协议)用户之间互相通信时对端的IP地址和呼叫号码。当网络呼叫处理器和备用服务器均不可达时,SIP用户可以使用对端IP地址及呼叫号码直接与对端SIP用户建立连接并通信。
与DHCP相关的协议规范有:
· RFC 2131:Dynamic Host Configuration Protocol
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
· RFC 3046:DHCP Relay Agent Information Option
· RFC 3442:The Classless Static Route Option for Dynamic Host Configuration Protocol (DHCP) version 4
DHCP客户端和DHCP服务器处于不同物理网段时,客户端可以通过DHCP中继与DHCP服务器通信,获取IP地址及其他配置信息。
图2-1是DHCP中继的典型应用示意图。
图2-1 DHCP中继的典型组网应用
通过DHCP中继完成动态配置的过程中,DHCP客户端与DHCP服务器的处理方式与不通过DHCP中继时的处理方式基本相同。下面只说明DHCP中继的转发过程,报文的具体交互过程请参见“1.2.2 IP地址获取过程”。
图2-2 DHCP中继的工作过程
如图2-2所示,DHCP中继的工作过程为:
(1) 具有DHCP中继功能的网络设备收到DHCP客户端以广播方式发送的DHCP-DISCOVER或DHCP-REQUEST报文后,将报文中的giaddr字段填充为DHCP中继的IP地址,并根据配置将报文单播转发给指定的DHCP服务器。
(2) DHCP服务器根据giaddr字段为客户端分配IP地址等参数,并通过DHCP中继将配置信息转发给客户端,完成对客户端的动态配置。
Option 82记录了DHCP客户端的位置信息。管理员可以利用该选项定位DHCP客户端,实现根据Option 82为客户端分配特定范围的地址、对客户端进行安全和计费等控制。Option 82的详细介绍请参见“1.6.2 中继代理信息选项(Option 82)”。
如果DHCP中继支持Option 82功能,则当DHCP中继接收到DHCP请求报文后,将根据报文中是否包含Option 82以及用户配置的处理策略及填充模式等对报文进行相应的处理,并将处理后的报文转发给DHCP服务器。具体的处理方式见表2-1。
如果DHCP中继收到的应答报文中带有Option 82,则会将Option 82删除后再转发给DHCP客户端。
表2-1 DHCP中继支持Option 82的处理方式
收到DHCP请求报文 |
处理策略 |
DHCP中继对报文的处理 |
收到的报文中带有Option 82 |
Drop |
丢弃报文 |
Keep |
保持报文中的Option 82不变并进行转发 |
|
Replace |
根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,替换报文中原有的Option 82并进行转发 |
|
收到的报文中不带有Option 82 |
- |
根据DHCP中继上配置的填充模式、内容、格式等填充Option 82,添加到报文中并进行转发 |
设备作为MCE(Multi-VPN-instance Customer Edge,多VPN实例用户网络边界设备)时,在设备上配置DHCP中继功能,不仅可以为公网上的DHCP服务器和DHCP客户端转发DHCP报文,还可以实现为私网内的DHCP服务器和DHCP客户端转发DHCP报文。MCE的详细介绍,请参见“MPLS配置指导”中的“MCE”。
共享地址池是DHCP中继组网中,一种解决客户端无法从与giaddr同网段地址池获取可用IP地址的情况下,当服务器从其它地址池选择了一个与giaddr不同网段的IP地址下发时,允许中继分配给客户端的策略。这种共享地址池的配置方案可以确保客户端能够获取到有效的IP地址,并保证网络连接的稳定性。
DHCP中继上配置了dhcp-server remote-ip-check bypass命令的地址池互为共享池。
在DHCP中继组网环境中,DHCP服务器如果通过非授权地址池方式为DHCP客户端分配地址,则DHCP中继的用户上线口必须配置IP地址。若接口存在主IP,则主IP必须与地址池内的地址网段同网段;若接口无主IP,则首个从IP地址必须与地址池内的地址网段同网段。
DHCP中继组网环境中,当用户通过非接入方式上线后,如果此时在DHCP中继上更改用户上线方式为接入类型,则用户无法主动下线,只有在DHCP服务器上清除用户IP地址绑定信息才能删除用户。
DHCP中继配置任务如下:
(1) 开启DHCP服务
(2) 配置接口工作在DHCP中继模式
(3) 指定DHCP服务器的地址
(4) (可选)配置DHCP中继的安全功能
(5) (可选)配置高级功能
¡ 配置DHCP中继通过Option82信息转发DHCP应答报文
¡ 配置DHCP中继允许从同一个DHCP服务器接收DHCP-NAK报文的最大个数
¡ 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址
¡ 配置DHCP中继收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式
¡ 配置DHCP中继收到应答DHCP-DISCOVER报文的DHCP-NAK报文后,切换到向下一个远端DHCP地址池对应的服务器转发报文的条件
只有开启DHCP服务后,其它相关的DHCP中继配置才能生效。
(1) 进入系统视图。
system-view
(2) 开启DHCP服务。
dhcp enable
缺省情况下,DHCP服务处于关闭状态。
配置接口工作在中继模式后,当接口收到DHCP客户端发来的DHCP报文时,会将报文转发给DHCP服务器,由服务器分配地址。
DHCP客户端通过DHCP中继获取IP地址时,DHCP服务器上需要配置与DHCP中继连接DHCP客户端的接口IP地址所在网段(网络号和掩码)匹配的地址池,否则会导致DHCP客户端无法获得正确的IP地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口工作在DHCP中继模式。
dhcp select relay
缺省情况下,开启DHCP服务后,接口工作在DHCP服务器模式。
为了提高可靠性,可以在一个网络中设置多个DHCP服务器。DHCP中继上配置多个DHCP服务器后,DHCP中继会将客户端发来的DHCP报文转发给所有的服务器。
指定的DHCP服务器的IP地址不能与DHCP中继的接口IP地址在同一网段。否则,可能导致客户端无法获得IP地址。
当DHCP服务器同时配置了主、从IP地址时,不支持指定DHCP中继对应的DHCP服务器地址为DHCP服务器的从IP地址。
如果指定了vpn-instance参数,则DHCP中继根据配置的DHCP服务器地址对应的VPN信息,向该VPN内的DHCP服务器转发报文。如果未指定public和vpn-instance vpn-instance-name参数,则以当前DHCP客户端位置(公网或VPN)为准。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 指定DHCP中继对应的DHCP服务器地址。
dhcp relay server-address ip-address[ public | vpn-instance vpn-instance-name ]
缺省情况下,未指定DHCP服务器的地址。
通过多次执行dhcp relay server-address命令可以指定多个DHCP服务器,一个接口下最多可以指定8个DHCP服务器。
对于某些特定的用户接入方式(如IPoE接入方式),基于用户接入位置信息的不同,网络中存在大量不同类型的用户。为了使相同类型的用户可以从指定的DHCP服务器申请IP地址等网络参数,IPoE模块根据用户注册信息,使不同的用户选择不同的远端BAS IP地址池,并从远端BAS IP地址池下配置的DHCP服务器获取IP地址等网络参数。
为了提高可靠性,一个远端BAS IP地址池下配置多个DHCP服务器地址,当DHCP客户端匹配该远端BAS IP地址池后,DHCP中继会将DHCP客户端发来的DHCP报文转发给该地址池对应所有的DHCP服务器。
一台DHCP中继的一个接口下可能连接不同类型的用户,当DHCP中继转发DHCP客户端请求报文给DHCP服务器时,不能再以中继接口的IP地址作为选择地址池的依据。为了解决这个问题,需要使用gateway命令指定IP地址池的网关IP地址和网络掩码,并将该地址添加到转发给DHCP服务器的报文字段中,为DHCP服务器选择地址池提供依据。
和IPoE或PPPoE配合使用时,如果设备的地址池中配置了remote-server命令,则可以认定该设备一定是DHCP中继设备,所以不需要在接口视图下执行dhcp select relay命令。
(1) 进入系统视图。
system-view
(2) 创建远端BAS IP地址池,并进入远端BAS IP地址池视图。
ip pool pool-name bas remote
(3) 指定匹配该地址池的网关IP地址和网络掩码。
gateway ip-address { mask mask | mask-len }
缺省情况下,未配置IP地址池的网关IP地址和网络掩码。
(4) 指定远端BAS IP地址池对应的DHCP服务器地址。
remote-server ip-address&<1-8>
缺省情况下,未指定远端BAS IP地址池对应的DHCP服务器的地址。
通过执行remote-server命令一次最多可以指定8个DHCP服务器的地址信息。
一般来说,DHCP中继是向所有DHCP服务器转发DHCP请求报文(即polling方式),且DHCP客户端会选择最快收到DHCP应答报文。如果用户想指定一台DHCP服务器作为主用DHCP服务器,其他DHCP服务器只在主用DHCP服务器不可用或没有空闲地址时才起作用,就需要DHCP中继支持优先选择用户期望的DHCP服务器作为主用DHCP服务器的功能。
当DHCP中继使用主备方式选择DHCP服务器后,会优先向配置的第一个DHCP服务器地址转发DHCP请求报文。当该DHCP服务器确定无法分配IP地址时,DHCP中继将之后的DHCP请求报文向下一个DHCP服务器地址转发。如果DHCP中继已切换到配置的最后一个DHCP服务器地址且发现该DHCP服务器仍不可用,则重新选择第一个配置的DHCP服务器地址进入下一个循环。
主备方式有两种配置方法:
· 对于普通组网,用户可以在DHCP中继接口上指定多个DHCP服务器地址。这样当配置DHCP中继主备方式选择DHCP服务器时,配置的第一个地址对应的DHCP服务器为主用DHCP服务器,之后配置的地址对应的DHCP服务器为备用DHCP服务器。
· 对于某些用户接入方式(如IPoE方式),用户必须配置远端BAS IP地址池,并指定多个DHCP服务器地址。这样当配置DHCP中继主备方式选择DHCP服务器时,配置的第一个地址对应的DHCP服务器为主用DHCP服务器,之后配置的地址对应的DHCP服务器为备用DHCP服务器。
此外,本特性还支持配置以下功能:
· 配置DHCP服务器应答超时切换时间,缺省应答超时切换时间为30秒。当DHCP中继向DHCP服务器转发DHCP请求报文,如果超过配置的应答超时切换时间后还未收到该DHCP服务器的应答报文,则DHCP中继认为该DHCP服务器已不可用,并切换到下一个DHCP服务器。
· 配置回切主用DHCP服务器并指定回切延迟时间,缺省DHCP中继是不回切的。当用户在DHCP中继配置了回切主用DHCP服务器延迟时间且当前生效的不是主用DHCP服务器时,经过该回切延迟时间后,DHCP服务器会将DHCP请求报文转发到主用DHCP服务器。如果主用DHCP服务器不可用或没有空闲地址时则重新使用当前生效的DHCP服务器;如果主用DHCP服务器可用则继续使用主用DHCP服务器。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP中继选择DHCP服务器方式。
dhcp relay server-address algorithm { master-backup | polling }
缺省情况下,DHCP中继同时向所有DHCP服务器转发DHCP请求报文(polling方式)。
(4) (可选)配置DHCP服务器应答超时切换时间。
dhcp relay dhcp-server timeout time
缺省情况下,DHCP服务器应答超时切换时间为30秒。
(5) (可选)配置回切主用DHCP服务器并指定回切延迟时间。
dhcp relay master-server switch-delay delay-time
缺省情况下,DHCP中继不回切到主用DHCP服务器。
(1) 进入系统视图。
system-view
(2) 进入远端BAS IP地址池视图。
ip pool pool-name bas remote
(3) 配置DHCP中继选择DHCP服务器方式。
remote-server algorithm { master-backup | polling }
缺省情况下,DHCP中继同时向所有DHCP服务器转发DHCP请求报文(polling方式)。
(4) (可选)配置DHCP服务器应答超时切换时间。
dhcp-server timeout time
缺省情况下,DHCP服务器应答超时切换时间为30秒。
(5) (可选)配置回切主用DHCP服务器并指定回切延迟时间。
master-server switch-delay delay-time
缺省情况下,DHCP中继不回切到主用DHCP服务器。
本功能只适用于IP地址池组中的远端BAS IP地址池选择DHCP服务器的组网环境。
配置本功能后,当DHCP中继向DHCP服务器转发第一个DHCP请求报文时,开始对请求报文进行计数,并开始计时。DHCP中继会在每次转发请求报文时重新开始timeout计时,每经过一个timeout时长后,DHCP中继都会检查向DHCP服务器转发的报文数。
当DHCP中继选择DHCP服务器方式不同时,DHCP中继探测DHCP服务器可用性的机制不同:
· DHCP中继选择DHCP服务器方式为master-backup时,机制如下:
¡ DHCP中继向选中的远端DHCP服务器转发第一个DHCP请求报文时,启动timeout计时器。timeout时长为DHCP中继为该DHCP服务器配置的timeout值。
¡ 如果中继发送请求报文后在timeout内收到应答报文,则中继将请求报文计数清零,同时关闭timeout计时器。再次发送请求报文时,中继会重新进行报文计数,并重新开始timeout计时。
¡ 如果中继向服务器转发的请求报文数不多于dead-count-value且未收到一个应答报文,则请求报文数继续累计。
¡ 如果中继向服务器转发的请求报文数多于dead-count-value,却仍未收到一个应答报文,则中继认为该DHCP服务器不可用或没有空闲地址。后续DHCP中继收到请求报文后,会选择其他可用的远端服务器转发请求报文。如果所有的远端DHCP服务器均不可用,DHCP中继收到请求报文后,会向所有的远端DHCP服务器转发DHCP请求报文,但是不会启动timeout计时器。
¡ 当DHCP中继在转发了用户续约报文后连续收到DHCP服务器应答的nak-count个DHCP-NAK报文后,也会认为该DHCP服务器不可用或没有空闲地址。
· DHCP中继选择DHCP服务器方式为polling时,机制如下:
¡ DHCP中继向所有可用的远端DHCP服务器转发第一个DHCP请求报文时,启动timeout计时器。计时器的时长选取所有可用的DHCP服务器中timeout的最大值,且仅通过该条timeout配置中指定的DHCP服务器判断可用性。
¡ 如果在timeout内收到应答报文,且报文中包含可用的地址,中继会清除报文计数,关闭timeout计时器。再次发送请求时,DHCP中继会重新进行报文计数,并重新开始timeout计时。
¡ 如果在timeout内收到地址分配失败的应答报文,DHCP中继认为该远端DHCP服务器不可用。同时,timeout计时器继续计时,DHCP中继继续报文计数。
¡ 如果DHCP中继向远端DHCP服务器转发了不多于dead-count-value个请求报文,且未收到一个应答报文,则DHCP中继会在下次转发报文时重新开始计时,并继续报文计数。
¡ 如果DHCP中继向远端服务器转发了多于dead-count-value个请求报文,却仍未收到一个应答报文,则认为所有的远端服务器不可用。这种情况下,如果DHCP中继收到一个请求报文,会向所有的远端DHCP服务器转发DHCP请求报文,但是不会启动timeout计时器。
当DHCP中继认为DHCP服务器不可用后:
· 在dead-time时长内,该DHCP服务器处于不可用状态。如果在dead-time时长内匹配到该DHCP服务器时,则不会向其转发DHCP请求报文。经过dead-time时长后,DHCP中继会重新认为该DHCP服务器可用。当再次匹配到该DHCP服务器时,会向其转发DHCP请求报文。
· 当DHCP中继认为所有DHCP服务器都不可用后,如果DHCP中继收到一个请求报文,则远端BAS IP地址池会重新认为所有的DHCP服务器可用,并重新开始向第一个DHCP服务器转发报文。
对于将DHCP中继选择DHCP服务器方式配置成polling方式的远端BAS IP地址池:
· 如果远端BAS IP地址池下各个DHCP服务器配置的可用判断条件不同,则中继会选择timeout最大的那条可用性配置,且仅通过该条配置指定的DHCP服务器判断可用性。如果该DHCP服务器不可用,则该远端BAS IP地址池下的所有DHCP服务器均置为不可用。
· 如果存在不同DHCP服务器配置了相同的最大timeout,则选择最先下发配置的DHCP服务器。
对于同一台DHCP服务器来说,DHCP中继优先使用指定判断条件;如果指定判断条件不存在,则使用共用判断条件。
(1) 进入系统视图。
system-view
(2) 配置DHCP服务器可用性探测功能。
dhcp server [ ip-address [ vpn-instance vpn-instance-name ] ] { dead-count dead-count-value | dead-time dead-time | nak-count nak-count-value | timeout timeout } *
缺省情况下,DHCP中继在25秒还未收到DHCP服务器应答,则DHCP中继认为该DHCP服务器不可用。
为了防止非法主机静态配置一个IP地址并访问外部网络,设备支持DHCP中继用户地址表项记录功能。
开启该功能后,当客户端通过DHCP中继从DHCP服务器获取到IP地址时,DHCP中继可以自动记录客户端IP地址与硬件地址的绑定关系,生成DHCP中继的用户地址表项。
本功能与其他IP地址安全功能(如ARP地址检查、授权ARP)配合,可以实现只允许匹配用户地址表项中绑定关系的报文通过DHCP中继。从而,保证非法主机不能通过DHCP中继与外部网络通信。
对于广域网接入类型(如IPoE和PPPoE)的用户,本命令不生效:
· 当接入用户通过配置了授权地址池的DHCP中继上线时,DHCP中继无法记录用户地址表项。
· 当接入用户通过未配置授权地址池的DHCP中继上线时,DHCP中继用户地址表项记录功能自动开启且无法关闭,DHCP中继会一直记录此类接入用户的地址表项。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继的用户地址表项记录功能。
dhcp relay client-information record
缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态。
DHCP客户端释放动态获取的IP地址时,会向DHCP服务器单播发送DHCP-RELEASE报文,DHCP中继不会处理该报文的内容。如果此时DHCP中继上记录了该IP地址与MAC地址的绑定关系,则会造成DHCP中继的用户地址表项无法实时刷新。为了解决这个问题,DHCP中继支持动态用户地址表项的定时刷新功能。
DHCP中继动态用户地址表项定时刷新功能开启时,DHCP中继每隔指定时间采用客户端获取到的IP地址和DHCP中继接口的MAC地址向DHCP服务器发送DHCP-REQUEST报文:
· 如果DHCP中继接收到DHCP服务器响应的DHCP-ACK报文或在指定时间内未接收到DHCP服务器的响应报文,则表明这个IP地址已经可以进行分配,DHCP中继会删除动态用户地址表中对应的表项。为了避免地址浪费,DHCP中继收到DHCP-ACK报文后,会发送DHCP-RELEASE报文释放申请到的IP地址。
· 如果DHCP中继接收到DHCP服务器响应的DHCP-NAK报文,则表示该IP地址的租约仍然存在,DHCP中继不会删除该IP地址对应的表项。
对于广域网接入类型(如IPoE和PPPoE)的用户,不受本功能限制。这类用户通过未配置授权地址池的DHCP中继上线时,DHCP中继记录的用户地址表项会根据租约自动老化,当租约到期后会同步删除DHCP中继上对应的用户地址表项。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继动态用户地址表项定时刷新功能。
dhcp relay client-information refresh enable
缺省情况下,DHCP中继动态用户地址表项定时刷新功能处于开启状态。
(3) (可选)配置DHCP中继动态用户地址表项的定时刷新周期。
dhcp relay client-information refresh { auto | interval interval }
缺省情况下,定时刷新周期为auto,即根据表项的数目自动计算刷新时间间隔。
如果未配置本功能,当删除DHCP中继用户表项时(如执行reset dhcp relay client-information命令)只会删除DHCP中继上保存的用户表项信息,不会通知服务器释放租约,容易造成地址资源浪费。
配置本功能后,删除DHCP中继用户表项时,DHCP中继会主动向DHCP服务器发送释放该表项对应IP租约的Release报文。DHCP服务器收到该报文后,会将该租约状态从已分配转化为过期。
对于PPPoE用户,当通过cut access-user命令强制用户下线时,本功能不生效,DHCP中继始终会通知服务器释放租约。cut access-user命令的详细介绍请参见“安全命令参考”中的“UCM”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置清除用户表项时通知DHCP服务器释放租约。
dhcp relay release-agent
缺省情况下,清除用户表项时会通知DHCP服务器释放租约。
DHCP饿死攻击是指攻击者伪造chaddr字段各不相同的DHCP请求报文,向DHCP服务器申请大量的IP地址,导致DHCP服务器地址池中的地址耗尽,无法为合法的DHCP客户端分配IP地址,或导致DHCP服务器消耗过多的系统资源,无法处理正常业务。
如果封装DHCP请求报文的数据帧的源MAC地址各不相同,则限制三层接口上可以学习到的ARP表项数,或限制二层端口上可以学习到的MAC地址数,并配置学习到的MAC地址数达到最大值时,丢弃源MAC地址不在MAC地址表里的报文,能够避免攻击者申请过多的IP地址,在一定程度上缓解DHCP饿死攻击。
如果封装DHCP请求报文的数据帧的源MAC地址都相同,则通过上述方法无法防止DHCP饿死攻击。在这种情况下,需要开启DHCP中继的MAC地址检查功能。开启该功能后,DHCP中继检查接收到的DHCP请求报文中的chaddr字段和数据帧的源MAC地址字段是否一致。如果一致,则认为该报文合法,将其转发给DHCP服务器;如果不一致,则丢弃该报文。
因为DHCP中继转发DHCP报文时会修改报文的源MAC地址,所以只能在靠近DHCP客户端的第一跳DHCP中继设备上开启MAC地址检查功能。
设备支持配置DHCP中继的MAC地址检查表项老化时间,当老化时间到达以后,该表项信息会被老化掉,DHCP中继收到该MAC地址对应的DHCP请求报文后重新进行合法性检查。
(1) 进入系统视图。
system-view
(2) 配置DHCP中继的MAC地址检查表项的老化时间。
dhcp relay check mac-address aging-time time
缺省情况下,DHCP中继的MAC地址检查表项的老化时间为30秒。
如果未通过dhcp relay check mac-address命令开启DHCP中继的MAC地址检查功能,则本命令的配置不会生效。
(3) 进入接口视图。
interface interface-type interface-number
(4) 开启DHCP中继的MAC地址检查功能。
dhcp relay check mac-address
缺省情况下,DHCP中继的MAC地址检查功能处于关闭状态。
设备可以通过配置DHCP中继支持代理功能,来防止非法用户攻击DHCP服务器。
开启该功能后,DHCP中继收到DHCP服务器的应答报文,会把报文中的DHCP服务器地址修改为中继的报文出接口或giaddr字段的地址,并转发给DHCP客户端。当DHCP客户端通过DHCP中继从DHCP服务器获取到IP地址等网络参数后,DHCP客户端会把DHCP中继当做自己的服务器,来进行后续的DHCP功能的报文交互。从而达到了把真正的DHCP服务器和DHCP客户端隔离开,保护DHCP服务器的目的。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP中继支持代理功能。
dhcp-proxy enable
缺省情况下,开启DHCP服务后,接口工作在DHCP服务器模式。
DHCP中继的用户下线探测功能以ARP表项老化功能为基础,当ARP表项老化时认为该表项对应的用户已经下线。
如果在接口上配置了DHCP中继的用户下线检测功能,则当ARP表项老化时,DHCP中继认为该表项对应的用户已经下线,删除对应的用户地址表项,并通过发送Release报文通知DHCP服务器删除下线用户的IP地址租约。
手工删除ARP表项,不会触发DHCP中继删除对应的用户地址表项。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继的用户地址表项记录功能。
dhcp relay client-information record
缺省情况下,DHCP中继用户地址表项记录功能处于关闭状态。
用户需要开启DHCP中继用户地址表项记录功能,否则用户下线探测功能无法完全生效。
(3) 进入接口视图。
interface interface-type interface-number
(4) 配置接口工作在DHCP中继模式。
dhcp select relay
缺省情况下,开启DHCP服务后,接口工作在DHCP服务器模式。
(5) 开启DHCP中继的用户下线探测功能。
dhcp client-detect
缺省情况下,DHCP中继的用户下线探测功能处于关闭状态。
在某些情况下,可能需要通过DHCP中继手工释放客户端申请到的IP地址。如果DHCP中继上存在客户端IP地址对应的动态用户地址表项,则配置通过DHCP中继释放该客户端IP地址后,DHCP中继会主动向DHCP服务器发送DHCP-RELEASE报文。DHCP服务器收到该报文后,将会释放指定IP地址的租约。DHCP中继也会删除该动态用户地址表项。
释放的客户端IP地址必须是动态用户地址表项中存在的IP地址,否则DHCP中继无法释放该IP地址。
(1) 进入系统视图。
system-view
(2) 向DHCP服务器请求释放客户端申请到的IP地址。
dhcp relay release ip ip-address [ vpn-instance vpn-instance-name ]
为使Option 82功能正常使用,需要在DHCP服务器和DHCP中继上都进行相应配置。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP中继支持Option 82功能。
dhcp relay information enable
缺省情况下,DHCP中继支持Option 82功能处于关闭状态。
(4) (可选)配置DHCP中继对包含Option 82的请求报文的处理策略。
dhcp relay information strategy { drop | keep | replace }
缺省情况下,处理策略为replace。
DHCP中继对包含Option 82请求报文的处理策略为replace时,需要配置Option 82的填充模式和填充格式;处理策略为keep或drop时,不需要配置Option 82的填充模式和填充格式。
(5) (可选)配置Circuit ID子选项的填充模式和填充格式。
dhcp relay information circuit-id { bas [ sub-interface-vlan ] [ with-vxlan ] | string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] [ interface [ vlan-in-vlan ] ] } [ sub-interface-vlan ] [ format { ascii | hex } ] }
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex。
如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP中继添加或替换Option 82失败。
(6) (可选)配置Remote ID子选项的填充模式和填充格式。
dhcp relay information remote-id { normal [ format { ascii | hex } ] | string remote-id | sysname }
缺省情况下,Remote ID子选项的填充模式为Normal;填充格式为hex。
普通DHCP中继组网环境中,缺省情况下,当DHCP中继收到服务器给客户端分配的IP地址时,会检查分配的IP地址是否与中继地址池网关地址属于同一网段,如果不属于同一网段,则用户不能通过该地址上线。
但在共享地址池应用场景下,当服务器中与网关地址同网段的地址池中无空闲地址分配时,服务器会从共享地址池中为用户分配地址。如果该地址与网关地址非同网段,则将导致用户无法通过该地址上线。为了保证用户能使用与网关非同网段的地址上线,需要配置跳过检查远端IP地址与网关地址是否属于同网段。
(1) 进入系统视图。
system-view
(2) 进入中继地址池视图。
ip pool pool-name [ bas remote ]
(3) 配置跳过检查远端IP地址与网关地址是否属于同网段。
dhcp-server remote-ip-check bypass
中继收到服务器分配的IP地址后,会检查其与中继地址池网关地址是否属于同网段。如果非同网段,则用户上线失败。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP中继发送的DHCP报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCP中继发送DHCP报文的DSCP优先级。
dhcp dscp dscp-value
缺省情况下,DHCP中继发送的DHCP报文的DSCP优先级为56。
当未开启该功能时,DHCP中继收到DHCP客户端的请求报文后,只能将接口的主IP地址添加到报文中,然后转发给DHCP服务器。对于某些特定需求,DHCP中继需要添加指定的地址到报文中,这时就需要配置此功能。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 手工指定在DHCP报文中填充的中继地址。
dhcp relay gateway ip-address
缺省情况下,DHCP中继填充的中继地址是接口下的主IP地址。
当DHCP中继收到DHCP客户端发来的请求报文时,会使用中继接口的主IP地址填充请求报文的giaddr字段,然后转发给DHCP服务器,DHCP服务器根据giaddr字段中的地址选择合适的地址池为客户端分配IP地址。当DHCP服务器中该网段地址分配完毕后,不管DHCP服务器上是否存在其他网段的地址,都不会再为该DHCP中继下的其他DHCP客户端分配IP地址。
DHCP中继通过smart-relay解决上述问题,开启该功能后,DHCP中继可以使用除中继接口主地址外的其他IP地址来填充giaddr字段,从而使DHCP客户端可以获取到其他网段的IP地址。
DHCP中继转发3次DHCP-DISCOVER报文后,若还未收到DHCP服务器的应答报文,DHCP中继将使用下一个可用IP地址来填充DHCP-DISCOVER报文的giaddr字段。DHCP中继使用所有配置的IP地址填充giaddr字段之后,将重新选择第一个配置的IP地址进入下一个循环。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继支持smart-relay功能。
dhcp smart-relay enable
缺省情况下,DHCP中继支持smart-relay功能处于关闭状态。
缺省情况下,DHCP中继向DHCP服务器转发报文的源地址与DHCP中继连接服务器的接口VPN和DHCP服务器所属的VPN有关,DHCP服务器所属的VPN判断如下:
· 通过dhcp relay server-address命令指定DHCP服务器地址时,如果未指定public或vpn-instance参数时,则DHCP服务器所属的VPN与客户端VPN(配置中继模式的接口VPN)一致。
· 通过dhcp relay server-address命令指定DHCP服务器地址时,如果指定了public或vpn-instance参数时,则DHCP服务器属于公网或者配置的VPN。
确定DHCP服务器所属的VPN后,DHCP中继向DHCP服务器转发报文的源地址选择如下:
· 当DHCP中继连接服务器的接口和DHCP服务器属于同一个VPN时,将DHCP中继向DHCP服务器转发报文出接口的地址作为报文源地址(如图2-3所示,即接口B的IP地址)。
图2-3 DHCP中继连接服务器的接口和DHCP服务器属于同一个VPN
· 当DHCP中继连接服务器的接口和DHCP服务器不属于同一个VPN时,DHCP中继会选择一个中继上和DHCP服务器同VPN的最小地址作为报文源地址(如图2-4所示,即接口C的IP地址;若同VPN下存在多个IP地址,则选择最小地址)。
图2-4 DHCP中继连接服务器的接口和DHCP服务器不属于同一个VPN
在某些组网中,多个DHCP中继接口IP地址相同或者中继接口IP到服务器没有可达路由,用户需要配置本命令指定一个IP地址或选择中继设备上的另一个接口的IP地址填充到转发给DHCP服务器的DHCP请求报文中的源地址字段中。
指定DHCP中继向DHCP服务器转发报文的源地址有两种配置方法:
· 对于普通组网,管理员可以在DHCP中继接口上指定DHCP中继向DHCP服务器转发报文的源地址。当使用ip-address时,会同时修改报文中的源地址和giaddr字段,导致giaddr字段地址和DHCP中继接口地址不在同一网段。因此,指定这个参数时需要先开启DHCP中继支持Option 82功能,DHCP中继收到DHCP请求报文时在Option 82选项填充的中继接口的主IP地址,DHCP服务器可以根据该地址来给DHCP客户端分配IP地址。DHCP中继收到DHCP应答报文后,通过查找MAC地址表中的接口信息向DHCP客户端转发。
· 对于某些用户接入方式(如IPoE方式),管理员必须配置远端BAS IP地址池,并在地址池中指定DHCP中继向DHCP服务器转发报文的源地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 指定DHCP中继向DHCP服务器转发报文的源地址。
dhcp relay source-address { ip-address [ option code [ option-text ] ] | gateway | relay-interface }
缺省情况下,当DHCP中继连接服务器的接口和DHCP服务器属于同一个VPN时,将DHCP中继向DHCP服务器转发报文出接口的地址作为报文源地址;当DHCP中继连接服务器的接口和DHCP服务器不属于同一个VPN时,DHCP中继会选择一个中继上和DHCP服务器同VPN的最小地址作为报文源地址。
参数 |
说明 |
ip-address [ option code [ option-text ] ] |
如果DHCP请求报文中携带指定的Option选项,则发送给DHCP服务器的报文源地址和giaddr字段值为指定的IP地址。 |
gateway |
发送给DHCP服务器的报文源地址会取DHCP报文中giaddr字段的地址,如果giaddr字段为空,则按照缺省情况填充地址 |
relay-interface |
发送给DHCP服务器的报文源地址为DHCP中继连接DHCP客户端接口的IP地址,如果该接口不存在地址,则按照缺省情况填充地址 |
(1) 进入系统视图。
system-view
(2) 创建远端BAS IP地址池,并进入远端BAS IP地址池视图。
ip pool pool-name bas remote
(3) 指定DHCP中继向DHCP服务器转发报文的源地址。
dhcp-server source-address { ip-address | gateway | interface interface-type interface-number }
缺省情况下,当DHCP中继连接服务器的接口和DHCP服务器属于同一个VPN时,将DHCP中继向DHCP服务器转发报文出接口的地址作为报文源地址;当DHCP中继连接服务器的接口和DHCP服务器不属于同一个VPN时,DHCP中继会选择一个中继上和DHCP服务器同VPN的最小地址作为报文源地址。
参数 |
说明 |
ip-address |
发送给DHCP服务器的报文源地址为指定的IP地址 |
gateway |
发送给DHCP服务器的报文源地址会取DHCP报文中giaddr字段的地址,如果giaddr字段为空,则按照缺省情况填充地址 |
interface interface-type interface-number |
发送给DHCP服务器的报文源地址为指定接口的IP地址,如果该接口不存在地址,则按照缺省情况填充地址 |
某些局域网内(比如WLAN组网中)不建议使用广播报文进行通信,这时用户可以开启DHCP中继单播转发应答报文功能。开启本功能后,DHCP中继会忽略DHCP应答报文中的广播标志位,统一以单播形式向DHCP客户端转发DHCP应答报文。
(1) 进入系统视图。
system-view
(2) 开启DHCP中继单播转发DHCP应答报文功能。
dhcp relay always-unicast
缺省情况下,DHCP中继根据应答报文中的广播标志位选择广播还是单播转发DHCP应答报文。
对于某些组网环境,DHCP中继需要通过DHCP服务器的DHCP应答报文中携带的Option 82信息(VLAN ID)把DHCP应答报文转发给DHCP客户端。如在IPRAN组网主备PW网关收敛N:1方式中,主备网关设备上都配置L3VE口作为中继接口,配置多个L2VE子接口(L2VE子接口与PW是一一对应的)接收报文。只有主设备会收到DHCP请求报文,但是主备设备都可能收到DHCP应答报文,主设备可通过记录的用户信息将报文从对应的PW发送,但备设备没有记录用户信息,所以备设备会向所有的PW发送DHCP应答报文。
为了解决这个问题,需要配置:
· 在主设备上配置dhcp relay information enable和dhcp relay information circuit-id(指定sub-interface-vlan关键字)命令。当主设备收到DHCP请求报文时,会添加Option 82选项,并记录L2VE子接口所在的VLAN编号。
· 在备设备上配置dhcp relay information enable、dhcp relay information circuit-id(指定sub-interface-vlan关键字)和dhcp relay forward reply by-option82命令。这样,当备设备收到DHCP应答报文时,可根据报文中Option 82选项记录的L2VE子接口所在的VLAN编号直接向对应的PW转发DHCP应答报文。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启DHCP中继支持Option 82功能。
dhcp relay information enable
缺省情况下,DHCP中继支持Option 82功能处于关闭状态。
(4) 配置Circuit ID子选项的填充模式和填充格式。
dhcp relay information circuit-id { bas [ sub-interface-vlan ] [ with-vxlan ] | string circuit-id | { normal | verbose [ node-identifier { mac | sysname | user-defined node-identifier } ] [ interface [ vlan-in-vlan ] ] } [ sub-interface-vlan ] [ format { ascii | hex } ] }
缺省情况下,Circuit ID子选项的填充模式为Normal,填充格式为hex。
如果以设备的系统名称(sysname)作为节点标识填充DHCP报文的Option 82,则系统名称中不能包含空格;否则,DHCP中继添加或替换Option 82失败。
(5) 配置DHCP中继通过Option82信息转发DHCP应答报文。
dhcp relay forward reply by-option82
缺省情况下,DHCP中继不通过Option82信息转发DHCP应答报文。
本功能只适用于DHCP中继使用主备方式选择DHCP服务器的组网环境中。
当DHCP中继使用远端BAS IP地址池指定DHCP服务器地址时,可以通过配置gateway命令指定多个类型用户所在网段地址。当收到DHCP客户端的续约请求报文后,DHCP中继会向主备方式当前选择到的DHCP服务器地址转发DHCP续约请求报文。当DHCP中继收到该DHCP服务器应答的DHCP-NAK报文达到配置的最大值时,DHCP中继会执行以下操作:
· 如果未配置gateway-only参数,则DHCP中继会继续向下一个DHCP服务器发送续约报文;
· 如果配置了gateway-only参数并开启了DHCP中继的smart-relay功能,则DHCP中继使用gateway命令配置的下一个地址修改DHCP-DISCOVER报文中的giaddr字段;
· 如果未配置gateway-only参数并开启DHCP中继的smart-relay功能,则DHCP中继既会向下一个DHCP服务器发送续约报文,也会使用gateway命令配置的下一个地址修改DHCP-DISCOVER报文中的giaddr字段。
(1) 进入系统视图。
system-view
(2) 进入远端BAS IP地址池视图。
ip pool pool-name bas remote
(3) 配置DHCP中继允许从同一个DHCP服务器接收DHCP-NAK报文的最大个数。
dhcp-server nak-count nak-count-value [ gateway-only ]
缺省情况下,DHCP中继允许接收DHCP-NAK报文的最大个数为10。
当DHCP服务器为新DHCP客户端分配的IP地址和中继记录的用户地址表项冲突,或者DHCP中继上配置的认证授权模块分配的地址和已在线DHCP客户端的地址发生冲突时,已在线的客户端不受影响,新客户端或认证授权用户上线失败。配置本功能后,DHCP中继会有以下处理方式:
· 如果是认证授权模块分配的地址和DHCP中继记录的用户地址表项冲突,则中继向DHCP服务器发送DHCP-RELEASE报文释放冲突地址,并通知接入模块此地址冲突不可用;
· 如果DHCP服务器发送的应答报文中记录的地址和DHCP中继记录的用户表项冲突,则中继向DHCP服务器发送DHCP-RELEASE报文释放冲突地址,并丢弃该应答报文,新客户端无法获取到IP地址。
当新客户端或认证授权用户再次发起地址申请时,可以正常申请到该地址,不会再发生地址冲突问题。
只有开启了DHCP中继用户地址表项记录功能后,在DHCP中继上配置本功能才生效。
在IPoE和普通接入混合组网中,IPoE环境需要配置dhcp relay client-information record命令并关闭dhcp relay client-information refresh enable,这就会导致普通组网环境中DHCP中继记录地址租约但不会更新。如果DHCP服务器为普通组网中DHCP客户端分配了不同地址的租约,在DHCP中继上就会产生冲突,DHCP客户端获取不到地址。配置本功能后,如果是普通组网环境中DHCP中继记录地址租约但DHCP服务器向客户端分配了不同地址的租约,DHCP中继向DHCP服务器发送DHCP-RELEASE报文释放冲突地址并删除表项,保证在分配不同地址时不会冲突。
(1) 进入系统视图。
system-view
(2) 配置当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,释放已在线DHCP客户端的IP地址。
dhcp conflict-ip-address offline
缺省情况下,当为新DHCP客户端分配的地址和已在线DHCP客户端的IP地址发生冲突时,已在线DHCP客户端不受影响。
当用户的物理接入位置发生变化时,例如无线终端用户漫游时,若需要该用户下线后重新上线,则DHCP中继可能会因为未及时收到用户的下线请求,而导致DHCP中继认为该终端用户还在线。因为终端用户所在的无线网络发生变化,但MAC地址不变,则DHCP中继会认为收到的终端用户重新发送的DHCP请求报文是攻击报文,直接丢弃该DHCP请求报文。
为了解决以上问题,需要在DHCP中继上配置本功能:
· 指定fast-renew参数后,当DHCP中继收到物理位置发生变化,MAC地址不变的上线用户发送的DHCP请求报文,先向服务器发报文释放对应MAC地址的已在线租约,再将请求报文转发给DHCP服务器。
· 指定roam参数后,当DHCP中继收到物理位置发生变化,MAC地址不变的上线用户发送的DHCP请求报文,直接将该请求报文转发给DHCP服务器。这样,可以保证用户继续使用相同的IP地址上线,避免了重新进行接入认证。
本功能仅适用于IPoE组网,其中roam参数仅在通过ip subscriber roaming enable命令开启个人接入用户的漫游功能才生效。IPoE漫游功能的详细介绍请参见“二层技术-广域网接入配置指导”中的“IPoE”。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置DHCP服务器收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求的处理方式。
dhcp session-mismatch action { fast-renew | roam }
缺省情况下,DHCP设备收到物理位置发生变化、MAC地址不变的上线用户发送的DHCP请求报文时,直接丢弃该DHCP请求报文。
在某些网络环境中,在DHCP客户端和DHCP服务器之间可能存在多跳DHCP中继。缺省情况下,只有连接DHCP客户端的第一跳DHCP中继处理DHCP请求报文,后续的DHCP中继只会转发该报文。若需要在非第一跳DHCP中继设备上开启接入认证功能,则需要在该DHCP中继设备开启本功能,DHCP中继收到DHCP请求报文后,会将报文发送接入认证模块进行用户的认证、授权等操作。
本命令只适用于接入认证组网环境,普通组网不需要配置本功能。只需要在开启接入认证功能的DHCP中继开启本功能,其他中继不需要配置本功能。
需要在DHCP中继的上行口和下行口同时配置本命令,本功能才正常生效。
对于开启本功能的非首跳中继设备,不能配置如下命令修改报文的giaddr字段,否则将导致报文转发异常:
· dhcp relay gateway
· dhcp relay source-address
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启非首跳DHCP中继功能。
dhcp relay non-first-hop enable
缺省情况下,非首跳DHCP中继功能处于关闭状态。
某些DHCP服务器上的地址池中不存在可分配的DHCP地址时,收到DHCP客户端发送的DHCP-DISCOVER报文后,会应答DHCP-NAK报文。DHCP中继收到DHCP-NAK报文后,会将该报文直接转发给DHCP客户端。如果DHCP中继上创建了DHCP地址池组,且在DHCP地址池组中添加了多个远端DHCP地址池。DHCP中继无论收到多少应答DHCP-DISCOVER报文的DHCP-NAK报文,也不会切换到下一个远端DHCP地址池。这就导致DHCP中继将收到的DHCP请求报文全部转发给不存在可分配的DHCP地址的DHCP服务器,DHCP客户端无法获取到DHCP地址。配置本功能后,当DHCP中继在指定的时间内收到应答DHCP-DISCOVER报文的DHCP-NAK报文超过一定数目时,将切换到下一个远端DHCP地址池对应的服务器转发报文,保证DHCP客户端可以获取到DHCP地址。
(1) 进入系统视图。
system-view
(2) 进入IP地址池组。
ip pool-group pool-group-name
(3) 配置DHCP中继收到应答DHCP-DISCOVER报文的DHCP-NAK报文后,切换到向下一个远端DHCP地址池对应的服务器转发报文的条件。
discover-nak-count nak-count seconds
缺省情况下,DHCP中继无论收到多少应答DHCP-DISCOVER报文的DHCP-NAK报文,都无法切换到向下一个远端BAS IP地址池对应的服务器转发报文。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP中继的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令清除DHCP中继的统计信息。
表2-2 DHCP中继显示和维护
操作 |
命令 |
显示接口上指定的DHCP服务器地址信息 |
display dhcp relay server-address [ interface interface-type interface-number ] |
显示DHCP中继上的Option 82配置信息 |
display dhcp relay information [ interface interface-type interface-number ] |
显示DHCP中继的用户地址表项信息 |
display dhcp relay client-information [ interface interface-type interface-number | [ ip ip-address ] [ vpn-instance vpn-instance-name ] ] |
显示DHCP中继的DHCP地址池对应的远端DHCP服务器配置和状态信息 |
display dhcp relay remote-server-info [ vpn-instance vpn-name ] [ slot slot-number ] |
显示DHCP中继的相关报文统计信息 |
display dhcp relay packet statistics [ interface interface-type interface-number ] |
显示DHCP中继的MAC地址检查表项 |
display dhcp relay check mac-address |
清除DHCP中继的用户地址表项信息 |
reset dhcp relay client-information [ interface interface-type interface-number | ip ip-address [ vpn-instance vpn-instance-name ] ] |
清除DHCP中继的相关报文统计信息 |
reset dhcp relay packet statistics [ interface interface-type interface-number ] |
· DHCP客户端所在网段为10.10.1.0/24,DHCP服务器的IP地址为10.1.1.1/24;
· 由于DHCP客户端和DHCP服务器不在同一网段,因此,需要在客户端所在网段设置DHCP中继设备,以便客户端可以从DHCP服务器申请到10.10.1.0/24网段的IP地址及相关配置信息;
· Router A作为DHCP中继通过Ten-GigabitEthernet2/0/0接口连接到DHCP客户端所在的网络,Ten-GigabitEthernet2/0/0接口的IP地址为10.10.1.1/24,Ten-GigabitEthernet2/0/1接口的IP地址为10.1.1.2/24。
图2-5 DHCP中继组网示意图
· 由于DHCP中继连接DHCP客户端的接口IP地址与DHCP服务器的IP地址不在同一网段,因此需要在DHCP服务器上通过静态路由或动态路由协议保证两者之间路由可达。
· 为了使DHCP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行地址池等相关配置。
# 配置各接口的IP地址(略)。
# 开启DHCP服务。
<RouterA> system-view
[RouterA] dhcp enable
# 配置Ten-GigabitEthernet2/0/0接口工作在DHCP中继模式。
[RouterA] interface ten-gigabitethernet 2/0/0
[RouterA-Ten-GigabitEthernet2/0/0] dhcp select relay
# 指定DHCP服务器的地址。
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay server-address 10.1.1.1
配置完成后,DHCP客户端可以通过DHCP中继从DHCP服务器获取IP地址及相关配置信息。通过display dhcp relay packet statistics命令可以显示DHCP中继转发的DHCP报文统计信息;如果在DHCP中继上通过dhcp relay client-information record命令开启了DHCP中继的用户地址表项记录功能,则可以通过display dhcp relay client-information命令可以显示通过DHCP中继获取IP地址的客户端信息。
· 在DHCP中继Router A上开启Option 82功能;
· 对包含Option 82的请求报文的处理策略为replace;
· Circuit ID填充内容为company001,Remote ID填充内容为device001;
· Router A将添加Option 82的DHCP请求报文转发给DHCP服务器Router B,使得DHCP客户端可以获取到IP地址。
如图2-5所示。
为使Option 82功能正常使用,DHCP服务器也需要进行相应配置。
# 配置各接口的IP地址(略)。
# 开启DHCP服务。
<RouterA> system-view
[RouterA] dhcp enable
# 配置Ten-GigabitEthernet2/0/0接口工作在DHCP中继模式。
[RouterA] interface ten-gigabitethernet 2/0/0
[RouterA-Ten-GigabitEthernet2/0/0] dhcp select relay
# 指定DHCP服务器的地址。
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay server-address 10.1.1.1
# 配置Option 82的处理策略和填充内容。
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay information enable
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay information strategy replace
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay information circuit-id string company001
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay information remote-id string device001
· DHCP客户端所在网段为22.22.22.0/24;
· 由于DHCP客户端和DHCP服务器不在同一网段,需要在DHCP客户端所在网段设置DHCP中继,以便DHCP客户端可以从DHCP服务器申请到22.22.22.0/24网段的IP地址及相关配置信息;
· DHCP中继Router A通过接口Ten-GigabitEthernet2/0/0连接到DHCP客户端所在的网络,接口Ten-GigabitEthernet2/0/0的IP地址为22.22.22.1/24,通过接口Ten-GigabitEthernet2/0/1连接Router B,接口Ten-GigabitEthernet2/0/1的IP地址为1.1.1.100/24,通过接口Ten-GigabitEthernet2/0/2连接Router C,接口Ten-GigabitEthernet2/0/2的IP地址为2.2.2.100/24;
· Router B配置了22.22.22.0网段的地址池,但未开启DHCP服务;Router C配置了22.22.22.0网段的地址池,也未开启DHCP服务。
图2-6 DHCP中继组网示意图
(1) 配置各设备上各接口的IP地址(略)。
(2) 配置DHCP服务器Router B和Router C(略)。
(3) 配置DHCP中继Router A。
# 开启DHCP服务。
<RouterA> system-view
[RouterA] dhcp enable
# 配置Ten-GigabitEthernet2/0/0接口工作在DHCP中继模式。
[RouterA] interface ten-gigabitethernet 2/0/0
[RouterA-Ten-GigabitEthernet2/0/0] dhcp select relay
# 指定DHCP服务器的IP地址。
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay server-address 1.1.1.1
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay server-address 2.2.2.2
# 指定DHCP中继选择DHCP服务器方式为主备方式。
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay server-address algorithm master-backup
# 配置回切主用DHCP服务器并指定回切延迟时间为3分钟。
[RouterA-Ten-GigabitEthernet2/0/0] dhcp relay master-server switch-delay 3
[RouterA-Ten-GigabitEthernet2/0/0] quit
# 配置完成后,DHCP客户端一开始不能申请到IP地址,等待大约30秒后打印日志信息。
DHCPR/3/DHCPR_SERVERCHANGE:
Switched to the server at 2.2.2.2 because the current server did not respond.
# 用户开启Router B的DHCP服务。
# 此时DHCP客户端仍然无法申请到IP地址,再等待大约3分钟后打印日志信息。
DHCPR/3/DHCPR_SWITCHMASTER:
Switched to the master DHCP server at 1.1.1.1.
# 此时DHCP客户端可以成功申请到IP地址。
DHCP客户端无法通过DHCP中继获得配置信息。
DHCP中继或DHCP服务器的配置可能有问题。可以打开调试开关显示调试信息,并通过执行display命令显示接口状态信息的方法来分析定位。
· 检查DHCP服务器和DHCP中继是否开启了DHCP服务。
· 检查DHCP服务器是否配置有DHCP客户端所在网段的地址池。
· 检查具有DHCP中继功能的网络设备和DHCP服务器是否配置有相互可达的路由。
· 检查具有DHCP中继功能的网络设备是否在连接DHCP客户端所在网段的接口上指定了正确的DHCP服务器地址。
为了方便用户配置和集中管理,可以指定设备的接口作为DHCP客户端,使用DHCP协议从DHCP服务器动态获得IP地址等参数。
DHCP客户端中对于接口的相关配置,目前只能在三层以太网接口(包括子接口)和三层聚合接口上进行。
DHCP客户端配置任务如下:
(2) 配置接口使用的DHCP客户端ID
DHCP客户端使用客户端ID从DHCP服务器获取特定地址时配置。
(3) (可选)开启地址冲突检查功能
(4) (可选)配置DHCP客户端发送DHCP报文的DSCP优先级
(5) (可选)开启DHCP客户端告警功能
配置接口通过DHCP协议获取IP地址,需要注意:
· 接口作为DHCP客户端多次申请IP地址失败后,将停止申请,并为接口配置缺省IP地址。
· 接口可以采用多种方式获得IP地址,新的配置方式会覆盖原有的配置方式。
· 当接口被配置为通过DHCP动态获取IP地址后,不能再给该接口配置从IP地址。
· 如果DHCP服务器为接口分配的IP地址与设备上其他接口的IP地址在同一网段,则该接口不会使用该IP地址,且会再向DHCP服务器重新申请IP地址。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口通过DHCP协议获取IP地址。
ip address dhcp-alloc
缺省情况下,接口不通过DHCP协议获取IP地址。
DHCP客户端ID用来填充DHCP报文Option 61,作为识别DHCP客户端的唯一标识。DHCP服务器可以根据客户端ID为特定的客户端分配特定的IP地址。DHCP客户端ID包括类型和取值两部分,用户可以通过ASCII字符串、十六进制数和指定接口的MAC地址来指定DHCP客户端ID:
· 当客户端ID的取值为ASCII字符串时,对应的类型值为00;
· 当客户端ID的取值为十六进制数时,对应的类型值为该十六进制数的前两个字符;
· 当客户端ID使用指定接口的MAC地址时,对应的类型值为01。
DHCP客户端ID类型值可通过命令display dhcp server ip-in-use或display dhcp client进行查看。
用户在指定客户端ID时,需要确保不同客户端的客户端ID不能相同。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 配置接口使用的DHCP客户端ID。
dhcp client identifier { ascii ascii-string | hex hex-string | mac interface-type interface-number }
缺省情况下,根据本接口MAC地址生成DHCP客户端ID,如果本接口没有MAC地址,则获取设备第一个以太接口的MAC地址生成DHCP客户端ID。
通常情况下,DHCP客户端上开启地址冲突检查功能,通过发送和接收ARP报文,对DHCP服务器分配的IP地址进行地址冲突检测。
如果攻击者仿冒地址拥有者进行ARP应答,就可以欺骗DHCP客户端,导致DHCP客户端无法正常使用分配到的IP地址。在网络中存在上述攻击者时,建议在客户端上关闭地址冲突检查功能。
(1) 进入系统视图。
system-view
(2) 开启地址冲突检查功能。
dhcp client dad enable
缺省情况下,地址冲突检查功能处于关闭状态。
DSCP优先级用来体现报文自身的优先等级,决定报文传输的优先程度。通过本配置可以指定DHCP客户端发送的DHCP报文的DSCP优先级。
(1) 进入系统视图。
system-view
(2) 配置DHCP客户端发送DHCP报文的DSCP优先级。
dhcp client dscp dscp-value
缺省情况下,DHCP客户端发送的DHCP报文的DSCP优先级为56。
DHCP客户端告警功能是用来将DHCP客户端上发生的重要事件告知给网络管理员,比如DHCP客户端获得的IP地址与网络中其它主机地址冲突或DHCP客户端获得的IP地址与本设备上的其它接口地址冲突。
当上述事件发生时,DHCP客户端模块会生成告警信息,并将告警信息将发送到设备的SNMP模块,通过设置SNMP中告警信息的发送参数,来决定告警信息输出的相关属性。有关告警信息的详细介绍,请参见“网络管理和监控配置指导”中的“SNMP”。
(1) 进入系统视图。
system-view
(2) 开启DHCP客户端的告警功能。
snmp-agent trap enable dhcp-client [ arp-conflict | local-conflict ] *
缺省情况下,DHCP客户端所有类型的告警功能均处于开启状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后DHCP客户端的信息,通过查看显示信息验证配置的效果。
表3-1 DHCP客户端显示和维护
操作 |
命令 |
显示DHCP客户端的相关信息 |
display dhcp client [ verbose ] [ interface interface-type interface-number ] |
Router B的以太网接口Ten-GigabitEthernet2/0/0接入局域网,通过DHCP协议从DHCP服务器获取IP地址、DNS服务器地址和静态路由信息:
· DHCP客户端的IP地址所在网段为10.1.1.0/24;
· DNS服务器地址为20.1.1.1;
· 静态路由信息为到达20.1.1.0/24网段的下一跳地址是10.1.1.2。
DHCP服务器需要通过自定义选项的方式配置Option 121的内容,以便为客户端分配静态路由信息。Option 121的格式如图3-1所示。其中,目的描述符由子网掩码长度和目的网络地址两部分组成。在本例中,目的描述符字段取值为18 14 01 01(十六进制数值,表示子网掩码长度为24,目的网络地址为20.1.1.0);下一跳地址字段取值为0A 01 01 02(十六进制数值,表示下一跳地址为10.1.1.2)。
图3-1 Option 121选项格式
图3-2 DHCP客户端配置举例组网图
(1) 配置DHCP服务器Router A,此处略
(2) 配置DHCP客户端Router B
# 配置接口Ten-GigabitEthernet2/0/0通过DHCP动态获取地址。
<RouterB> system-view
[RouterB] interface ten-gigabitethernet 2/0/0
[RouterB-Ten-GigabitEthernet2/0/0] ip address dhcp-alloc
[RouterB-Ten-GigabitEthernet2/0/0] quit
# 通过display dhcp client命令可以查看Router B申请到的IP地址和网络配置参数。
[RouterB] display dhcp client verbose
Ten-GigabitEthernet2/0/0 DHCP client information:
Current state: BOUND
Allocated IP: 10.1.1.3 255.255.255.0
Allocated lease: 864000 seconds, T1: 331858 seconds, T2: 756000 seconds
Lease from May 21 19:00:29 2012 to May 31 19:00:29 2012
DHCP server: 10.1.1.1
Transaction ID: 0xcde72232
Classless static routes:
Destination: 20.1.1.0, Mask: 255.255.255.0, NextHop: 10.1.1.2
DNS servers: 20.1.1.1
Client ID type: acsii(type value=00)
Client ID value: 000c.29d3.8659-XGE2/0/0
Client ID (with type) hex: 0030-3030-632e-3239-
6433-2e38-3635-392d-
4574-6830-2f30-2f32
T1 will timeout in 3 days 19 hours 48 minutes 43 seconds
# 通过display ip routing-table命令可以查看Router B的路由表中添加了到达20.1.1.0/24网络的静态路由。
[RouterB] display ip routing-table
Destinations : 11 Routes : 11
Destination/Mask Proto Pre Cost NextHop Interface
10.1.1.0/24 Direct 0 0 10.1.1.3 XGE2/0/0
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 XGE2/0/0
10.1.1.255/32 Direct 0 0 10.1.1.3 XGE2/0/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.0/32 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
127.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
255.255.255.255/32 Direct 0 0 127.0.0.1 InLoop0
BOOTP是Bootstrap Protocol(自举协议)的简称。指定设备的接口作为BOOTP客户端后,该接口可以通过BOOTP协议从BOOTP服务器获取IP地址等信息,从而方便用户配置。
使用BOOTP协议时,管理员需要在BOOTP服务器上为每个BOOTP客户端配置BOOTP参数文件,该文件包括BOOTP客户端的MAC地址及其对应的IP地址等信息。当BOOTP客户端向BOOTP服务器发起请求时,服务器会查找BOOTP参数文件,并返回相应的配置信息。
由于BOOTP协议需要在BOOTP服务器上为每个客户端事先配置参数文件,BOOTP一般运行在相对稳定的环境中。当网络变化频繁时,推荐采用DHCP协议。
由于DHCP服务器可以与BOOTP客户端进行交互,因此用户可以不配置BOOTP服务器,而使用DHCP服务器为BOOTP客户端分配IP地址。DHCP服务器会按照服务器分配地址的优先次序为BOOTP客户端分配IP地址。
BOOTP客户端从BOOTP服务器动态获取IP地址的具体过程如下:
(1) BOOTP客户端以广播方式发送BOOTP请求报文,其中包含了BOOTP客户端的MAC地址;
(2) BOOTP服务器接收到请求报文后,根据报文中的BOOTP客户端MAC地址,从配置文件数据库中查找对应的IP地址等信息,并向客户端返回包含这些信息的BOOTP响应报文;
(3) BOOTP客户端从接收到的响应报文中即可获得IP地址等信息。
在下面的IP地址动态获取过程中,BOOTP服务器的功能可以用DHCP服务器替代。
与BOOTP相关的协议规范有:
· RFC 951:Bootstrap Protocol (BOOTP)
· RFC 2132:DHCP Options and BOOTP Vendor Extensions
· RFC 1542:Clarifications and Extensions for the Bootstrap Protocol
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
BOOTP客户端中对于接口的相关配置,目前只能在三层以太网接口(包括子接口)和三层聚合接口上进行。
(3) 配置接口通过BOOTP协议获取IP地址。
ip address bootp-alloc
缺省情况下,接口不通过BOOTP协议获取IP地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后BOOTP客户端的运行情况,通过查看显示信息验证配置的效果。
表4-1 BOOTP客户端显示和维护
操作 |
命令 |
显示BOOTP客户端的相关信息 |
display bootp client [ interface interface-type interface-number ] |
Router B的以太网接口Ten-GigabitEthernet2/0/0接入局域网,通过BOOTP协议从DHCP服务器获取IP地址。
图4-1 BOOTP客户端组网图
为了使BOOTP客户端能从DHCP服务器获得IP地址,还需要在DHCP服务器上进行地址池等相关配置。
下面只列出图4-1中作为客户端的Router B的配置。
# 配置接口Ten-GigabitEthernet2/0/0通过BOOTP动态获取地址。
<RouterB> system-view
[RouterB] interface ten-gigabitethernet 2/0/0
[RouterB-Ten-GigabitEthernet2/0/0] ip address bootp-alloc
通过display bootp client命令可以查看BOOTP客户端申请到的IP地址。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!