
# 系统时间跳变导致IP丢失怎么办？
#### 问题描述
修改系统时间后服务器网卡出现感叹号，无法连接网络。
#### 适用场景
- 该文档适用于CentOS 7、EulerOS，并使用DHCP协议获取IP场景。
- DHCP租约通常默认为24小时，具体以实际场景为例。
 
#### 根因分析
DHCP会话过程：
DHCP典型会话过程包括：DHCP发现、DHCP提供、DHCP请求、DHCP确认，如图1所示
图1DHCP会话过   
![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0173259992.png)
- DHCP发现（DISCOVER） 客户在物理子网上发送广播来寻找可用的服务器。网络管理员可以配置一个本地路由来转发DHCP包给另一个子网上的DHCP服务器。该客户实现生成一个目的地址为255.255.255.255或者一个子网广播地址的UDP包。
  

- DHCP提供（OFFER） 当DHCP服务器收到一个来自客户的IP租约请求时，它会提供一个IP租约。DHCP为客户保留一个IP地址，然后通过网络单播一个DHCPOFFER消息给客户。该消息包含客户的MAC地址、服务器提供的IP地址、子网掩码、租期以及提供IP的DHCP服务器的IP。
  

- DHCP请求（REQUEST） 当客户PC收到一个IP租约提供时，它必须告诉所有其他的DHCP服务器它已经接受了一个租约提供。因此，该客户会发送一个DHCPREQUEST消息，其中包含提供租约的服务器的IP。当其他DHCP服务器收到了该消息后，它们会收回所有可能已提供给客户的租约。然后它们把曾经给客户保留的那个地址重新放回到可用地址池中，这样，它们就可以为其他计算机分配这个地址。任意数量的DHCP服务器都可以响应同一个IP租约请求，但是每一个客户网卡只能接受一个租约提供。
  

- DHCP确认（Acknowledge，ACK） 当DHCP服务器收到来自客户的REQUEST消息后，它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。这时候，TCP/IP配置过程就完成了。
  
#### 定位过程
1. 查看客户端DHCP请求记录
   **grep -E "dhclient\|DHCP" /var/log/messages**
   图2DHCP请求记录   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0173260105.png "点击放大")
   - dhclient续租记录显示在5月12日重新续租成功（当时正确的时间为4月26日，系统时间是被手动修改过）。
   
   - dhclient记录下一次续租发生在33696秒后（约9小时21分，通常为租约的1/2时发出续租请求），即下次续租发生在5月12日21点21分左右。
     ![](https://support.huaweicloud.com/trouble-ecs/public_sys-resources/notice_3.0-zh-cn.png)
     也可以通过查询dhclient租约信息记录文件，每一次续租成功都会记录在该文件中。执行以下命令查询文件的保存路径（文件以.lease结尾）。
     **ps -ef \|grep dhclient**
     
    
2. 继续查看系统日志（messages）发现在续租后的5小时14分后系统时间发生跳变，回退至4月26日，但是由于下次续租请求发生在16天后，但是在9小时后未发出续租请求，租约到期后ip被DHCP服务端回收，导致ip丢失。
   **grep "Time has been changed" /var/log/messages**
   图3系统日志   
   ![](https://support.huaweicloud.com/trouble-ecs/zh-cn_image_0173260129.png "点击放大") 
 
#### 处理方法
1. 手动执行dhclient，获取私有ip地址。 **dhclient -r eth0**
   **ifconfig eth0 down**
   **ifconfig eth0 up**
   **dhclient eth0**
   ![](https://support.huaweicloud.com/trouble-ecs/public_sys-resources/caution_3.0-zh-cn.png)
   该操作可能会导致网络短暂中断，请谨慎操作。
   
2. 重启服务器，系统时间会恢复正常，系统会重新获取IP地址。
3. 参考[NTP服务器配置](https://support.huaweicloud.com/ecs_faq/zh-cn_topic_0093971249.html)做ntp时间同步。
 
