DHCP的工作原理
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)客户机转移到另一网段时。
==================================================================================
阅读(959) | 评论(0) | 转发(0) |