两条宽带 100M,机器是双网卡,绑了 2 个网关,如何指定程序使用哪个网络? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
crysng
V2EX    Linux

两条宽带 100M,机器是双网卡,绑了 2 个网关,如何指定程序使用哪个网络?

  •  
  •   crysng 2014 年 4 月 28 日 7669 次点击
    这是一个创建于 4377 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前试过绑定2个网关,程序使用的时候调用curl的interface比如eth0,刚开始重启network后没问题,运行1晚以后完全就串了,比如eth0走了eth1的网关,或者eth1完全就上不了网
    ps: eth1使用的路由器每10分钟会重拨一次
    ps: 两条网关使用的都是同一个网段,eth0:192.168.1.1, eth1:192.168.1.2, 两条路由器之间直接插网线,去掉eth1的dhcp,,本本网卡指定网关192.168.1.1的网关就会走宽带1, 指定192.168.1.2就会走宽带2 单网卡使用完全没问题
    21 条回复    2014-05-03 22:58:06 +08:00
    lmaq
        1
    lmaq  
       2014 年 4 月 28 日
    路由表
    crysng
        2
    crysng  
    OP
       2014 年 4 月 28 日
    @lmaq 多谢,是下面这条命令么?
    route add default gw {IP-ADDRESS} {INTERFACE-NAME}

    路由表到现在还没搞懂
    sandtears
        3
    sandtears  
       2014 年 4 月 28 日
    如果是要进来的流量,程序绑定本地 IP 的时候,直接选定绑在哪个 IP 地址上就好了。
    如果是要出去的流量,只能根据目标 IP 来编写不同的路由表,非常之麻烦。
    sandtears
        4
    sandtears  
       2014 年 4 月 28 日
    唔。。查了一下,在 Windows 下有一款名为 “Connectify Dispatch” 的收费软件可以做到按照应用程序来指定网关,不知道有没有开源实现。
    crysng
        5
    crysng  
    OP
       2014 年 4 月 28 日
    @sandtears 多谢,这么说的话其实一根网线也能达成走不通的网关吧?
    sandtears
        6
    sandtears  
       2014 年 4 月 28 日
    @crysng 是的,完全可以,你完全可以在使用一根网线的情况下,在同一个网卡上占两个 IP
    crysng
        7
    crysng  
    OP
       2014 年 4 月 28 日
    @sandtears 多谢,那么linux也一样的道理吧?
    jacy
        8
    jacy  
       2014 年 4 月 28 日
    wsgzao
        9
    wsgzao  
       2014 年 4 月 28 日
    --windows网段路由
    --键入 route -p add [目标] [mask <网络掩码>] [网关] [metric <度量值>] [if <接口>]
    route print
    route delete
    route -p add 172.16.19.0 mask 255.255.255.0 198.15.0.1
    注意关闭windows防火墙

    --Linux(有点不同,请注意版本对应)

    --添加网段路由
    # vi /etc/sysconfig/network-scripts/route-eth0
    172.16.19.0/24 via 198.16.2.1
    defult via 198.17.1.1
    --SuSE
    # vi /etc/sysconfig/network/routes
    172.16.19.0 198.16.2.1 255.255.255.0 eth0
    default 172.16.19.1 - -

    --AIX(smitty吧,我不是高手)
    wsgzao
        10
    wsgzao  
       2014 年 4 月 28 日
    最后补充一点,做双网卡的主要目的应该是高可用考虑,一般采用主备(Active-Backup) or 轮询(Round-Robin),所以没有必要双网卡Bond
    crysng
        11
    crysng  
    OP
       2014 年 4 月 29 日
    @jacy 谢谢 这也是另外一个解决方法
    crysng
        12
    crysng  
    OP
       2014 年 4 月 29 日
    @wsgzao 多谢,明天试试
    crysng
        13
    crysng  
    OP
       2014 年 4 月 29 日
    @wsgzao 其实我的是家庭网络,普通宽带来的
    crysng
        15
    crysng  
    OP
       2014 年 4 月 29 日
    @VYSE 多谢,,route+iptable,两个都很有挑战
    mifan
        16
    mifan  
       2014 年 4 月 29 日
    @crysng

    以前当时我用的是这个解决方案,使用LD_PRELOAD实现的, 比较简单,不过windows上没法用

    http://www.ryde.net/code/bind.c.txt

    -----------------------------------

    当时是强制 firefox 使用 某个 ip

    BIND_ADDR="xxx.xxx.xxx.xxx" LD_PRELOAD=/usr/lib/bind.so firefox
    mifan
        17
    mifan  
       2014 年 4 月 29 日
    sorry, 好像看错了 :)
    crysng
        18
    crysng  
    OP
       2014 年 4 月 29 日
    @mifan 多谢, 其实尝试过使用php的bing address,但是不生效不知道为什么
    hydrazt
        19
    hydrazt  
       2014 年 4 月 30 日   1
    ip route add 192.168.1.0/24 dev em1 src 192.168.1.11 table 100
    ip route add default via 192.168.1.1 dev em1 table 100
    ip rule add from 192.168.1.11 lookup 100
    ip route add 192.168.1.0/24 dev em2 src 192.168.1.12 table 200
    ip route add default via 192.168.1.1 dev em2 table 200
    ip rule add from 192.168.1.12 lookup 200

    启动时执行上面的命令,从em1进入的包从em1出去,从em2进入的包从em2出去
    crysng
        20
    crysng  
    OP
       2014 年 5 月 1 日
    @hydrazt 相当,感谢,回去试
    crysng
        21
    crysng  
    OP
       2014 年 5 月 3 日
    @hydrazt 搞定
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1382 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 44ms UTC 17:13 PVG 01:13 LAX 10:13 JFK 13:13
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86