爱快 & OpenWrt 分流网络拓扑(单出口版)

2022-09-04 21:24:38 +08:00
 putaosi

爱快 & OpenWrt 分流网络(单出口版)

路由追踪效果

这个方法适合单线接入的用户,用路由或者光猫拨号均可。

本文约定:

1.用 ESXi

2.要有爱快,OpenWrt 。

10.0.7.1/24 做内网,各位具体实施的时候根据自家网络情况修改。

3.内网设备 IP

爱快 lan1 地址 10.0.7.1

OpenWrt WAN 10.0.7.100

OpenWrt LAN 192.168.77.1

拓扑图

好了,开始操作。

A.在爱快建立运营商

爱快设置约定:

1.wan1 接入光猫

2.wan2 用来接 OpenWrt

在爱快上加载中国 IP 表用于国内外分流。中国 IP 表下载地址为 https://raw.githubusercontent.com/17mon/china_ip_list/master/china_ip_list.txt

这里用到爱快的流控分流功能。需要在爱快里面自建一个运营商。在运营商里面绑定中国 IP 段,以便筛选国内的流量走国内线路,国外流量走 OpenWrt 。

操作流程: 流控分流>多线负载>自定义运营商

点击 添加

由于目前 IP 表有 6000 多行,需要前 5000 条和后面 1000 多条分 2 次添加。

回到 流控分流>多线负载,点添加

负载模式:源 IP+目的 IP+目的端口

运营商:国内

负载比例:wan1  1  启用

保存,然后点启用。

接下来:

网络设置 > 内外网设置

点击 wan1 ,勾上 掉线自动切换。

网络设置 > 内外网设置

点击 wan2 ,勾上 设此条线路为默认网关 和 掉线自动切换。

线路检测  PING

检测地址 192.168.77.1 ,这个地址是 OpenWrt 的 lan 地址,检查它的存在与否,用来确定是不是要将流量切换到 wan1 。

当然你也可以设置为:

线路检测  HTTP 

检测地址 google.com

这样当 OpenWrt 不能正常访问国外网,流量会切换到 wan1 。

B. OpenWrt WAN 和 LAN 设置

OpenWrt 的 WAN 口接在爱快的 LAN 下面。

爱快 wan2 口接的是 OpenWrt 的 lan 口下面,本例中爱快 wan2 的 IP 设置为 192.168.77.2 。

OpenWrt 上可以跑各种我们需要的留学服务。

OpenWrt 网络环路避免

把 OpenWrt 自身访问网络出口固定设置为 wan1 。

爱快 流控分流 > 分流设置 > 端口分流 

添加 OpenWrt WAN 口的 IP 以 wan1 口为流量出口。

启用。

此拓扑优势:

  1. 可以接受 OpenWrt 死机 /故障。
  2. 爱快分流。
  3. 爱快下内网设备同一个网络内,没有跨三层问题。
  4. 可以在爱快上设置某个或者某些设备走 OpenWrt 出站。
  5. 内网流量仅经过一个网关,没有网关损耗问题。

需要的维护

国内的 IP 表会缓慢地更新,所以建议每半年更新一次 IP 表。

F & Q

如果 OpenWrt 死机会怎样?

国内外流量会走爱快 wan1 请求。

如果爱快死掉会怎么样?

爱快都死了还上什么网?

我不使用 ESXi 怎么办?

本架构可以非常方便地部署到 PVE/hyper-v 等架构。

我不喜欢使用爱快怎么办?

本架构可以推广到任何双路由架构。

上面设置中的 wan2 为什么设置为默认网关?

爱快会加载我们自定的运营商 IP 表,所有的请求会按照 流控分流 > 分流设置 > 多线负载 里面的设定去走出口。国内的请求会固定走 wan1 ,表里没有覆盖到的 IP 默认走 wan2 。因为海外 IP 表很大,这算是取巧的操作。这个设置的妙处请自行体会。(当然了,你也可以反向操作。加载一张海外的 IP 表绑定在 wan2 上,不设国内 IP 表。让所有的流量默认走 wan1 。由于海外的 IP 表很大,所以我认为这个操作会占用更多的 IP 比对的时间可能会降低效率。)

8598 次点击
所在节点    奇思妙想
35 条回复
Xusually
2022-09-04 23:05:09 +08:00
很巧啊,我也用的 GEN8 + ESXi + 爱快 + OpenWrt ,不过我是 GEN8 的 2 个物理网卡做了聚合到 2000M ,虚拟机和 ESXi 的管理全部用的虚拟网卡,WAN/LAN/MGT 的流量都走一起,不同的 vlan id ,用 vlan 隔离,往上交换机里几个不同的 vlan 接不同的设备,4 个千兆 WAN 都接光猫:宽带北京联通千兆 3 拨,北京移动千兆 1 拨。

不过我爱快和 OpenWrt 的接入和分流是传统模式,并没有指定所有的设备使用 OpenWrt 作为网关,只是很少的设备比如 AppleTV ,OpenWrt 挂了的话,我 AppleTV 确实是不能上网了,其实影响不大。
putaosi
2022-09-05 00:42:52 +08:00
@Xusually 你可以改成我这种架构
hcwhan
2022-09-05 02:55:34 +08:00
既然 openwrt 的 wan 流量到爱快之后 全都走爱快的 wan1 那为啥不直接把 openwrt 的 wan 接到第一个虚拟交换机
putaosi
2022-09-05 03:03:52 +08:00
@hcwhan 如果是光猫拨号,两个路由的 wan 就都接光猫下。如果爱快拨号就照这个拓扑图接
scyuns
2022-09-05 08:34:16 +08:00
这就是传说中的单臂路由器吗
missdeer
2022-09-05 09:14:27 +08:00
没看明白,这个解决了什么问题?
lqzhgood
2022-09-05 09:28:32 +08:00
不能自动更新国内 IP 段 是个问题呀。
lqzhgood
2022-09-05 09:31:06 +08:00
而且 DNS 也是个问题,例如 请求 Google ,回来的是污染的 DNS (例如某国内 IP ),这时候就不会被分流到 openwrt 了
emeab
2022-09-05 09:32:30 +08:00
不如改用 asn 分流. 基本上国内的 asn 都是在国内运营的.
putaosi
2022-09-05 10:11:43 +08:00
@lqzhgood 所以这个架构有带自建 DNS 版 /双出口等补完版本
putaosi
2022-09-05 10:12:25 +08:00
@emeab 可以的,一样的
tcpdump
2022-09-05 11:09:10 +08:00
@Xusually ESXi 做聚合,是不是要 vCenter ? 在 ESXi 里面做聚合的话,只会起到一个链路备份的作用,带宽不会叠加。
lqzhgood
2022-09-05 11:12:40 +08:00
@putaosi 我觉得 DNS 这里有点死循环~

可靠的 DNS 一定是要套 FQ 去境外解析的(这样也能享受境外的 CDN ),问题是 openwrt 在下一级。

分流给 openwrt 的前提是解析出 DNS 在海外,解析 DNS 的前提是 DNS 流量经过 openwrt 获取解析结果

所以我想问问 DNS 这一块 LZ 是如何考虑的呢?
Xusually
2022-09-05 11:19:13 +08:00
@tcpdump 不需要吧,我就是 ESXi 里做的,开启基于 IP 哈希的路由,交换机里配置 LAG 为静态 LACP 汇聚,不过暂时手头没有 2.5G 设备或者万兆设备测试。

这么做的初衷是因为目前我 GEN8 的 PCI-E 槽被 Raid 卡占用了,暂时没有办法接多网卡,网络接口就剩下机器自带的 2 个千兆了,物理网卡划分一个 WAN 一个 LAN 使用的话总吞吐还是瓶颈,毕竟我有 4 个千兆 WAN ,弄成 WAN/LAN 混着来资源分配动态一些,虽然也是不够,不过比单独拆成 2 个 GE 强。
acrisliu
2022-09-05 11:27:38 +08:00
感觉 DNS 解析是个问题,目前自用的方案,DNS 是通过代理去境外解析的,如果代理出问题甚至会影响国内网站访问。
chenghj87
2022-09-05 11:35:52 +08:00
我感觉 openwrt 上一些 FQ 插件分流也蛮好啊,为什么要用爱快多一层呢?
goodryb
2022-09-05 11:51:52 +08:00
虽然用 IP 分流能解决很多域名代理的问题,但这个逻辑上太复杂了
putaosi
2022-09-05 12:31:56 +08:00
@lqzhgood 完整的拓扑请进群讨论 https://t.me/putaosi
renothing
2022-09-05 13:42:14 +08:00
搞这么复杂,其实一个策略路由就能解决的事情。一个 openwrt 足以
putaosi
2022-09-05 14:32:22 +08:00
@renothing 你说的对,确实是这样

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

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

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

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

© 2021 V2EX