双路由实现无感ip分流,硬路由也适用,再见旁路由
在传统的主路由+旁路由的分流模式中,设备需要配置网关为旁路由,一来要给设备单独设置网关不方便;二来如果旁路由因为各种问题导致下线或者出现故障,会导致对应的设备无法上网,破坏了网络的稳定性。所以最好实现无感分流,这样哪怕旁路由物理损坏也不会导致任何的网络波动。
本期只提供思路,至于详细的教程以及分流规则以后说不定会出教程。不过大部分路由器配置起来都差不多,只要按照这个思路配置好就没问题。
想要实现无感分流ip分流,首先需要主路由具有策略路由(或者有些路由器支持多线也一样)功能,主路由软硬都可以,我这里就是用的硬路由。什么,硬路由不支持这些功能?建议换个路由器,我这tplink路由器都有(滑稽)。至于旁路由(这里旁路由不是旁网关,没有任何网关指向它,为了好称呼本文还是叫旁路由)一般都是openwert,当然爱快那些一样可以没区别。本文所使用的就是tplink主路由+openwrt软路由结合。
一、主路由ip分流原理
上面也说了,需要主路由支持策略路由或者多线负载(需要支持不同ip走不同出口)。分流说起来也很简单,就是不同的ip走不同的出口。这里我画个图方便各位理解,看图基本上就明白了。
二、举个例子
这里我放出我硬路由的规则,顺便举两个例子。如果是爱快的话就用多线负载,也可以实现分流。
第一种情况:访问的国内ip(域名)
当dns服务器解析并返回给设备国内ip后,设备要访问国内ip,此时源地址(数据发出地)是内网ip,目的地址(数据接受地)是中国ip,那此时第七条规则直接生效,数据直接从我的拨号接口出去。
第二章情况:访问的海外ip
如果是海外ip,则会命中第八条规则,数据被发送到ge1口(软路由),此时数据将由软路由处理,等软路由处理完成后要发回给主路由,则会命中第六条规则,数据从软路由出来就会从拨号口出去。在第八条中我偷懒了,规则里源地址是全部,为什么是全部呢?因为一般策略路由是有优先级,第七条规则会优先处理,那处理完后的不就是海外的ip了。
三、分流教程
这个,,,看我上面的图应该都明白了,照葫芦画瓢就行,本篇也主要是思路而不是教程。主路由参考我上面的规则就可以,至于软路由设置,和常规旁路由一样。
详细教程以后有机会再写一篇。如果实在不懂,可以在交流群问,,,,,。
四、优点
1.完全无感,连网关都不用改,因为是主路由依靠ip分流,流量也是在主路由处理。
2.哪怕旁路由坏了炸了也不会影响整个稳定性,因为可以设置如果接口不在线就不启用规则,至于这么检测接口不在线,ping检测不就行了,ping不通说明旁路由寄了,规则也就不生效。这样分流规则不生效自然也不会有任何影响,一切都无事发生。
3.至于主路由寄了怎么办,,,,主路由寄了还指望啥。
4.主旁路由无任何要求,不管是虚拟机还是物理机,亦或者软路由和硬路由,都可以,唯一的要求是主路由支持分流功能。
5.分流都是在内部处理,不涉及任何net,转发效率高。
五、缺点
1.首次部署麻烦,但是也不难。
2.需要自行导入ip池,也就是上面的国内外ip分组,但是我这个路由器自带了规则,就不用自己手动添加了,如果是其他路由器可以到github上下载对应国家的ip地址再导入。
3.因为是要在主路由进行ip分流,这对dns解析的准确性有要求,如果dns解析的是个错误地址,那访问的ip也自然有误,结果就是打不开网站。