去年家里搞了一套Unifi后(US8-switch+UAP-AC-pro+UAP-AC-IW),WiFi网络一直比较稳定,但出过几次问题在于主路由是软路由,爱快系统莫名崩了,换了opnsense后第二天又崩了,家人虽然没怨言,但作为曾经网络工程毕业的,脸面无全,于是一怒之下入了USG。。。
背景
家里原本的网络是这样的,主路由是软路由的原因考虑到:
- 性能上可以更好
- 方便使用丰富的插件
- 弱电箱比较小 ,这样可以节省一个设备
网络的稳定性完全依赖于软路由,它是基于ESXi虚拟机内挂了两个路由系统,一个是iKuai作主路由,另一个Openwrt作旁路由。当主路由不稳时,全家所有设备都不能上网。
方案
那么重构的方案目标自然是让家庭主线路稳定,不受软路由不稳定影响,并且也继续为有需要的设备提供上外网服务。继续考虑到Unifi全家桶就差USG了,忍痛咬牙入了。购买是走闲鱼,居然比jd/taobao便宜近300大洋:) 到手的USG感觉比想象中大一些也厚一些,希望可以稳定吧,无论如何,对弱电箱又是个挑战,也得把它放进去。 于是新的方案大体上是这样:
我们让家人大部分设备都是使用稳定和右边网络,经过Unifi全家桶光环加持过的。 个别设备要访问谷歌等再通过将网关设置为OpenWRT的IP即可。
面临一个问题
在Unifi AC Controller找遍了设置和查看了很多文档(主要是DHCP及Option相关),都没有可以单独设定某些设备的网关,只有最简单的静态IP的设置。于是只能从USG的系统入手,看如何设置它。
静态IP设置
为需要单独设置网关的设备,设置使用静态IP。(这一步可以在Controller中设置,也可以通过命令行设置)
|
|
为设备设置单独的网关(路由)
|
|
这样当设备获取IP时,其网关默认为我们OpenWRT了。
但是
仍然存在几个问题:
- 复杂的设置及静态路由等,很难应对未来多变的设备变化需求
- 网络的隔离性较差,家里的智能设备等都在同一个网段下
终极方案
定义不同用途的VLAN段,将不同用途的网络分配到不同VLAN下。于是我定义了如下四种网段:
- 192.168.1.1/24 管理网段,只用于Unifi全家桶设备,切换到这个网段是对网络维护工作。
- 192.168.10.1/24 IoT设备,防止智能家居漏洞对家庭网络影响。
- 192.168.30.1/24 基础可用网络,网关为USG,主要在于稳定。
- 192.168.50.1/24 学习网络,网关为OpenWRT,主要在于自由翱翔。
具体配置很简单,建议使用经典的UI界面操作。
创建VLAN网络,指定VLAN和网段,根据上面需求创建多个网络(并且可以指定此DHCP服务的网关。)
让无线使用此网络配置,这样的方式创建多个WiFi,不同的WiFi绑定不同需求的VLAN。
让有线设备也绑定VLAN。这里为了让软路由及其下设备都可以和ssr同一个VLAN,需要在交换机层绑定端口到对应VLAN.
至此,几个诉求都满足了,收工?
事情没完
如果你是严谨的人,尝试从IoT从ping了一下内部其它网络,你以为分不同VLAN网络就隔离,但是,它居然通了!!!实际上在Unifi中,不同VLAN之间默认还是可通信的,这样我们要的安全性从何谈起呢?于是一番防火墙上的设置是少不了。这块的设置从网上这个视频中学习到(内容在视频55分之后)。
Unifi的firewall的设置有点类似于iptables的规则,上述视频讲得不错了,主要要点有几个:
- 内部的流量控制多数是从
LAN IN
下面设置。 - 让各个VALN隔离的规则,设置Drop规则,以IoT为例,所有到IoT的包都Drop。(将是放在最后的默认规则,代替Unifi默认的互通)
- 允许部分自己认为合理的流量,比如我希望其它内部网络如Main可以访问IoT网络。
后记
- 后面考虑到IoT设备之间可能有消息往来,网络从Guest切换回了Corporate模式,但是否如何还要考究,好像他们有自己的协议方式。