linux – ICMP Host Unreachable消息导致火星源数据包

我一直试图在我们的路由/防火墙设置中了解一段特殊的行为已经有一段时间了,但是我并不真正了解正在发生的事情.

我们有一个防火墙/路由器设备,它有两个面向外部的接口和许多内部VLAN.

当我们的访客WiFi网络VLAN 99上的客户端(本例中的MAC f4:f5:d8:d2:f2:4c,IP 10.99.154.254)向某个互联网主机8.8.8.8发送ping回应请求时,会观察到特定行为,我们禁止的.

路由器从其vlan99接口(MAC 00:08:a2:0d:00:70,IP 10.99.0.2)向客户端发送ICMP主机不可达数据包,同时我们在外部看到火星数据包接口eth-ext1:

tcpdump显示了这个:

$tcpdump -i vlan99 -vvvvn 'icmp and host 10.99.154.254'
11:59:21.555564 f4:f5:d8:d2:f2:4c > 00:08:a2:0d:00:70,ethertype IPv4 (0x0800),length 98: (tos 0x0,ttl 64,id 0,offset 0,flags [DF],proto ICMP (1),length 84)
    10.99.154.254 > 8.8.8.8: ICMP echo request,id 2303,seq 1,length 64
11:59:21.555651 00:08:a2:0d:00:70 > f4:f5:d8:d2:f2:4c,length 126: (tos 0xc0,id 8585,flags [none],length 112)
    10.99.0.2 > 10.99.154.254: ICMP host 8.8.8.8 unreachable,length 92
    (tos 0x0,ttl 63,length 64

这里没有什么令人惊讶的,这是来自客户端的原始ping,并且生成的ICMP数据包返回到客户端客户端,通知他们主机无法访问.

同时,内核日志中会出现一个条目:

Feb 21 11:59:21 ganymede kernel: IPv4: martian source 10.99.154.254 from 8.8.8.8,on dev eth-ext1
Feb 21 11:59:21 ganymede kernel: ll header: 00000000: 00 08 a2 0d 00 70 f4 f5 d8 d2 f2 4c 08 00        .....p.....L..

链路层信息显示这个以太网帧来自客户端设备到路由器的vlan99接口,这让我想知道为什么它在eth-ext1上显示为火星数据包,源地址为8.8.8.8.

到目前为止,我已经失败了得到火星源的数据包的痕迹,这让我想知道火星源记录是否也发生在出口接口上,在tcpdump有机会看到它之前?

我很乐意提供更多关于请求的信息(路由表等),并且非常感谢有关这里发生了什么的任何指示.

解决方法

内核正在使用icmp unreachable消息将ping请求修补到8.8.8.8,并且有助于告诉你sourc是一个火星人.

这是它正在标记的数据包……

11:59:21.555651 00:08:a2:0d:00:70 > f4:f5:d8:d2:f2:4c,length 92

正如您可以通过链路层看到的…… MAC 00 08 a2 0d 00 70到f4 f5 d8 d2 f2 4c 08 00.

Feb 21 11:59:21 ganymede kernel: ll header: 00000000: 00 08 a2 0d 00 70 f4 f5 d8 d2 f2 4c 08 00

火星源 – 我认为它混淆了它作为8.8.8.8的代理响应的事实 – 无法从这里到达那里.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format='{{.LogPath}}' <container_name> 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户