Answers:
我今天遇到了同样的问题,火星数据包淹没了我的内核日志。所有火星数据包都从相同的公用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
经过研究,我发现原因是隐藏在ll header
火星数据包中。
假设在以太网连接中,它ll header
实际上显示了以太网Type II帧的开始部分,该帧包含目标MAC地址,源MAC地址,而ID表示数据包其余部分的类型。
如您所见,前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
这告诉我们,
GG:HH:II:JJ:KK:LL
,这是我不知道的MAC地址。AA:BB:CC:DD:EE:FF
,这是我自己的MAC地址。08 00
)。如果数据包具有相同的源IP地址和目标IP地址,则必须通过相同的网络接口发送该数据包,但是源MAC地址和目标MAC地址不同!怎么可能呢?
因此,很明显,数据包来自火星,可能是存在一些路由问题,网络中的计算机已配置,或者有人试图欺骗IP / MAC地址。下一步是检查有问题的源MAC地址。
火星数据包不过是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不会从其发出的方向获得的数据包(即来自内部主机的数据包从外部接口进入)。原因可能是局域网上的计算机配置错误。您可以关闭日志通过这些数据包
/proc/sys/net/ipv4/conf/interface/log_martians
这是记录/usr/src/linux/Documentation/proc.txt
我找不到此段的原始来源,但是如果您搜索它,它会显示很多字样!将此问题描述为一个数据包,该数据包已通过接口(NIC)进入系统,但未指定要通过该接口进入。
最后,我也会在这个主题上引用Wikipedia,其陈述也与上述内容大致相同。
一个火星分组是IP分组,其指定了一个源或目标地址保留用于特殊用途的由互联网编号分配机构(IANA)。如果在公共互联网上看到这些数据包,则它们实际上不能按照要求发出或传递。1但是,某些保留地址可以使用多播或在专用网络,本地链接或环回接口上进行路由,具体取决于它们属于哪个特殊用途范围。2
tcpdump
在有问题的服务器上运行24小时。就是说,我了解火星数据包的概念。我不明白的是,为什么接口会这样考虑自己的IP。