V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ca1123
V2EX  ›  宽带症候群

ER-X 按规则负载均衡自动根据需求选择国内和国际线路

  •  
  •   ca1123 · 2021-06-19 04:01:47 +08:00 · 3081 次点击
    这是一个创建于 1257 天前的主题,其中的信息可能已经有所发展或是发生改变。
    书接上回: https://www.v2ex.com/t/781772
    前情提要: Chiphell 上的老哥用 ER-X 加上两条宽带弄了个负载均衡, 还在网内搞了个科学代理. 我看了和我的情况很像.

    我的情况是有一条国际线路和一条国内线路, 要根据访问的需求自动把流量打到对应的线路上.

    1. 关于 Chiphell 老哥的办法
    办法的要点:
    (a)添加静态路由, 分别为联通和电信的路由命名
    (b)配置防火墙以按照联通和电信的两个 IP 分组分发到联通和电信的路由上
    (c)分别为联通和电信两个分组加入 IP

    我现在理解 Chiphell 老哥的做法是这样的, (a)首先设置分别为两个出口添加默认路由

    set protocols static interface-route 0.0.0.0/0 next-hop-interface pppoe1
    set protocols static interface-route 0.0.0.0/0 next-hop-interface pppoe3
    #默认路由表为双线均衡
    set protocols static table 1 interface-route 0.0.0.0/0 next-hop-interface pppoe1
    #路由表 1 为单联通线路
    set protocols static table 3 interface-route 0.0.0.0/0 next-hop-interface pppoe3
    #路由表 3 为单电信线路

    之后(b)配置防火墙, 让防火墙把流量按照分组 IP 记录分别打到两条线路上.

    set firewall modify balance rule 30 description "telenet"
    set firewall modify balance rule 30 destination group network-group CHINANET
    set firewall modify balance rule 30 action modify
    set firewall modify balance rule 30 modify table 3
    #电信 IP 走电信线路
    set firewall modify balance rule 50 description "unicom"
    set firewall modify balance rule 50 destination group network-group UNICOM
    set firewall modify balance rule 50 action modify
    set firewall modify balance rule 50 modify table 1
    #联通 IP 走联通线路

    但是现在分组 CHINANET 和 UNICOM 都是空的. 就(c)需要在这两个分组里面添加内容, 我理解他这里就是举个栗子. 只添加了两个网段.

    set firewall group network-group CHINANET network 1.0.1.0/24
    set firewall group network-group UNICOM network 1.24.0.0/13

    实际上他这里说了要用脚本添加.

    分线路就算是弄好了.
    ----------------------------------------------


    2. 我的问题, 就是这个添加 IP 这一步很迷惑, 老哥笼统的说 APNIC 可以查, 但是我的思路是从 APNIC 上的这个文件
    http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
    它的条目包括分配给不同地区的地址范围, 我把内地的范围都圈出来, 然后就利用(c)的方法把这些地址都添加到防火墙的规则里. 这样做就能满足我国际线和国内线流量分离的需要吧? 但是这样会不会保守了, 导致浪费我的国际流量? 有些境内访问很快的东西也用国际线了. 因为如果把内地的 IP 圈出来, 实际上是默认走国际出口. 圈的小了的话, 就浪费了.
    20 条回复    2021-06-29 15:39:49 +08:00
    ericFork
        1
    ericFork  
       2021-06-19 07:04:31 +08:00
    ericFork
        2
    ericFork  
       2021-06-19 07:06:40 +08:00   ❤️ 1
    哦……仔细读了你的最后一段,是想让某些大陆运营商访问不慢的线路不要走国际线路出去,不过这个最好还是别想太多,因为可能今天快的线路,明天就慢了;早上快的线路,晚上就慢了。相对来说能有所保障的,还是只有大陆之内的质量
    lostberryzz
        3
    lostberryzz  
       2021-06-19 10:19:54 +08:00
    现在不同运营商互联做的挺好了,上面的做法个人家庭的话完全没什么必要,大带宽+优质梯子比啥都强
    lostberryzz
        4
    lostberryzz  
       2021-06-19 10:21:06 +08:00
    另外说一下,APNIC 是不准的
    diskerjtr
        5
    diskerjtr  
       2021-06-19 10:27:35 +08:00   ❤️ 1
    最简单做法 默认 0.0.0.0 都甩到海外线路
    国内走明细路由到国内线路 国内明细路由表网上很多
    Archeb
        6
    Archeb  
       2021-06-19 11:02:06 +08:00   ❤️ 1
    APNIC 的表不准的 我建议还是用这个 https://github.com/17mon/china_ip_list
    carrionlee
        7
    carrionlee  
       2021-06-19 13:26:00 +08:00 via iPhone
    你需求只是国内外分流就行了,那就直接国内域名和国内 ip 走国内出口,剩下的走国际出口
    ca1123
        8
    ca1123  
    OP
       2021-06-19 14:09:10 +08:00
    你这个好
    ca1123
        9
    ca1123  
    OP
       2021-06-19 14:10:06 +08:00
    @carrionlee 就是哪里来找标准区别国内外的. 比如 IP 区分了以后, 还需要解决 DNS 的问题.
    ca1123
        10
    ca1123  
    OP
       2021-06-19 14:10:31 +08:00
    @ericFork 国内的流量便宜啊
    dndx
        11
    dndx  
       2021-06-19 14:17:14 +08:00
    @Archeb 这个如果能用 IPv6 的版本就好了,因为我 IPv6 也需要国内外分流,所以到底。APNIC 的列表是跑不了的。

    从使用效果来说目前 APNIC 的表已经满足了目前的需求,并没有遇到任何不便的情况。
    carrionlee
        12
    carrionlee  
       2021-06-19 14:40:40 +08:00 via iPhone   ❤️ 1
    @ca1123 ipset 和 chinaip 就可以了,再有问题加 v 吧,bGlqaWFrYWkyMDAx,我自己就是用 er4 分流的
    ca1123
        13
    ca1123  
    OP
       2021-06-19 15:11:34 +08:00
    @carrionlee ipset 的功能清楚了, 怎么和路由系统结合呢?
    nbsn
        14
    nbsn  
       2021-06-20 00:19:39 +08:00   ❤️ 1
    @Archeb #6 这份 IP 地址只是表明已经分配出去的地址,实际某个段可能还没有被使用。还是用 ASN 抓 BGP 路由表动态更新更准确一些。参考 /t/783828
    missdeer
        15
    missdeer  
       2021-06-20 10:21:40 +08:00 via Android   ❤️ 1
    肥猫维护了国内域名列表,可以区分用哪边的 dns
    6 楼的列表可用于区分目标 ip 在哪边
    完事
    Chingim
        16
    Chingim  
       2021-06-20 20:20:07 +08:00 via iPhone
    不知道你家拓扑如何,要是我会选择 v2ray,而不是自己维护 ipset 。
    v2ray 设定 proxy+freedom 两个出口分别绑定不同的宽带,用内建的 dns 解析方案做域名的分流解析,最后简单写个规则就能达到目的了
    mikeluckybiy
        17
    mikeluckybiy  
       2021-06-20 22:35:12 +08:00 via Android
    mark 下,我这边也有 ubnt 的需求
    ca1123
        18
    ca1123  
    OP
       2021-06-21 00:07:54 +08:00
    @Chingim 我的国际出口现在就是用的没墙的出口. 说白了就是漫游的 Google Fi.
    Tengwait
        19
    Tengwait  
       2021-06-29 15:38:25 +08:00   ❤️ 1
    之前看见有个老哥,用 vultr 的服务器,收到了全球的路由,然后从全球路由中筛选出了国内三大的路由,给家里面三条线路做了不同运营商走不同 dns,按道理你就把路由分为 CN 和其他就可以了
    Tengwait
        20
    Tengwait  
       2021-06-29 15:39:49 +08:00   ❤️ 1
    补充说明一下 19 楼的内容,不同运营商不同 dns 不同路由
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1423 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:23 · PVG 01:23 · LAX 09:23 · JFK 12:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.