none
关于Windows 10的DHCP行为 RRS feed

  • 问题

  • 您好。

    我注意到Windows 10客户端在接入无线网络后"断开连接"再重新接入相同的无线网络,

    此时发送的是DHCPREQUEST而不是DHCPDISCOVER,这似乎和DHCP标准(rfc2131)不相符。

    DHCPREQUEST - Client message to servers either (a) requesting offered parameters from one server and implicitly declining offers from all others, (b) confirming correctness of previously allocated address after, e.g., system reboot, or (c) extending the lease on a particular network address.

    据我所知DHCPREQUEST应该在RENEWING / REBINDING / INIT-REBOOT / SELECTING 

    这四个状态下发送,但是断开连接再重新接入似乎不属于上面的任何一种(并没有禁用网卡或进入飞行模式)。

    我在多个不同型号的Windows 10客户端看到此现象。

    1. 我想知道为什么此时会发送DHCPREQUEST而不是DHCPDISCOVER。

    2. 能否通过修改配置(注册表等)让客户端在此种情形下发送DHCPDISCOVER而不是DHCPREQUEST。

    谢谢。


    2019年6月24日 4:24

答案

  • 您好,

    感谢您在本论坛发帖。

    1. DHCP服务器分发给客户端的地址是有一定的租赁时间的。这台Windows 10客户端之前连接Wifi时,获得了DHCP提供的租约,这个租约还没过期时客户端断开了Wifi连接。之后客户端再次接入时(若此时租约仍未过期),就会发送Request包请求继续使用之前的租约。

    2. 不能。除非将这台客户端切换到另一个Wifi网络,或是使用命令:先输入“ ipconfig /release ”,然后输入“ ipconfig /renew ”。强制客户端丢弃当前租约并重新向DHCP服务器请求新的租约。

    此致,

    Leon


    如果我的回复解决了您的问题,请点击回复下方的“标记为答案”。感谢您的理解与支持。


    • 已编辑 HK.Leon 2019年6月24日 6:08
    • 已标记为答案 海峰李 2019年7月1日 7:51
    2019年6月24日 6:07
  • 您好,

    我回家做了下实验,发现Windows 客户端的行为和您描述的一样。

    我并没有仔细阅读过RFC文档,于是我咨询了高级工程师,他告诉我这种情况是符合RFC文档的。

    在RFC文档中有着详细的描述,在断开网络重连后,即您所描述的那种情况下:客户端就是先发送DHCP Request包去向DHCP服务器请求它之前使用的IP地址,除非此地址已不可用或是已分发给其他客户端,之后客户端才会重新开始发DHCP discover包。

    此致,

    Leon


    如果我的回复解决了您的问题,请点击回复下方的“标记为答案”。感谢您的理解与支持。

    • 已编辑 HK.Leon 2019年6月28日 7:58
    • 已标记为答案 海峰李 2019年7月1日 7:50
    2019年6月28日 7:58

全部回复

  • 非常好,我收藏了!

    2019年6月24日 5:08
  • 您好,

    感谢您在本论坛发帖。

    1. DHCP服务器分发给客户端的地址是有一定的租赁时间的。这台Windows 10客户端之前连接Wifi时,获得了DHCP提供的租约,这个租约还没过期时客户端断开了Wifi连接。之后客户端再次接入时(若此时租约仍未过期),就会发送Request包请求继续使用之前的租约。

    2. 不能。除非将这台客户端切换到另一个Wifi网络,或是使用命令:先输入“ ipconfig /release ”,然后输入“ ipconfig /renew ”。强制客户端丢弃当前租约并重新向DHCP服务器请求新的租约。

    此致,

    Leon


    如果我的回复解决了您的问题,请点击回复下方的“标记为答案”。感谢您的理解与支持。


    • 已编辑 HK.Leon 2019年6月24日 6:08
    • 已标记为答案 海峰李 2019年7月1日 7:51
    2019年6月24日 6:07
  • 感谢您的回复。

    我想再确认一下,这种行为符合标准吗?

    我用手机等其它设备测试时断开后重新连接,发的是DHCPDISCOVER,

    这似乎更符合DHCP在RFC中的定义。

    2019年6月24日 6:25
  • 您好,

    在我的工作环境中没有笔记本电脑,相关实验我要在自己的笔记本上做。我会在做完实验后给您答复。

    此致,

    Leon


    如果我的回复解决了您的问题,请点击回复下方的“标记为答案”。感谢您的理解与支持。

    • 已编辑 HK.Leon 2019年6月25日 2:17
    2019年6月25日 2:17
  • 非常感谢,静候您的回复
    2019年6月27日 1:14
  • 您好,

    我回家做了下实验,发现Windows 客户端的行为和您描述的一样。

    我并没有仔细阅读过RFC文档,于是我咨询了高级工程师,他告诉我这种情况是符合RFC文档的。

    在RFC文档中有着详细的描述,在断开网络重连后,即您所描述的那种情况下:客户端就是先发送DHCP Request包去向DHCP服务器请求它之前使用的IP地址,除非此地址已不可用或是已分发给其他客户端,之后客户端才会重新开始发DHCP discover包。

    此致,

    Leon


    如果我的回复解决了您的问题,请点击回复下方的“标记为答案”。感谢您的理解与支持。

    • 已编辑 HK.Leon 2019年6月28日 7:58
    • 已标记为答案 海峰李 2019年7月1日 7:50
    2019年6月28日 7:58
  • 非常感谢您的回复,我在Microsoft网站上找到相关的解释,

    重新连接时会进入INIT-REBOOT state,所以发送DHCP Request是正常的。

    https://support.microsoft.com/it-it/help/167014/dhcp-client-may-fail-to-obtain-a-dhcp-assigned-ip-address

    When a DHCP client that has previously had a DHCP-assigned address is started again, the client goes into an INIT-REBOOT state. 

    而且我在RFC2131中也确实看到有定义重新连接时发送DHCP Request。

    很抱歉因为我自己的认识不足而占用了您宝贵的时间,再次感谢您的耐心解答。

    2019年7月1日 7:50
  • 您客气了。

    我也只是咨询了他人之后,才得到更为确切的答案。

    或者说,正是您的问题,才让我对这个知识点有了更为详细,正确的理解。

    学无止境,与君共勉。

    此致,

    Leon


    如果我的回复解决了您的问题,请点击回复下方的“标记为答案”。感谢您的理解与支持。

    • 已编辑 HK.Leon 2019年7月1日 7:59
    2019年7月1日 7:59