子网路由器从设计上,是解决一台处于两张网络边界的设备(通常是桌面设备)需要充当中转节点,让与这个中转节通过xEdge(含Tailscale,下面不再额外备注)互联的终端设备来访问另一个网络中因为种种原因不能安装xEdge软件的机器的。
如果您碰巧违背了上述原则,比如你局域网中有两台设备都安装了xEdge,您在其中一台发布了路由,以便您的移动设备能够通过xEdge访问到局域网,此时局域网中的两台设备之间,就可能因为xEdge(基于Tailscale)当前的设计,导致本该直连的流量,也走了xDERP中转,具体原因是将本地路由牵引到xEdge接口上从而导致局域网IP之间直连不可达从而切换至xDERP中转节点。
针对此问题,当前解决方案如下:
发布更粗粒度的路由,比如您局域网的路由是192.168.1.0/24,您可以发布192.168.1.0/23。这是因为操作系统在进行路由查找时(各个平台),都是基于最长匹配的原因,因为192.168.1.0/23没有192.168.1.0/24这个详细,所以局域网接口自身的路由仍是优先的。而您的终端往往并不在局域网内使用,则仍可以命中粗粒度的机器来访问局域网的设备。