软路由上挂多条线路,配置项比单条多好几倍。参数本身不难,难在顺序:先启用哪一条、分流规则写在哪一层、出错时先看谁。代理IP在软路由上的常见故障,一大半出在顺序上,参数错的反而少。
| 规则所在层 | 作用 | 配错时的表现 |
|---|---|---|
| 目标域名 | 按域名指定走哪条线路 | 改了不生效,多半被上层覆盖 |
| 目标地址段 | 按地址范围分流 | 范围写太大,正常流量也被带走 |
| 端口 | 按端口决定方向 | 同端口多业务会一起变形 |
| 默认路由 | 都不匹配时走这条 | 规则没写全,全落到默认线路上 |
先定默认,再写规则
顺序的第一步是定默认线路。多数人上来就写分流规则,几十条写完才想起默认没配,结果规则没匹配上的流量全走了主线路,看起来像规则完全不生效。正确的做法是先确认默认走得通,再加规则,每加三条测一次。代理IP的分流尤其如此,规则越多越要先有个能兜底的默认。
- 先启用一条,确认连通之后再启用下一条。
- 规则从窄到宽写,先域名后地址段。
- 每加三条规则测一次,别一次写几十条。
多条线路的标号
线路多了要给每条起个能看懂的名字。用序号会忘,用「地区加用途」记起来快。名字改一次,后面所有规则引用都要跟着改,所以命名规则最好在加第二条线路之前就定下来。
标号定下来之后,日志才有可比性,出问题时能直接按名字筛出这条线路的记录,不必在几十条同名连接里翻找。这一步花的十分钟,排障时能省一小时。
排障的顺序反过来走
排障时顺序要反过来:先看默认线路通不通,再看规则命中哪一条,最后才看目标站能不能到。默认不通的时候,所有规则都是白写。软路由的排障最忌从头翻配置,按这个反向顺序走,通常两三步就能定位,因为每一层的结果都能独立验证。
谁的日志最有用
软路由自己的连接日志比客户端日志有用得多,它记的是实际出去的方向。看日志的时候按目标地址筛,一次只看一个目标,看它落在哪条线路上。
什么时候该拆开
规则超过二十条、又经常改,就该考虑把代理IP的分流规则拆成两组。一组管固定的业务,一组管临时的试验,改试验组不影响主业务。这个做法在换线路比较频繁的阶段特别实用,出错的范围永远只在一组里。
配置越少,出问题时越好找。
先定默认线路,再写分流规则,排障时反过来走。
顺序定下来之后,软路由上的多条线路才真正好管。参数错了能改,顺序乱了每次都要从头返工一遍。
