重新部署了一下家庭网络

本文包含内容

  • 启动U盘的制作
  • 工控机安装ESXI
  • EXSI配置网卡直通
  • 在VMWare ESXI环境安装OpenWrt
  • 单线复用:只用一条网络同时传输WAN和LAN数据
  • 交换机如何配置VLAN

为什么要折腾

  • 在设备上装App留学练英语会让手机电量掉的特别快。
  • 希望每台设备都可以留学练英语:
    • 装App好麻烦
    • App要花钱
    • 想让家里老人也能学学外语
  • 原来的接线方案太费路由:
  • 一台华硕AC86U + 一台斐讯K2P,贼老贵的好路由就被放到弱电箱里,暴殄天物啊,作孽啊!
  • 两个路由器分隔成二个网络,各自都提供NAT服务,每次需要暴露一个服务的时候,都要先在K2P上设置端口转发、再在AC86U上设置端口转发。
  • Office真的好难激活呀,不希望在每个电脑都装各种KMS。
  • 我的K2P A2刷不了机,可用的软件太少。(买来之后没有第一时间刷机,结果被天杀的某讯给远程升程到了最新系统,所有破解手段都失效了,截至目前好像只能通过拆机、硬接跳线的方式来刷机,F**K某讯!)
  • 就是这个K2P,好像被推送过2次更新,有一次的升级居然会把我家WIFI自动共享出去(类似@PHICOMM共享XXX),然后后台查看连接的设备里经常有一些不认识的。有一次的升级,会在一个阶段每天0点的时候,WIFI信号都会消失一分钟左右,感觉是在自动重启,但是明明我没有设置定时重启,强烈的觉得是被黑了,或者有后门控制。某讯,我TMD尔你八辈祖宗!
  • 弱电箱太小,而且里面的那个小插件板,孔又少,孔间距又小,完全不够用,不得不又拿了个插线板塞在里面,这个弱电箱乱的呀,简直不想着再打开,而且很多设备挤在那里感觉散热不是很好。

原来的网络

  • 弱电箱里是联通光猫,光猫设置为桥接模式。
  • 客厅电视墙上有一个网口面板,面板的背部打线,通过埋在墙里的线管,走一根6类网线伸到弱电箱里,连接到光猫的一个百兆LAN4口。墙上这个网口面板通过一根网线连到联通的IPTV盒子,盒子用HDMI连到电视上。
  • 弱电箱内,通过一根6类网线将光猫的一个千光LAN1口连到华硕AC86U路由器的WAN口上,由AC86U负责PPPoE拨号,它的访问地址是192.168.5.1,DHCP分配的IP是192.168.5.2 ~ 192.168.5.254。
  • 客厅沙发墙上有一个网口面板,面板的背部打线,通过埋在墙里的线管,走一根6类网线伸到弱电箱里,连到华硕AC86U路由器的一个LAN口上。墙上这个网口面板通过一根网线连到沙发旁一个五斗柜上的K2P的WAN口,AC86U为K2P分配的IP固定为192.168.5.108,K2P的访问地址是192.168.2.1,DHCP分配的IP是192.168.2.2 ~ 192.168.2.254。
  • 弱电箱外、沙发旁的这个五斗柜上,有一台群晖DS918+,用一根网线把它连接到K2P的一个LAN口上。
  • 家里的全部设备都通过K2P的WIFI上网。

image-20201216152550482

image-20201216155334856

image-20201216154838139

现在的网络

  • 弱电箱里是联通光猫,光猫设置为桥接模式。

  • 客厅电视墙上有一个网口面板,面板的背部打线,通过埋在墙里的线管,走一根6类网线伸到弱电箱里,连接到光猫的一个百兆LAN4口。墙上这个网口面板通过一根网线连到联通的IPTV盒子,盒子用HDMI连到电视上。

  • 弱电箱内,光猫的千兆LAN1接一根六类网线连到水星网管交换机SG105 Pro上。

  • 主卧床头墙上有一个网口面板,面板的背部打线,通过埋在墙里的线管,走一根6类网线伸到弱电箱里,连到水星网管交换机SG105 Pro上。

  • 主卧过道墙上有一个网口面板,面板的背部打线,通过埋在墙里的线管,走一根6类网线伸到弱电箱里,连到水星网管交换机SG105 Pro上。

  • 客厅沙发墙上有一个网口面板,面板的背部打线,通过埋在墙里的线管,走一根6类网线伸到弱电箱里,连到水星网管交换机SG105 Pro上。墙上这个网口面板通过一根网线连到沙发旁五斗柜上的工控机4415U的eth1口上。

    注意:连接工控机eth1网口和交换机的这根唯一网线,需要进行复用,既传输WAN口的外网数据,又要传输LAN局域网内的数据。

  • 弱电箱外、沙发旁的这个五斗柜上,有一台群晖DS918+,用一根网线把它连接到工控机4415U的eth3口上。

  • 还是这个五斗柜上,有一台华硕AC86U,用一根网线把它连接到工控机4415U的eth5口上,AC86U设置为AP模式,任性不!

  • 家里的全部设备都通过华硕AC86U的WIFI上网。

image-20201216165203525

配置交换机

借助弱电箱里的交换机,相当于将光猫、台式机、软路由都连接到了一起。五斗柜上的软路既要负责PPPoE拨号,又要负责局域内的数据交换。

上面这样说可能不好理解,让咱们举个栗子,我们现在想从台式机访问百度:

  1. 台式机发送一个到baidu.com的请求。
  2. 台式机的网卡将数据经过网线,到达交换机。
  3. 数据经由交换机,再经过那条复用的网线,到达软路由,从软路由的LAN口进入。
  4. 再从软路由的WAN口流出,经过复用的那条网线,到达交换机。
  5. 经过交换机送到光猫。
  6. 发往外网。

要实现这样功能,就需要使用VLAN技术。从弱电箱到五斗柜只有这根唯一的网线,因此就需要用它同时传输WAN数据和LAN数据,通过2个不同的VLAN,将WAN数据与LAN数据进行隔离:VLAN 100传输WAN数据,VLAN 200传输LAN数据。

网线两端分别连接的是交换机的Trunk口(5号口)和软路由的Trunk口(eth1),交换机剩作的4个口都作为Access口用来连接设备。

规划

VLAN/接口 1 2 3 4 5 用途
VLAN 100 untagged - - - tagged WAN
VLAN 200 - - untagged untagged tagged LAN
连接设备 连光猫LAN1 暂时没用上 连主卧面板 连主卧面板 连到沙发墙面板

配置

通过网线连到这条交换机,登陆到它的管理后台,然后在“802.1Q VLAN”设置中添加VLAN100和VLAN200这2个VLAN。VLAN100使用了端口1和端口5,VLAN200使用了端口2、端口3、端口4。

image-20201218093120780

在“802.1Q PVID”设置中为交换机的5个端口都配置上PVID。端口1的PVID是100;端口2、3、4的PVID是200;端口5的PVID是1。

image-20201218093135648

VLAN科普

表格中的untagged端口,也即“Access“口,通常用来连接设备与交换机。

表格中的tagged端口,也即Trunk口,通常用来连接交换机与交换机、交换机与路器。

Access口

  • Access端口接收数据的处理方法:

    • 一般只接受“未打标签”的数据帧 ,即,普通以太网数据帧。
    • 当收到“未打标签“的数据帧时,根据接收该帧的端口的PVID,给帧“打标签”,即插入4个字段的VLAN ID字段,字段中的VID取值与端口PVID取值相等。
  • Access端口发送数据的处理方法:

    • 若帧中的VID与端口的PVID相等,则去除“标签”并转发该帧。
    • 若帧中的VID与端口的PVID不相等,则不处理。

Trunk口

  • Trunk端口发送数据的处理方法:

    • 对于数据帧中的VID等于端口PVID的数据帧,去掉“标签”再转发。
    • 对于数据帧中的VID不等于端口PVID的数据帧,直接转发。
  • Trunk端口接收数据的处理方法:

    • 接收“已打标签”的数据帧,而不管数据帧中的VID是否等于端口的PVID。
    • 接收“未已打标签”的数据帧,根据端口的PVID给帧“打标签”,即插入4个字节的VLAN ID字段,字段中的VID取值与端口PVID取值相等。

原理说明

WAN口

  1. 交换机端口1设置为Access口,它的PVID设置为100,光猫的以太网帧从这个端口1进入的时候是没有“标签”的,根据Access端口接收数据的处理方法,用接收该帧的端口1的PVID,给帧“打标签”,即在数据帧中间加上4个字节,其中最重要的是12bit的VID,VID与端口的PVID取值相同, 也就是100。可以简单理解为这个时候数据帧就被打上了“标签100”。
  2. 然后这个带着”标签100”的帧,在交换机内部进行广播时,发现端口2、端口3、端口4的PVID都是200,与帧中的VID(100)不相同,那么就不处理,无法从端口2、3、4发送出去。
  3. 交换机端口5设置为Trunk口,它的PVID设置为1,刚才那个带有VID是100的帧,在交换机内部,到达Trunk端口5时,发现帧中的VID 100与端口PVID(1)不相等,则直接转发这个帧。
  4. 数据经过那根唯的网线到达OpenWrt软路由的eth1口,发现这个帧是“打好标签”的,于是接收它(Trunk口不管数据帧中的VID是否等于端口的PVID,只要是有标签就接收)。然后在软路由内部,发现一个网口配置为”eth1.100“,可以理解成这个端口的PVID是100,于是按Access端口发送数据的处理方法,帧中的VID 100与端口的PVID相等,则去除“标签”并转发该帧,这样WAN口就收到了普通的以太网数据帧。

LAN口

  1. 卧室的台式机发出的以太网帧从交换机的端口2进入的时候是没有“标签”的,根据接收该帧的端口2的PVID,给帧“打标签”,即在数据帧中间加上4个字节,其中最重要的是12bit的VID,VID与端口的PVID取值相同, 也就是200。可以简单理解为这个时候数据帧就被打上了“标签200”。
  2. 然后这个带着”标签200”的帧,在交换机内部进行广播时,发现端口2、端口3、端口4的PVID都是200,与帧中的VID(200)是相同的,那么把“标签”去掉,转发这个帧。
  3. 交换机端口5设置为Trunk口,它的PVID设置为1,刚才那个带有VID是200的帧,在交换机内部,到达Trunk端口5时,发现帧中的VID 200也端口PVID(1)不相等,则直接转发这个帧。
  4. 数据经过那根唯的网线到达OpenWrt软路由的eth1口,发现这个帧是“打好标签”的,于是接收它(Trunk口不管数据帧中的VID是否等于端口的PVID,只要是有标签就接收)。然后在软路由内部,发现一个网口配置为”eth1.200”,可以理解成这个端口的PVID是200,于是按Access端口发送数据的处理方法,帧中的VID 200与端口的PVID相等,则去除“标签”并转发该帧,这样LAN口就收到了普通的以太网数据帧。

启动盘

制作

某老桃和某白菜的启动盘都爆出过会修改主页和偷偷安装软件的消息,如果你想要一个干净的启动盘,Ventoy是第一和唯一选择,Ventoy就完了!

Ventoy会把你的U盘分成2个分区,一个大一点的、一个小一点的:小一点的用来保存这个启动盘使用的文件,另外那个大一点的分区保存你要安装的操作系统的镜像,也就是说这个启动盘可以同时支持安装多个系统:Windows、Ubuntu、CentOS啥的都可以,不像以前一个启动盘就只能装一个系统,想要换的话,还得格式化U格重新做一个启动盘。

超级好用的装机神器——Ventoy

但是Ventoy只是负责引导到了系统的安装,可是我们还是需要像以前的PE系统盘那样的功能,我这个工控器上装的一个2.5寸SATA固态硬盘就需要在安装ESXI前先格式化一下,也就是需要先临时启动一个Windows PE系统,然后这个系统里集成一些磁盘工具、检测工具、写盘工具等。

这个时候就需要微PE,这个软件也是比较纯净的,下载完了之后是一个exe可执行程序,然后右下角有一个安装方式,选择“生成可启动ISO”,然后把这个生成的ISO文件也复制到Ventoy的分区中。

image-20201216144118607

最后的启动盘效果

image-20201216143539098

ESXI安装

安装步骤

尽量安装ESXI6.7版本,据说ESXI 7.0版本默认会划掉一大块硬盘空间去做虚拟内存,想释放这些还要改什么东东才行,别折腾了!

  1. 设置工控机物理机的BIOS:
    • 时间日期设置
    • 引导顺序设置
    • 加电自动启动
    • 虚拟化支持开启
  2. 从Ventoy的启动项中选择ESXI,安装、设置密码。
  3. 设置ESXI的管理地址为192.168.5.254。

网卡直通

我的这款6网口的工控机是支持网卡直通的,也就是运行在ESXI中的虚拟机,可以像直接使用物理网卡一样,而不是ESXI再利用CPU资源去模拟网卡进行数据交换,反正网上的教程都说这样可以降低CPU的负载。

选中“管理” –> “硬件” –> “PCI设备”之后,在表格下面有一个“快速筛选器…”,选择“支持直通”,这样就过滤出来所有的支持直接技术的设备了,然后把除了eth0以外的另外5个网口,全都设置为活动。

注意:不要将第一个网口设置为直通,要不然就打不开ESXI的管理后台了。

image-20201216170654707

OpenWrt安装配置

准备

使用ESXI安装OpenWrt需要先将标准的img格式的固件镜像文件转换成VMWare ESXI使用的虚拟机磁盘格式,打开StarWind V2V Converter,选择需要转换的固件:

image-20201217141045224

选择需要转换成的格式为VMDK:

image-20201217141110552

进一步选择目标镜像的格式为ESXI的服务器镜像:

image-20201217141136044

转换完毕之后,会生成2个扩展名是.vmdk的文件,盛盘备用:

image-20201217141207310

安装

新建一台虚拟机:

image-20201216171616531

填入名称、并选择操作系统的类型和版本:

注意:这里版本一定要选择Linux内核版本2.6及以上的,要不然后面添加虚拟硬件的时候,是不支持选择USB3.0的,只能选USB2.0

image-20201216171639385

分配CPU和内存:我的工控机上插了2条DDR4 8G的内存,所以这里就直接分配了4G固定内存给OpenWrt。

注意:如果你在配置内存时,不展开这个内存配置前面的小箭头,只修改输入框里的值,那么保存之后,是打不开虚机的,把它展开,改大一点,或者干脆就把预留所有客户机内存(全部锁定)那个复选框勾上就好了。

image-20201216172025435

删掉默认的那个磁盘,顺手把USB改成3.0:

image-20201216172750718

点击“添加其他设备”,选择“PCI设备”,重复多次,把直通的那5个网卡全都添加进来:

image-20201216172843128

image-20201216172958659

选择“添加磁盘”,“现有硬盘”:

image-20201216173156359

在弹出的“数据存储浏览器”中,先点击“创建目录”,然后选中这个新建的目录,再点击“上载”按钮:

image-20201216173332936

上传的时候选择之前用StarWind V2V Converter转换出来的那2个vmdk文件,先上传小的那个、再上传大的那个,上传完大的那个2个文件就会合并成一个,然后选这个文件,完成创建虚拟机操作:

image-20201217142429650

选中虚拟机之后右键,设置一下OpenWrt软路由随ESXI一起自启动:

image-20201217142259662

配置

在ESXI的虚拟机列表中,点击OpenWrt那台虚拟机,进入到详情之后,打开“控制台”:

image-20201217143926998

使用vim编辑/etc/config/network文件,找到lan口的配置,将IP地址配置为192.168.5.1(我使用的这个固件,默认的就是这个地址,其实并不需要改动):

1
2
config interface 'lan'
option ipaddr '192.168.5.1'

使用浏览器打开http://192.168.5.1,输入用户名root,密码为空,直接点击登录:

image-20201217144812315

点击“网络”、“接口”,找到网络名是”LAN”的一行,点击后面的修改按钮:

image-20201217145158718

切换到“物理设置”Tab页,在接口区域里,找到“自定义接口”,在输入框内填写eth1.200,并保证它被选中。接着,勾选中eth0、eth2、eth3、eth4、eht5。

解释一下:这里填写的eth1.200,eth1就是工控机连接交换机的那个接口(相当于通过交换机与光猫相连),200则是我在交换机上配置用来传输LAN口数据的VLAN的VLAN ID。

image-20201217162521897

点击“网络”、“接口”,找到网络名是”WAN”的一行,点击后面的修改按钮。切换到“基本设置”Tab页,传输协议选PPPoE,然后输入你的宽带账号和密码:

image-20201217164111392

接着切换到“物理设置”Tab页,在接口区域里,找到“自定义接口”,在输入框内填写eth1.100,并保证它被选中。

解释一下:这里填写的eth1.100,eth1就是工控机连接交换机的那个接口(相当于通过交换机与光猫相连),100则是我在交换机上配置用来传输WAN口数据的VLAN的VLAN ID。

image-20201217164300481

保存并应用之后,点击“网络”、“接口”,列表中LAN和WAN列表中的那个蓝色的连接按钮,查看WAN口那里会不会获得到公网IP:

image-20201217164539991

遗留问题

  • 不能为设备命名,软路由这点和硬路由比,简直弱爆了,哪怕是我用过的最便宜的54M破路由都是可以的,OpenWrt想为设备命名好想只能在“网络” –> “主机名”那个功能里设置:
    • 据说是为IP地址设置别名,而不是MAC址址。
    • 不能用中文!
  • 远程桌面3389一直无法映射成功。
  • 现在的网络方案中,光猫是直接通过网线连到电视墙上的面板接IPTV盒子的,未来如果想弄个游戏主机放在电视那里,肯定是要有线的,那么就又得复用这根网线同时传输IPTV数据和局域网数据,因为IPTV盒子是通过光猫的DHCP拨号的,那会不会和软路由的DHCP冲突呢,现在还不知道咋弄。
  • 固件的选择困难:
    • Sirpdboy的固件(20201119 SirpdboyOpenWrt-ipv6-5.4-Firmware):
      • 防火墙端口转发有问题,如果外网暴露的端口和内网的端口不一致时,从外网访问就会慢的不行,甚至是连接失败,换成了eSir的固件之后,这个就问题没了,确定应该是这个Sirpdboy固件编译的OpenWrt问题或者是集成的插件里可能有冲突。
      • 自带的DDNS插件好像叫kooldns,我用它来解析我托管在Dnspod的域名时,每次重启路由,IP发生变化的时候,居然会创建相同二级域名的多条记录,比如:重启前Dnspod的管理后台有一条router –> x.x.x.x的记录,重启后,会多出来一条router -> y.y.y.y的记录,喵的。
      • MWAN3 分流助手这个插件如果不卸载UPnP功能就是不可用的,在群晖里的“外网访问”里有一个“路由器”标签,在这里发现不了OpenWrt设备,卸载了MWAN3 就可以了。
      • 没有WOL网络唤醒、OpenVPN、Docker等功能。
      • 只要打开那个广告过滤插件,油管就提示HTTPS证书不对,就打不开了,喵喵的。
      • 安装这个固件,居然没有办法修改磁盘大小,安装好这个固件后只剩下差不多300M的空间,于是想给磁盘多分配一些,结果停止虚拟机再编辑的时候,就提示要大于多少多少空间,开始我以为是ESXI的问题,后来发现用别的固件就不这样。
    • eSir的固件(openwrt-gdq-v10-1-2020-x86-64-generic-squashfs-combined):
      • NAT回路有问题,据恩山论坛的网友反映有eSir的固件最新的12.1版本,没有办法在内网中使用公网解析好的域名来访问,只能用IP地址,按他说的12.1、11.1都有这个问题,只有10.1是好的,我没亲自试,所以就直接装的10.1高大全版本,不过臣妾好想追最新版的呀!
      • 我的工控机有6个网口,除了eth0以外都设置了网卡直通,在ESXI用虚拟机的方式安装这个固件,网口的顺序居然是串位的,明明是插在工控机的eth1、eth3、eth5这三个网口上,但是在“概况”中显示的却是eth0、eth1、eth2和eth4,我勒了擦,作为强迫症好难受啊!
  • 弱电箱里连接到主卧床头那个网口面板不通,不知道是装修师傅给面板打线的问题还是网线在弱电箱那端的水晶头捏的有问题。

参考

EOF