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

2021-06-19 04:01:47 +08:00
 ca1123
书接上回: 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 圈出来, 实际上是默认走国际出口. 圈的小了的话, 就浪费了.
3115 次点击
所在节点    宽带症候群
20 条回复
ericFork
2021-06-19 07:04:31 +08:00
ericFork
2021-06-19 07:06:40 +08:00
哦……仔细读了你的最后一段,是想让某些大陆运营商访问不慢的线路不要走国际线路出去,不过这个最好还是别想太多,因为可能今天快的线路,明天就慢了;早上快的线路,晚上就慢了。相对来说能有所保障的,还是只有大陆之内的质量
lostberryzz
2021-06-19 10:19:54 +08:00
现在不同运营商互联做的挺好了,上面的做法个人家庭的话完全没什么必要,大带宽+优质梯子比啥都强
lostberryzz
2021-06-19 10:21:06 +08:00
另外说一下,APNIC 是不准的
diskerjtr
2021-06-19 10:27:35 +08:00
最简单做法 默认 0.0.0.0 都甩到海外线路
国内走明细路由到国内线路 国内明细路由表网上很多
Archeb
2021-06-19 11:02:06 +08:00
APNIC 的表不准的 我建议还是用这个 https://github.com/17mon/china_ip_list
carrionlee
2021-06-19 13:26:00 +08:00
你需求只是国内外分流就行了,那就直接国内域名和国内 ip 走国内出口,剩下的走国际出口
ca1123
2021-06-19 14:09:10 +08:00
你这个好
ca1123
2021-06-19 14:10:06 +08:00
@carrionlee 就是哪里来找标准区别国内外的. 比如 IP 区分了以后, 还需要解决 DNS 的问题.
ca1123
2021-06-19 14:10:31 +08:00
@ericFork 国内的流量便宜啊
dndx
2021-06-19 14:17:14 +08:00
@Archeb 这个如果能用 IPv6 的版本就好了,因为我 IPv6 也需要国内外分流,所以到底。APNIC 的列表是跑不了的。

从使用效果来说目前 APNIC 的表已经满足了目前的需求,并没有遇到任何不便的情况。
carrionlee
2021-06-19 14:40:40 +08:00
@ca1123 ipset 和 chinaip 就可以了,再有问题加 v 吧,bGlqaWFrYWkyMDAx,我自己就是用 er4 分流的
ca1123
2021-06-19 15:11:34 +08:00
@carrionlee ipset 的功能清楚了, 怎么和路由系统结合呢?
nbsn
2021-06-20 00:19:39 +08:00
@Archeb #6 这份 IP 地址只是表明已经分配出去的地址,实际某个段可能还没有被使用。还是用 ASN 抓 BGP 路由表动态更新更准确一些。参考 /t/783828
missdeer
2021-06-20 10:21:40 +08:00
肥猫维护了国内域名列表,可以区分用哪边的 dns
6 楼的列表可用于区分目标 ip 在哪边
完事
Chingim
2021-06-20 20:20:07 +08:00
不知道你家拓扑如何,要是我会选择 v2ray,而不是自己维护 ipset 。
v2ray 设定 proxy+freedom 两个出口分别绑定不同的宽带,用内建的 dns 解析方案做域名的分流解析,最后简单写个规则就能达到目的了
mikeluckybiy
2021-06-20 22:35:12 +08:00
mark 下,我这边也有 ubnt 的需求
ca1123
2021-06-21 00:07:54 +08:00
@Chingim 我的国际出口现在就是用的没墙的出口. 说白了就是漫游的 Google Fi.
Tengwait
2021-06-29 15:38:25 +08:00
之前看见有个老哥,用 vultr 的服务器,收到了全球的路由,然后从全球路由中筛选出了国内三大的路由,给家里面三条线路做了不同运营商走不同 dns,按道理你就把路由分为 CN 和其他就可以了
Tengwait
2021-06-29 15:39:49 +08:00
补充说明一下 19 楼的内容,不同运营商不同 dns 不同路由

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/784393

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX