You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已修复VIP子网掩码后Corosync日志仍出现martian source消息的咨询

分析与解决:修复VIP子网掩码后仍出现'martian source'日志

结合你描述的2节点Red Hat 7.2集群(搭载Corosync 2.3.4)场景——修复VIP子网掩码后网络恢复正常,但仍定时出现'martian source'日志,我来帮你拆解下可能的原因和对应的解决方法:

可能的原因

1. 内核网络缓存残留

修改VIP子网掩码后,内核的ARP缓存、路由缓存可能还保留着旧的子网规则。当有数据包(比如集群健康检查、定时任务的请求)发送时,内核会基于旧缓存校验源IP,判定为无效的"martian source"并记录日志。尤其是你提到的定时出现特征,大概率和周期性触发的网络操作有关。

2. Corosync内部状态未更新

Corosync作为集群通信的核心组件,可能在VIP配置修改后,内部的网络参数缓存没同步更新。虽然集群整体运行正常,但节点间的部分通信数据包仍沿用旧的子网参数,被内核拦截记录。

3. 周期性任务的硬编码配置

日志集中在13:3左右出现,极有可能是这个时间点有定时任务(比如cron脚本、监控巡检、VIP漂移检测)在执行。如果这些任务里硬编码了旧的子网掩码,或者绑定了未更新配置的虚拟接口,发送的数据包就会触发martian日志。

解决方法

1. 清理内核网络缓存

先手动清理缓存,验证是否能立即停止日志:

# 清理ARP缓存
ip neigh flush all
# 清理路由缓存
ip route flush cache

如果清理后日志消失,说明是缓存问题。后续可以在修改VIP配置后自动执行这些命令,或者添加定时任务在13点前清理一次。

2. 检查并刷新Corosync配置

确认Corosync配置文件(通常是/etc/corosync/corosync.conf)中的网络参数(如bindnetaddr、ring0_addr)和新子网掩码匹配。若配置正确,重启Corosync刷新内部状态:

systemctl restart corosync

⚠️ 注意:重启Corosync可能导致集群资源短暂波动,建议在业务低峰期操作,或先在单节点测试。

3. 排查定时任务与周期性操作

重点排查13:00-13:10的定时任务:

  • 查看用户级cron:crontab -l
  • 查看系统级cron:cat /etc/crontab、ls /etc/cron.d/
  • 检查集群相关脚本(如Pacemaker巡检、VIP健康检查),确认是否有旧子网参数的硬编码
  • 核对监控工具(如Zabbix、Nagios)在该时段的巡检任务,是否存在不符合新子网规则的请求

4. 验证VIP配置的完整性

再次确认VIP的配置完全生效:

# 查看VIP的子网掩码配置
ip addr show | grep ventusproxyVIP
# 检查对应子网的路由条目
ip route | grep 10.5.150.0

确保输出中子网掩码为/16(即255.255.0.0),路由条目指向正确的网卡。

5. 临时关闭martian日志(可选)

如果上述方法都无效,且确认集群无实际网络问题,可临时关闭日志记录(不建议长期使用,会丢失潜在问题排查线索):

# 临时生效,重启后失效
sysctl -w net.ipv4.conf.all.log_martians=0
# 永久生效,写入配置文件
echo "net.ipv4.conf.all.log_martians=0" >> /etc/sysctl.conf
sysctl -p

内容的提问来源于stack exchange,提问作者user8398650

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:06:27