在U-NAS下配置虚拟机建立旁路由

2019-12-05 13:35:24 18点赞 221收藏 20评论

小编注:此篇文章来自#原创新人#活动,成功参与活动将获得额外100金币奖励。

背景介绍

  前段时间被各种油管主播和B站UP主种草软路由,上至N系、J系各类X86架构小主机,下至树莓、友善之臂各类Arm架构的“派”,不一而足。看着家里的就靠一台老旧的R6300v2作为主路由来撑着,不禁又动心起来,构思了好些方案,无奈囊中羞涩,迟迟没能下手。

  在软路由的CPU推荐图和各类评测中,J3455是个出现频率较高的CPU,同时支持VT-D和AES指令集,一直是相对比较受到关注的。突然想起,之前矿难捡的暴风云就是J3455的啊,现在是刷回万由自己的 U-NAS OS 系统来当做NAS使用,没有什么特殊4K解码之类的需求,性能对于我个人的日常使用其实是过剩了的。

  当初捡回来之前也在网上看过作为路由之类的应用,但是以前我想的是它才一个网口,做路由再怎么也需要2个网口才能当路由器吧,所以之后就再也没想过这方面的事了。

  这次除了建了一个虚拟旁路由之外,还顺便把几个月前淘的交换机也顺便换上了,虽然没什么大用,就相当于拓展了一些网络口来为以后做预留吧。

对“旁路由”的浅见

  其实之前对于什么叫“旁路由”完全没有什么概念,包括看各个大神的理解也各自不一样,我自己对它的浅见就是:它就是一台网关服务器,跟网页服务器、储存服务器等没有区别,只是它的功能仅仅是提供网关转发,由它来决定以它作为网关的设备该走什么线路,或者说交换什么数据。

  这样来理解就比较好解释为什么只需要一个网口也能工作,因为它是服务器而不是“路由”,所以本身并不区分什么Wan或者Lan,只是由于大部分这种“旁路由”都是采用基于Openwrt的系统,才在这些系统上区分Wan口Lan口。经过我在自己的网络环境下测试,不管那个网口是使用所谓的Wan口还是Lan口,只要它能够**直接**被指向它的设备发现,就能使用。即它跟网关指向它的设备之间是在拓扑结构上可以是平级的,而不像路由器那样是上下级的结构。

改造前拓扑结构

改造前拓扑结构改造前拓扑结构

  改造之前基本上所有的活都交给一个主路由来进行,主路由是二手的 R6300v2,虽然无线方面的表现已经足够家用,但是跑的插件多了CPU负载还是挺高的,温度高、效率低。

改造后拓扑结构

改造后拓扑结构改造后拓扑结构

  改造之后就是在U-NAS上建立了一台虚拟的网关服务器(旁路由),然后把需要用到“你懂的”那些功能的设备再将各自的网关指向这个虚拟网关。好处是不会影响其他不需要的设备,劣势是每个设备都要手动设置一次。

UNAS安装虚拟机

  我安装的 UNAS 系统是以前安装的 3.11 的版本,在APP管理器中有2个虚拟机APP,1个是VirtualBox、1个是“虚拟机”,这个“虚拟机”其实就是 Qemu-KVM,并且还搭配了一个 Wok+Kimchi插件 的Web管理后台,对于使用来说是相当方便了。

VirtualBox虚拟机

  VirtualBox方案在我的UNAS上没法运行,无法启动,在命令行下查看了一下报“The vboxdrv kernel module is not loaded.”错误,按照提示用`/etc/init.d/vboxdrv setup`命令重新编译内核,无法成功编译。

  后来分析了一下,猜测是我更新到了3.11版本,基于Debian8,采用Linux4.9内核。可能早期的 UNAS OS 3 的版本是基于Debian 7的,而官方APP源里面的VirtualBox版本是4.2,内置的内核头文件是 Linux 4.3版本的内核,所以无法编译到 4.9版本的内核中。

  解决方法也很简单,手动安装5.0版本的VirtualBox,再另外自行安装一个PHPVirtualBox来进行Web管理就行了,但这个不是本文的重点。到了 UNAS 4 的版本中没这个问题了,UNAS 4的APP源里面的VirtualBox已经是6.0的版本了。

Qemu-KVM虚拟机

  Qemu-KVM方案就简单了,在 UNAS 的APP管理器中安装“虚拟机”这个应用就行了。

UNAS的APP管理器UNAS的APP管理器

勾上开启并应用勾上开启并应用

Wok+Kimchi 后台Wok+Kimchi 后台

  安装好了之后重启一次在启动,就能进入 Wok+Kimchi 的Web管理后台,采用默认的“root/yutech”用户登录即可,在这里就可以直接添加ISO建立虚拟机来装系统了。在这个后台建立虚拟机的正常做法是先建立储存器,准备好ISO放入资源池中,然后建立相应的“模板”,再正式添加“Guest”虚拟机。比如我在这里面装了 Alpine 和 iKuai 等。

虚拟机安装LEDE

  在选择网关服务器的系统的时候,我分别尝试了L大的[LEDE](https://github.com/coolsnowwolf/lede/)和Koolshare的系统,最终为了方便采用了Koolshare。

1、建立虚拟网络

  在UNAS中安装好虚拟机后,默认建立了一个 nat 转发的虚拟网络,而我们需要让虚拟的旁路由直接被主路由进行管理,所以需要建立一个网桥连接的虚拟网络。

  在 Wok+Kimchi 后台建立网络很简单,找到“Virtualzation”→“网络”,点击“Add Network”按钮

建立网络建立网络

  然后起好名字(我这里是“vnet”),选择网络类型为“bridge”再创建即可。

选择网络类型选择网络类型

2、准备系统镜像

  虚拟机安装LEDE不需要通过镜像来引导安装,只要直接把镜像转换格式成为虚拟磁盘映像作为虚拟机的“硬盘”就可以了。系统镜像可以在[这里](https://firmware.koolshare.cn/LEDE_X64_fw867/虚拟机转盘或PE下写盘专用/)下载,注意要选择“虚拟机转盘或PE下写盘专用”下面的版本。

  先用SSH登录UNAS,进入“储存器”中建立的路径,我这里直接采用默认的“/var/lib/libvirt/images”目录,用“wget”命令下载“.img.gz”格式的镜像,大约40多MB。

3、转换镜像格式

  下载完镜像后,先用`gzip -d openwrt-koolshare*`解压缩,解压出来一个“.img”格式的镜像,解压出来后一下就有700多MB了,其实是因为这个“硬盘”本身就是700多MB的空间,不管虚拟系统用没用到都占用完实际系统的这个空间。

  随后使用虚拟机管理的命令`qemu-img convert -O qcow2 openwrt-koolshare*.img koolshare.qcow2`把img格式的映像转换为qcow2格式,尺寸又回到原本的40多M了,之后虚拟系统用掉了多少空间这个文件就增大多少。

4、建立虚拟机

  建立好虚拟机用的硬盘之后,就可以建立虚拟机了,但是因为是直接用现有硬盘映像,所以只能手动创建 xml 文件来配置虚拟机,而不能直接再 Wok+Kimchi 后台进行了。

  用 SSH 连接到 UNAS,为了方便管理,我切换到默认的目录,并且建立一个 xml 配置文件。

cd /etc/libvirt/qemu

touch koolshare.xml

vim koolshare.xml

  然后把下列内容复制进去,可以自行生成[UUID](https://1024tools.com/uuid)和[MAC](https://www.osgeo.cn/app/s2907),网络配置记得改为此前建立的虚拟网络(`<source network='vnet'/>`)。

<domain type='kvm'>

  <name>koolshare</name>

  <uuid>ebaac289-7124-4476-92d3-2c9a2dda78d6</uuid>

  <memory unit='KiB'>1048576</memory>

  <currentMemory unit='KiB'>1048576</currentMemory>

  <vcpu placement='static'>2</vcpu>

  <os>

    <type arch='x86_64' machine='pc-i440fx-2.1'>hvm</type>

    <boot dev='hd'/>

  </os>

  <features>

    <acpi/>

    <apic/>

    <pae/>

  </features>

  <clock offset='utc'/>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>restart</on_crash>

  <devices>

    <emulator>/usr/bin/kvm</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='qcow2' cache='none'/>

      <source file='/var/lib/libvirt/images/koolshare.qcow2'/>

      <target dev='hda' bus='ide'/>

      <address type='drive' controller='0' bus='0' target='0' unit='0'/>

    </disk>

    <controller type='usb' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>

    </controller>

    <controller type='pci' index='0' model='pci-root'/>

    <controller type='ide' index='0'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

    </controller>

    <interface type='network'>

      <mac address='88:3B:28:11:E3:72'/>

      <source network='vnet'/>

      <model type='e1000'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

    </interface>

    <serial type='pty'>

      <target port='0'/>

    </serial>

    <console type='pty'>

      <target type='serial' port='0'/>

    </console>

    <input type='mouse' bus='ps2'/>

    <input type='keyboard' bus='ps2'/>

    <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>

      <listen type='address' address='0.0.0.0'/>

    </graphics>

    <sound model='ich6'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>

    </sound>

    <video>

      <model type='cirrus' vram='9216' heads='1'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </video>

    <memballoon model='virtio'>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

    </memballoon>

  </devices>

</domain>

  建立 xml 配置文件后,将该文件引入虚拟机管理系统中。

virsh define koolshare.xml

  然后从该配置文件启动虚拟机

virsh create koolshare.xml

  因为是作为网关服务器,所以还是需要配置成开机自动启动。

virsh autostart koolshare

  此时已经可以在 Wok+Kimchi 后台看到这台新建的虚拟机,并且已经运行了。

启动虚拟机启动虚拟机

虚拟旁路由配置

1、配置底层网络

  刚安装好运行虚拟机有时候主路由并不会给它分配IP地址,所以直接在网页上想访问过去不一定成功。而采用 Wok+Kimchi 后台有一个好处是,可以直接用“查看控制台”功能通过网页版 VNC 控制虚拟机,所以可以再命令行下检查网络配置或者进行手动配置。

查看控制台查看控制台

  通过 VNC 连接到虚拟机后,先查看一下网络配置。

vi /etc/config/network

  我在这里直接给它分配了一个固定的静态地址,添加的配置如下:

config interface 'lan'

        option ifname 'eth0'

        option proto 'static'

        option ipaddr '192.168.1.5'

        option netmask '255.255.255.0'

        option multipath 'off'

        option gateway '192.168.1.1'

        option dns '223.5.5.5 223.6.6.6 8.8.8.8 9.9.9.9'

  随后用`reboot`命令重启一下虚拟机,启动成功后就能在主路由上面看到这台虚拟旁路由了,此时在局域网上就能网页访问到它了。

2、后台配置

  在局域网的电脑中访问这台虚拟旁路由的地址,比如我这里是“192.168.1.5”,就可以进入网页后台了,默认密码是 koolshare,第一次登陆之后更改一下。

登录网络后台登录网络后台

  首先需要配置的是网络,找到“网络”→“接口”,由于我刚才手动配置的是“LAN”口,所以把“LAN”口之外的接口都删除掉,如果手动配置的是“WAN”口就把“WAN”口之外的接口都删除掉。

  然后点击“编辑”,把最下方的“DHCP 服务器”那里勾上“忽略此接口”,因为在这里不把它当路由使用,而是当作网关服务器,所以不需要由它分配地址给其他设备。

  到这里其实就算是配置完了,后续要安装各类插件就是其他方面的事情了。

安装各类插件安装各类插件

设备设置

  虚拟的网关服务器配置好之后,设备的配置非常简单,只要将设备的“网关”地址填写旁路由的地址即可,像电脑上是这样,其实DNS服务器部分我认为是可设可不设,各位大神的观点也不一致,以防万一我这里还是设置了。

客户端配置网关客户端配置网关

  设置完成后可以用路由追踪命令查看一下,出来的第一个是 192.168.1.5,第二个到主路由的 192.168.1.1,就说明已经把数据包先通过虚拟的网关服务器来走了,配置完成。

  如果局域网里面有二级路由或者AP之类的,只要把二级路由或者AP本身的网关指向这台虚拟旁路由,其下的所有设备不用设置也都能直接走它来做数据处理了。

后记

  其实整体的配置挺简单,关键在于怎么去理解“旁路由”,虽然我自己把“旁路由”理解为“服务器”的想法不一定是最精确的,但是这样去想比较方便我去理解每一步的设置是为什么。

  而 UNAS 系统作为一款基于 Debian 的国产NAS管理系统,在自由度很大的同时,也具备简单易用的特性,后续的发展也值得期待。至少在一水的“黑群晖”之下,多了个选择的空间。

展开 收起

QNAP 威联通 TS-453Bmini 四盘位NAS网络存储(J3455、4GB内存)

QNAP 威联通 TS-453Bmini 四盘位NAS网络存储(J3455、4GB内存)

2499元起

Synology 群晖 DS918+ 四盘位NAS网络存储服务器

Synology 群晖 DS918+ 四盘位NAS网络存储服务器

3915.43元起

HIKVISION 海康威视 H101闲小盘 NAS网络存储 2TB 百度联名款

HIKVISION 海康威视 H101闲小盘 NAS网络存储 2TB 百度联名款

589元起

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器

Synology 群晖 DS218+ 2盘位 NAS网络存储服务器

2043.64元起

Synology 群晖 DS418j 4盘位NAS网络存储服务器

Synology 群晖 DS418j 4盘位NAS网络存储服务器

2480元起

铁威马 TERRA MASTER F8-421企业级intel四核 八盘位NAS网络存储服 云存储务器 四千兆网口

铁威马 TERRA MASTER F8-421企业级intel四核 八盘位NAS网络存储服 云存储务器 四千兆网口

8699元起

HIKVISION 海康威视 H100 网络存储服务器

HIKVISION 海康威视 H100 网络存储服务器

664元起

海康威视(HIKVISION)H100系列 2盘位NAS网络存储 家庭私有云 私有网盘 (无盘标配)

海康威视(HIKVISION)H100系列 2盘位NAS网络存储 家庭私有云 私有网盘 (无盘标配)

560元起

N2 恩兔 NS-1 NAS 移动硬盘 1GB DDR3内存

N2 恩兔 NS-1 NAS 移动硬盘 1GB DDR3内存

499元起

中兴(ZTE) HC100中兴云盒家用网络存储nas服务器云存储4K高清

中兴(ZTE) HC100中兴云盒家用网络存储nas服务器云存储4K高清

1094元起

TERRAMASTER 铁威马 F4-420 四盘NAS千兆网络存储( intel 2.0GHz,4G内存)

TERRAMASTER 铁威马 F4-420 四盘NAS千兆网络存储( intel 2.0GHz,4G内存)

3799元起

铁威马(TerraMaster) Type-C公对公数据线 双头USB-C手机转接头线 支持苹果MacBook 支持铁威马磁盘阵列

铁威马(TerraMaster) Type-C公对公数据线 双头USB-C手机转接头线 支持苹果MacBook 支持铁威马磁盘阵列

51.5元起

noontec时尚Hi Fi头戴式耳机 手机电脑通用耳机兼容苹果ios安卓手机(颜色随机)

noontec时尚Hi Fi头戴式耳机 手机电脑通用耳机兼容苹果ios安卓手机(颜色随机)

699元起

威联通(QNAP)TS-853BU-RP 4G内存 双电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

威联通(QNAP)TS-853BU-RP 4G内存 双电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

17100元起

威联通(QNAP)TS-853BU 4G内存 单电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

威联通(QNAP)TS-853BU 4G内存 单电源企业级8盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

14420元起

威联通(QNAP)TS-453BU-RP 4G内存 双电源企业级四盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

威联通(QNAP)TS-453BU-RP 4G内存 双电源企业级四盘机架式网络存储服务器NAS 含导轨(无内置硬盘)

14230元起
20评论

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

相关文章推荐

更多精彩文章
更多精彩文章

candura
好文英雄(青铜)
LV50

Ta还没有介绍自己

关注 打赏
最新文章 热门文章
221
扫一下,分享更方便,购买更轻松