2024年5月7日发(作者:)

局域网内有两个DHCP服务器如何指定其中一个?

作为这个问题,要先讲一下DHCP工作的原理:

DHCP的实际的工作过程及原理,下面就对此做简单介绍:DHCP

是一个基于广播的协议,它的操作可以归结为四个阶段,这些阶段是

IP租用请求、IP租用提供、IP租用选择、IP租用确认。

1. 寻找Server。当DHCP客户端第一次登录网路的时候﹐也就是

客户发现本机上没有任何IP资料设定﹐它会向网路发出一个

DHCPDISCOVER封包。因为客户端还不知道自己属于哪一个网路﹐

所以封包的来源地址会为0.0.0.0﹐而目的地址则为255.255.255.255

﹐然后再附上DHCPdiscover的信息﹐向网路进行广播。网络上每一

台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP

服务器才会做出响应.DHCPdiscover的等待时间预设为1秒也就是当

客户端将第一个DHCPdiscover封包送出去之后在1秒之内没有得到

回应的话就会进行第二次DHCPdiscover广播。在得不到回应的情况

下客户端一共会有四次DHCPdiscover广播(包括第一次在内)除了第一

次会等待1秒之外其余三次的等待时间分别是9 13 16秒。如果都没

有得到DHCP服务器的回应客户端则会显示错误信息宣告

DHCPdiscover的失败。之后基于使用者的选择系统会继续在5分钟

之后再重一次DHCPdiscover的要求。

2. 提供IP租用位址。当DHCP服务器监听到客户端发出的

DHCPdiscover广播后﹐它会从那些还没有租出的位址范围内﹐选择

最前面的的空置IP,连同其它TCP/IP设定,回应给客户端一个

DHCPOFFER封包。由于客户端在开始的时候还没有IP位址﹐所以在

其DHCPdiscover封包内会带有其MAC位址信息﹐并且有一个XID

编号来辨别该封包﹐DHCP服务器回应的DHCPoffer封包则会根据这

些资料传递给要求租约的客户。根据服务器端的设定﹐DHCPoffer封

包会包含一个租约期限的信息。

3. 接受IP租约。如果客户端收到网路上多台DHCP服务器的回应

﹐只会挑选其中一个DHCPoffer(通常是最先抵达的那个)﹐并且会向

网路发送一个DHCPrequest广播封包﹐告诉所有DHCP服务器它将

指定接受哪一台服务器提供的IP位址。之所以要以广播方式回答,是

为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的

IP地址同时﹐客户端还会向网路发送一个ARP封包﹐查询网路上面有

没有其它机器使用该IP位址﹔如果发现该IP已经被占用﹐客户端则会

送出一个DHCPDECLINE封包给DHCP服务器﹐拒绝接受其

DHCPoffer﹐并重新发送DHCPdiscover信息。事实上﹐并不是所有

DHCP客户端都会无条件接受DHCP服务器的offer﹐尤其这些主机安

装有其它TCP/IP相关的客户软件。客户端也可以用DHCPrequest向

服务器提出DHCP选择﹐而这些选择会以不同的号码填写在

DHCPOptionField里面。换一句话说﹐在DHCP服务器上面的设定﹐

未必是客户端全都接受﹐客户端可以保留自己的一些TCP/IP设定。而

主动权永远在客户端这边。

4. 确认阶段。即DHCP服务器确认所提供的IP地址的阶段。当

DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,

它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的

DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。

然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP

客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地

5. 重新登录。以后DHCP客户机每次重新登录网络时,就不需要

再发送DHCPdiscover发现信息了,而是直接发送包含前一次所分配

的IP地址的DHCPrequest请求信息。当DHCP服务器收到这一信息

后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个

DHCPack确认信息。如果此IP地址已无法再分配给原来的DHCP客

户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则

DHCP服务器给DHCP客户机回答一个DHCPnack否认信息。当原来

的DHCP客户机收到此DHCPnack否认信息后,它就必须重新发送

DHCPdiscover发现信息来请求新的IP地址。

6. 更新租约。DHCP服务器向DHCP客户机出租的IP地址一般都

有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果

DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机

启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务

器发送更新其IP租约的信息。至于IP的租约期限却是非常考究的﹐并

非如我们租房子那样简单﹐DHCP客户机除了在开机的时候发出

DHCPrequest请求之外﹐在租约期限一半的时候也会发出

DHCPrequest﹐如果此时得不到DHCP服务器的确认的话﹐工作站还

可以继续使用该IP﹔然后在剩下的租约期限的再一半的时候(即租约的

75%)﹐还得不到确认的话﹐那么工作站就不能拥有这个IP了。要是您

想退租,可以随时送出DHCPLEREASE命令解约﹐就算您的租约在前

一秒钟才获得的.

那么知道原理后,我们就知道,根据客户计算机的IP租用原理可

以知道,在一个子网内,如果存在多台DHCP服务器来提供地址配置

信息,这是不违反请求、分配原则的,因为只要中有一台客户计算机

在该子网中提出IP地址租约请求,由于请求是广播形式的,所以在子

网中可以有任意数量的特定DHCP服务器响应一个IP租用请求,而客

户请求后选中的是这些任意特定DHCP服务器中的某一台,这个选择

具有随机性,但有一点要注意的是客户只能为每一张网络接口卡接受

一个租用提供。并且客户段获得IP后,重新获取基本都是响应曾经获

取到的DHCP服务器。简单点说就是DHCP服务器谁先响应,客户端

就获得先响应的DHCP上面的地址。

所以对于上面的问题,我个人的解决方法建议如下(没有测试过,

需验证):

方法一:手动在服务器E上指定DHCP 服务器b上能获得的地址

后,测试网络正常后,转成自动获取,并在DHCP服务器上使用MAC

地址绑定。

方法二:在另外一台DHCP上开启MAC地址筛选器,过滤掉服

务器E 的MAC地址,不让服务器E获得IP地址。

以上是我的回答,希望能帮助你。如有更好的方法,评论区留言,

欢迎交流。