1.DHCP引入 (1)简介 DHCP(动态主机设置协议)是一个局域网的网络协议,使用UDP协议工作,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。 (2)功能 a. 保证任何IP地址在同一时刻只能由一台DHCP客户机所使用。 b. DHCP应当可以给用户分配永久固定的IP地址。 c. DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)。 d. DHCP服务器应向现有的BOOTP客户端提供服务! (3)分配方式 自动分配方式:DHCP服务器为主机指定一个永久性的IP地址,一旦DHCP客户端第一次成功从DHCP服务器端租用到IP地址后,就可以永久性的使用该地址。 动态分配方式:DHCP服务器给主机指定一个具有时间限制的IP地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用。 3)手工分配方式:客户端的IP地址是由网络管理员指定的,DHCP服务器只是将指定的IP地址告诉客户端主机。 (4)三个端口 a. UDP67: DHCP Server服务端口 b. UDP68: DHCP Client服务端口 c. UDP546: 用于DHCPv6 Client,而不用于DHCPv4,是为DHCP failover服务,这是需要特别开启的服务,DHCP failover是用来做"双机热备"的. (5)DHCP优缺点 a. DHCP协议主机配置方式最重要的特征就是整个配置过程自动实现,而且所有配置信息在一个地方集中控制,这就是DHCP SERVER的作用。 b. 最初的DHCP协议是在同一个物理子网中使用广播方式实现的,无法穿越路由器扩展到不同的物理子网中,也就是要使用DHCP协议的每一个网络(广播域)中必须配置一台DHCP服务器,为了克服这一缺陷,采用了DHCP RELAY(DHCP中继服务器)的方式使得DHCP协议能够穿越路由器实现。 c. DHCP协议一般采用终端的硬件地址来唯一标识一个终端设备。 d. DHCP协议通过设置IP地址使用租期,可以达到IP地址的分时复用效果,解决IP地址资源短缺的问题。 e. DHCP协议基本上是一个单向驱动协议,SERVER完全是被动的,其动作、行为基本完全由CLIENT的请求行为而激发,即SERVER端无法主动控制CLIENT端。因此其交互性和安全性就没有PPP协议那么完善,这是DHCP协议的一个安全风险点。 3.DHCP报文类型 DHCP Discover DHCP客户端请求地址时,并不知道DHCP服务器的位置,因此DHCP客户端会在本地网络内以广播方式发送请求报文,这个报文成为Discover报文,目的是发现网络中的DHCP服务器,所有收到Discover报文的DHCP服务器都会发送回应报文,DHCP客户端据此可以知道网络中存在的DHCP服务器的位置。 DHCP Offer DHCP服务器收到Discover报文后,就会在所配置的地址池中查找一个合适的IP地址,加上相应的租约期限和其他配置信息(如网关、DNS服务器等),构造一个Offer报文,发送给用户(可以广播、也可以单播),告知用户本服务器可以为其提供IP地址。(注意,只是告诉client可以提供,是预分配,还需要client通过ARP检测该IP是否重复) DHCP Request 客户端会在两种情况下发送DHCP Request
- DHCP客户端可能会收到来自DHCP服务器的很多Offer,所以必须在这些回应中选择一个。Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器,并回应一个广播Request报文,通告选择的服务器。注意,"Client通常选择第一个回应Offer报文的服务器作为自己的目标服务器"这里存在一个安全问题,如果我们的伪DHCP服务器能比原始DHCP服务器先发送Offer数据包,就能达到欺骗的目的,从而劫持目标用户的流量
- 获取DHCP客户端成功获取IP地址后,在地址使用租期过去1/2时,会向DHCP服务器发送单播Request报文续延租期,如果没有收到DHCP ACK报文,在租期过去3/4时,发送广播Request报文续延租期。 DHCP ACK DHCP服务器收到Request报文后,根据Request报文中携带的用户MAC来查找有没有相应的租约记录(即之前的预分配过程中登记的那个MAC),如果有则发送ACK报文作为回应,通知用户可以使用分配的IP地址。 DHCP NAK 如果DHCP服务器收到Request报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则发送NAK报文作为回应,通知用户无法分配合适的IP地址。 DHCP Release 当用户不再需要使用分配IP地址时,就会"主动"向DHCP服务器发送Release报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约(在数据库中清除某个MAC对某个IP的租约记录,这样,这个IP就可以分配给下一个请求租约的MAC) . DHCP Decline DHCP客户端收到DHCP服务器回应的ACK报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则发送Decline报文,通知服务器所分配的IP地址不可用,我们在手工设置静态IP、或者DHCP分配中有时会遇到"检测到IP冲突"的提示就是因为客户端利用ARP机制来在当前内网中确认当前指定的IP是否已经被占用 DHCP Inform DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则发送Inform报文向服务器进行请求,服务器收到该报文后,将根据租约进行查找,找到相应的配置信息后,发送ACK报文回应DHCP客户端 4.H3C配置DHCP (1)DHCP服务器基本配置 ---启动DHCP服务 [Router]dhcp enable ---创建DHCP地址池 [Router]dhcp server ip-pool pool-name ---配置动态分配的地址范围 [Router-dhcp-pool-0]network network-address [mask-length | mask mask] ---配置为DHCP客户端分配的网关地址 [Router-dhcp-pool-0]gateway-list ip-address &<1-8> (2)DHCP服务器可选配置 ---配置为DHCP客户端分配的DNS服务器地址 [Router-dhcp-pool-0]dns-list ip-address & <1-8> ---配置DHCP地址池中不参与分配的IP地址 [Router]dhcp server sforbidden-ip start-ip-address [end-ip-address] ---配置动态分配的IP地址的租用有效期限 [Router-dhcp-pool-0]expried {day day [hour hour [minute minute [second second]]] | unlimited } (3)DHCP服务器基本配置实例 [Router] dhcp enable [Router] dhcp server forbidden-ip 192.168.1.10 [Router] dhcp server forbidden-ip 192.168.1.254 [Router] dhcp server ip-pool 0 [Router-dhcp-pool-0] network 192.168.1.0 mask 255.255.255.0 [Router-dhcp-pool-0] gateway-list 192.168.1.10 [Router-dhcp-pool-0] expried day 5