在 Banana Pi BPI-R3 开源路由器开发板上运行 Infix 防火墙系统

汇聚之精 2026-10-15 共4895人围观

大多数人都会直接购买现成的路由器。我花了六个月时间为 Infix(一个专注于网络的、不可变的 Linux 操作系统)实现 WiFi 接入点支持,然后将其部署在一台价值 150 美元的 Banana Pi R3 上,用来运行我的家庭网络。

为什么?因为我显然做任何事都不能用简单的方法。

硬件

搭载MT7986A SoC的Banana Pi R3:双频802.11ax WiFi,5个千兆以太网端口,2个SFP光驱位。足以应对略微失控的家庭网络。

准备工作

当前运行:

6 个 SSID, 分别覆盖 2.4GHz 和 5GHz 频段,每个 SSID 都映射到不同的安全区域。

值得信赖的家庭网络 ,适用于手机、笔记本电脑以及其他重要设备。

物联网网络 包含 13 个以上的智能家居设备,这些设备通过 DHCP 保留地址进行连接(因为手动跟踪 IP 地址是需要自制力的人才会做的事情)。

为访客和可疑设备提供隔离的访客网络和不受信任的网络

当我在咖啡馆等不方便的时候需要远程修复一些问题时,可以使用WireGuard 隧道进行远程访问。

wKgZPGrPRoOAH_vhAAECyuuvLMY756.jpg

有趣的部分

整个设备都通过YANG 模型进行管理——这是一种结构化的、类型安全的网络配置模式。没有 shell 脚本,没有 /etc 目录下零散的文件,也不会出现“不知道修改这个会破坏什么”的情况。

所有信息——接口、防火墙规则、DHCP IP 地址预留、WiFi 设置、用户帐户——都存储在一个符合 IETF 标准 YANG 模型(ietf-interfaces、ietf-system、ietf-keystore 等)以及 Infix 特有扩展的 JSON 文件中。易于备份、重新部署和版本控制。

想添加 SSID?只需添加一个引用无线电模块的虚拟接入点接口对象即可。无需重启,无需重启服务,只需进行原子配置更改。唯一限制您可以创建的虚拟接口数量的因素是您的硬件。我的 Banana Pi R3 每个无线电模块支持 16 个虚拟接口,真是太幸运了!

使用 RESTCONF 在 Infix 中添加新的虚拟 AP 接口

基于区域的防火墙定义了所有网络关系:物联网设备可以访问互联网(通过 NAT 进行伪装),但无法访问受信任的局域网。访客 Wi-Fi 网络完全隔离,仅允许 mDNS 反射器规则进行限制——因此访客仍然可以投屏到 Apple TV,而无需访问网络上的任何其他内容。

wKgZPGrPRoWAECSpAABWlQqDlxg861.jpg

Infix 防火墙概述

为什么呢?

因为运行合适的网络操作系统需要:

不可变的根文件系统(不会因编辑错误文件而导致随机破坏)

基于YANG的配置(类型安全性和验证)

NETCONF/RESTCONF 管理(程序控制)

强大的命令行界面

最新软件包和主线 Linux 内核(无陈旧厂商分支或已弃用的固件)

……在一块价值 150 美元的电路板上证明,工业级网络管理并不需要昂贵的企业级硬件。

Infix 最初是为生产环境中的交换机、路由器和边缘设备而设计的,但它的可扩展性也十分出色。管理数据中心交换机的同一操作系统,既可以运行你的家庭网络,也可以像我一样,同时运行家庭网络和工业自动化系统。

想试试吗?

文档:https://kernelkit.org/infix/

代码:https://github.com/kernelkit/infix

最新版本 (26.01):支持 WiFi 接入点和站点模式、基于区域的防火墙、完全可配置的 ACM、NETCONF/RESTCONF 管理、Docker 容器等等

wKgZPGrPRoaANsCbAAF1C6WMaiw801.jpgwKgZO2rPRoaAFu-_AAC_ojmcDgo316.jpgwKgZPGrPRoaAOT1UAAGM6ZZrEU0228.jpg

审核编辑 黄宇

Powered By Z-BlogPHP