周末花了一天的时间折腾了一下网络。与大家分享一下。有些折腾有意义,有些纯粹是技术研究。
1.背景:
上海联通。手头有一条场景化宽带,1000M/200M. 两条崇明宽带,各为 1000M/40M 。等联通上线 200M 上传包后,就把场景化宽带退掉。 有一个 2.5G 的路由器,另外带 4 个千兆 LAN 口。SoC 为高通 IPQ807x ,带硬件加速。 有一个 10g epon 光猫,型号为华为 HN8346X6(不带 Q ,不是 HN8346X6Q ),带 4 个千兆 LAN 口。
2.折腾 1:测试链路聚合。
路由器官方固件支持 2.5G 为 LAN 或者为 WAN ,也支持两个 LAN 口变成 WAN 做链路聚合。但是不支持 4 个 LAN 变成 WAN 做链路聚合。 官方固件不支持多个号拔号。把光猫的两个 LAN 连接到路由器两个千兆口,路由器 2.5G 口做 LAN 。经测试,速度能跑到 1200+。 CPU 占用为 0.因为有硬件加速。下图为崇明宽带的测试情况。
结论:网上有人说华为要带 Q 的才支持链路聚合,此种说法不准确。
3.折腾 2:测试多拔负载均衡。
因为官方固件不支持多拔,所以刷一个 lean 的 OpenWRT 。值得注意的是多拔负载均衡与链路聚合是两个不同的方式。多拔是有多个 IP 。折腾 1 中链路聚合只有一个 IP. 把光猫的两个 LAN 连接到路由器两个千兆口,路由器 2.5G 口做 LAN 。 经测试,速度能跑到 2300+。CPU 占用为 0.应该是 2.5G 的极限了,如果路由器的 2.5G 换成 5G 或者 10G 。应该是能跑到 3x940=2820 左右。
遗留问题:上传为什么这么低?似乎没有叠加场景化宽带的上传。
4.折腾 3:测试链路聚合+多拔(正在 debug)
把光猫的 LAN1 和 LAN2 连接到路由器 2 个千兆口,作为链路聚合 1.把光猫的 LAN13 和 LAN4 连接到剩余路由器 2 个千兆口,作为链路聚合 2.路由器 2.5G 口做 LAN 。 链路聚合 1 和链路聚合 2 分别用不同账号拨号。期待测速有 2300+。 发现 lean 最新代码中不支持链路聚合,打开 bonding ,编译 package/qca/nss/qca-nss-clients-64 会出错。 这个模块找不到 bond_get_id 这个函数。查看高通的 linux 内核代码,发现这个函数定义在内核代码 driver/net/bonding 中。移植一下 patch 。编译通过了。 但是拨不上号,正在 debug 中。
5.折腾 4: 测试 4 个 port 链路聚合+3 个号多拔(未进行)
折腾 3 是两个口作为一个链路聚合,有两组链路聚合。总共使用 2 个号多拔。这个是打算把 4 个口作为一组链路聚合。 然后在这组链路聚合的基础上拔 3 个号。应该是需要内核模块 kmod-macvlan 的支持。 期待的结果是能达到 3*1200=3600.有人问你剩余的 2.5G 口不是限制住了速度吗?对,但 op 有办法搞到一台 rax120. 那个带一个 5G 口。
6.可能有意义的使用场景:
(1)有些人路由器只有一个 2.5G 或者 5g 。
(2)10g epon 带 2.5G 的光猫现阶段有点小贵?
(3)有些人的路由器只带 5 个 1g 口。带宽是千兆。在折腾 1 中,可以使用剩余的两个 1g 口在 LAN 方向做链路汇聚给 NAS 或者交换机。按需选择。这样可以突破千兆。
(4)市面上带万兆电口的猫相比 2.5g 更贵。折腾 4 是一个突破 2.5G 瓶颈的方法,适合发烧友折腾
(5)有些人说上述折腾有些地方上 2.5 软路由器更方便一些,确实是这样。但这里的硬路由支持硬件加速
(6)...
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.