让Gen8上的软路由跑起来:不花钱的家庭网络改造,似乎还有机会赚一百多块
新家入住后的这一年半时间里,已经折腾了好几次家庭网络,果然是生命在于折腾啊,大概经历了这么几出:
第1阶段:把网件电磁炉R6300V2、移动硬盘一股脑塞进弱电箱,光猫桥接,用路由器拨号,算是具备了全屋设备透明代理、离线下载等功能。至于无线覆盖,只有客餐厅才行,主卧、书房基本上没信号,其实也还好,家里两口人平时都习惯4G上网,特定需要时才会想着连WiFi。问题在于电磁炉的温度,夏天时都已经80多摄氏度了,看得真是心惊胆战。
第2阶段:研究了一些VLAN的知识后,入了一个必联8口网管型千兆交换机BL-SG108M。张大妈上有晒单
当时价格就100出头,停产很久了,如今价格都已经跌到两位数了。当时试图做个单臂路由,用复用单根网线以trunk的方案把R6300V2从弱电箱里移出来。可是短暂尝试后失败了,一直没搞定在梅林固件下怎么在WAN口实现多VLAN,于是很快转入了下个阶段。
第3阶段:入了一个Mikrotik RB750Gr2有线路由放进弱电箱作为主路由,这真是我见过最小的5口千兆路由,功率仅仅3W。同时把R6300V2从弱电箱里拯救了出来,索性只当AP用了。这样虽然基本让WiFi覆盖了全屋,但是代价不小,ROS虽然功能强大,却不像改版梅林固件那样接地气,没有s*s、远程下载之类的功能,虽然有说法说可以通过metaRouter运行openWrt的方式曲线实现,但是RB750Gr2只有16MB ROM,这个可行性也没法验证了。
背景
这次折腾的初衷是发现家里的小米扫地机器人扫着扫着就失联了,这才发现家里WiFi覆盖还是有死角,虽说没多大影响,但是已经可以逼死强迫症了!
最简单的办法嘛,自然是再加一个AP,反正只是些智能家居设备需要,对于带宽要求也不高。然而问题来了,RB750Gr2上已经接了客厅电视、书房PC、R6300V2,占用了3个LAN口,这时才发现最后一个LAN口居然是坏的……坏的……坏……的,这不坑人嘛?!而且其实还有三间卧室的网线都还在弱电箱里闲置着呢,虽说暂时用不上,但万一哪天就要用呢?
趁着春节休息的几天,又琢磨着还是把之前闲置的那个必联8口交换机用上,梳理了一下折腾的目标:
(1)各个房间的网线都能接入交换机;
(2)全屋设备能通过s*s透明代理出去;
(3)尽量利用闲置设备、不添置新设备(春节首富家不给力,在某东价格高位时买东西是张大妈的风格吗?)
方案
当初折腾第2阶段的时候也做过一些功课,关于单臂路由的文章也学习了不少。其中貌似都提到了需要两个网管型交换机。一个放在弱电箱里,连接各个房间的网线,另一个放在路由器旁,用两个端口分别与路由器的WAN、LAN口连接,但是一直不想再买一个网管型交换机了,虽说国产货不贵,但也是一笔开支,何况还有后期的电费对吧,说白了就是一个字:穷。
(其实路由器本身就有交换功能,通过openWrt、DD-WRT应该能让路由器充当交换机功能的,理论上来说是可以直接搞定的,怎奈我笨 )
这次突然灵机一动把目光投向了之前买的HP Microserver Gen8,都说这个可以用作家用基础的All-in-One Homelab,但是其实我只是在上面装了esxi,然后跑了一个黑裙晖、一个Ubuntu Server而已,远远谈不上物尽其用。
而esxi里面有一个“虚拟交换机”的概念,即vSwitch,所有的虚拟机都是通过vSwitch与设备上的物理网卡通信的。
突然灵光一闪:能不能直接用虚拟机跑一个软路由,然后利用虚拟交换机与弱电箱中的物理交换机实现trunk,从而实现软路由拨号并作为全屋设备的网关?目标拓扑图在此:
实战
经过验证后,答案是肯定的。其实我只是个爱折腾的小白,所以极大可能性上我的经历并不是最优的,也欢迎高手们不吝指导,权当抛砖引玉吧。
1、配置物理交换机上的VLAN ID和PVID
交换机上的物理端口分配是这样的:
(1)Port 1连接光猫;
(2)Port 2-7连接各个房间网线;
(3)Port 8连接放在客厅里的Gen8,也就是作为trunk端口。
我一共划分了3个VLAN,ID分别是10、20、77,如图所示:
三个VLAN的作用是这样的:
(1)VLAN 10:一般家用,可以同时访问内网和外网;
(2)VLAN 20:访客用,只能访问外网,不能访问内网;
(3)VLAN 77:用于跟光猫通信。
规划好了就在交换机里配置吧,不得不说,必联这交换机的配置界面有股浓浓的复(tu)古(bie)风,如下:
(1)VLAN 1是默认的管理VLAN,反正也不能删,不能改,就不管了;
(2)VLAN 10由Port 2-8组成,其中Port 8要作为与其它VLAN互通的trunk口,设为tagged,其余的Port 2-7设为untagged;
(3)VLAN 20由Port 7-8组成,由于两个端口都设计了要跑多个VLAN,所以都设为tagged;
(4)VLAN 77由Port 1和8组成,Port 8是trunk口,设为tagged,Port 1设为untagged。
接下来还要设置默认PVID,即Port-based VLAN ID,是指当进入交换机的数据帧头部中没有VLAN信息时,由交换机根据设定的默认PVID值自动给数据帧加上VLAN信息,比如光猫LAN口、PC都不会默认加VLAN信息,也就是它们都需要这个。具体如下:
(1)Port 1是接光猫LAN口的,那边出来的数据帧中没有VLAN,所以要由交换机打上VLAN ID 77,此外还设置了仅允许untagged数据帧通过;
(2)Port 2-6是要接PC、笔记本这些设备的,这些终端设备一般都不会处理VLAN,所以需要交换机添加VLAN ID 10,并且也设置了仅允许untagged数据帧通过;
(3)Port 7考虑了要通过AP同时提供一般家用网络和访客网络,所以允许所有数据帧通过,默认接入一般家用网络,所以PVID=10,其实这个主要靠AP来控制,这个PVID设置其实意义不大;
(4)Port 8作为trunk口就更没啥好设置的,我就是随便点点……
2、配置esxi上的vSwitch
按照在物理交换机上的VLAN设置划分了4个端口组,名称分别是LAN(对应VLAN 10)、LAN_ISO(对应VLAN 20)、MODEM(对应VLAN 77)、Trunk。
值得一提的是Trunk端口组,可以看到VLAN ID是4095,这其实是esxi的一种VLAN模式,也就是所谓的VGT(Vmware Guest VLAN Tagging)。
此时esxi主机本身不处理VLAN 4095端口组的数据,而是全部交给虚拟机处理,虽说不能像物理交换机上那样设置仅允许特定VLAN通过,但这里也已经足以当作CISCO所谓的trunk来用了。
此外,记得保留管理端口组。我这设置的是允许VLAN 10进行esxi管理,严格一点可以单独设置一个管理用的VLAN ID,心大一点的话设个4095允许所有VLAN来做管理也不是不行。
3、在esxi上创建软路由虚拟机
我是直接给虚拟机添加了三个网卡,分别对应三个VLAN,也就是一个WAN口、两个LAN口。还想折腾一点的话可以只要一个LAN口,由软路由OS来控制两个VLAN。效果其实是一样的,我还是偷懒吧。
虚拟机创建好了,就要选择一款软路由系统了,选择其实还是不少的,比如爱快、ROS、openWrt、pfSense等等,我最终选的是koolshare出品的LEDE x64,用了他们站的梅林改版固件那么久,觉得还是比较靠谱的,而且本身自带s*s、去广告、QoS等功能,比较省事。
在k论坛可以搜到一个esxi适用的vmdk文件,虽然不是最新版本,不过完全可以在搭建完再升级,也很简单。把vmdk直接用WinSCP上传到esxi里,然后用这个vmdk创建一个虚拟硬盘即可。
需要注意的是,LEDE的默认网关IP是192.168.1.1,我们可能无法在PC上通过IP直接访问到LEDE的配置界面。我用了个笨办法,又创建了一个Guest虚拟机,配置网卡连接到LAN(也就是VLAN 10),然后直接用Ubuntu LiveCD的镜像启动,这时LEDE会给这个Guest虚拟机分配192.168.1.x网段中的IP,然后用Ubuntu里的Firefox访问192.168.1.1就可以打开配置页面了。
可以把PPPoE的账号密码、DHCP、s*s等等都设置好,待会儿就能直接用了。
4、接线,enjoy!
我毕竟是新手,之前试验的时候怕VLAN配置有误,弄得PC、Gen8相互访问不能,那就蛋疼了,所以是抱着笔记本、交换机坐在弱电箱旁边设置的,好吧,其实真没那么可怕。
经过前面一番配置,现在只需要按照VLAN配置往交换机上插网线就行了,Port 1接光猫、Port 7接R6300V2、Port 8接Gen8,其它几个口随意就好,都一样。
这就大功告成了!
现在用了3天了,网络状况稳定,透明代理正常,Gen8的CPU占用率也不高,唯一现在暂时没搞定的是iLO不能直接访问了,Gen8虚拟机上跑的软路由没法给物理端口再分配IP了,不过我现在也不太用iLO,所以暂时不管了,以后再想办法解决吧。
现在手头这个RB750Gr2算是闲置了,当二手怎么着也能出个一百多块吧,感觉折腾一番家庭网络,把闲置利用上了(其实多了个新闲置),甚至还有机会出个咸鱼稍稍回血,满意了。
感谢阅读。请大神轻拍,但请不要吝于指导!
Stay tuned!
转载请注明:徐自远的乱七八糟小站 » 让Gen8上的软路由跑起来:不花钱的家庭网络改造,似乎还有机会赚一百多块_生活记录_什么值得买