开端
openwrt 和 ikuai 是比较出名的软路由系统。我最早接触软路由还是因为我的一个学长要改自己家里的网络,使用软路由去控制网络。我听说后便来了兴致,也在我家搞了一套软路由系统。现在我已经做完了,就想着写个文章记录一下。
软路由简介
硬路由是平时我们常见的那些路由器和无线路由器,它们转发数据的模块通常都是集成在硬件之上的所以效率相比软路由来说比较高。但是硬路由不是很好管理,而且一般也就只有数据转发的功能。
软路由是没有硬件支持的数据转发模块的系统。它可以刷在各种电脑上,软路由系统占用资源少,一般就1核1G就够用了。软路由部署了很多功能,硬件路由器的功能软路由基本上都实现了,除此之外还增加了许多新功能、新插件。能够加插件也就意味着软路由的功能有很强的可扩展性。
常用的软路由系统就是 openwrt 和 ikuai 了。
openwrt
OpenWRT是一个高度模块化、高度自动化的嵌入式Linux系统,拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中。 同时,它还提供了100多个已编译好的软件,而且数量还在不断增加,而OpenWrt SDK 更简化了开发软件的工序。
OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统。实际上,这意味着您能够使用您想要的功能而不加进其他的累赘,而支持这些功能工作的linux kernel
又远比绝大多数发行版来得新。
[OpenWrt 维基]欢迎来到 OpenWrt 项目
ikuai
爱快作为一家致力于软路由领域的公司,公司名称叫:全讯汇聚网络科技(北京)有限公司。其致力于为用户提供高性能、稳定可靠的软路由产品,并在用户体验和创新功能方面不断突破。在软路由行业中,爱快以其卓越的性能、简洁易用的界面以及多样化的功能而广受好评,成为了众多用户的首选。这家公司还围绕路由展开软件、硬件、服务,基于此爱快延展了WLAN产品线、交换机产品线、爱快云产品线,边缘存储产品线、SD-WAN产品线。
爱快 iKuai-商业场景网络解决方案提供商 (ikuai8.com)
PVE介绍
Proxmox 虚拟环境(简称PVE) 是一个基于 Debian Liunx 和 KVM 的虚拟化平台。类似于 VMware 的 EXSI 系统。PVE 和 ESXI 都和我们通常使用的 VMware Workstation 差不多,只是 PVE 和 ESXI 是系统层面的虚拟化,VMware Workstation 则是软件层面的虚拟化。
PVE 和 ESXI 我都使用过,个人感觉 PVE 用起来更舒服一些,开机也更快,配置虚拟网络也更方便而且还支持容器技术,ESXI 是不支持容器技术的。而且 PVE 是可以免费使用的,ESXI 则需要付费密钥(但是网上有许多开源的密钥)。
实验部署环境描述
部署软路由网络是需要硬件支持的(钱)。必要的硬件机器清单如下:宽带(带不带公网都行),光猫(Modem),无线路由器(Wife),软路由宿主机(个人PC、工控机等),一个U盘(用来刷系统)。
# 宽带用来提供互联网连接。
# 光猫单纯用来做模电转换,光猫也有路由和拨号(连接运营商服务器进行上网)的功能,但是一般不使
用光猫进行路由交换和拨号,因为一般的光猫性能都不是很行。相比于路由器,光猫的路由交换和拨
号效率还是比较低的,可能会导致间接断网或者网速慢等情况。
# 无线路由器用来提供 Wife 信号。
# 软路由宿主机用来刷软路由系统然后软路由负责进行拨号和路由交换。
宽带
实验环境为我自己家,买的联通宽带赠送有动态公网IP。有一个公网IP是比较重要的,因为有了一个公网IP就意味着你能在任何地方通过连接互联网访问到你家里的网络。而且部署一些服务也会使用到公网IP,总之就是有一个公网IP后面不管是管理网络还是部署服务都非常的方便。
光猫
光猫使用的是联通运营商提供的免费光猫。只用来做模电转换,拨号和路由交换拜托给软路由来负责。
无线路由器
无线路由器我是买的小米的一个 Wife6 无线路由器一百多块钱,果然还是便宜无好货。Wife 信号不算很好,只能说能用。我想如果换成 三百多的 Wife7 无线路由器应该会好很多。实测下来就是穿墙效果不行,如果要穿墙还是买好一点的无线路由器。
软路由宿主机
软路由宿主机我是买的一个准系统工控机(N100/J6412),有4个网口,需要自己加硬盘和内存。硬盘用的256G樊想固态,内存用的16G联想内存。总价900块左右。
开始部署
网络系统规划
这里说一下为什么需要 PVE。PVE 是一个虚拟系统,上面可以部署虚拟机和容器。我把 openwrt 和 ikuai 都部署在 PVE 上面。因为直接在工控机里刷软路由器系统的话资源浪费太大了且只能部署一个路由系统。在 PVE 上部署软路由系统后还可以在上面部署虚拟机,把剩下的硬件资源合理利用起来。
主架构
整体网络架构采用 ikuai 做主路由拨号,openwrt 作为旁路由的设计,内网网段为 192.168.100.0/24。无线路由器负责 Wife 信号,光猫负责通互联网。
openwrt 在目前的网络设置中其实并没有什么实际的作用,因为有 ikuai 这个主路由在,想上网的话直接把设备的网关设置为 ikuai 的IP就可以上网了。
openwrt 在这里是作为一个中间人的作用,如果在 openwrt 上设置了 VPN 隧道直连。再把设备的网关设置为 openwrt 那么这个设备的网络就可以直接通过 VPN 隧道转发,其他没把网关设置为 openwrt 的设备则不受 VPN 的影响进行正常的 ikuai 路由转发。
机器连接设置
整个网络如上图所示,工控机 PVE 一共有4张物理网卡,其中1口为保留的 PVE 管理接口,其他3个物理网口都直通到了 ikuai 虚拟机上。然后把光猫和无线路由器都接到 ikuai 系统上,由 ikuai 进行管理。
PVE虚拟网络
在 PVE 中创建一个虚拟桥,并配置IP(192.168.100.1/24)这个IP以后就是 PVE 系统的管理接口并配置网关(192.168.100.254/24)这个是让 PVE 能上网的配置,如果不配置这个网关的话在不用VPN的情况下就不能远程 PVE 系统。
在每个虚拟机上都要添加一个虚拟网卡,并绑定到之前创建的网桥上。这是为了实现 PVE 内网各个虚拟机之间的网络互通。
openwrt 和 Server 虚拟机的网络设置和图上描述的一样。ikuai 拥有4张网卡,有3张是直通的物理网卡,还有一张是桥接的 PVE 虚拟桥用来连通 PVE 虚拟网络。
ikuai网络
ikuai 是主路由所以网络配置这里讲细一点让大家少走坑,对虚拟网络有更清晰的认知。
首先 ikuai 需要配置内网口和外网口。我们把连接光猫的口配置为外网口,其他口全部配置为内网口。在外网口上需要配置拨号连接,这个在 ikuai 的 Web 界面点点点很简单。然后需要在 ikuai 绑定 PVE 网桥的那张网卡上配置IP为(192.168.100.254/24)这是局域网内所有设备通往互联网的必经之路。其他内网网口可以不用配置IP,其他网口的对端设备IP只要是 192.168.100.0/24 网段的就可以连到 ikuai 上。
刷PVE系统
拿到工控机的第一件事就是把配件上上把 PVE 系统刷上去,安装完配件(硬盘,内存)就开始刷系统。先去 PVE 官网下载一个镜像文件,然后下载一个系统盘制作工具。
ISO - Proxmox Virtual Environment
Rufus:http://wget.ktclouds.cn/ISO/rufus-3.20.exe
镜像和工具都下好后,就把U盘插电脑上开始制作 PVE 的系统盘。制作好了后把U盘插工控机上对工控机直接进行一个系统的刷啊。PVE 的部署很简单,网上的资料也很多我这里就不再过多的进行细节描述了。
安装完后就是这个样子,右上角的用户选项里面可以调整为中文界面。
PVE虚拟网络
创建一个虚拟桥并配置IP和网关。
创建虚拟机虚拟网卡。
创建ikuai虚拟机
首先去 ikuai 官网下载 ikuai 镜像,下载完成后上传到 PVE 中。在 PVE 里创建虚拟机一般分配1核心2G内存就够用了,硬盘的话用不到很多1G就够了甚至可以更少。
固件下载-爱快 iKuai-商业场景网络解决方案提供商 (ikuai8.com)
开启网卡直通
为什么要开启网卡直通。网卡直通相当于把物理网卡直连到虚拟机上,物理网口进行数据转发时就不再通过 PVE 系统而是直接发送到绑定网卡的虚拟机上。这样可以加快软路由的路由交换速度。但是一旦配置了网关直通,就不能通过那个物理网口直接访问到 PVE 系统,需要谨慎配置,建议至少留一个网口不做网卡直通。防止进不去 PVE 系统。
网卡直通步骤如下,首先选择要添加直通网卡的虚拟机,然后点击硬件,添加PCI设备。
选择你要直通的物理网卡,确认后重启 PVE 就实现了网卡直通。
创建完 ikuai 虚拟机并设置开机自启动然后直接开机进行安装就好了,然后首先要设置的是 LAN 口地址(LAN口一定要先绑定 PVE 网桥那张网卡)。
设置完LAN口地址就可以通过浏览器访问 ikuai 的 Web 管理页面。默认账号和密码均为admin。
配置外网接口,输入运营商给你的宽带账号和密码进行连接。
配置DHCP,设备的网关自己根据需要配置为 192.168.100.253 或者 192.168.100.254。
DNS我这里是因为在内网另外搭了一个DNS服务器所以是 10.10.10.2。请大家根据实际情况配置,可以在网上去找离自己家近一点的DNS服务器,这样网速会快一点。
配置到这 ikuai 的必要配置就结束了。
创建openwrt虚拟机
下载 openwrt 的镜像,我使用的是 eSir 的高大全版本 openwrt。
01 - Lean Code x86_64 Firmware | 固件 - Google 云端硬盘
openwrt的安装比较麻烦,我这里多说一点。还是先上传镜像,但是注意不是上传 .img.gz 结尾的文件,需要把它解压为 .img 的镜像文件再进行上传。
磁盘直接默认就行,CPU模型使用 host。
内存我使用的是2G
创建完成
点击虚拟机,然后把 CD/DVD 和硬盘都删了。
然后进入 PVE shell 界面,进入存放 ios镜像的位置
在当前目录下输入这条指令,把 openwrt 的镜像导入到虚拟机中。这里指令的选项需要根据自己实际情况去输入。
qm importdisk 101 openwrt-gdq-v1_2024_-x86-64-generic-squashfs-uefi.img local
添加我们刚刚新增的磁盘。
修改虚拟机的启动引导。
修改完后就可以启动虚拟机了。
启动后,要添加 root 用户的密码和更改默认 LAN 口IP。
passwd //输入 passwd 更改root用户密码
vi /etc/config/network //进入网卡配置
修改 interface 'lan' 的接口IP为自己所需要的IP。我这里配置的是 192.168.100.253/24 网关为 192.168.100.254。修改完成后 :wq 退出并保存,然后重启 openwrt 虚拟机。
最后进入浏览器,输入对应的IP,就可以访问 openwrt 了。
到这里 openwrt 就成功部署了,eSir 的 openwrt 功能很多我这里就不细说了,大家可以在使用的过程中慢慢去了解。
配置远程访问
配置远程访问方法是很有必要的,这可以让你随时随地管理你家里的网络。因为 ikuai 是主路由,所以我们的远程管理在 ikuai 上面配置。
ikuai远程登录
DDNS
因为我的宽带是动态公网IP所以需要绑定一个域名来实现公网的固定访问,DDNS(动态域名解析)就很好地完成了这项工作,在 ikuai 里面也可以直接配置。
域名是需要自己去购买的,也不贵便宜的十几块或者几块钱钱一年。我使用的是腾讯云,根据不同的域名提供商需要大家自行去看服务商的文档或者教程配置 DDNS。
配置完 DDNS 就可以通过自己的域名去访问家里的网络了,当然了你现在直接通过域名去访问 ikuai 会发现访问不了。
端口映射
普通宽带运营商默认是封禁 80,443 端口的。这是为了防止使用家里的网络来进行盈利。我们不盈利只方便自己该怎么做呢?
可以通过端口映射把内网的端口映射为外网的其他端口来进行访问,避免访问外网运营商封禁端口顺便提高安全性。
ikuai 和 openwrt 的 443 远程访问端口是必须要映射出来的,还有 PVE 的 8006 远程访问端口。 其他的端口根据自己的需要进行配置。
我这里还建议大家配置一个 openv*n 的隧道,方便我们直接使用内网网段进行网络管理和服务部署。具体方法在 ikuai 里面点点点就可以了。
总结
配置这个网络系统还是花了我不少时间,大概一个星期左右吧。自己做成功后还是蛮有成就感的,后续要做网络磁盘什么的也方便了不少。做个虚拟机也比去网上买云服务器划算,就是可能技术不到位的话不是很稳定。
如果你觉得这篇文章对你有用的话就点点关注和赞吧,谢谢。