我们kernel: martian source在几台服务器上间歇性地看到eth0 的日志条目。有趣的是,它们往返于同一个 IP。例如:
Nov 4 02:20:27 tcffmppr6db09 kernel: martian source 10.153.242.13 from 10.153.242.13, on dev eth0.3171
Run Code Online (Sandbox Code Playgroud)
这只发生在几台服务器上。大约有 60 个以相同方式配置了 eth0(显然,不同的 IP)。
我应该注意什么来追踪这个?
编辑:
这个特定接口的路由是默认路由,所以我认为这不是发送错误接口的问题。
比尔盖*_*尔盖子 21
我今天遇到了同样的问题,火星数据包淹没了我的内核日志。所有 martian 数据包都来自相同的公共 IP 地址eth0到相同的公共 IP 地址eth0(删除了真实 IP 和报头)。
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我意识到原因隐藏在ll header火星包中。
假设这是在以太网连接中,ll header实际上显示了以太网类型 II 帧的开始部分,其中包含目标 MAC 地址、源 MAC 地址和一个 ID,指示数据包的其余部分的类型。
![以太网类型 II 帧格式[1]](https://i.stack.imgur.com/ZUrzv.png)
如您所见,前 6 个字节是目标 MAC 地址,接下来的 6 个字节是源 MAC 地址,最后 2 个字节是代码。常用代码有:
08 00:IP数据包86 dd: IPv6 数据包08 06: ARP 数据包回到我的例子。
IPv4: martian source x.x.x.x from x.x.x.x, on dev eth0
ll header: 00000000: aa bb cc dd ee ff gg hh ii jj kk ll 08 00
Run Code Online (Sandbox Code Playgroud)
这告诉我们,
GG:HH:II:JJ:KK:LL,这是一个我不知道的 MAC 地址。AA:BB:CC:DD:EE:FF,这是我自己的 MAC 地址。08 00)。如果一个数据包的源IP地址和目的IP地址相同,那么它必须由同一个网络接口发送,但是源和目的的MAC不同!怎么可能?
因此,很明显数据包来自火星,要么存在一些路由问题,要么配置了网络中的机器,要么有人试图欺骗 IP/MAC 地址。下一步是检查有问题的源 MAC 地址。
Martian 数据包只不过是一个 IP 数据包,它指定了一个源地址或目标地址,该地址为 Internet 号码分配机构 (IANA) 的特殊用途保留。
以下是此类地址块的示例:
- 10.0.0.0/8
- 127.0.0.0/8
- 224.0.0.0/4
- 240.0.0.0/4
- ::/128
- ::/96
- ::1/128
要跟踪这一点,您有多种选择。您可以忽略它,您可以通过防火墙阻止它,或者您可以使用tcpdump或wireshark剖析数据包的内容,这可能会让您深入了解导致这种情况的原因。
搜索时显示的另一个短语如下:
这些是 Linux 不希望从它们来自的方向(即来自内部主机的数据包进入外部接口)的数据包。原因可能是 LAN 上的机器配置错误。您可以关闭日志通过这些数据包
/proc/sys/net/ipv4/conf/interface/log_martians这是记录/usr/src/linux/Documentation/proc.txt
我找不到这一段的原始来源,但是如果你搜索它,它会显示很多,逐字逐句!这将问题描述为一个数据包通过一个接口 (NIC) 进入系统,该接口未指定通过该接口进入系统。
最后,我也会在这个主题上引用维基百科,它也与上述内容大致相同。
Martian 数据包是一个 IP 数据包,它指定了一个源地址或目标地址,该地址由互联网号码分配机构(IANA)保留以供特殊用途。如果在公共互联网上看到,这些数据包实际上无法按照声称的方式来源或交付。1但是,某些保留地址可以使用多播或在专用网络、本地链路或环回接口上进行路由,具体取决于它们属于哪个特殊用途范围。2
| 归档时间: |
|
| 查看次数: |
34437 次 |
| 最近记录: |