重启网络后仍然缺少广播路由,这表明问题可能更深入。让我们进一步排查和修复:
1. 检查tunl0接口状态
# 查看tunl0接口详细信息
ip addr show tunl0
ip link show tunl0
# 检查接口是否正常UP
ip link set tunl0 up
2. 手动添加广播路由并测试
# 手动添加广播路由
ip route add broadcast 172.22.132.134 dev tunl0 table local scope link src 172.22.132.134
# 验证是否添加成功
ip route show table local | grep tunl0
3. 检查Calico配置和状态
# 查看Calico节点状态
calicoctl node status
# 检查Calico IP池配置
calicoctl get ippool -o yaml
# 重启Calico服务(如果使用systemd)
systemctl restart calico-node
# 或者直接重启容器(如果使用容器化部署)
docker restart calico-node
4. 重新创建tunl0接口
# 删除现有tunl0接口
ip link delete tunl0
# Calico会自动重新创建,或者手动创建:
ip tunnel add tunl0 mode ipip local 172.22.132.134
ip link set tunl0 up
ip addr add 172.22.132.134 dev tunl0 scope host
5. 检查内核模块和系统配置
# 确认IPIP隧道模块已加载
lsmod | grep ipip
# 如果没有加载,手动加载
modprobe ipip
# 检查系统路由表配置
sysctl -a | grep rp_filter
6. Calico特定修复命令
# 重新配置Calico网络接口(在Calico节点上执行)
calico-node -felix-restart
# 或者通过删除并重新添加节点来强制重建网络配置(谨慎操作)
7. Docker网络重置(如果使用Docker)
docker network prune
systemctl restart docker
建议按以下顺序尝试:
1️⃣ 先执行第2步 - 手动添加路由测试是否能解决问题
2️⃣ 然后执行第4步 - recreated tunl0接口
3️⃣ 最后执行第3步 - Calico服务重启
如果以上方法都不行,可能需要考虑重新部署Calico节点或检查底层网络配置是否有冲突。
内容由零声教学AI助手提供,问题来源于学员提问




