it编程 > 游戏开发 > ar

多网卡同网段IP引发的ARP Flux问题

13人参与 2026-01-26 ar

什么是 arp flux?

arp flux 是一种网络现象,通常发生在具有多个网络接口(多宿主)的主机上,当主机对同一个 ip 地址的 arp 请求做出多个不同 mac 地址的响应时出现。

这种情况可能导致网络通信异常,如数据包被错误地路由或丢弃。

arp flux 的原因

1.多宿主主机(multihomed host)

2.代理 arp(proxy arp)

3.ip 地址冲突

arp flux 的影响:

1.网络不稳定

2.通信中断

3.arp 表抖动

arp flux 案例分析

a 主机的 ip 配置如下(即存在 arp flux 的主机):

[root@ism ~]# ip a
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state unknown group default qlen 1000
    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: enp125s0f0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc mq state up group default qlen 1000
    link/ether b0:4f:a6:7a:23:96 brd ff:ff:ff:ff:ff:ff
    inet 10.1.88.94/24 brd 10.1.88.255 scope global noprefixroute enp125s0f0
       valid_lft forever preferred_lft forever
    inet6 fe80::b4a:6afe:afb9:3cf8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: enp125s0f1: <broadcast,multicast,up,lower_up> mtu 1500 qdisc mq state up group default qlen 1000
    link/ether b0:4f:a6:7a:23:97 brd ff:ff:ff:ff:ff:ff
    inet 10.1.89.3/24 brd 10.1.89.255 scope global dynamic noprefixroute enp125s0f1
       valid_lft 29975sec preferred_lft 29975sec
    inet 10.1.88.95/24 brd 10.1.88.255 scope global noprefixroute enp125s0f1
       valid_lft forever preferred_lft forever
    inet6 fe80::6115:6f6d:e709:dbaf/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: enp125s0f2: <broadcast,multicast,up,lower_up> mtu 1500 qdisc mq state up group default qlen 1000
    link/ether b0:4f:a6:7a:23:98 brd ff:ff:ff:ff:ff:ff
    inet 172.16.11.5/24 brd 172.16.11.255 scope global dynamic noprefixroute enp125s0f2
       valid_lft 31573sec preferred_lft 31573sec
    inet 172.16.11.94/24 brd 172.16.11.255 scope global secondary noprefixroute enp125s0f2
       valid_lft forever preferred_lft forever
    inet6 fe80::1c1:9d2a:5550:a9b3/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

在 b 主机上验证是否存在 arp flux:

[root@arsen ~]# arping -f -i enp125s0f0 10.1.88.94
arping 10.1.88.94 from 172.16.11.97 enp125s0f0
unicast reply from 10.1.88.94 [b0:4f:a6:7a:23:98]  0.604ms
sent 1 probes (1 broadcast(s))
received 1 response(s)
[root@arsen ~]# 
[root@arsen ~]# arping -f -i enp125s0f0 10.1.88.95
arping 10.1.88.95 from 172.16.11.97 enp125s0f0
unicast reply from 10.1.88.95 [b0:4f:a6:7a:23:98]  0.571ms
sent 1 probes (1 broadcast(s))
received 1 response(s)
[root@arsen ~]# 
[root@arsen ~]# arping -f -i enp125s0f0 172.16.11.94
arping 172.16.11.94 from 172.16.11.97 enp125s0f0
unicast reply from 172.16.11.94 [b0:4f:a6:7a:23:98]  0.596ms
sent 1 probes (1 broadcast(s))
received 1 response(s)

从测试结果来看,a 主机存在 arp flux 问题,因为:

10.1.88.9410.1.88.95 都返回了相同的 mac 地址 b0:4f:a6:7a:23:98(属于 enp125s0f2)。

这表明 arp 响应被错误地代理或劫持。

服务器抓包:

# a主机抓包
tcpdump -i any -nn "arp" -w arp_capture.pcap

# b主机发送探测包
arping -f 10.1.88.94
arping -f 10.1.88.95

包分析:

可见都是返回 b0:4f:a6:7a:23:98 mac 地址,该地址属于 enp125s0f2,发生了 arp flux。

arp flux 对业务影响?

原本客户端只想收到来自目标主机 10.1.88.94 对应网卡 enp125s0f0 的 mac 地址 b0:4f:a6:7a:23:96(arp 响应),而现在确收到的是 enp125s0f2 的 mac 地址 b0:4f:a6:7a:23:98(arp 响应)。

于是:

如何避免 arp flux?

调整主机 arp 行为

# 全局arp规范
echo 'net.ipv4.conf.all.arp_ignore = 1' >> /etc/sysctl.conf      # 禁止非本机接口ip的arp响应
echo 'net.ipv4.conf.all.arp_announce = 2' >> /etc/sysctl.conf    # 始终使用最佳本地ip响应arp

# 单接口子网隔离,让每个接口只对自己拥有的 ip 发 arp 回复,防止“越界抢答”(可选)
# echo 'net.ipv4.conf.enp125s0f0.arp_filter = 1' >> /etc/sysctl.conf
# echo 'net.ipv4.conf.enp125s0f1.arp_filter = 1' >> /etc/sysctl.conf

# 使配置生效(实时)
sysctl -p

禁用不必要的代理 arp

在路由器或防火墙上关闭不必要的代理 arp 功能。

检查 ip 冲突

确保网络中不存在重复的 ip 地址。

网络分段

如果可能,将多宿主主机放在不同的子网中,避免 arp 混乱。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

您想发表意见!!点此发布评论

推荐阅读

支持个人名片形象自定义! 华为鸿蒙HarmonyOS 6.0.0.130 版本新特性

01-26

canary环境使用nginx实现原理分析

01-25

新增春节限时水印+限定主题! 华为鸿蒙 HarmonyOS 6 新春新功能公布

01-31

鸿蒙HarmonyOS中的ArkUI组件库特性与常用组件实例演示

01-31

镀金VC、24GB+1TB存储! 红魔电竞平板3 Pro GOLDEN SAGA臻金传奇发布

01-21

Nginx搭配cpolar实现远程开发无缝协作全过程

01-20

猜你喜欢

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

发表评论