最近检查发现一台Linux服务器,发现其日志里面有大量下面信息,其中部分信息做了脱敏处理。其中一个地址A(192.168.AAA.AAA) 为DNS服务器地址,地址B(192.168.BBB.BBB)为动态获取的IP地址。

#脱敏后信息如下所示:

Jul 24 15:14:18 xxxxxx dhclient: DHCPREQUEST on eth0 to 192.168.AAA.AAA port 67 (xid=0x1ff3cda3)

Jul 24 15:14:18 xxxxxx dhclient: DHCPACK from 192.168.AAA.AAA (xid=0x1ff3cda3)

Jul 24 15:14:18 xxxxxx dhclient: bound to 192.168.BBB.BBB -- renewal in 863 seconds.

Jul 24 15:28:41 xxxxxx dhclient: DHCPREQUEST on eth0 to 192.168.AAA.AAA port 67 (xid=0x1ff3cda3)

Jul 24 15:28:41 xxxxxx dhclient: DHCPACK from 192.168.AAA.AAA (xid=0x1ff3cda3)

Jul 24 15:28:41 xxxxxx dhclient: bound to 192.168.BBB.BBB -- renewal in 681 seconds.

Jul 24 15:40:02 xxxxxx dhclient: DHCPREQUEST on eth0 to 192.168.AAA.AAA port 67 (xid=0x1ff3cda3)

Jul 24 15:40:02 xxxxxx dhclient: DHCPACK from 192.168.AAA.AAA (xid=0x1ff3cda3)

Jul 24 15:40:02 xxxxxx dhclient: bound to 192.168.BBB.BBB -- renewal in 763 seconds.

那么DHCPREQUEST、DHCPACK是什么东西呢? 初步判断很有可能是服务器动态申请IP(DHCP)的相关性。然后搜索了相关资料验证一下:

DHCPREQUEST简介:

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

DHCPACK简介:

当DHCP服务器收到来自客户的REQUEST消息后,它就开始了配置过程的最后阶段。这个响应阶段包括发送一个DHCPACK包给客户。这个包包含租期和客户可能请求的其他所有配置信息。这时候,TCP/IP配置过程就完成了。

但是这台服务器不是设置的静态IP吗? 怎么会有DHCP的相关日志呢? 首先检查确认地址A(192.168.AAA.AAA)为一个DNS服务器地址。如下所示:

[root@xxxx log]# more /etc/resolv.conf

; generated by /sbin/dhclient-script

search eel1.esquel.com

nameserver 192.168.AAA.AAA

nameserver 192.168.xxx.xxx

然后查看该服务器的IP地址。如下所示:

[root@xxxxx log]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:AF:0F:87 
          inet addr:192.168.BBB.BBB  Bcast:192.168.xxx.xxx  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1113647339 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5394185429 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:232836326224 (216.8 GiB)  TX bytes:7577117537336 (6.8 TiB)

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:943142413 errors:0 dropped:0 overruns:0 frame:0
          TX packets:943142413 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:37841765933 (35.2 GiB)  TX bytes:37841765933 (35.2 GiB)

检查发现这个网络绑定了两个IP地址。如下所示所示(其中192.168.CCC.CCC为静态IP地址),最让人惊奇的是ifconfig中显示的是动态IP地址,而不是ifcfg-eth0设置的静态IP地址

[root@xxxxx log]# ip addr show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether 00:0c:29:af:0f:87 brd ff:ff:ff:ff:ff:ff

    inet 192.168.BBB.BBB/24 brd 192.168.152.255 scope global eth0

    inet 192.168.CCC.CC/24 brd 192.168.152.255 scope global secondary eth0

 

[root@xxx network-scripts]# more ifcfg-eth0 

# Intel Corporation 82545EM Gigabit Ethernet Controller (Copper)

DEVICE=eth0

BOOTPROTO=none

ONBOOT=yes

HWADDR=00:0c:29:af:0f:87

NETMASK=255.255.255.0

IPADDR=192.168.CCC.CCC

GATEWAY=192.168.xxx.xxx

TYPE=Ethernet

USERCTL=no

IPV6INIT=no

PEERDNS=yes

个人猜测是因为Local的系统管理员,不知出于什么原因给网卡多绑定了一个地址,下面在测试服务器,做了一个简单的测试。如果网络设置动态获取IP地址,基本上就会有这类信息出现,

Jul 20 13:01:49 DB-Server dhclient: bound to 10.20.57.24 -- renewal in 12333 seconds.

 

Jul 20 16:27:22 DB-Server dhclient: DHCPREQUEST on eth0 to 192.168.27.210 port 67 (xid=0x293091fd)

 

Jul 20 16:27:22 DB-Server dhclient: DHCPACK from 192.168.27.210 (xid=0x293091fd)

 

Jul 20 16:27:22 DB-Server dhclient: bound to 10.20.57.24 -- renewal in 11811 seconds.

 

Jul 20 19:44:12 DB-Server dhclient: DHCPREQUEST on eth0 to 192.168.27.210 port 67 (xid=0x293091fd)

 

Jul 20 19:44:13 DB-Server dhclient: DHCPACK from 192.168.27.210 (xid=0x293091fd)

 

Jul 20 19:44:13 DB-Server dhclient: bound to 10.20.57.24 -- renewal in 13245 seconds.

 

Jul 20 23:24:58 DB-Server dhclient: DHCPREQUEST on eth0 to 192.168.27.210 port 67 (xid=0x293091fd)

 

Jul 20 23:24:58 DB-Server dhclient: DHCPACK from 192.168.27.210 (xid=0x293091fd)

 

Jul 20 23:24:58 DB-Server dhclient: bound to 10.20.57.24 -- renewal in 13115 seconds.

 

Jul 21 03:03:32 DB-Server dhclient: DHCPREQUEST on eth0 to 192.168.27.210 port 67 (xid=0x293091fd)

 

Jul 21 03:03:33 DB-Server dhclient: DHCPACK from 192.168.27.210 (xid=0x293091fd)

 

Jul 21 03:03:33 DB-Server dhclient: bound to 10.20.57.24 -- renewal in 13533 seconds.

测试过程中也发现,如果第一个地址是静态IP地址,第二个(secondary)地址为动态地址,在message里面也没有出现上面的DHCPREQUEST 、DHCPACK日志信息。但是如果网卡的第一个地址为动态地址就会在message中出现DHCP相关日志。

[root@DB-Server network-scripts]# ifconfig eth0

eth0      Link encap:Ethernet  HWaddr B0:83:FE:55:32:E5  

          inet addr:10.20.57.24  Bcast:10.255.255.255  Mask:255.0.0.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:230 errors:0 dropped:0 overruns:0 frame:0

          TX packets:162 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000 

          RX bytes:22435 (21.9 KiB)  TX bytes:20666 (20.1 KiB)

          Interrupt:233 Base address:0x4000 

[root@DB-Server network-scripts]# more /etc/resolv.conf

; generated by /sbin/dhclient-script

search gfg1.esquel.com

nameserver 192.168.xxx.xxx

nameserver 192.168.xxx.xxx

[root@DB-Server network-sc

 

[root@DB-Server network-scripts]# ifconfig eth0:1 10.20.57.26 netmask 255.0.0.0

 

[root@DB-Server network-scripts]# ip addr show eth0

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000

    link/ether b0:83:fe:55:32:e5 brd ff:ff:ff:ff:ff:ff

    inet 10.20.57.24/8 brd 10.255.255.255 scope global eth0

    inet 10.20.57.26/8 brd 10.255.255.255 scope global secondary eth0:1

参考资料:

https://zh.wikipedia.org/zh-hans/%E5%8A%A8%E6%80%81%E4%B8%BB%E6%9C%BA%E8%AE%BE%E7%BD%AE%E5%8D%8F%E8%AE%AE

Linux日志中出现大量dhclient mesage浅析的更多相关文章

  1. linux日志中查找关键字、前几行、结尾几行,Linux的find用法示例

    linux在日志中查找关键字.前几行.结尾几行,Linux的find用法示例 1.linux在日志中查找关键字.前几行.结尾几行 1.1查看日志 前 n行: 1.2查看日志 尾 n行: 1.3根据 关 ...

  2. Linux日志中如何查找关键字及其前后的信息

    在日常工作中,我们经常需要查看日志,比如可以通过 tail 命令实时查看日志,也可以通过 cat 等命令查看日志信息. 但现在我们要讨论的是,如何从日志中通过关键字过滤出我们想要的内容,方法有多种,今 ...

  3. 云服务器 ECS Linux 系统中常见的日志文件介绍

    云服务器 ECS Linux 系统中,日志文件是非常重要的文件,它们记录了很多系统中重要的事.Linux 系统中常见日志文件概述如下: /var/log/cron可以在 cron 文件中检查 cron ...

  4. linux服务器上tomcat日志中的中文乱码

    转: 修改tomcat应用日志默认编码格式 前言 今天开发跟我说tomcat日志中的中文不能正常显示,根据以往的经验,我觉得可能跟服务器的编码有关,于是尝试各种方法,但还是没能解决问题. 后来我突然想 ...

  5. 浅析linux内核中timer定时器的生成和sofirq软中断调用流程(转自http://blog.chinaunix.net/uid-20564848-id-73480.html)

    浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_timer添加的定时器timer在内核的软中断中发生调用,__run_timers会spin_lock_irq(& ...

  6. 浅析linux内核中timer定时器的生成和sofirq软中断调用流程【转】

    转自:http://blog.chinaunix.net/uid-20564848-id-73480.html 浅析linux内核中timer定时器的生成和sofirq软中断调用流程 mod_time ...

  7. Linux 系统中如何查看日志 (常用命令) tail -f

    Linux 系统中如何查看日志 (常用命令)  tail -f 日志文件 日 志 文 件 说 明 /var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日 ...

  8. 『学了就忘』Linux日志管理 — 90、Linux中日志介绍

    目录 1.日志相关服务 2.系统中常见的日志文件 1.日志相关服务 在CentOS 6.x中日志服务已经由rsyslogd取代了原先的syslogd服务.RedHat认为syslogd已经不能满足在工 ...

  9. Linux驱动中completion接口浅析(wait_for_complete例子,很好)【转】

    转自:http://blog.csdn.net/batoom/article/details/6298267 completion是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成.可以利用 ...

随机推荐

  1. 参加杭州 2019 AI Bootcamp有感与总结(1)

    上周末参加了微软人工智能的活动,感慨多多. 感谢活动主讲和主办方. 通过参加活动,对微软认知服务和ML.NET的现状与发展有了更多的认识.文章不是活动内容的堆叠,总结少点,更多的大概是感慨. 微软认知 ...

  2. 分布式全局唯一ID的实现

    分布式全局唯一ID的实现 前言 上周末考完试,这周正好把工作整理整理,然后也把之前的一些素材,整理一番,也当自己再学习一番. 一方面正好最近看到几篇这方面的文章,另一方面也是正好工作上有所涉及,所以决 ...

  3. unity3D开发环境搭建

    前言 本文记录unity3D开发环境的搭建 unity安装 unity有中文官网(https://unity.cn/),很贴心,ide工具我们选择下载安装中国区增强版,下载地址:https://uni ...

  4. 关于c# winform 键盘响应右边键盘消息响应事件的上下左右方向键没有反应

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11835642.html 记录一下这个小坑,c# winform 键盘响应右边键盘的上下左右方向 ...

  5. MongoDB(四):数据类型、插入文档、查询文档

    1. 数据类型 MongoDB支持许多数据类型. 字符串 - 这是用于存储数据的最常用的数据类型.MongoDB中的字符串必须为UTF-8. 整型 - 此类型用于存储数值. 整数可以是32位或64位, ...

  6. 线程优先级,设置,setPriority()方法

    package seday08.thread;/** * @author xingsir * 线程优先级 * 线程启动后纳入到线程调度,线程时刻处于被动获取CPU时间片而无法主动获取.我们可以通过调整 ...

  7. Laravel6实现第三方 微信登录

    目前很多的网站中都会存在很多的交互功能,从而降低用户的操作难度,特此带来微信的第三方登录的项目实战功能开发.对于本实例中的开发内容,就不在使用原生的内容,而是直接使用别人写好的封装的类库. 1. 安装 ...

  8. Mac Electron App 签名后打开闪退

    背景 昨天在测试 Mac Electron App 打包,发现不签名的应用能够正常打开,签了名的打开反而会崩溃. 寻因 首先我怀疑是不是自己代码导致闪退,但是在一番查找后,发现还根本没到执行我的代码就 ...

  9. Linux下安装及使用mysql

    (注:本人在centos7进行的安装及使用) 1.安装wget yum install wget 2.下载mysql安装包 wget http://repo.mysql.com/mysql57-com ...

  10. Mac录制或保存视频后如何放大?

    想要在录制和拍摄视频后在喜欢的场景(例如Mark)中放大视频吗?本文将向您展示如何放大视频并通过裁剪视频和“平移和缩放”效果来制作Ken Burns效果.Filmora9是一款功能强大的视频编辑器,具 ...