从几十块到三五百的家用路由器基本功能不外乎拨号、NAT映射、QoS、IP黑白名单、WIFI。而不同路由器价格差异主要体现在WIFI信号强度和频段/标准支持、WAN口数量、LAN口数量、接口速率、网络隔离、转发性能、APP管理、无线客户端黑白名单、VPN客户端。当然最直观还是天线数量这种老少咸宜的“硬”标准。

    如果要问,什么样的路由器最好。答案很粗暴:越贵越好,虽然当中有智商税的成份,但是贵的产品淘去浮夸的部分,能留下的真正实用的东西仍然比便宜的产品要多。或者换个角度来看,不知道是否有某项需求,说明没有这项需求,把自己能想到的要求罗列出来,能满足这个需求的路由器就是合适的路由器,够用就行。

    针对爱折腾的玩家、有一些高级需求的玩家、甚至企业用户,无疑对功能的要求更多。相比硬件路由的arm soc方案,x86软路由作为一种高性能、低成本、功能丰富的方案,优势非常明显。尤其在企业环境,拥有一台内网服务器(比如DNS、SAMBA甚至私有云、OA、ERP)的前提下,在这台服务器上划分出少量资源搭建软路由+上网行为管理,或者拿一台淘汰下来的PC安装这些服务,将省去两台硬件设备,直接节省数千元硬件成本。

零、常用系统介绍

    软路由我只能推荐pfSense和爱快这两款,这是我真正一直在用,而且确实值得推荐的系统。RouterOS、LEDE/openwrt因为没有用过,所以无法评价,但是作为老牌软路由系统,一定也值得信任。

    爱快软路由极易上手,易用性值得打5星,而功能丰富程度也同样值得5星:双机热备、流控/分流、NAT/VLAN/VPN、认证/计费、行为管控以及一些实用小工具。

    pfSense专业性更强,是一款严格意义上的防火墙,易用性不如爱快,侧重在网络、防火墙方面的功能。

这两个系统一般都装在x86环境,类似的还有RouterOS,而LEDE、openwrt还可以直接刷到路由器里。

    从openwrt硬件支持列表https://openwrt.org/zh-cn/toh/start中可以看出,这套系统在设备兼容方面绝无出其右者。

一、拓扑

    软路由的拓扑和硬件路由器一样,都有WAN接口和LAN接口,可以按下图的经典结构来组网。但如果网口只有一个,就需要采用下图单臂路由的组网方式。单臂路由属于另类用法,是没有双网口条件下的一种妥协方案,而且要求交换机支持VLAN,成本反而稍高。尽管在网卡速率足够的情况下,性能差异并不大,但为了减少组网复杂度,建议采用经典结构进行组网,以获得更好的稳定性。

二、硬件

    家用级别的路由器,往往同时兼具路由器、交换机、无线AP的角色,使用软路由的时候,反而需要增加一个无线设备,成本节约并不明显;但如果要求较高,或者在企业环境,这个结构就不能满足需求了,上述三个功能必须由对应的三个硬件来提供,而对无线需求较复杂的环境,还需要将WIFI分拆为AC+多AP结构。

  • 常规家用:路由器;
  • 软路由家用:软路由 + AP;
  • 公司网络:路由器/软路由 + 交换机 + AP;
  • 对无线扩充:路由器/软路由 + 交换机 + AC + 多AP。

    软路由本身可以是一台x86的普通PC,主板也可以用双/多网口的工控主板,也可以是一台arm开发板(比如树莓派,不过爱快没有arm版,只有x86版,推荐使用pfsense、openwrt),具体硬件选型可以先考虑自身需求,再根据自己的偏好来选择。

    至于稳定性,一般没什么好担心的,虽然是7×24小时开机,但PC并不像有些人想象中那么脆弱。也正由于软路由7×24小时,如果对电费比较敏感,倒是在功耗上需要好好控制一下,在满足需求的前提下,尽量选择低功耗设备。

    在组装软路由的时候,有几个要点需要提前明确下来:体积要求、功能要求、网络结构。

体积要求

    体积要求是指软路由放置位置是否有限高限长限宽,或者自身对软路由尺寸是否有特别的偏好。

    如果尺寸没有要求,可以按正常的攒机流程装一台低配matx主机,机箱选择较为自由。

    如果希望尺寸稍微小一些,可以用matx主板+小机箱,或者itx主板+itx机箱+下压散热,当然普通itx主板的成本会更高,工控itx主板的成本会低一些。

    x86最小的尺寸大概在12×12左右,一般见于专门的定制路由主板,或者工控主板。因为工控主板使用环境都较特殊,所以尺寸一般不会很大,奇葩接口丰富(比如有很多串口),扩展性很差(几乎没有PCI、PCIE接口,极少数会有mini-PCIE接口)。

    无论是matx还是itx,配件选择都很自由(需要自己考虑散热问题),CPU、内存都可以按需升降配;工控itx和超小型主板一般都会把CPU固化下来,预留笔记本内存插槽(出于体积考虑)供用户自行安装选择,额外还会提供mini-PCIE和串口,网口配置百兆和千兆参差不齐,数量也是各不相同(出于成本考虑,无论是速率还是数量,都是满足设计之初的需求即可)。

    能做到最小尺寸的方案就是各种开发板了,比如树莓派,只有巴掌大小,除此之外,甚至还有5×5尺寸的双千兆开发板。

功能要求

这个主要看两点:希望软路由本身具有什么样的功能;是否有除了软路由之外的其它功能需求,比如跑一个第三方应用。前者直接影响软路由系统选择,后者则对硬件和部署模式有要求。

    正如之前介绍,基础的路由器功能,甚至端口映射、QoS之类稍微高端的功能,普通路由器都会有,如果只用到这些,就没有必要追求软路由了。

    另外,由于硬件上来讲,软路由是一台功能完整的PC/开发板,所以完全可以安装主流操作系统并做虚拟化,当然也可以直接安装软路由系统。如果安装主流操作系统进行虚拟化的话,相当于让它在充当路由器的同时,额外充当一台内网服务器,无论是家庭环境还是企业环境,都是收益很高的方案。前提是性能足够,而且硬件支持虚拟化。

网络结构

    不同家庭环境里,有线方式联网的客户端数量不一,只有三四台或者更少,可以考虑用一个5接口的千兆交换机提供接入,或者直接选择接口数量足够的软路由硬件,或者为普通x86 pc添加一块网口数量足够的pcie网卡。

硬件选择

    综合考虑完上面的各项需求,最终就可以选择合适自己的硬件了。

* 由于大部分PC只带单网口,所以这种情况下需要额外配置一块PCIE网卡,在CPU无核显的情况下,主板需要至少有两个PCIE接口,以便接显卡;

* PCIE网卡千兆接口数量请根据主板PCIE版本和插槽带宽选择:

三、软路由部署方案 – 直接部署
    直接部署方式里,只要将软路由替换掉原硬件路由即可,扣掉一个外网接口,如果剩下的接口数量足够家中的有线设备使用,可以直连设备,省掉交换机,否则需要添加交换机。具体接法请参考 拓扑 小节。

四、软路由部署方案 – 虚拟化

    虚拟化方案推荐windows + hyperv/vbox/vmware workstation(需要机器性能足够安装windows),KVM(性能要求比windows低),不推荐esxi(没有实用价值,较前两个方案少掉1台可用系统)。

五、关于多拨

    多拨的实际价值并不在于带宽叠加(叠加效果仅在下载工具中有体现,无法对普通应用进行加速),而是体现在分流、热备上面,并且本身能否成功多拨,取决于ISP的策略,有的时候即使能多拨成功,也只拥有单拨的速度,所以多拨只是一个看上去很美、实用价值不大的功能。

    直接部署方案中,多拨需要具备多个WAN口,并将所有WAN口和入户宽带连接到同一个交换机上。

    虚拟化部署方案中,由于WAN口只是一个软件层面的虚拟网口,可以无限添加,所以不需要多个物理WAN口和交换机。