华为云服务器系统时间跳变导致IP丢失怎么办?_云淘科技
问题描述
修改系统时间后服务器网卡出现感叹号,无法连接网络。
适用场景
该文档适用于CentOS 7、EulerOS,并使用DHCP协议获取IP场景。
DHCP租约通常默认为24小时,具体以实际场景为例。
根因分析
DHCP会话过程:
DHCP典型会话过程包括:DHCP发现、DHCP提供、DHCP请求、DHCP确认,如图1所示
图1 DHCP会话过
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配置过程就完成了。
定位过程
查看客户端DHCP请求记录
# grep -E “dhclient|DHCP” /var/log/messages
图2 DHCP请求记录
dhclient续租记录显示在5月12日重新续租成功(当时正确的时间为4月26日,系统时间是被手动修改过)。
dhclient记录下一次续租发生在33696秒后(约9小时21分,通常为租约的1/2时发出续租请求),即下次续租发生在5月12日21点21分左右。
也可以通过查询dhclient租约信息记录文件,每一次续租成功都会记录在该文件中。执行以下命令查询文件的保存路径(文件以.lease结尾)。
# ps -ef |grep dhclient
继续查看系统日志(messages)发现在续租后的5小时14分后系统时间发生跳变,回退至4月26日,但是由于下次续租请求发生在16天后,但是在9小时后未发出续租请求,租约到期后ip被DHCP服务端回收,导致ip丢失。
# grep “Time has been changed” /var/log/messages
图3 系统日志
处理方法
手动执行dhclient,获取私有ip地址。
dhclient -r eth0
ifconfig eth0 down
ifconfig eth0 up
dhclient eth0
重启服务器,系统时间会恢复正常,系统会重新获取IP地址。
参考NTP服务器配置做ntp时间同步。
父主题: 网络配置
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家