双路由方案

根据 DN11 的相关实践,总结一下双路由方案配置的一些经验。

提醒:请结合自己实际做方案实施。

改造前

寝室是单 OpenWrt 路由器,如果整活崩了会影响到所有人。也有被别人劫持路由的风险。

家里是单 iKuai 路由器,功能单一没法整活。

双路由方案

结合 iKuaiOpenWrt 的优势,实现双路由方案。

基本思路

  • 主路由(iKuai):负责基本的网络访问能力,包括 DHCP,无线部署方案也围绕主路由展开。
  • 业务路由(OpenWrt):负责特定的网络访问能力,比如 DN11EasyConnectaTrust 等。

主路由的配置就不再重复,按照一般情况配置好上网即可。

业务路由只保留一个 LAN 口,连接到主路由的 LAN 口,并配置同网段的 IP 地址。

核心:分流

有哪些流量是需要经过业务路由的呢?

  • DN11 网内流量:IP
  • VPN 网络流量:IP / 域名

IP 分流

这个问题显然简单,直接配置 静态路由 即可。

考虑到正常情况下也不会有 RFC1918RFC6589 的未路由网段需要出网,直接配置四条静态路由即可。

附加的,可以在 OpenWrt 上配置 unreachable 路由,防止这些网段的流量在两台路由器之间来回转圈。

对于 VPN 的 IP 流量,去客户端上把应用的 IP 段加进来就行。

域名分流

有些应用是直接写明了域名后的 IP ,那也按照 IP 分流的方式配置即可。

没写明或经常变化的情况下,可以使用 FakeDNS 插件,将域名解析到业务路由的 IP 上,转换为 IP 分流。

可以使用现成的 FakeDNS + tproxy 等方案。域名少的话,也可以直接在 主路由 上配置域名解析。

变体

下发路由

DHCP 配置 Option 121,下发需要分流的路由表,可以省一跳。

只希望指定设备走业务路由

DHCP 分别配置不同的 DNSGateway

然后还可以用好业务路由的防火墙。

主路由需要私网段出网

调整静态路由细粒度。

对应场景:HDU 两网合一改造后
可用 dn-11/scripts 里的新 ROA 脚本来给 iKuai 加 DN11 路由。

不想用 FakeDNS

业务路由上使用 gost 等方案做转发。

更多

给业务路由加直连线路

核心:分表

对应场景:HDU 两网合一改造后,给 OpenWrt 加上没绑定宽带的直连线路。

  • 编辑 /etc/iproute2/rt_tables,往后添加一张表,序号要比 main 大。
  • OpenWrt 上接入单线后,配置这个 接口 的 覆盖 IPv4 路由表 为刚才添加的表。
  • 路由 - IPv4 规则,添加规则,指定一个 fwmark 走这个表。

剩下的就是让应用程序使用指定 fwmark 即可。

类似的还有 netns 方案,会隔离的更彻底。

注意:不要忘记防火墙配置。