【问题标题】:CentOS 7 replies to ARP with wrong MAC addressCentOS 7 以错误的 MAC 地址回复 ARP
【发布时间】:2018-04-01 15:19:38
【问题描述】:

我最近遇到了一个奇怪的问题,我的 CentOS 机器(我们称之为服务器)。服务器的 IP 地址为 10.150.39.5。问题是它使用两个 MAC 地址回复 ARP 请求,而最后一个进来的 MAC 地址会中断与服务器的所有通信。

镜像交换机端口上 tcpdump 的输出:

18:02:01.388595 00:00:00:e5:64:32 > 00:00:00:67:1d:ea, ethertype ARP (0x0806), length 60: Request who-has 10.150.39.5 (00:00:00:67:1d:ea) tell 10.150.39.116, length 46
18:02:01.388600 00:00:00:67:1d:ea > 00:00:00:e5:64:32, ethertype ARP (0x0806), length 60: Reply 10.150.39.5 is-at 00:00:00:67:1d:ea, length 46
18:02:01.388743 00:00:00:67:1d:ec > 00:00:00:e5:64:32, ethertype ARP (0x0806), length 60: Reply 10.150.39.5 is-at 00:00:00:67:1d:ec, length 46

最有趣的是当我在服务器 NIC 上进行捕获时 - 我只看到前两个数据包(正常 ARP req 和 ARP resp)。所以我创建了一个网络 SPAN(从服务器连接到其他机器的交换机接口镜像所有流量),在该镜像端口上我看到了我之前粘贴的数据包。

我 100% 确定这不是 MiTM 攻击,因为它是一个连接到接口的物理服务器,并且在我在该端口上实施了端口安全之后(只允许正确的 MAC 进入)问题是走了。所以基本上我不再有这个问题了,但我很想知道这是什么原因。

以下是一些可能对你们试图帮助我的人派上用场的输出:

[root@server ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:00:00:67:1d:ea brd ff:ff:ff:ff:ff:ff
    inet 10.150.39.5/24 brd 10.150.39.255 scope global enp0s25
       valid_lft forever preferred_lft forever
    inet6 fe80::219:d1ff:fe67:1dea/64 scope link 
       valid_lft forever preferred_lft forever
3: enp1s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:00:00:e3:ca:82 brd ff:ff:ff:ff:ff:ff
4: enp1s0f1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:00:00:e3:ca:83 brd ff:ff:ff:ff:ff:ff

[root@server ~]# tail -vn +1 /etc/sysconfig/network-scripts/ifcfg-*
==> /etc/sysconfig/network-scripts/ifcfg-enp0s25 <==
TYPE="Ethernet"
BOOTPROTO="static"
UUID="a04fb9bd-0543-4ba6-bd17-72cc3d9f54cc"
DEVICE="enp0s25"
ONBOOT="yes"
IPADDR=10.150.39.5
NETMASK=255.255.255.0
GATEWAY=10.150.39.1

==> /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 <==
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp1s0f0
UUID=64e7544d-54b9-40cc-83f0-7e10acbcdeaa
DEVICE=enp1s0f0
ONBOOT=no

==> /etc/sysconfig/network-scripts/ifcfg-enp1s0f1 <==
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
NAME=enp1s0f1
UUID=c3085e08-1e14-4098-b77a-b512a2c99e75
DEVICE=enp1s0f1
ONBOOT=no

==> /etc/sysconfig/network-scripts/ifcfg-lo <==
DEVICE=lo
IPADDR=127.0.0.1
NETMASK=255.0.0.0
NETWORK=127.0.0.0
# If you're having problems with gated making 127.0.0.0/8 a martian,
# you can change this to something else (255.255.255.255, for example)
BROADCAST=127.255.255.255
ONBOOT=yes
NAME=loopback

【问题讨论】:

    标签: networking centos7 arp


    【解决方案1】:

    00:00:00:67:1d:ea00:00:00:67:1d:ec 两个 MAC 地址几乎是连续的(我假设您已将前三个八位字节混淆为 00:00:00 没有有效的 OUI) - 这表示多端口 NIC、多个逻辑接口或这样的。检查交换机的 MAC 表以查找“错误”MAC 源自的端口。

    如果您已绑定/组合了多个接口,则必须确保一切都按预期工作。需要使用单 MAC 绑定相应地设置交换机端口。

    【讨论】:

    • 您对前三个八位位组的看法是正确的,为简单起见已更改。现在它是一个具有多个 NIC 的服务器,但正如我之前所说的 - 两个数据包都来自同一个 NIC,服务器本身只能捕获一个,这告诉我数据包生成得比 tcpdump 更深进入系统。此外,它是唯一启用的 NIC,所有其他端口都关闭。
    • 它可能是一个嵌入式 LOM,它配置为相同的 IP 并共享端口 - 这将匹配双 NIC 与 :ea 和 :eb MACs 和 :ec 用于 LOM。您并没有详细介绍硬件......我在共享 LOM 端口方面遇到了各种问题,从那以后我们只使用专用的 LOM 端口。
    猜你喜欢
    • 1970-01-01
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多