高分求高手指教——如何在linux中实现双网关相互冗余备份

拓扑如图所示,内网所有PC的网关都指向LINUX的eth0,LINUX的eth1口连着电信运营商,LINUX的eth2口连着网通运营商。目前的需求是,内网所有的出口流量默... 拓扑如图所示,内网所有PC的网关都指向LINUX的eth0,LINUX的eth1口连着电信运营商,LINUX的eth2口连着网通运营商。目前的需求是,内网所有的出口流量默认走电信(eth1)口,当电信的链路出现问题时,走网通(eth2)口。 从而实现了双网卡双网关的冗余备份。 因为小弟接触linux时间不长,不知道在linux里有没有一些检测链路状态的命令,通过检测链路状态的返回值,做一些删除或者修改路由的命令。 目前只有这一个思路,也不知道对不对, 恳求各位大虾的帮助了。 展开
 我来答
傲慢的王子啊
2014-06-24 · TA获得超过162个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:159万
展开全部

有一种方法,不知道能不能满足楼主的需求。

双网卡绑定技术,将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
展开全部
追问
病毒
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式