全屋2.5Gbps网络方案-弱电箱改造

0. 背景

在2.5G交换机开始在市场规模铺货的时候,就想着给全屋来个改造。物色各种设备,又看上了可以跑超千兆的猫棒,前前后后几个月,经历了以下几个版本迭代

  • 2.5G猫棒 + ER2260T + 联果2.5G交换机:猫棒跑不出来2.5Gbps上联,设备塞满了弱电箱
  • 2.5G猫棒 + BPI-R4 + 联果2.5G交换机: 香蕉派R4 识别不了2.5Gbps猫棒
  • 2.5G猫棒 + BPI-R3 + 联果2.5G交换机: 猫棒稳定性堪忧,发热断流;香蕉派R3光口为SFP,无法与联果交换机互联
  • 鸿升光猫 HSGQ-Z110 + BPI-R3 + 联果2.5G交换机 + 双光电模块:光猫发热不大且稳定,已稳定1100Mbps+ 移动下行

1. 改造效果

弱电箱告别焖箱

弱电箱设备一览 弱电箱外盖

内网互联2500Mbps、互联网下行超1000Mbps

网络拓扑 内网测速 外网测速

改造成本低于1000元

设备 费用
鸿升光猫 HSGQ-Z110 130
香蕉派 BPI-R3 500
TPLINK SFP 2.5G 光电模块 * 2 172
联果 4*2.5Gbps交换机 158
合计 960

02. 配置教程

以下包括 光猫、openwrt、香蕉派的配置教程

鸿升光猫激活

光猫默认开启DHCP,网段为 192.168.1.0/24

广州移动的光猫注册比较简单,只需要获取 3个信息

  • Serial Number (必须)
  • LOID (实测可随便写,例如用上面的Serial Number)
  • LOID Password: (必须)

a.连接光猫LAN口进行配置

  • 访问 http://192.168.1.1
  • 默认账号密码 admin/admin

b.配置过程分为3步

  1. 填写光猫注册信息 Admin -> GPON Settings
  2. 填写WAN拨号VLAN信息 WAN -> PON WAN
  3. 对接入户光纤后检查光猫注册状态 Status -> PON

c.配置信息截图参考

配置光猫注册 配置拨号VLAN信息 检查拨号状态

OpenWrt 配置PPOE拨号

a. 寻找WAN口SFP

与RJ45的口不同,区分SFP需要一些试错。但可以通过 ethtool的方法来找到对应的口

~# ethtool eth1
Settings for eth1:
    .......
	Link detected: yes #看这里, 如果接上网线,那么这里就会是yes

b. 通过虚拟子接口来创建vlan

# 网络 -> 接口 -> 设备  ~ 添加设备配置
/luci/admin/network/network

选择 802.1q 创建子接口

OP-vlan子接口

c. 添加新接口实现PPOE 拨号

选择 PPOE协议以及上述的 vlan子接口网卡,填写运营商的PPOE账号密码完成创建

OP-PPOE拨号

BPI-R3 自定义固件

虽然香蕉派厂商在产品WIKI提供了Openwrt等系统的镜像,但版本更新都比较慢。虽然可以通过添加 OPKG源来更新软件包,但部分软件是需要依赖内核版本的,如果你刚好需要 Wireguard,那就不得不考虑重新编译固件了。

一般是通过官方的 Openwrt仓库来自主编译选择软件 https://github.com/BPI-SINOVOIP/BPI-R3-OPENWRT-V21.02.3, 如果你选择了这种方式,那就得找一台CPU性能比较好的Linux机器(推荐Ubuntu或者Debian),网络也得有爬墙能力,即便如此,初次编译OP也往往需要 小时 以上。这里推荐一种在线编译的方法

BPI-R3 镜像烧录写入 (彻底升级)

!注意,新购买的主板默认预带Openwrt系统,接电即可用,一般无需烧录系统。只有在彻底升级、更换系统才考虑使用烧录镜像写入方式。

  • 小版本升级建议直接通过web页面的 系统 -> 备份升级 -> 刷写新的固件 进行更新

a. 将镜像烧录到SD-TF卡

  • Windows可使用 win32diskimager/
  • MACOS 可使用 balenaetcher (如果SD-TF卡重复使用多次,可以使用 SD Card Formatter格式化)

b. 切换到SD卡启动

Jumper Setting of Banana pi BPI-R3
Jumper Setting SW1 SW2 SW5 SW6
SD card High High X High

c. 使用USB转TTL接线(FT232) 连接到Console

由于香蕉派没有提供HDMI等视频接口,所以只能通过连接Console方法进入控制侧. 一般电商上常见的 FT232芯片即可满足要求。

TTL主板接线(注意 R-X对接)
BPI-R3.TTL接线 BPI-R3.TTL接线(更清晰对比)
Terminal连接
  • 主板的Speed Baud: 115200
  • MacOS/Linux 连接方法
    • 找到USB设备 ls /dev/tty.usbserial-*
    • 通过Screen连接 screen /dev/tty.usbserial-* 115200
  • Windows连接方法
    • 通过SSH软件,找到com口再连接即可

d.在控制台选择镜像写入

  1. 选择直接写入Nor、Nand、eMMC (推荐写入Nand,然后eMMC用来作为扩展存储)
  2. 写入完成,调整Jumper Setting即可
Jumper Setting of Banana pi BPI-R3
Jumper Setting SW1 SW2 SW5 SW6
SPIM-NoR Low Low Low X
SPIM-Nand High Low High Low
eMMC Low High High Low

BPI-R3 OpenWrt 使用eMMC作为存储

新增、格式化 eMMC存储分区

~# fdisk -l
Disk /dev/mmcblk0: 7.28 GiB, 7818182656 bytes, 15269888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5452574F-2211-4433-5566-778899AABB00

Device          Start      End  Sectors  Size Type
/dev/mmcblk0p1     34     8191     8158    4M Linux filesystem
/dev/mmcblk0p2   8192     9215     1024  512K Linux filesystem
/dev/mmcblk0p3   9216    13311     4096    2M Linux filesystem
/dev/mmcblk0p4  13312    21503     8192    4M EFI System
/dev/mmcblk0p5  24576    90111    65536   32M EFI System
/dev/mmcblk0p6  90112   131071    40960   20M EFI System
/dev/mmcblk0p7 131072   344063   212992  104M unknown
/dev/mmcblk0p8 344064 15269854 14925791  7.1G Linux filesystem

~# mkfs.ext4 /dev/mmcblk0p8

挂载启用分区

在 web(Luci) 面板中操作

  1. 系统 –> 挂载点 –> 生成配置
  2. 在 “挂载点” 中找到刚才新建的分区,点击修改, 修改 /dev/mmcblk0p8 的挂载点
  3. 在 “启动此挂载点” 后面打上勾,“挂载点” 中选择 “作为根文件系统使用”,然后复制最后列出的几条命令备用,保存并应用
  4. 复制同步文件 (注意修改命令中的设备路径)
mkdir -p /tmp/introot 
mkdir -p /tmp/extroot mount --bind / /tmp/introot 
mount /dev/mmcblk0p8 /tmp/extroot 
tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf - 
umount /tmp/introot 
umount /tmp/extroot
eMMC挂载-1 eMMC挂载-2 eMMC挂载-3

重启验证

BPI-R3 eMMC 挂载

OpenWrt 配置在线源

## 注意版本

https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/targets/mediatek/filogic/packages src/gz openwrt_base https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/base src/gz openwrt_luci https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/luci src/gz openwrt_packages https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/packages src/gz openwrt_routing https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/routing src/gz openwrt_telephony https://mirrors.ustc.edu.cn/openwrt/releases/23.05.2/packages/aarch64_cortex-a53/telephony

附加fantastic源

## 安装源证书
 curl -sSL "https://fantastic-packages.github.io/packages/releases/23.05/53FF2B6672243D28.sh" | bash

## 附加源
src/gz fantastic_packages_luci https://fantastic-packages.github.io/packages/releases/23.05/packages/aarch64_cortex-a53/luci 
src/gz fantastic_packages_packages https://fantastic-packages.github.io/packages/releases/23.05/packages/aarch64_cortex-a53/packages

03. 踩坑经验

由于开发板的生态问题,无论是硬件还是软件都踩了不少兼容性的坑,下面一一展开

关于 BPI-R3

BPI-R3
  1. R3的2个光口虽然支持2.5G,但其实是 spf接口 (非spf+), 如果对接10G交换机,存在AOC/DAC 兼容性问题。目前最简单的方法就是使用 TP-LINK 光转电模块来适配。
  2. R3的 Nand模式需要设置SW6为LOW才能读取到 emmc
  3. R3的硬件加速(offload) 非常给力 (网络->防火墙->路由/NAT 分载)

关于猫棒与鸿升光猫

  1. 鸿升光猫很稳定,家宽是GPON的(例如移动)可以无脑入
  2. 色铁猫棒也很稳定,但速度协商上不去2.5Gbps. 诺基亚猫棒速度可以上去,但发热、断流问题不少,家用慎重

踩坑成本

设备 费用
香蕉派 SFP 2.5G光模块 220
单模单芯 LC-LC光纤 2.15
诺基亚猫棒 G-010S-A 56
合计 278.15