1.2.3 为DHCP开放安全策略
同路由协议一样,DHCP默认情况下也受安全策略控制。如果想要快速接入网络,用户也可以使用undo firewall packet-filter basic-protocol enable
命令取消这个控制。
DHCP组网中有3种角色:DHCP客户端、DHCP服务器和DHCP中继。当DHCP客户端和DHCP服务器位于不同网段时,需要部署DHCP中继。在不同的组网场景中,DHCP报文交互的流程略有不同,下面分别来看。
1. 同网段无DHCP中继场景
在同网段无DHCP中继场景中,DHCP报文交互过程如图1-11所示。
图1-11 DHCP报文交互流程——无DHCP中继场景
DHCP报文采用UDP封装。以DHCP客户端首次接入网络为例,其IP地址分配流程如下。
(1)DHCP Discover
DHCP客户端以广播方式发送DHCP Discover报文,源/目的地址分别为0.0.0.0和255.255.255.255,源/目的端口分别为68和67。DHCP客户端首次接入网络时,还没有获得过IP地址,也不知道DHCP服务器的地址,因此只能采用广播方式。在DHCP Discover报文中有一个Flag标志位,决定服务器以单播或广播方式发送响应报文,一般是单播方式(Broadcast Flag=0)。
(2)DHCP Offer
DHCP服务器收到DHCP Discover报文后,选择一个可用地址,通过DHCP Offer单播报文发送给DHCP客户端。此时报文中封装的目的IP地址是DHCP服务器提议分配给DHCP客户端的IP地址。
(3)DHCP Request
DHCP客户端仍然以广播方式发送DHCP Request报文,向选中的DHCP服务器请求使用的IP地址。报文中带有其选择的DHCP服务器标识符。当网络中有多个DHCP服务器时,广播DHCP Request可以通知所有DHCP服务器,未被选中的DHCP服务器也就可以更新提议的IP地址状态了。
(4)DHCP Ack
DHCP服务器通过DHCP Ack单播报文通知DHCP客户端,确认地址分配。
如果DHCP客户端非首次接入网络,可以申请曾经使用过的IP地址,则地址分配过程只有DHCP Request和DHCP Ack两个阶段。DHCP Request报文的源地址为当前IP地址。
当租期更新定时器到期时(租期的一半,即1800秒),DHCP客户端向DHCP服务器发送单播报文,申请更新租期。如果DHCP客户端不再使用当前地址,则发送DHCP Release单播报文,释放该IP地址。
在这个场景中,DHCP服务器和DHCP客户端都可能会主动发送单播报文。防火墙作为DHCP服务器时,安全策略配置示例如表1-14所示。
表1-14 安全策略示例——防火墙作为DHCP服务器
2. 不同网段带DHCP中继场景
DHCP客户端的广播报文不能穿越不同网段。当网络中有多个网段时,通常使用DHCP中继来解决这个问题,其报文交互过程如图1-12所示。
图1-12 DHCP报文交互流程——带DHCP中继场景
在地址分配阶段,DHCP客户端广播DHCP Discover和DHCP Request请求。DHCP中继接收到报文以后,修改报文的源/目的地址为出接口地址和DHCP服务器的地址,并填充IP中继地址,然后单播转发给DHCP服务器。DHCP服务器向DHCP中继单播发送DHCP Offer和DHCP Ack报文。DHCP中继与DHCP服务器通信时,源/目的端口都使用UDP端口67。
DHCP客户端在地址分配阶段已经获得DHCP服务器的地址。在后续的租期更新和地址释放过程中,DHCP客户端以单播报文直接向DHCP服务器发起连接,不需要DHCP中继代理。防火墙作为DHCP中继时,安全策略配置如表1-15所示。
表1-15 安全策略示例——防火墙作为DHCP中继