高分求高手指教——如何在linux中实现双网关相互冗余备份
拓扑如图所示,内网所有PC的网关都指向LINUX的eth0,LINUX的eth1口连着电信运营商,LINUX的eth2口连着网通运营商。目前的需求是,内网所有的出口流量默...
拓扑如图所示,内网所有PC的网关都指向LINUX的eth0,LINUX的eth1口连着电信运营商,LINUX的eth2口连着网通运营商。目前的需求是,内网所有的出口流量默认走电信(eth1)口,当电信的链路出现问题时,走网通(eth2)口。 从而实现了双网卡双网关的冗余备份。 因为小弟接触linux时间不长,不知道在linux里有没有一些检测链路状态的命令,通过检测链路状态的返回值,做一些删除或者修改路由的命令。 目前只有这一个思路,也不知道对不对, 恳求各位大虾的帮助了。
展开
展开全部
有一种方法,不知道能不能满足楼主的需求。
双网卡绑定技术,将eth1和eth2绑定成一个bond0,eth1和eth2出口仍如楼主所诉。
将网卡绑定模式改成主备模式(mode=1)即,默认流量走eth0,当eth0宕掉后走eth1。
具体步骤楼主搜索一下“LINUX 双网卡绑定”。
其核心代码为
# vim /etc/modprobe.conf
alias bond0 bonding
options bonding miimon=100 mode=1
追问
谢谢兄弟了,我也考虑过这种方法,这种方法之所以不行是因为如果把这两个网卡绑定的话,那么这两个网卡只能配一个IP地址设置一个网关了。目前的情况是eth1和eth2分别连接着边界路由器,这两个路由器的IP地址肯定不会是同一网段的了,这就意味着要在Linux上配置两个基于网口的不同的网关,默认是一个生效的,当生效的这个出现问题时,另外一个才会接管。
追答
其实很简单,写个shell判断脚本就好了。
用ping的返回值判断,网络是否联通。
eth1的IP和路由分别为:$IP1,$ROUT1
eth2的IP和路由分别为:$IP2,$ROUT2
检测间隔为:$TIME
代码如下:
#!/bin/bash
while true
do
if ping -c 3 -w 5 $ROUT1
then
echo ok
else
route del default gw $ROUT1
route add default gw $ROUT2
fi
sleep $TIME
done
意思就是执行一个死循环判断$ROUT1是否可达,不可达的删除默认网关 ROUT1 ,添加默认网关ROUT2。
2014-06-24
展开全部
追问
病毒
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询