32

Truenas iKuai主路由 OpenWrt旁路由搭建

 1 year ago
source link: https://blog.dreamtobe.cn/nas_main_bypass_router_build/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

I will have a life no remorse, in the future, we must accomplish something.

Truenas iKuai主路由 OpenWrt旁路由搭建

发表 2022-06-04 | 更新: 2022-06-04 | 分类 网络
| 字数: 1,500

由于我家有上百个智能设备,并且我自己对网络的要求很高,之前买了一些路由器单独组网,在路由器上直接跑一些服务总是会不太稳定的问题存在,因此借助上次升级NAS配置的机会,直接将路由搬到了TrueNas上,目前已经跑了有一个月左右,整体延时稳定性都好非常多,是一次不错的改造。

本文主要是在TrueNas Scale上安装iKuai作为主路由做整体路由管理,安装OpenWrt作为旁路由负责科学上网做一个介绍。

确保至少有2个网口,一个wan输入,一个lan输出。

主路由iKuai搭建

1. 下载ikuai

这里我下载64位的下载img: https://www.ikuai8.com/component/download

nas_main_bypass_router_build-d9e4c08e.png

下载后,通过smb或者scp之类的拷贝到nas上,这里我拷贝到了/tools/system-img/下:

nas_main_bypass_router_build-4eacab28.png

2. 加载ikuai的iso到对应的ZVOL上

创建用于装载ikuai的zvol数据集,创建 4G,这里我们创建的zvol在data下的router:

nas_main_bypass_router_build-7507f473.png

然后通过ssh到nas上,然后进入ikuai的img所在目录,这里我们在/mnt/ext/tools/system-img/,然后执行以下指令,以下指令就是直接将对应img写入到我们创建的数据集中:

dd if=iKuai8_x64_3.6.3_Build202204071133.img of=/dev/zvol/data/router bs=1M

3. 配置Nas中的网络走桥接

这里可以直接参考我的配置,实际情况根据实际情况调整就好,原则就是让所有网络走了桥接再走物理接口连接网络:

创建一个br0,绑定到当前可以连接外网的接口:

nas_main_bypass_router_build-8c4cf679.png

4. 在Nas上创建ikuai虚拟机

以下是我的配置,可以作为参考:

启动方法需要使用Legacy BIOS:

nas_main_bypass_router_build-1d482471.png

CPU模式我是使用Host passthrough这种模式也会比较开销CPU,但是给到的性能也是最高的,你根据你实际需要就行:

nas_main_bypass_router_build-552935ec.png

磁盘需要选用VirtIO模式,数据集选用刚刚创建的那个,这里我们是data/router:

nas_main_bypass_router_build-899511fb.png

网络也是用VirtIO模式,附加到刚创建的br0上:

nas_main_bypass_router_build-60beecca.png

其他基本默认配置就行。

5. 配置ikuai使内网可访问

启动ikuai这个虚拟机,运行后进入期VNC界面,配置其IP以及网关,使其可以内网访问,这里当时我网关IP是: 10.0.0.2,我配置我ikuai的ip是: 10.0.0.1,具体大家根据实际情况配置即可:

nas_main_bypass_router_build-594c8366.png

具体大家根据实际情况操作就好,这里比较简单,比如配置LAN的地址,就输入2,然后根据实际提示配置就好。到这里就可以内网访问ikuai了。

6. 将nas上其他的网口映射到ikuai上

直接在ikuai的虚拟机里,添加PCI设备,这里我的另一个网卡接口的PCI名是: pci_0000_05_00_0

nas_main_bypass_router_build-abc742df.png

7. 在ikuai上绑定新添加的直通的网卡接口

可以直接直通绑定到lan1上:

nas_main_bypass_router_build-38b5dce6.png

参考我lan1的配置:

nas_main_bypass_router_build-2c827d16.png

我的wan口是绑定了之前那个桥接的网口

nas_main_bypass_router_build-d72a4493.png

然后直接将光猫桥接到这个wan口上,进行PPPoE拨号登录:

nas_main_bypass_router_build-61376937.png

至此所有网络都可以从ikuai输出了,你可以将lan口连接到你的无线路由器上。

旁路由OpenWrt搭建

1. 下载与装载k9 img

旁路由主要是为了科学上网,当然功能也可以很多,这里我推荐直接使用k9的方案(当然qs也可以),k9可以直接在这里下载: https://supes.top/?version=21.02&target=x86%2F64&id=generic

nas_main_bypass_router_build-94dee59e.png

下载后拷贝到nas上,然后创建用于该openwrt的数据集,通过dd装载到对应数据集上,操作方法与上面主路由类似这里不重复赘述。

2. 创建openwrt虚拟机

启动方法需要选用UEFI:

nas_main_bypass_router_build-cc500e9c.png

另外这里CPU采用你想要的方式就好,我还是选用最高性能开销的方案:

nas_main_bypass_router_build-583c11ae.png

磁盘一定记得使用AHCI然后绑定你刚创建的数据集,这里我是/data/k9:

nas_main_bypass_router_build-84ea69ea.png

网络使用VirtIO还是绑定我们的桥接口,这里我是上面创建的那个br0:

nas_main_bypass_router_build-76b29f8c.png

其他默认就好,然后启动。

3. 配置openwrt内网可访问

启动后,通过vnc访问到op的命令界面,然后修改/etc/config/network

nas_main_bypass_router_build-add2cab7.png

这里我配置我的openwrt的ip是10.0.0.169,配置好网关与dns。

nas_main_bypass_router_build-860379ef.png

至此openwrt就可以在内网访问了。

4. 让openwrt成为旁路由

这里我的openwrt的ip是: 10.0.0.169

在ikuai中,将网关与dns都配置为openwrt的ip:

nas_main_bypass_router_build-f1633493.png

在nas中,将所有的网关与dns都配置为openwrt的ip:

nas_main_bypass_router_build-e9c4c9b8.png

在nas的k8s将的网关配置为openwrt的ip:

nas_main_bypass_router_build-bc26e555.png

另外需要参考这里确保k8s中的服务与应用可以正常访问外网。

最后的最后需要特别注意的是,如果需要外网访问nas服务需要留意做两层转发,一层是从ikuai转发到openwrt,另一层是从openwrt转发到nas中的服务,具体可以参考这个案例

5. 科学上网,完美8k低延时墙外访问

最后还是简单说下,k9自带的bypass已经很完美了,但是我认为目前国内最佳体验的翻墙方案依然是kcptun,默认的bypass是不支持kcptun的,需要安装对应软件包:

nas_main_bypass_router_build-d2ffec28.png

安装后就默认有了,参考其中一个配置(需要留意kcptun参数的格式是: --key=xxx --crypt=xx类似这样):

nas_main_bypass_router_build-40552994.png

最后翻墙,整个服务将会运行非常稳定,这里的kcptun的服务端搭建可以参照这篇文章,我目前依然是采用这样的配置,依然稳定,有任何问题欢迎评论:

nas_main_bypass_router_build-b964b3d1.png

最后简单画了下当前的网络情况,虽然还有一些优化的想法,不过目前情况也还算稳定可靠,大家可以做个简单的参考。

nas_main_bypass_router_build-28c87c76.png
Jacksgong wechat
欢迎关注Jacks Blog公众号,第一时间接收原创技术沉淀干货。

Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK