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地址。
以上是我的回答,希望能帮助你。如有更好的方法,评论区留言,
欢迎交流。
发布评论