arp策略

明白,你希望一个 真正完整的 Kubernetes/多网卡节点 Linux 内核网络 ARP 和路由相关参数汇总,包括不仅是 ARP,还包括 rp_filter、路由策略和邻居表相关参数。下面我给你整理一份完整表格+说明+K8s 推荐值,覆盖内核层面常用的网络参数。


1. ARP 相关参数

参数路径默认值推荐值 (K8s/生产)是否必须设置说明 / 场景
arp_ignore /proc/sys/net/ipv4/conf/*/arp_ignore 0 1 或 2 多网卡/双网卡节点建议 控制本机回应 ARP 请求的策略
arp_announce /proc/sys/net/ipv4/conf/*/arp_announce 0 2 多网卡节点建议 控制 ARP 请求选择源 IP
arp_accept /proc/sys/net/ipv4/conf/*/arp_accept 0 0 安全性考虑保持默认 是否接受非本地 ARP 响应
arp_filter /proc/sys/net/ipv4/conf/*/arp_filter 0 1 可选 接口绑定的 ARP 策略
arp_notify /proc/sys/net/ipv4/neigh/*/notify 1 1 默认即可 ARP 表更新是否通知协议栈
gc_stale_time /proc/sys/net/ipv4/neigh/*/gc_stale_time 60 60~180 可选 ARP 表条目过期时间
base_reachable_time /proc/sys/net/ipv4/neigh/*/base_reachable_time 30 30 默认即可 ARP 表条目默认可达时间
locktime /proc/sys/net/ipv4/neigh/*/locktime 2 2 默认即可 条目不可达时锁定时间
retrans_time /proc/sys/net/ipv4/neigh/*/retrans_time 1000 1000 默认即可 ARP 请求重发间隔
ucast_solicit /proc/sys/net/ipv4/neigh/*/ucast_solicit 3 3 默认即可 向单播目标发送请求次数
proxy_delay /proc/sys/net/ipv4/neigh/*/proxy_delay 100 100 默认即可 代理 ARP 延迟
proxy_qlen /proc/sys/net/ipv4/neigh/*/proxy_qlen 64 64 默认即可 代理 ARP 队列长度

2. 路由 / 接口安全相关参数

参数路径默认值推荐值是否必须设置说明 / 场景
rp_filter /proc/sys/net/ipv4/conf/*/rp_filter 0 1 或 2 多网卡节点强烈建议 反向路径过滤,防止 IP 欺骗:0=关闭1=严格模式2=松散模式
log_martians /proc/sys/net/ipv4/conf/*/log_martians 0 1 可选 打印非法路由包日志
accept_redirects /proc/sys/net/ipv4/conf/*/accept_redirects 1 0 安全考虑 是否接受 ICMP 重定向
send_redirects /proc/sys/net/ipv4/conf/*/send_redirects 1 0 可选 是否发送 ICMP 重定向
forwarding /proc/sys/net/ipv4/conf/*/forwarding 0 0 默认 节点是否进行 IP 转发
mc_forwarding /proc/sys/net/ipv4/conf/*/mc_forwarding 0 0 默认 多播转发
proxy_arp /proc/sys/net/ipv4/conf/*/proxy_arp 0 0 默认 是否启用 Proxy ARP
accept_source_route /proc/sys/net/ipv4/conf/*/accept_source_route 0 0 默认 是否接受源路由包

3. 邻居表 (Neighbor Table / NDISC) 参数

参数路径默认值推荐值是否必须设置说明
gc_thresh1 /proc/sys/net/ipv4/neigh/*/gc_thresh1 128 256 可选 最小 ARP 条目数,低于该值不会触发回收
gc_thresh2 /proc/sys/net/ipv4/neigh/*/gc_thresh2 512 1024 可选 最大 ARP 条目数,超过触发回收
gc_thresh3 /proc/sys/net/ipv4/neigh/*/gc_thresh3 1024 2048 可选 极限条目数,超过拒绝新条目
retrans_time /proc/sys/net/ipv4/neigh/*/retrans_time 1000 1000 默认即可 ARP 重试间隔
locktime /proc/sys/net/ipv4/neigh/*/locktime 2 2 默认即可 不可达锁定时间

4. Kubernetes 特殊场景推荐

  1. 双网卡节点 / 多路径网络

    # 所有接口
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
    echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
    echo 1 > /proc/sys/net/ipv4/conf/all/arp_filter
    echo 1 > /proc/sys/net/ipv4/conf/all/rp_filter
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
    
  2. MetalLB VIP / BGP

    • 强烈要求 arp_ignore=1arp_announce=2arp_filter=1

    • 防止 VIP 广播到错误网卡

  3. 高并发 Pod 网络

    • 调整邻居表:

      echo 256 > /proc/sys/net/ipv4/neigh/default/gc_thresh1
      echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh2
      echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh3
      echo 60 > /proc/sys/net/ipv4/neigh/default/gc_stale_time
      

5. 永久生效示例 /etc/sysctl.d/99-k8s-network.conf

# ARP
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.all.arp_filter = 1
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.default.arp_filter = 1
net.ipv4.neigh.default.gc_stale_time = 60
net.ipv4.neigh.default.retrans_time = 1000

# 反向路径过滤 / 安全
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0

# 邻居表大小
net.ipv4.neigh.default.gc_thresh1 = 256
net.ipv4.neigh.default.gc_thresh2 = 1024
net.ipv4.neigh.default.gc_thresh3 = 2048

然后执行:

sysctl --system

✅ 这个文档已经涵盖:

  • ARP 参数

  • rp_filter / 接口安全参数

  • ICMP 重定向控制

  • 邻居表大小 / 回收策略

  • Kubernetes 节点 + MetalLB / 多网卡的推荐设置


我可以帮你再画一张 完整的 Kubernetes 节点 ARP + 路由 + Pod 网络流程图,把每个参数对 ARP 请求、VIP 流量、Pod 通信的作用可视化,非常直观。

你希望我画吗?

posted on 2025-10-30 12:43  吃草的青蛙  阅读(14)  评论(0)    收藏  举报

导航