首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >DHCP租约到期自动续租问题导致TCP连接异常

DHCP租约到期自动续租问题导致TCP连接异常

作者头像
大大大大大先生
修改于 2025-07-24 05:19:06
修改于 2025-07-24 05:19:06
4.5K00
代码可运行
举报
运行总次数:0
代码可运行

DHCP

  • 简单的来说,DHCP是一个局域网协议,使用UDP协议进行工作,它的作用就是动态的分配IP地址,Gateway地址,DNS服务器地址等信息,一旦租约到期,那么路由器就会把当前的这个ip分配给其他设备使用,所以,对于设备而言要定期请求DHCP Server来更新ip地址信息,保证ip地址有效可用

DHCP租约到期,设备不会自动进行续租而仍然使用旧的ip地址

  • https://www.net.princeton.edu/android/android-stops-renewing-lease-keeps-using-IP-address-11236.html

DHCP租约到期,设备向DHCP Server发起请求,但是没有收到Ack

  • 遇到如上情况会导致ip无法更新,所以设备仍然会使用旧的ip,对于tcp连接来说,使用旧的过期ip就意味着连接不到远程服务器,从我们的日志信息中可以得知,当TCP使用过期的ip去连接远程服务器的时候会报如下异常:java.net.NoRouteToHostException: No route to host,意思是说没有可达Host的路由,确实是这样的,设备连接无线网是连接到路由器上的,而路由器上分配给设备的ip已经过期不可用,那么设备到路由器的链路是通的,但是路由器到远程主机的链路肯定是不通的,所以会报如上错误
  • 正常情况下,我们的Android设备在处于熄屏的状态下,DHCP的租约是1个小时,所以会每隔半小时就请求DHCP Server来更新ip地址:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Line 30221: 09-11 12:58:51.016  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 30227: 09-11 12:58:51.246  1835  3791 D DhcpClient: Received packet: 00:0a:f5:43:d8:7c ACK: your new IP /172.28.88.48, netmask /255.255.248.0, gateways [/172.28.88.254] DNS servers: /114.114.114.114 /172.28.1.28 /8.8.8.8 /172.28.1.26 , lease time 3600
    Line 30228: 09-11 12:58:51.247  1835  3789 D DhcpClient: Renewed lease: IP address 172.28.88.48/21 Gateway 172.28.88.254  DNS servers: [ 114.114.114.114 172.28.1.28 8.8.8.8 172.28.1.26 ] Domains dw.gdbbk.com DHCP server /1.1.1.1 Vendor info ������ lease 3600 seconds
    Line 30228: 09-11 12:58:51.247  1835  3789 D DhcpClient: Renewed lease: IP address 172.28.88.48/21 Gateway 172.28.88.254  DNS servers: [ 114.114.114.114 172.28.1.28 8.8.8.8 172.28.1.26 ] Domains dw.gdbbk.com DHCP server /1.1.1.1 Vendor info ������ lease 3600 seconds
    Line 30243: 09-11 12:58:51.252  1835  3789 D DhcpClient: Scheduling renewal in 1799s
    Line 30244: 09-11 12:58:51.253  1835  3789 D DhcpClient: Scheduling rebind in 3149s
    Line 30245: 09-11 12:58:51.253  1835  3789 D DhcpClient: Scheduling expiry in 3599s
    Line 30718: 09-11 13:28:51.280  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 30718: 09-11 13:28:51.280  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 30722: 09-11 13:28:51.306  1835  3791 D DhcpClient: Received packet: 00:0a:f5:43:d8:7c ACK: your new IP /172.28.88.48, netmask /255.255.248.0, gateways [/172.28.88.254] DNS servers: /114.114.114.114 /172.28.1.28 /8.8.8.8 /172.28.1.26 , lease time 3600
    Line 30723: 09-11 13:28:51.307  1835  3789 D DhcpClient: Renewed lease: IP address 172.28.88.48/21 Gateway 172.28.88.254  DNS servers: [ 114.114.114.114 172.28.1.28 8.8.8.8 172.28.1.26 ] Domains dw.gdbbk.com DHCP server /1.1.1.1 Vendor info ������ lease 3600 seconds
    Line 30723: 09-11 13:28:51.307  1835  3789 D DhcpClient: Renewed lease: IP address 172.28.88.48/21 Gateway 172.28.88.254  DNS servers: [ 114.114.114.114 172.28.1.28 8.8.8.8 172.28.1.26 ] Domains dw.gdbbk.com DHCP server /1.1.1.1 Vendor info ������ lease 3600 seconds
    Line 30747: 09-11 13:28:51.316  1835  3789 D DhcpClient: Scheduling renewal in 1799s
    Line 30748: 09-11 13:28:51.316  1835  3789 D DhcpClient: Scheduling rebind in 3149s
    Line 30749: 09-11 13:28:51.316  1835  3789 D DhcpClient: Scheduling expiry in 3599s
    Line 31114: 09-11 13:58:53.153  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 31114: 09-11 13:58:53.153  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 31120: 09-11 13:58:53.220  1835  3791 D DhcpClient: Received packet: 00:0a:f5:43:d8:7c ACK: your new IP /172.28.88.48, netmask /255.255.248.0, gateways [/172.28.88.254] DNS servers: /114.114.114.114 /172.28.1.28 /8.8.8.8 /172.28.1.26 , lease time 3600
    Line 31121: 09-11 13:58:53.221  1835  3789 D DhcpClient: Renewed lease: IP address 172.28.88.48/21 Gateway 172.28.88.254  DNS servers: [ 114.114.114.114 172.28.1.28 8.8.8.8 172.28.1.26 ] Domains dw.gdbbk.com DHCP server /1.1.1.1 Vendor info ������ lease 3600 seconds
    Line 31121: 09-11 13:58:53.221  1835  3789 D DhcpClient: Renewed lease: IP address 172.28.88.48/21 Gateway 172.28.88.254  DNS servers: [ 114.114.114.114 172.28.1.28 8.8.8.8 172.28.1.26 ] Domains dw.gdbbk.com DHCP server /1.1.1.1 Vendor info ������ lease 3600 seconds
    Line 31133: 09-11 13:58:53.226  1835  3789 D DhcpClient: Scheduling renewal in 1799s
    Line 31134: 09-11 13:58:53.226  1835  3789 D DhcpClient: Scheduling rebind in 3149s
    Line 31135: 09-11 13:58:53.226  1835  3789 D DhcpClient: Scheduling expiry in 3599s

以上是发起请求后有正常收到Ack的情况,但是接下来设备发起了请求并没有收到Ack,所以导致设备一直不断的去发起DHCP请求,而且此时设备并没有网络切换广播,并且设备本地判断网络是正常可用的,原因是设备到路由器的网络是通的,只是路由器到远程服务器的链路是不通的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
33540: 09-11 14:28:54.007  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33540: 09-11 14:28:54.007  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33557: 09-11 14:28:59.012  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33557: 09-11 14:28:59.012  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33585: 09-11 14:29:04.021  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33585: 09-11 14:29:04.021  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33701: 09-11 14:29:12.088  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33701: 09-11 14:29:12.088  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33724: 09-11 14:29:28.065  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33724: 09-11 14:29:28.065  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33779: 09-11 14:30:03.317  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33779: 09-11 14:30:03.317  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33815: 09-11 14:31:13.838  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 33815: 09-11 14:31:13.838  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 51658: 09-11 14:33:33.786  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 51658: 09-11 14:33:33.786  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 53369: 09-11 14:35:32.229  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 53369: 09-11 14:35:32.229  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 53714: 09-11 14:37:46.146  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 53714: 09-11 14:37:46.146  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 55611: 09-11 14:40:02.569  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 55611: 09-11 14:40:02.569  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 57692: 09-11 14:42:01.271  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67
    Line 57692: 09-11 14:42:01.271  1835  3789 D DhcpClient: Unicasting DHCPREQUEST ciaddr=172.28.88.48 request=0.0.0.0 serverid=null to /1.1.1.1:67

在这段时间内,TCP连接是一直报java.net.NoRouteToHostException: No route to host异常,如果TCP当前正处于连接中,那么DHCP的更新可能会导致TCP断线,等到后面设备发起的DHCP请求收到Ack之后,TCP连接立刻恢复正常,并且此时收到了网络切换广播,针对以上问题,如何恢复呢?搜索网上资料是说应用程序每次重新建立一条新的TCP的时候会触发设备请求DHCP Server,但是从我们的log查看发现并没有,请求DHCP Server没有Ack后设备会间隔重试,当设备被触发亮屏后,网络马上恢复正常,DHCP请求也收到Ack,同时也收到网络切换广播

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.09.11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android11 DHCP初识
先简单说一下DHCP过程,对于代码理解会有帮助。 1、客户端发起Discover,来寻找DHCP服务器 2、DHCPServer给Clinet发送offer 3、DHCPClient接受Offer以后发送DHCPRequest 4、DHCPServer发送packet ack表示可以用此IP,结束。
用户7557625
2021/09/09
2.5K0
Android11 DHCP初识
DHCP原理与自建DHCP服务
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作。它是一种流行的Client/Server协议,一般用于为主机或者为路由器等指定相关的配置信息。DHCP服务在企业和家庭中得到了大量的应用,它能够自动分配ip地址以及一些其他的相关信息,整个过程对客户透明。
小柒吃地瓜
2020/04/23
3.3K0
DHCP服务
以上这些情况都是日常最常见也是最无脑的工作,公司网络管理员需要不停的去帮忙去解决这些问题,以此来保障公司网络的正常使用及员工的正常用网需求。而这些工作对于网络管理员来说实在是太低级、太无脑、太繁琐了,会消耗网络管理员的大量工作时间,也会影响公司员工的工作效能。那么如何通过其他的方法让计算机就能直接解决了上述问题,从而解放网络管理员呢?DHCP就是一个不二的选择。
星哥玩云
2022/09/15
2.3K0
DHCP服务
DHCP服务器
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,DHCP 协议主要是用来自动为局域网中的客户机分配TCP/IP 信息的网络协议,并完成每台客户机的TCP/IP 协议配置。当我们将局域网中客户机IP地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户机自动分配IP地址,使得客户机能够使用这个IP地址。
胡齐
2019/09/23
3.9K0
DHCP服务器
DHCP协议原理及应用[通俗易懂]
DHCP: 动态主机配置协议   TCP/IP协议想要运行正常的话,网络中的主机和路由器不可避免地需要配置一些信息(如接口的IP地址等)。有了这些配置信息主机/路由器才能提供/使用特定的网络服务。   主机信息的必要元素有:IP地址、子网掩码、DNS服务器IP地址   TCP/IP协议配置主机信息主要有三种方法: 1. 手动配置 2. 动态获取 3. 根据特定算法计算。   在网络中,我们把主机分为两大类,服务器主机和客户端主机, + 服务器主机: 一般采用手动配置 + 客户端主机: 一般采用动态获取   服务器一般采用手动配置,而客户端一般动态获取。主要基于以下原因: 1. 客户主机比服务主机移动更频繁 2. 服务主机需要提供更可靠的服务,其配置信息应该减少对其他系统/主机的依赖 3. 客户主机比服务主机的数量要多得多。 4. 客户主机使用者的网络配置知识比服务主机的使用者低
全栈程序员站长
2022/08/25
1.5K0
DHCP协议原理及应用[通俗易懂]
Install Cobbler
可以实现 Linux 的自动化部署与初始化配置,在需要安装大量 OS 的场景下,可以极大提升效率
franket
2021/08/11
1.3K0
DHCP 协议详解
表-1是整个报文的封装格式,包括链路层头、IP头、UDP头和DHCP报文,其中dhcp主要的数据都封装在dhcp报文中。
全栈程序员站长
2022/08/31
3.9K0
DHCP 协议详解
DHCP协议解析
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是IETF为实现IP的自动配置而设计的协议,它可以为客户机自动分配IP地址、子网掩码以及缺省网关、DNS服务器的IP地址等TCP/IP参数。了解DHCP工作过程可以帮助我们排除有关DHCP服务遇到的问题。DHCP 协议是基于UDP层之上的应用,本文结合抓报所得数据分析DHCP协议实现原理
全栈程序员站长
2022/08/31
1.1K0
CentOS 7部署DHCP服务
某单位需要配置一台DHCP服务器给桌面PC机分配IP地址。 这些PC机分配到二个VLAN中,为便于ip管理和降低公司管理成本搭建公司内部的DHCP服务器。
星哥玩云
2022/07/03
7080
CentOS 7部署DHCP服务
DHCP服务
其它配置选项: filename: 指明引导文件名称 next-server:提供引导文件的服务器IP地址 示例: filename “pxelinux.0”; next-server 192.168.100.100;(tftp) 检查语法 service dhcpd configtest(centos6)
咻一咻
2020/05/29
1.8K0
pxe如何应对复杂的服务器硬件环境
在 pxe 的一般场景下,通常在只需要在 dhcp 服务中配置一个通用的 filename 来指定客户端在 tftp 服务端获取的引导程序,但是在略微复杂的场景中,比如可能有些服务器默认是 legacy 模式,而有些服务器是 UEFI 模式,这两种模式使用的引导程序是不同的,但我们又不想频繁的去修改 dhcp 配置文件。本文主要探讨的就是这个问题,如何配置 dhcp 来应对复杂的服务器环境
Amadeus
2022/10/25
1.9K0
pxe如何应对复杂的服务器硬件环境
第五章 DHCP服务(1)
DHCP,动态主机控制协议,规定了客户端如何通过网络访问服务器,获取上网所需的ip地址等网络参数。
晓天
2019/07/04
1.3K0
第五章 DHCP服务(1)
一文胜千言的DHCP的讲解以及DHCP服务器的配置
后来发生了什么?没错,去请求了AP,也就是去请求了无线路由器,AP去找相关的策略。如果是DHCP的话,就请求DHCP服务器。然后你才会得到一个临时的地址。最终才可以上网了。
手撕代码八百里
2020/07/29
2.8K0
一文胜千言的DHCP的讲解以及DHCP服务器的配置
网络协议篇之DHCP协议(一)—— DHCP协议基础
DHCP(Dynamic Host Configuration Protocol),动态主机配置协议,是一个应用层协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。
全栈程序员站长
2022/08/25
1.3K0
网络协议篇之DHCP协议(一)—— DHCP协议基础
【DHCP实验】使用三层交换机配置DHCP Server服务器(基于全局地址池配置)
实验 使用三层交换机配置DHCP Server服务器(基于全局地址池配置) 实验目录 实验 使用三层交换机配置DHCP Server服务器(基于全局地址池配置) 一、实验拓扑 二、实验要求 三、实验步骤 四、实验测试 一、实验拓扑 二、实验要求 三层交换机S1通过DHCP的公有地址池给PC1和PC2分配IP地址,PC1属于vlan30,PC2属于vlan40,具体要求如下: (1) 更改主机名S1 (2) 创建vlan 30 40 (3) 配置vlanif 30接口的IP地址为192.168.3
宝耶需努力
2022/12/13
1.7K0
【DHCP实验】使用三层交换机配置DHCP Server服务器(基于全局地址池配置)
通过DHCP动态管理IP地址
DHCP 动态主机配置协议是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址、子网掩码、网关以及DNS等tcp/ip信息,给用户或者内部网络管理员作为对所有计算机作中央管理的方法.
王 瑞
2022/12/28
1.9K0
通过DHCP动态管理IP地址
DNSmasq详细解析及详细配置
Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。
小俊是我
2018/08/02
148.4K0
DNSmasq详细解析及详细配置
DHCP协议浅析
定义:动态主机配置协议,主要在一些大型局域网络环境中,集中管理和分配IP地址,提升地址的使用效率。
全栈程序员站长
2022/08/25
1.7K0
DHCP协议浅析
图解网络:什么是DHCP动态主机配置协议?
DHCP是网络技术世界一项特别伟大的技术,解决了静态配置IP繁琐的过程,其动态分配IP地址的特性,使得网络变得灵活可扩展。
网络技术联盟站
2022/07/10
1.6K0
图解网络:什么是DHCP动态主机配置协议?
37 张图详解 DHCP :给你 IP 地址的隐形人
电脑或手机需要 IP 地址才能上网。大刘有两台电脑和两台手机,小美有一台笔记本电脑、一台平板电脑和两台手机,老王、阿丽、敏敏也有几台终端设备。如果为每台设备手动配置 IP 地址,那会非常繁琐,一点儿也不方便。特别是手机、笔记本电脑、平板电脑等设备,每移动到一个新的地方,接入不同的网络,都要重新设置 IP 地址,实在是太麻烦了。
ICT售前新说
2021/05/20
1.8K0
相关推荐
Android11 DHCP初识
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验