DHCP详解
1. 何为DHCP
动态主机设置协议:是一个局域网的网络协议,使用UDP协议工作。
1)用于内部网或网络服务供应商自动分配IP地址;
2)给用户用于内部网管理员作为对所有计算机作*管理的手段。
2. 功能概述
DHCP通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
DHCP协议采用客户端/服务器模型,主机地址的动态分配任务由网络主机驱动。当DHCP服务器接收到来自网络主机申请地址的信息时,才会向网络主机发送相关的地址配置等信息,以实现网络主机地址信息的动态配置。DHCP具有以下功能:
3. 工作原理
DHCP协议采用UDP作为传输协议,主机发送请求消息到DHCP服务器的68号端口,DHCP服务器回应应答消息给主机的67号端口。(默认端口)
1) DHCP Client以广播的方式发出DHCP Discover报文。
2) 所有的DHCP Server都能够接收到DHCP Client发送的DHCP Discover报文,所有的DHCP Server都会给出响应,向DHCP Client发送一个DHCP Offer报文。DHCP Offer报文中“ IP Address”字段就是DHCP Server能够提供给DHCP Client使用的IP地址, DHCP Server在发出此报文后会存在一个已分配IP地址的纪录。
3)DHCP Client只能处理其中的一个DHCP Offer报文,一般的原则是DHCP Client处理最先收到的DHCP Offer报文。DHCP Client会发出一个广播的DHCP Request报文,在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址。
4)DHCP Server收到DHCP Request报文后,判断选项字段中的IP地址是否与自己的地址相同。如果不相同,DHCP Server不做任何处理只清除相应IP地址分配记录;如果相同,DHCP Server就会向DHCP Client响应一个DHCP ACK报文,并在选项字段中增加IP地址的使用租期信息。
5)DHCP Client接收到DHCP ACK报文后,检查DHCP Server分配的IP地址是否能够使用。如果可以使用,则DHCP Client成功获得IP地址并根据IP地址使用租期自动启动续延过程;如果DHCP Client发现分配的IP地址已经被使用,则DHCP Client向DHCPServer发出DHCP Decline报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。
6)DHCP Client在成功获取IP地址后,随时可以通过发送DHCP Release报文释放自己的IP地址,DHCP Server收到DHCP Release报文后,会回收相应的IP地址并重新分配。
租期续租IP地址:
在使用租期超过50%时刻处,DHCP Client会以单播形式向DHCP Server发送DHCPRequest报文来续租IP地址。如果DHCP Client成功收到DHCP Server发送的DHCP ACK报文,则按相应时间延长IP地址租期;如果没有收到DHCP Server发送的DHCP ACK报文,则DHCP Client继续使用这个IP地址。
直到IP地址使用租期到期时,DHCP Client才会向DHCP Server发送DHCP Release报文来释放这个IP地址,并开始新的IP地址申请过程。
4. DHCP欺骗
攻击者可以通过伪造大量的IP请求包,而消耗掉现有DHCP服务器的IP资源。当有计算机请求IP的时候,DHCP服务器就无法分配IP。这时,攻击者可以伪造一个DHCP服务器给计算机分配IP,并指定一个虚假的DNS服务器地址。这时,当用户访问网站的时候,就被虚假DNS服务器引导到错误的网站。
5. DHCP欺骗的解决方案(DHCP SNOOPING)
DHCP SNOOPING截获交换机端口的DHCP应答报文,建立-张包含有用户MAC地址、IP地址、 租用期、VLAN ID、交换机端口等信息的一张表,组DHCP SNOOPING还将交换机的端口分为可信任端口和不可信任端口,当交换机从一个不可信任端口收到DHCP服务器的报文时,比如DHCPOFFER报文、DHCPACK报文、DHCPNAK报文,交换机会直接将该报文弃;对信任端口收到的DHCP服务器的报文,交换机不会丢弃而直接转发。一般将与用户相连的端口定义为不可信任端口,而将与DHCP服务器或者其他交换机相连的端口定义河信任端口,也就是说,当在一个不可信任端口连接有DHCP服务器的话,该服务器发出的报文将不能通过交换机的端口。因此只要将用户端口设置为不可信任端口,就可以有效地防止非授权用户私自设置DHCP服务而引起的DHCP欺骗。