nmcli 不支持直接配置 ARP-Interval,该参数属内核 bonding 模块专有选项;需通过 sysfs 临时设置或 modprobe 配置永久生效,且仅适用于 active-backup 等支持 ARP 监控的 bonding 模式。

nmcli 本身不支持直接配置 ARP 检测间隔(ARP-Interval),因为该参数属于底层内核网络接口的 keepalive 机制,常见于 Bonding(链路聚合)或某些高可用场景中,用于探测对端是否存活。它和标准的 arp_ignore/arp_announce 等 ARP 行为参数不同,也不是 nmcli 管理的常规 IPv4/IPv6 层配置项。
但如果你实际想解决的是:在高丢包环境下提升 ARP 可靠性、减少因 ARP 失效导致的通信中断,那么真正需要调整的是:
- ARP 缓存老化策略(
gc_stale_time、gc_interval) - ARP 请求重试行为(
retrans_time_ms) - 配合
arp_ignore/arp_announce防止多网卡干扰 - 或在 Bonding 模式下启用
arp_interval+arp_ip_target
下面分情况说明怎么做:
H3:确认你是否真在用 Bonding(主备/负载均衡)
如果网卡是通过 bonding(如 bond0)聚合使用的,且你看到类似 arp_interval 的参数,那它属于 bonding 模块的专有选项,需通过 sysfs 或 modprobe 参数设置:
-
临时生效(以
bond0为例):echo 1000 > /sys/class/net/bond0/bonding/arp_interval echo "192.168.1.1" > /sys/class/net/bond0/bonding/arp_ip_target echo 3 > /sys/class/net/bond0/bonding/arp_validate # 验证响应来源
-
永久生效:在
/etc/modprobe.d/bonding.conf中添加options bonding mode=active-backup arp_interval=1000 arp_ip_target=192.168.1.1
⚠️ 注意:arp_interval 仅对 active-backup、balance-tlb、balance-alb 等支持 ARP 监控的 bonding 模式有效;802.3ad(LACP)用的是 LACP 报文,不走 ARP。
H3:若只是单网卡 + 高丢包,应调优 ARP 缓存与重试
高丢包会导致 ARP 请求失败、缓存过早失效、频繁触发重新解析。此时要增强本地 ARP 表的“韧性”:
-
延长 stale 状态超时,避免因偶尔丢包就清掉有效条目:
sysctl -w net.ipv4.neigh.eth0.gc_stale_time=300 sysctl -w net.ipv4.neigh.eth0.base_reachable_time_ms=30000 sysctl -w net.ipv4.neigh.eth0.retrans_time_ms=1000
-
提高 ARP 表容量上限(防溢出清表):
sysctl -w net.ipv4.neigh.eth0.gc_thresh1=2048 sysctl -w net.ipv4.neigh.eth0.gc_thresh2=4096 sysctl -w net.ipv4.neigh.eth0.gc_thresh3=8192
-
永久写入
/etc/sysctl.conf:net.ipv4.neigh.eth0.gc_stale_time = 300 net.ipv4.neigh.eth0.base_reachable_time_ms = 30000 net.ipv4.neigh.eth0.retrans_time_ms = 1000 net.ipv4.neigh.eth0.gc_thresh1 = 2048 net.ipv4.neigh.eth0.gc_thresh2 = 4096 net.ipv4.neigh.eth0.gc_thresh3 = 8192
执行
sysctl -p生效。
H3:务必同步配置 arp_ignore 和 arp_announce
高丢包环境叠加多网卡同网段,极易引发 MAC 漂移。必须防止非目标网卡抢答 ARP:
-
对每个业务网卡单独设(不能只设
all):echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
-
永久配置示例(
/etc/sysctl.conf):net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.eth0.arp_announce = 2
H3:验证 ARP 行为是否改善
-
查看当前 ARP 缓存状态和老化时间:
ip neigh show dev eth0 cat /proc/sys/net/ipv4/neigh/eth0/base_reachable_time_ms cat /proc/sys/net/ipv4/neigh/eth0/gc_stale_time
模拟丢包后观察
ip neigh输出是否快速进入stale→delay→reachable,而非直接failed。抓包确认 ARP 请求是否按预期间隔重发(用
tcpdump -i eth0 arp)。
不复杂但容易忽略


















