全屋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步
- 填写光猫注册信息
Admin -> GPON Settings
- 填写WAN拨号VLAN信息
WAN -> PON WAN
- 对接入户光纤后检查光猫注册状态
Status -> PON
c.配置信息截图参考
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
创建子接口
c. 添加新接口实现PPOE 拨号
选择 PPOE
协议以及上述的 vlan子接口网卡,填写运营商的PPOE账号密码完成创建
BPI-R3 自定义固件
虽然香蕉派厂商在产品WIKI提供了Openwrt等系统的镜像,但版本更新都比较慢。虽然可以通过添加 OPKG源来更新软件包,但部分软件是需要依赖内核版本的,如果你刚好需要 Wireguard,那就不得不考虑重新编译固件了。
一般是通过官方的 Openwrt仓库来自主编译选择软件 https://github.com/BPI-SINOVOIP/BPI-R3-OPENWRT-V21.02.3
, 如果你选择了这种方式,那就得找一台CPU性能比较好的Linux机器(推荐Ubuntu或者Debian),网络也得有爬墙能力,即便如此,初次编译OP也往往需要 小时 以上。这里推荐一种在线编译的方法
- 访问 firmware-selector.openwrt.org
- 额外填写
安装的软件包
- 下载
SD 卡的映像文件
或者Sysupgrade
镜像
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对接)
Terminal连接
- 主板的Speed Baud: 115200
- MacOS/Linux 连接方法
- 找到USB设备
ls /dev/tty.usbserial-*
- 通过Screen连接
screen /dev/tty.usbserial-* 115200
- 找到USB设备
- Windows连接方法
- 通过SSH软件,找到com口再连接即可
d.在控制台选择镜像写入
- 选择直接写入Nor、Nand、eMMC (推荐写入Nand,然后eMMC用来作为扩展存储)
- 写入完成,调整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) 面板中操作
系统 –> 挂载点 –> 生成配置
- 在 “挂载点” 中找到刚才新建的分区,点击修改, 修改
/dev/mmcblk0p8
的挂载点 - 在 “启动此挂载点” 后面打上勾,“挂载点” 中选择 “作为根文件系统使用”,然后复制最后列出的几条命令备用,保存并应用
- 复制同步文件 (注意修改命令中的设备路径)
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
重启验证
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
- R3的2个光口虽然支持2.5G,但其实是 spf接口 (非spf+), 如果对接10G交换机,存在AOC/DAC 兼容性问题。目前最简单的方法就是使用 TP-LINK 光转电模块来适配。
- R3的 Nand模式需要设置SW6为LOW才能读取到 emmc
- R3的硬件加速(offload) 非常给力 (
网络->防火墙->路由/NAT 分载
)
关于猫棒与鸿升光猫
- 鸿升光猫很稳定,家宽是GPON的(例如移动)可以无脑入
- 色铁猫棒也很稳定,但速度协商上不去2.5Gbps. 诺基亚猫棒速度可以上去,但发热、断流问题不少,家用慎重
踩坑成本
设备 | 费用 |
---|---|
香蕉派 SFP 2.5G光模块 | 220 |
单模单芯 LC-LC光纤 | 2.15 |
诺基亚猫棒 G-010S-A | 56 |
合计 | 278.15 |