将DHCP服务器部署进行到底,工作流程

网络中有些重要的服务组件很容易被遗忘,因为它们始终如一地完成着自己的工作,并且从来不那么引人注目。只有当它们出现问题时,这些“老黄牛”的真正价值才体现出来,人们也才开始加以关注。动态主机配置协议Dynamic Host Configuration Protocol,DHCP)与Windows Internet 名称服务Windows Internet Name Service,WINS)就是它们中的代表。它们常常被扔在角落里,委屈地工作在老旧服务器上。虽然它们看起来不如活动目录技术那样风光,但其功能在网络环境中确实很重要的,应该为它们的规划和配置做大量的筹划工作。

Linux下DHCP服务器配置技术总结

 一、DHCP的作用

案例一:DHCP怪异现象

一:dhcp的工作原理

  我们先来看一下什么是DHCP,DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务器的IP地址等TCP/IP参数,简单来说,就是在DHCP服务器上有一个数据库,存放着IP地址、网关、DNS等参数。当客户端请求使用时,服务器则负责将相应的参数分配给客户端。以避免客户端手动指定IP地址等。。特别是在一些大规模的网络中。客户端数目较多,使用DHCP可以方便对这些机器进行管理,为客户机提供TCP/IP参数配置,如IP地址、网关地址和DNS服务器等,不仅效率高,而且不存在IP地址冲突的情况。现在的无线路由器默认都带有DHCP功能,也就是说一个无线路由器同时也是一个DHCP服务器。

动态主机配置协议Dynamic Host Configuration Protocol,DHCP)是一种保障网络管理员能够集中管理和自动分配 IP 网络地址的通信协议。在 IP 网络中,由于每个连接设备都需要分配唯一的 IP 地址,所以DHCP 部署使网络管理员能从中心结点监控和分配 IP 地址,DHCP可以确保当某台计算机移到网络中的其它位置时,也能自动收到新的 IP 地址。但是,虽然DHCP看起来很“美”,实现起来也很简单,可是在配置应用的时候还是会出现各种问题。有一次我进行DHCP服务器迁移工作,发现DHCP服务器已经关闭了,但一些采用自动获取IP地址的客户端仍然能够在启动后获得IP地址。

图片 1

二、DHCP的工作过程:

要搞清原因就只能根据客户端获取IP的过程逐步分析了。DHCP服务器向DHCP客户端提供IP地址的时间一般都有一个期限,一旦这个时间结束了,DHCP服务器便会收回出租的IP地址。如果DHCP客户端要延长其IP租约,则必须重新或者延长其IP租约的时间期限。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。至于IP的租约期限却是非常讲究的,并非如我们租房子那样简单。DHCP客户端除了在开机的时候发出DHCPREQUEST请求之外,在租约期限一半的时候也会发出DHCPREQUEST。如果此时得不到DHCP服务器的确认的话,工作站还可以继续使用该IP。然后在剩下的租约期限再到一半的时候即租约的75%),如果还得不到确认的话,那么工作站就不能拥有这个IP了。要是你想退租,可以随时送出DHCPRELEASE命令解约,就算你的租约在前一秒钟才获得的。

简介: DHCP 是 Dynamic Host Configuration Protocol(动态主机配置协议)缩写,它的前身是 BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用 BOOT ROM 而不是磁盘启动并连接上网络,BOOTP则可以自动地为那些主机设定 TCP/IP 环境。但 BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与 IP 的对应是静态的。换而言之,BOOTP 非常缺乏 "动态性" ,若在有限的 IP 资源环境中,BOOTP 的一对一对应会造成非常严重的资源浪费。DHCP 可以说是 BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的 IP 网络设定数据都由 DHCP 服务器集中管理,并负责处理客户端的 DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起 BOOTP ,DHCP 透过 "租约" 的概念,有效且动态的分配客户端的 TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了 BOOTP Client 的需求。DHCP 的分配形式 首先,必须至少有一台 DHCP 工作在网络上面,它会监听网络的 DHCP 请求,并与客户端磋商 TCP/IP 的设定环境。

  那么客户端是怎么从DHCP服务器(也就是我们的无线路由器或无线AP)上获得地址的呢?

为什么网络中的DHCP服务器已经关闭了,而客户端还能延续之前的IP地址呢?我们看一下DHCP客户端重新启动后发生的事情。它将尝试更新上次关机时拥有的IP租用,如果更新未能成功,客户端将尝试联系现有IP租用中已经包含的缺省网关Default gateway),比如上次获得Default gateway是192.168.1.254,如果此时客户端能够成功地联系到这个设备,客户端则认为自己仍然位于与它获得现有IP租用时相同的子网上没有被移走),继续使用现有IP地址。 如果未能与缺省网关联系成功,客户端则认为自己已经被移到不同的子网上,将会开始新一轮的IP租用过程。因为我关闭了DHCP服务器,并没有关闭网关设备,客户端能够联系到网关,所以它沿用了之前获取的IP参数,也就出现了上文提到的奇怪现象。

原理:

▲DHCP工作过程

案例二:IP冲突检测

DHCP是一个基于广播的协议,它的操作可以归结为四个阶段,这些阶段是IP租用请求、IP租用提供、IP租用选择、IP租用确认。

  1.DHCP DISCOVER: 寻找服务器

有一家小公司刚成立的阶段,副总经理把自己家里的宽带路由器拿来充公。最初只有5个客户端需要连接Internet时,这台路由器以其良好的性能得到了大家的一致称赞。随着员工的增加,为了方便其他用户的使用,公司启用了宽带路由器提供的DHCP服务,担当DHCP服务器功能。

1、IP租用请求:在任何时候,客户计算机如果设置为自动获取IP地址,那么在它开机时,就会检查自己当前是否租用了一个IP地址,如果没有,它就向DCHP请求一个租用,由于该客户计算机并不知道DHCP服务器的地址,所以会用255.255.255.255作为目标地址,源地址使用0.0.0.0,在网络上广播一个DHCPDISCOVER消息,消息包含客户计算机的媒体访问控制(MAC)地址(网卡上内建的硬件地址)以及它的NetBIOS名字。

  当DHCP客户端第一次登录网络的时候或者是开机时,此计算机发现本机上没有任何IP地址设定,就会向网络广播去寻找DHCP服务器。该数据包的来源地址会为0.0.0.0,而目的地址则为255.255.255.255。

冲突原因分析

2、IP租用提供:当DHCP服务器接收到一个来自客户的IP租用请求时,它会根据自己的作用域地址池为该客户保留一个IP地址并且在网络上广播一个来实现,该消息包含客户的MAC地址、服务器所能提供的IP地址、子网掩码、租用期限,以及提供该租用的DHCP服务器本身的IP地址。

  2. DHCP OFFER分配IP地址

然而,麻烦也随之到来,客户端常常出现IP地址冲突现象。由于客户端使用自动获取IP地址的配置方案,启动较慢。几个略懂技术的员工手工配置了路由器中DHCP已经分配的IP,常常使得IP地址与其他用户冲突,导致公司经常上演“抓鬼”闹剧。

3、IP租用选择:如果子网还存在其它DHCP服务器,那么客户机在接受了某个DHCP服务器的DHCPOFFER消息后,它会广播一条包含提供租用的服务器的IP地址的DHCPREQUEST消息,在该子网中通告所有其它DHCP服务器它已经接受了一个地址的提供,其他DHCP服务器在接收到这条消息后,就会撤销为该客户提供的租用。然后把为该客户分配的租用地址返回到地址池中,该地址将可以重新作为一个有效地址提供给别的计算机使用。

  当无线设备监听到客户端发出的寻找服务器的数据包后,它会从那些还没有分配出的IP地址里,选择最前面的的空闲IP,给客户端一个分配IP地址,但这里仅仅是分配,客户端还没有真正应用上。

根据IP地址分类特征分析,这家企业选择基于专用网络 ID 192.168.0.0分配IP地址的方案,这种方案提供在每个网段上最多254台计算机的容量,足够满足公司所有客户端的需求了。在原有DHCP分配IP地址范围合理的情况下,为什么会出现IP地址冲突的问题呢?这是因为一般家用路由器说明书中都会提到将路由器本身的IP192.168.0.1)排除掉,在没有人手工配置自己的IP地址前,如果都使用路由器提供的192.168.0.x网段,自动获得IP地址,冲突现象基本不会发生。

4、IP租用确认:DHCP服务器接收到来自客户的DHCPREQUEST消息,它就开始配置过程的最后一个阶段,这个确认阶段由DHCP服务器发送一个DHCPACK包给客户,该包包括一个租用期限和客户所请求的所有其它配置信息,至此,完成TCP/IP配置。

  3. DHCP REQUEST 请求使用

但公司中一些学过计算机专业的新员工非常个性化,他们知道设置固定的网络参数IP地址和DNS服务器)比自动获取方式电脑启动得更快一些。在上面那个例子中,如果有10个用户采用固定网络参数,假设他们占用了192.168.0.2~192.168.0.11这10个IP地址。如果固定IP设置为192.168.0.5的那个用户主机一段时间没有开机,有另外一个用户使用DHCP获取网络参数方式开机了。DHCP服务器看到目前192.168.0.5是空闲地址,就会把这个IP地址分配给这个用户。此时,如果原来的用户再上线,由于这个IP地址已经被占用了,这就会造成IP地址冲突。而一些固定IP地址的主机,如财务人员的主机,都可能会出现IP地址冲突的提示。

分配方式:

  客户端收到无线设备发送回来的分配IP地址数据包,客户端会向网络发送一个ARP数据包,确认网络中没有其他机器使用该IP地址,如果已经有,则重复发送步骤1中的动作;如果没有,则接受该IP地址,并发送一个Dhcprequest数据包给无线路由器,也就是DHCP服务器,请求使用此地址。

图片 2
表1 VLAN与IP地址分配

人工分配(Manual Allocation),网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期。

  4. DHCP ACK IP地址分配确认

...

自动分配( Automatic Allocation),其情形是:一旦 DHCP 客户端第一次成功的从 DHCP 服务器端租用到 IP 地址之后,就永远使用这个地址。

  当无线设备接收到客户端的Dhcprequest数据包之后,会向客户端发出一个DHCPACK回应,以确认IP地址的正式生效,也就结束了一个完整的DHCP工作过程。

动态分配(Dynamic Allocation),当 DHCP客户端 第一次从 DHCP 服务器端租用到 IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的 IP 地址。动态分配显然比自动 分配更加灵活,尤其是当您的实际 IP 地址不足的时候,使用动态分配的方式是最好的选择。

  当此过程完成之后,DHCP客户端再重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时,则DHCP服务器给DHCP客户机回答一个DHCP nack否认信息。当原来的DHCP客户机收到此DHCP nack否认信息后,它就必须重新发送DHCPdiscover发现信息来请求新的IP地址。

说明:dhcp使用的协议为udp,服务器端使用的67端口,客户端使用的是68端口。

  但DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

图片 3

 


一、功能描述

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址,Gateway地址,DNS服务器地址等信息,并能够提升地址的使用率。DHCP协议使用UDP协议工作,采用C/S模型,主机地址的动态分配任务由网络主机驱动。

 

二、申请IP工作过程

    1.DHCP客户机初始化TCP/IP,通过 UDP端口67 向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。该广播包中的源IP地址为0.0.0.0, 目标IP地址为255.255.255.255,包中还包含客户机的MAC地址和计算机名。

    2.DHCP服务器都会通过UDP端口68给客户机 回应一个DHCPOFFER广播包,提供一个IP地址,该广播包的源IP地址为DHCP服务器IP,目标IP地址为255.255.255.255,包中还包含提供的IP地址,子网掩码及租期等信息。

    3.客户选择IP租用报文,客户机从不止一台DHCP服务器接收到提供之后,会选择第一个收到的DHCPOFFER包,并向网络中广播一个 DHCPREQUEST消息包,表明自己已经接受了一个DHCP服务器提供的IP地址。该广播包中包含所接受的IP地址和服务器的IP地址,所有其他的DHCP服务器撤消它们的提供以便将IP地址提供给下一次IP租用请求。

    4.DHCP服务器发出IP租用确认报文,被客户机选择的DHCP服务器在收到DHCPREQUEST广播后,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。客户配置成功后发出的公告报文,客户机在收到DHCPACK包,会使用该广播包中的信息来配置自己的TCP/IP,则租用过程完成,客户机可以在网络中通信。

 

本文由澳门威斯尼人平台登录发布于服务器&运维,转载请注明出处:将DHCP服务器部署进行到底,工作流程

相关阅读