千兆光猫榨干千兆带宽简单方案(实测 1.2G 左右)

2021-12-14 17:05:29 +08:00
 emUi998

方案简介

通过创建 bond 网卡,绑定两个网卡(各 1G )连接至光猫,进行拨号。由于运营商一般提供 20%的上浮带宽,因此 speedtest 测试可以达到 1200M 左右。

前置需求

  1. 最新版本的 openwrt 系统( 21 版本即可);routeos 等系统也可以。
  2. 软路由需要至少 3 个网口,两根用来连接光猫,一根作为局域网接入(这个口需要 2.5G 或者 10G ,要不然无法测速超过 1000M )。
  3. 光猫已经配置桥接。

配置方案

  1. 安装所需软件,启用 bond 支持

    opkg update
    opkg install kmod-bonding luci-proto-bonding proto-bonding
    
  2. 通过配置自动启动脚本实现,加入该脚本的指令会在开机后自动执行

    vi /etc/rc.local
    

    需要添加的内容如下(添加至 exit 0之前),需要根据实际情况修改网卡名称,此步骤务必小心。

    ip link add bond-wan type bond mode balance-rr 添加 bond 类型的虚拟接口 名称为 bond-wan
    ip link set eth1 type bond_slave #配置网卡 eth1 模式
    ip link set eth2 type bond_slave 
    ip link set eth1 master bond-wan #加入名称为 bond-wan 的 bond 类型网卡
    ip link set eth2 master bond-wan 
    #可选步骤 ip addr add 192.168.1.2/24 dev bond-wan
    ip link set bond-wan up #启动该网卡
    

    另外,加入拨号 bond 的网卡需要从 br-lan 中移除。

  3. 修改 wan 接口的网卡为 bond-wan ,重启软路由后正常拨号即可

    openwrt 设置路径:network-interface-找到 wan 点击 edit

24321 次点击
所在节点    宽带症候群
109 条回复
swiftg
2021-12-15 15:12:36 +08:00
@dingli900201 好像和光猫没关系,我光猫进去看了,确定没有 bonding 相关的内核模块
github2020
2021-12-15 15:18:14 +08:00
@swiftg 你的光猫是什么型号呢? hn8145v?
swiftg
2021-12-15 15:22:06 +08:00
@github2020 hn8145q ,对应联通马甲 hn8346q ,移动 hn8546q
github2020
2021-12-15 15:49:08 +08:00
@swiftg 网上说 linux balance-rr 模式是需要对端做配置的,奇怪为什么光猫不用呢
github2020
2021-12-15 15:51:57 +08:00
https://serverfault.com/questions/341702/does-linux-balance-rr-bond-mode-0-work-with-all-switches
The balance-rr, balance-xor and broadcast modes generally require that the switch have the appropriate ports grouped together.
swiftg
2021-12-15 16:38:06 +08:00
@github2020 可能是交换芯片硬件上就支持了?
bibiisme
2021-12-15 16:42:31 +08:00
@advancejar 没用过就来说不稳定了
swiftg
2021-12-15 16:46:10 +08:00
我在光猫侧 arp 也确实只看到一个 mac 地址,就是路由器 bond 逻辑接口的 mac
advancejar
2021-12-15 19:35:53 +08:00
swiftg
2021-12-16 09:21:14 +08:00
@advancejar 这人自己水平不行吧,我 b460 主板自带的螃蟹 2.5g ,4 口 2.5g 软路由,都是 8125b ,两个 2.5g usb 网卡,5156b ,插群晖,稳定用了一年多了,驱动自己编译
github2020
2021-12-16 09:42:16 +08:00
@advancejar 新的 Linux 内核已经支持的很好了 https://linuxreviews.org/Realtek_RTL_8125
shaoshuang
2021-12-19 23:43:54 +08:00
![]( https://jayshao.com/image/bond2.png_blogimg)
实测可以到 1180 多,方法有效,感谢楼主分享
lcy630409
2021-12-20 22:28:41 +08:00
@shaoshuang 什么硬件设备 分享一下
shaoshuang
2021-12-21 09:58:46 +08:00
@lcy630409
光猫是华为的 MA5671
路由是跑在 Gen10 Esxi 上的 Openwrt ,插了一张双光口的万兆卡,所以 Gen10 自带的千兆卡把两个口直通给 openwrt 作为 wan1 和 wan2 ,然后光口的万兆卡直通一个口作为 lan ,接到一台 qnap 的万兆交换机上
光口的另一个万兆口就作为 esxi 的虚拟交换机,用来给 gen10 内部的其他虚拟机共享使用
sadan9
2021-12-21 22:17:28 +08:00
实测下来,上行是分在 2 块网卡上,但下行只走某一块卡。
光猫为桥接模式。
sadan9
2021-12-21 22:19:44 +08:00
补充一下,是通过 iperf3 进行测试,开了 10 线程,由外网服务器-->openwrt
fan88
2021-12-22 02:41:19 +08:00
湖南电信 天邑 1000e 光猫 实测效果比较差,聚合前 800Mbps ,聚合后只有 500-600Mbps.

光猫侧看 MAC 一直在做 BOND 的两个接口之间横跳。感觉光猫侧如果无法配置 bond 的话,会导致光猫不断学习 MAC 导致部分数据包错乱吧
fan88
2021-12-22 10:50:35 +08:00
湖南电信 华为 HN8145V 效果也不太好,聚合前 930M ,聚合后 830M
thinsychen
2021-12-23 21:58:23 +08:00
确实可以,Mikrotik balance rr 两根千兆网线进光猫拨号就可以,提前应该是要光猫支持。测试用的猫是 8145q
freeznet
2021-12-24 10:50:33 +08:00
试了下北京联通的 HN8346X6 ,改桥接后貌似不支持链路聚合,bonding 后依旧是 930M

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/822174

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX