V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wsgzao
V2EX  ›  程序员

静态路由和策略路由的配置实践

  •  
  •   wsgzao ·
    wsgzao · 2016-03-21 10:18:35 +08:00 · 3459 次点击
    这是一个创建于 3161 天前的主题,其中的信息可能已经有所发展或是发生改变。
    ## 前言

    一般在多网卡的网络访问关系中我们通常根据目标 IP 地址段来添加静态路由(static-routes),在主机系统配置层面这个需求一般都比较简单也不需要使用非常复杂的命令,说实话如果不是因为开发测试中心同事的乱入启发,我也不会发现还有策略路由这样一种灵活通用的配置方法来实现 Linux 多网卡多路由的设定,灰常感谢。

    > 策略路由的出现在某些业务场景下可能更优于静态路由

    ---

    ## 更新记录

    2016 年 03 月 18 日 - 更新静态路由配置和建议
    2015 年 12 月 23 日 - 增加 Linux 添加静态路由最佳实践
    2015 年 12 月 18 日 - 修正动态路由为策略路由描述,完善内容,感谢@extreme
    2015 年 12 月 17 日 - 初稿

    阅读原文 - http://wsgzao.github.io/post/static-routes/

    扩展阅读

    - Routing Tables - http://linux-ip.net/html/routing-tables.html
    - linux 配置静态路由 - http://www.361way.com/linux-define-static-route/4053.html
    - Linux 策略性路由应用及分析(iproute2) - http://tilt.lib.tsinghua.edu.cn/node/408
    - Linux Advanced Routing & Traffic Control - http://lartc.org/
    9 条回复    2016-03-21 23:15:59 +08:00
    xuboying
        1
    xuboying  
       2016-03-21 13:05:42 +08:00
    请教楼主一个问题,有这么个场景,多个 gw ,配了几百条静态路由,部分走 gw_a ,部分走 gw_b ,当某个 gw 不通的时候希望能快速切换到另一个,现在的做法是删光所有路由,重新 add 一遍所有,能否通过策略路由简单实现呢?
    xuboying
        2
    xuboying  
       2016-03-21 13:07:18 +08:00
    gw_a gw_b 都是可用网关,只是速度不同。
    czz811
        3
    czz811  
       2016-03-21 13:48:41 +08:00   ❤️ 1
    @xuboying 配置路由的管理距离,优先级高的那条路由失效后会自动切换到另一条
    xuboying
        4
    xuboying  
       2016-03-21 13:51:34 +08:00
    @czz811 我没有运行任何动态路由协议,只有手工 ping 来确认 gw 是否有效,这种方式下如何告之系统某个 gw 失效?
    wsgzao
        5
    wsgzao  
    OP
       2016-03-21 15:28:20 +08:00   ❤️ 1
    @xuboying 这个业务场景我没有办法测试,你如果有测试机可以按照策略路由的方法实践一下
    jasontse
        6
    jasontse  
       2016-03-21 16:01:04 +08:00 via iPad   ❤️ 1
    @xuboying 同时添加两条 metric 各不相同的路由
    mhycy
        7
    mhycy  
       2016-03-21 16:41:49 +08:00   ❤️ 1
    @xuboying
    我所理解的情况是没法做两端心跳的情况下只能手工配置(就是你说的那样)
    也许可以用子接口的方式实现
    eth0.1 eth1.1 均为路由端口
    eth0.2 eth1.2 心跳使用

    如果 eth0.1/eth1.1 挂了,把端口 down 掉
    正常情况下,路由不会向一个已关闭的端口发送数据(需要优先级策略)
    xuboying
        8
    xuboying  
       2016-03-21 18:48:08 +08:00
    @wsgzao 测试环境不在公网上,是公司的测试机。验证路由只要用 ip route get x.x.x.x 看看 gw 对不对就行了。我的思路是 enable 一个 table ,或者 disable 一个 table ,或者优先某个 table, 不知道能否这么用
    holyzhou
        9
    holyzhou  
       2016-03-21 23:15:59 +08:00
    依稀记得好像我们把这个用在电信联通的源地址返回上 从哪个口进来从那个口出去
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 03:54 · PVG 11:54 · LAX 19:54 · JFK 22:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.