19-DHCP操作
本章节下载 (280.01 KB)
目 录
随着网络规模的不断扩大和网络复杂度的提高,经常出现计算机的数量超过可供分配的IP地址的情况。同时随着便携机及无线网络的广泛使用,计算机的位置也经常变化,相应的IP地址也必须经常更新,从而导致网络配置越来越复杂。DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)就是为解决这些问题而发展起来的。
DHCP采用“客户端/服务器”通信模式,由客户端向服务器提出配置申请,服务器返回为客户端分配的IP地址等配置信息,以实现网络资源的动态配置。
在DHCP的典型应用中,一般包含一台DHCP服务器和多台客户端(如PC和便携机),如图1-1所示:
图1-1 DHCP典型应用
针对客户端的不同需求,DHCP提供三种IP地址分配策略:
l 手工分配地址:由管理员为少数特定客户端(如WWW服务器等)静态绑定IP地址。通过DHCP将配置的固定IP地址发给客户端。
l 自动分配地址:DHCP为客户端分配租期为无限长的IP地址。
l 动态分配地址:DHCP为客户端分配具有一定有效期限的IP地址,当使用期限到期后,客户端需要重新申请地址。绝大多数客户端得到的都是这种动态分配的地址。
DHCP客户端从DHCP服务器动态获取IP地址,主要通过四个阶段进行:
(1) 发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCP-DISCOVER报文。
(2) 提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端发送的DHCP-DISCOVER报文后,根据IP地址分配的优先次序从地址池中选出一个IP地址,与其他参数一起通过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报文,表明地址不能分配给该客户端。
& 说明:
l 客户端收到服务器返回的DHCP-ACK确认报文后,会以广播的方式发送免费ARP报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址。否则,客户端会发送DHCP-DECLINE报文给DHCP服务器,并重新申请IP地址。
l 如果网络中存在多个DHCP服务器,除DHCP客户端选中的服务器外,其它DHCP服务器中本次未分配出的IP地址仍可分配给其他客户端。
如果采用动态地址分配策略,则DHCP服务器分配给客户端的IP地址有一定的租借期限,当租借期满后服务器会收回该IP地址。如果DHCP客户端希望延长使用该地址的期限,需要更新IP地址租约。
在DHCP客户端的IP地址租约期限达到一半时间时,DHCP客户端会向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-2所示(括号中的数字表示该字段所占的字节):
图1-2 DHCP报文格式
各字段的解释如下:
l op:DHCP报文的操作类型,分为请求报文和响应报文,1为请求报文;2为响应报文。
l htype、hlen:DHCP客户端的硬件地址类型及长度。
l hops:DHCP报文经过的DHCP中继的数目。DHCP请求报文每经过一个DHCP中继,该字段就会增加1。
l xid:客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。
l secs:DHCP客户端开始DHCP请求后的时间。
l flags:第一个比特为广播响应标识位,用来标识DHCP服务器响应报文是采用单播还是广播发送,0表示采用单播方式,1表示采用广播方式。其余比特保留不用。
l ciaddr:DHCP客户端的IP地址。
l yiaddr:DHCP服务器分配给客户端的IP地址。
l siaddr:DHCP客户端获取IP地址等信息的服务器IP地址。
l giaddr:DHCP客户端发出请求报文后经过的第一个DHCP中继的IP地址。
l chaddr:DHCP客户端的硬件地址。
l sname:DHCP客户端获取IP地址等信息的服务器名称。
l file:DHCP服务器为DHCP客户端指定的启动配置文件名称及路径信息。
l option:可选变长选项字段,包含报文的类型、有效租期、DNS(Domain Name System,域名系统)服务器的IP地址、WINS服务器的IP地址等配置信息。
与DHCP相关的协议规范有:
l RFC2131:Dynamic Host Configuration Protocol
l RFC2132:DHCP Options and BOOTP Vendor Extensions
l RFC1542:Clarifications and Extensions for the Bootstrap Protocol
l RFC3046:DHCP Relay Agent Information option
出于安全性的考虑,网络管理员可能需要记录用户上网时所用的IP地址,确认用户从DHCP服务器获取的IP地址和用户主机的MAC地址的对应关系。
l 三层交换机可以通过DHCP中继记录用户的IP地址信息。
l 二层交换机可以通过DHCP Snooping功能监听DHCP报文,记录用户的IP地址信息。
DHCP Snooping功能在S2126-EI以太网交换机应用的典型组网如图2-1所示。图中的Switch A为S2126-EI以太网交换机。
S2126-EI以太网交换机的DHCP Snooping功能,仅通过监听DHCP-REQUEST报文来获得用户从DHCP服务器获取的IP地址和用户MAC地址信息。
为了防御因私自架设DHCP服务器,而导致的网络混乱;或者攻击者恶意冒充DHCP服务器,为客户端分配IP地址等配置参数等情况,S2126-EI以太网交换机提供了防DHCP服务器仿冒功能。
在开启DHCP Snooping功能的交换机的下游端口(与DHCP客户端直接或间接相连的端口)上配置防DHCP服务器仿冒功能后,交换机会从该端口向外发送DHCP-DISCOVER报文,用于探测连接到该端口的DHCP服务器,如果接收到回应报文(DHCP-OFFER报文),则认为该端口连接了仿冒的DHCP服务器,交换机会根据配置的处理策略进行处理,例如仅发送告警信息,或发送告警信息的同时将相应端口进行管理Down操作。
& 说明:
对端口进行管理Down操作后,该端口处于关闭状态,无法收发报文,但是在display current-configuration时,不会进行显示。如果需要恢复端口的开启状态,请在该端口视图下手工执行undo shutdown命令。
在实际网络环境中,如果有攻击者恶意冒充DHCP服务器,为了防止其通过防火墙对“防DHCP服务器仿冒功能”发送的探测报文进行策略过滤,S2126-EI交换机支持防DHCP服务器仿冒功能发送探测报文的源MAC地址可配置功能。
表2-1 配置DHCP Snooping功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启交换机DHCP Snooping功能 |
dhcp-snooping |
必选 缺省情况下,交换机的DHCP Snooping功能处于关闭状态 |
display dhcp-snooping [ unit unit-id ] |
可选 可在任意视图下执行 |
& 说明:
在S2126-EI以太网交换机上开启DHCP Snooping功能后,不支持与之连接的客户端使用BOOTP方式动态获取IP地址。
表2-2 配置防DHCP服务器仿冒功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
开启防DHCP服务器仿冒功能 |
dhcp-snooping server-guard enable |
必选 缺省情况下,交换机的防DHCP服务器仿冒功能处于关闭状态 |
配置防DHCP服务器仿冒功能的处理策略 |
dhcp-snooping server-guard method { trap | shutdown } |
可选 缺省情况下,交换机防DHCP服务器仿冒功能的处理策略为trap |
退出至系统视图 |
quit |
- |
配置防DHCP服务器仿冒功能发送探测报文的源MAC地址 |
dhcp-snooping server-guard source-mac mac-address |
可选 缺省情况下,防DHCP服务器仿冒功能发送探测报文的源MAC地址为交换机的桥MAC地址 |
显示DHCP服务器仿冒相关信息 |
display dhcp-snooping server-guard |
可以在任意试图下执行 |
& 说明:
l 防DHCP服务器仿冒功能需要与DHCP Snooping配合使用。即:必须先开启DHCP Snooping功能,防DHCP 服务器仿冒功能才会生效。
l 防DHCP服务器仿冒功能不支持端口聚合。
l 目前,S2126-EI以太网交换机上,配置防DHCP服务器仿冒功能发送探测报文的源MAC地址功能,与VLAN-VPN Tunnel功能不能同时使用。且配置源MAC地址功能后,交换机的IGMP Snooping功能将无法通过PIM报文学习路由器端口,关于路由器端口的相关介绍可参考操作手册“组播协议”部分。
如图2-2所示,Switch的端口Ethernet1/0/1与DHCP服务器端相连,端口Ethernet1/0/2,Ethernet1/0/3分别与DHCP Client A、DHCP Client B相连。
l 在Switch上开启DHCP Snooping功能。
l 在端口Ethernet1/0/2,Ethernet1/0/3上开启防DHCP服务器仿冒功能。当端口Ethernet1/0/2上发现仿冒DHCP服务器时,发送Trap信息;当端口Ethernet1/0/3上发现仿冒DHCP服务器时,进行管理down操作。
l 为了避免攻击者对探测报文进行策略过滤,配置Switch上防DHCP服务器仿冒功能发送探测报文的源MAC地址为000f-e200-1111(不同于交换机的桥MAC地址)。
图2-2 防DHCP服务器仿冒功能组网示意图
# 开启DHCP Snooping功能。
<Switch> system-view
Enter system view, return to user view with Ctrl+Z.
[Switch] dhcp-snooping
# 配置防DHCP服务器仿冒的报文发送的源MAC地址为000f-e200-1111。
[Switch] dhcp-snooping server-guard source-mac 000f-e200-1111
# 在端口Ethernet1/0/2上使能防DHCP服务器功能。
[Switch] interface ethernet1/0/2
[Switch-Ethernet1/0/2] dhcp-snooping server-guard enable
# 在端口Ethernet1/0/2上配置防DHCP服务器策略为发送Trap。
[Switch-Ethernet1/0/2] dhcp-snooping server-guard method trap
[Switch-Ethernet1/0/2] quit
# 在端口Ethernet1/0/3上使能防DHCP服务器功能。
[Switch] interface ethernet1/0/3
[Switch-Ethernet1/0/3] dhcp-snooping server-guard enable
# 在端口Ethernet1/0/3上配置防DHCP服务器策略为shutdown。
[Switch-Ethernet1/0/3] dhcp-snooping server-guard method shutdown
指定设备的VLAN接口作为DHCP客户端后,可以使用DHCP协议从DHCP服务器动态获得IP地址等参数,方便用户配置,也便于集中管理。
客户端通过DHCP方式动态获取IP地址的过程请参见“1.2.2 IP地址动态获取过程”部分。
BOOTP是Bootstrap Protocol(自举协议)的简称。指定设备的接口作为BOOTP客户端后,该接口可以使用BOOTP协议从BOOTP服务器获得IP地址等信息,从而方便用户配置。
使用BOOTP协议,管理员需要在BOOTP服务器上为每个BOOTP客户端配置BOOTP参数文件,该文件包括BOOTP客户端的MAC地址及其对应的IP地址等信息。当BOOTP客户端向BOOTP服务器发起请求时,服务器会查找BOOTP参数文件,并返回相应的配置信息。
BOOTP客户端从BOOTP服务器动态获取IP地址的具体过程如下:
(1) BOOTP客户端以广播方式发送BOOTP请求报文,其中包含了BOOTP客户端的MAC地址;
(2) BOOTP服务器接收到请求报文后,根据报文中的BOOTP客户端MAC地址,从配置文件数据库中查找对应的IP地址等信息,并向客户端返回包含这些信息的BOOTP响应报文;
(3) BOOTP客户端从接收到的响应报文中即可获得IP地址等信息。
& 说明:
由于DHCP服务器可以与BOOTP客户端进行交互,因此用户可以不配置BOOTP服务器,而使用DHCP服务器为BOOTP客户端分配IP地址。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入VLAN接口视图 |
interface Vlan-interface vlan-id |
- |
配置VLAN接口采用DHCP或BOOTP方式获取IP地址 |
ip address { bootp-alloc | dhcp-alloc } |
必选 缺省情况下,VLAN接口无IP地址 |
& 说明:
目前S2126-EI以太网交换机作为DHCP客户端,可以持续占用一个IP地址的最长时间为24天。也就是说,即使DHCP服务器端地址池的租约时间长于24天,DHCP客户端也只能获取24天的租期。
& 说明:
S2126-EI以太网交换机为防止恶意用户对未使用SOCKET的攻击,提高交换机的安全性,提供了如下功能:
l 在启动DHCP功能时,才打开DHCP使用的UDP 67和UDP 68端口。
l 在关闭DHCP功能时,同时关闭UDP 67和UDP 68端口。
具体的实现是:
l 执行ip address dhcp-alloc命令启动DHCP客户端功能时,才打开DHCP使用的UDP 68端口。
l 执行undo ip address dhcp-alloc命令关闭DHCP客户端功能时,同时关闭UDP 68端口。
Switch A的端口(属于VLAN1)接入局域网,Vlan-interface1通过DHCP协议从DHCP服务器获取IP地址。
图3-1 DHCP组网图
下面只列出作为DHCP客户端的Switch A上的配置。
# 配置Vlan-interface1通过DHCP动态获取地址。
<SwitchA> system-view
[SwitchA] interface Vlan-interface 1
[SwitchA-Vlan-interface1] ip address dhcp-alloc
表3-2 DHCP/BOOTP客户端显示
操作 |
命令 |
说明 |
查看DHCP客户端的相关信息 |
display dhcp client [ verbose ] |
可选 display命令可以在任意视图下执行 |
查看BOOTP客户端的相关信息 |
display bootp client [ interface Vlan-interface vlan-id ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!