DHCP原理介绍
1.动态主机配置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址,给用户或者内部网络管理员作为对所有计算机作中央管理的手段。
2.dhcp分为三种:
Manual Allocation:人工分配,获得的IP也叫静态地址
Automatic Allocation:自动分配,其情形是:一旦 DHCP客户端第一次成功的从 DHCP服务器端 租用到 IP 地址之后,就永远使用这个地址。
Dynamic Allocation:动态分配,当 DHCP客户端第一次从 DHCP服务器端租用到 IP 地址之后, 并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个 IP 地址,以给其它工作站使用
3.DHCP的工作流程分为四步:
一、客户机请求 IP(DHCPdiscover)
二、服务器响应(DHCPoffer)
三、客户机选择 IP(DHCPrequest)
四、服务器确认 IP租约(DHCPack/DHCPnak)
下面我们就来分别讲一下:
一、客户机请求 IP(DHCPdiscover)
当客户机设置使用 DHCP协议获取 IP时,客户机将使用 0.0.0.0作为源地址,使用255.255.255.255作为目标地址来广播请求 IP地址的信息。广播信息中包含 DHCP客户机的MAC地址和计算机名。(这里的 MAC地址可不是 FFFF.FFFF.FFFF的 MAC 广播哦~)
二、服务器响应(DHCPoffer)
由于是广播所以同一网段内的计算机都会“听”到!DHCP服务器当然也不例外。DHCP服务器“听”到后,它首先会针对该次请求的信息所携带的 MAC地址与 DHCP主机本身的设置值进行对比。如果 DHCP主机的设置中有针对该 MAC 提供的静态 IP(每次都给一个固定 IP),则提供给客户机相关的固定 IP与相关的网络参数;如果该信息的 MAC并不在 DHCP主机的设置中,则 DHCP主机会选取当前网段内没有使用的IP给客户机使用!当然这里的响应,服务器也是采用 255.255.255.255的广播,因为此时客户机还没 IP哦~
这里有几个要注意的地方:
1、如果同一网段内有多台 DHCP服务器,那么客户机是看谁先响应,谁先响应就选择谁。
2、在 DHCP主机发给客户端的信息中,会附带一个“租约期限”信息,用来告诉客户机这个 IP能用多久!
三、客户机选择 IP(DHCPrequest)
当客户机接收到响应的信息之后,首先会以 ARP在网段内广播(ARP使用全 1的广播 MAC地址),以确定来自 DHCP服务器的 IP没被占用!如果该 IP被占用,那么客户机对于这次的 DHCP信息将不接受,而是再次发送 DHCP请求。若该 IP没有被占用,客户机则接受 DHCP服务器所给的网络参数。同时,客户机发出一个广播,通知所挑选的 DHCP服务器(有多台 DHCP服务器存在时),当然此时也是通知其它的 DHCP服务器,让这些 DHCP服务器将本预分配给客户机的 IP释放掉!(这里的概念一定要弄清楚!)注意,这一步客户机并还没有应用从 DHCP服务器获取到 IP哦!所以这一步源地址还是0.0.0.0,目标地址是 255.255.255.255。
四、服务器确认 IP租约(DHCPack/DHCPnak)
终于到最后一步了,DHCP服务器收到客户机选择 IP的广播后,则以 DHCPack消息的形式向客户机广播成功的确认。DHCPack包含:IP、掩码、网关、DNS等。当然上面还有一个 DHCPnak,一看就知道是不成功的意思!那么,哪些情况才会有这种广播呢?
例如,IP地址已无效或这个地址已被其它的客户机使用了!
此时,当客户机收到 DHCP服务器的 DHCPack消息后,客户机便使用了 DHCP服务器所给的网络参数!这里的四个步骤可都是用的广播哦,不知道大家有没有注意!呵呵~到此,我们的 DHCP原理就讲完了,下面我还给补充了点东东,希望对大家有用:
1、当我们的客户机无法找到 DHCP服务器时,它将从 TCP/IP的 B类网段 169.254.0.0中挑选一个 IP地址作为自己的 IP地址,而继续每隔 5分钟尝试与 DHCP服务器进行通信。(这里的这个 B类地址被称为 APIPA,即自动分配私有 IP地址!)
2、IP租约的更新,当客户机重新启动或租期达 50%时,客户机不会从第一步(DHCPdiscover)开始重新申请 IP,而是从第三步(DHCPrequest)开始哦~只有当租期达 87.5%时,它才从第一步(DHCPdiscover)开始重新申请!
3、客户机这里还有两条命令,希望大家给记住:
ipconfig/release : 是用来 IP租约的释放。使用 DHCPrelease消息!
ipconfig/renew : 是用来 IP租约的更新。使用 DHCPdiscover消息!
4、客户机必须要经过四步的情况:
(1)第一次扮演 DHCP客户机角色。
(2)IP被 DHCP服务器收回。
(3)客户机自己释放了 IP,并重租一个 IP时。
(4)客户机更换网卡了。
(5)客户机转移到另一网段时。
4.dhcp client 地址更新过程:
DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。 如果DHCP客户端希望继续使用该地址,需要更新IP租约。
1:租约没有到期,如果客户端重启,则会向DHCP服务器发送DHCPREQUEST,请求使用原来的ip地址。
2:在IP地址租约期限达到50%时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,确认租约更新。
3:如果在步骤2中DHCP服务器无响应,则在租约期限达到87.5%时,DHCP客户端会向DHCP服务器发送DHCPREQUEST包,再次请求租约的更新,如果此IP地址有效,则DHCP服务器回应DHCPACK,确认租约更新
4:如果在步骤3中DHCP服务器无响应,客户端会发送广播包DHCPDISCOVER,重新向网络中的DHCP服务器发出ip地址请求;或者等到租约达到100%时,终止租约。
五:dhcp中继:
在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机还能不能向服务器申请IP地址呢?这就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。
完。
转载于:https://blog.51cto.com/liqirui/1347803