背景
手上有个HP 800Gen1dm小主机,想做成一个ALL IN ONE小机器,最基本的要实现路由功能,虚拟机等功能。
网络
做路由器的话,一般来说要2个网口。这个小机器有一个有线网卡,机器里面还可以插一个m.2的无线网卡。按道理说可以帮m.2的转换一个有线网卡出来,然后帮2个USB拆掉多出一个网口,但是这样破坏机器了,不想这样弄。
我考虑使用ESXI,配置2个虚拟网卡,一个接外网,一个作为虚拟内网。无线网卡可以做一个无线AP给外部设备来链接作为路由器使用。
基本理论没啥问题,开始搞了。
操作
首先ESXI层面:
我们选择网络 – 虚拟交换机-添加标准虚拟交换机,取个名字,暂定:vSwitchLocal
这里注意要帮安全里面都勾选接受,不然后面会遇到大坑。
然后端口组这边我们添加2个端口组,一个给虚拟内网用,一个给虚拟内网的管理端口用
然后我们为esxi在虚拟内网增加一个管理网卡,便于后面连接esxi:
关于无线AP
我初心是想使用Mikrotik来搭建我们路由器的,但是mikrotik对于网卡的支持太挑剔了,找了半天似乎没有支持的m.2网卡,只支持minipic的网卡比如我差点买的Atheros QCA9880,具体可以看我查的连接:
https://forum.mikrotik.com/viewtopic.php?t=158615
https://forum.mikrotik.com/viewtopic.php?t=195627
https://forum.mikrotik.com/viewtopic.php?t=192746
似乎QCA9880是可以用的,但是我的机器没有mini pci接口,似乎有转接卡可以实现,据说这个网卡发热比较大,然后价格也很贵,要200多。。
我准备买个Atheros QCA4174A来碰碰运气,结果果然是没啥用,和上面最后一个帖子里面那个哥们一样,ROS的 PCI设备里面能看到,但是没有驱动支持,没法用。
我又试着跑了个openWRT,然后我发现openWrt驱动弄好是能支持这个网卡的,于是乎我想到个骚操作,我画个图来说明吧:
ESXI内部虚拟一个LAN,实体网卡作为ROS的WAN,然后通过一个openWrt帮这个虚拟的LAN网络广播出来。
坑
整体操作没什么技术难度,就是我在openWrt尝试搭建AP的时候被坑死了,我最初使用的是:https://downloads.x-wrt.com/rom/ ,叫x-wrt。我查了网上资料结合自己研究来看,应该很简单,就是创建个AP模式的无线网络,然后帮无线的网络设置到WAN里面就行了。
但是我实际操作下来,openWrt是可以获取到ROS的地址的,但是不管怎么在openWrt里面捣腾我的无线设备都获取不到ROS的IP,我还开了ROS的dhcp日志来看,也看不到任何数据。然后我一度以为是这个openWrt的镜像有脏东西,然后一度换了官方原版的openWrt来实现(还要自己打无线网卡驱动)和各种版本的openWrt来实现,发现都无济于事,都是一样的现象,获取不到地址。我几乎帮openWrt里面的设置都调整了一通,网上也查了很多资料都没用。
当我隔一天准备放弃,去下单那个昂贵的QCA9880网卡时,我脑袋里突然灵光一闪一个词:“混杂模式”。我以前玩虚拟化好像遇到过这个问题,然后就有了我上面提示的,创建虚拟交换局里面那个注意事项了。
然后我调整了虚拟交换的安全之后,无线AP就能正常工作了。。。HOLY SHIT !!!
别的没啥好说的了,这个文章主要记录下这个坑,别的都是常规操作和这个方案的分享。