我必须在具有三个网络接口的
linux机器上设置死网关检测.到目前为止,我在这个主题上找到的唯一指南意味着修补内核,我们并不热衷于这样做.还有别的办法吗?
谢谢.
编辑澄清
3个接口是:1个以太网,1个wifi和1个3G调制解调器.有线是主要连接,另外两个用于备份,是3G调制解调器的最后一个资源.
高可用性不是问题,因为我们可以在短时间内断开连接.
该框同时是客户端(将数据发送到中央服务器)和服务器(中央服务器可以更改其配置),并通过类似dyndns的机制公开它的当前IP.
最后,我们将有数百个盒子报告给一个中央服务器,因此盒子上的维护应该尽可能低.
解决方法
如果网关响应ICMP请求,您可以使用ping:
ping -qc 4 $GATE1 > /dev/null if [ "$?" -ne 0 ]; ping -qc 4 GATE2 > /dev/null if [ "$?" -ne 0 ]; ping -qc 4 $GATE3 > /dev/null if [ "$?" -ne 0 ]; ip route del default;ip route add default via $GATE3 else echo "Three gateway down!" fi else ip route del default;ip route add default via $GATE2 fi
如果网关未响应ICMP请求,请将“ping -qc 4”更改为“ping -qc 4 -I IP_OF_INTERFACE_TO_GATE_N 8.8.8.8”