Updated on 2021/02/08: This article lost images during the migration process.
What is a Software Router?#
In simple terms, a software router is an x86 PC with multiple network cards installed with a dedicated routing system, such as OpenWrt, iKuai, etc. Compared to the commonly used MIPS processor in general hardware routers, the x86 processor offers a significant performance boost. The modern CPU's built-in AES instruction set can also accelerate the encryption and decryption process for "studying abroad," fully utilizing your network bandwidth.
Hardware Configuration#
Since a desktop system is not needed, the hardware requirements for a software router are relatively low. (If you have an old computer, you can easily turn it into a software router by adding a few network cards.)
Due to the hassle and laziness, I directly purchased a pre-built software router on a certain e-commerce platform. The configuration is 3955U+4G+16G.
Proxmox VE#
As I chose a CPU that supports AES, VT-x, and VT-d, I plan to install Proxmox VE and then run virtual machines with iKuai and OpenWrt.
Configuration Issues#
After installing PVE, I found that only a little over 5G of the 16G SSD was left for virtual machines. Although it is sufficient for both software router systems, it limits future tinkering. (What if I suddenly want to set up a Linux system?)
When preparing to install iKuai, I realized that the system requires 4G of memory for 64-bit platforms. Coincidentally, my physical machine only has 4G of memory.
Finally, I ordered 16G of memory and a 120G hard drive from a certain e-commerce platform and am waiting for them to arrive.
iKuai + OpenWrt#
Installing iKuai is straightforward, just mount the ISO and follow the prompts to install. The img file compiled by OpenWrt needs to be converted to the disk image format used by PVE:
qm importdisk [VM ID] [img file] local-lvm
Then configure iKuai as the main router and OpenWrt as the secondary router.
Reverting to OpenWrt#
After setting up the dual software routers, I found that IPv6 was not working. iKuai's IPv6 configuration is almost non-existent, with only a switch and no way to customize parameters to work with OpenWrt or provide the necessary configuration parameters for OpenWrt. After struggling for a while, I temporarily abandoned this solution and reverted to a single OpenWrt system.
Wireless AP#
Since the software router does not have Wi-Fi functionality, a wireless AP is needed for Wi-Fi access.
I restored the "Xiaomi Router 3" to the official Xiaomi firmware. The official firmware has a convenient wired relay function, which, when enabled, can be connected to the LAN port of the software router.