家庭网络的性能和稳定性对大多数家庭都是首要的需求。家里的主路由也还是
推荐使用硬路由,少折腾为好。但即使象华硕路由器这样的高端路由器,在固件功能上依然很难满足很多玩家的需求。一个OpenWrt的软路由更方便安装各种
软件,加上灵活的配置可以更好地适应更多场景需求。家庭网络中在硬路由做主路由外,加一个OpenWrt的软路由做旁路由,应该是一个两全的选择。既保证了家庭网络的稳定性和性能,又可以不断开发拓展新功能。在折腾软路由时,即使出现问题,也不会影响家庭网络的正常使用。

家庭网络
OpenWrt的软路由既可以是一个硬件盒子,可也以是运行在家庭网络上的虚拟机。作为一个旁路由,一般有配置两个网口就可以了。

OpenWrt旁路由设备列表
在大多数情况下,只需要一个网口用来连接主路由就可以了。像下图中的示例,主路由是192.168.123.0/24的网段,IP是192.168.123.1,旁路由IP是192.168.123.254。

OpenWrt旁路由网络接口
尽管旁路由的IP需要是固定的,也可以通过DHCP获取。前提是在主路由的DHCP中启用手动指定IP。

主路由DHCP手动指定IP配置 - 华硕路由器
旁路由拥有第二个网口在许多情况也是必要的。在一些场景下可以方便建立另一个需要网络连接。比如连接家庭光猫的IPTV网口,用于打通家庭的IPTV网络,
提供组播转单播接口及互联网观看,自动路由IPTV及互联网流量等。

OpenWrt旁路由网络接口 - LAN + IPTV
有了软路由的旁路由后,就可以随心所预安装应用开拓新功能了。比如说打通家里的IPTV网络,比如说提供科学上网,比如更灵活的DDNS服务及内网穿透等。可以说,软路由为家庭网络打开了一扇门,有着无限的想象空间和折腾乐趣。
因为是旁路由,家庭设备的正常上网不会走旁路由,默认会走主路由。这也是家庭网络稳定的保障。如果希望一个设备的访问流量走旁路由,需要正确设定设备的网络连接。要把旁路由设置为设备的路由网关及首选DNS服务地址。可以在设备上手工设置,比如下图的示例,是在Windows终端中手工编辑网络IP配置。把网关和DNS都指向旁路由的IP(192.168.123.254)。

手工编辑网络IP设置 - Windows
可以想象这种手工设置在很多情况下并不方便。最好是可以通过DHCP服务,能够在一般设备默认使用主路由的同时,可以指定一些设备自动配置使用旁路由。在技术上,DHCP Option支持网关及DNS的配置(DHCP Option 3和DHCP Option 6),但并不是所有的路由器都能支持基于设备的DHCP Option配置。一般来说,家庭网络的DHCP服务最好在主路由上,这样旁路由的故障并不会影响家庭网络的DHCP服务。遗憾的话,很多家庭硬路由不支持基于设备的DHCP Option配置。拿华硕路由器为例,官方的固件只支持统一的DHCP网关设定,不能为不同设备设置不同的网关地址。不过华硕路由器改版固件,比如梅林固件,是支持基于设备的DHCP Option配置的,可以通过定制的dnsmasq配置为指定的设备配置不同的网关及DNS地址。dhcp-option=tag:tag1,option:router,
192.168.
123.254, option:dns-server,
192.168.
123.254dhcp-host=xx:xx:xx:xx:xx:xx, set:tag1dhcp-host=xx:xx:xx:xx:xx:xx, set:tag1
如果主路由不支持基于设备的DHCP Option配置,那只能把DHCP服务设置在OpenWrt的旁路由上。目前OpenWrt也还不支持通过用户界面设置,可以通过脚本或者直接修改DHCP配置文件设置。参考脚本如下。uci
set dhcp.tag1=
"tag"uci
set dhcp.tag1.dhcp_option=
"3,192.168.123.254 6,192.168.123.254"uci add dhcp hostuci
set dhcp.
@host[-
1].name=
"AppleTV"uci
set dhcp.
@host[-
1].mac=
"xx:xx:xx:xx:xx:xx"uci
set dhcp.
@host[-
1].tag=
"tag1"uci commit dhcp/etc/
init.d/dnsmasq restart
有了DHCP的自动分配,在家庭网络上使用旁路由也会方便很多。