找回密码
 加入我们
搜索
      
查看: 11644|回复: 39

[网络] 请教用OP的链路聚合突破千兆带宽的问题

[复制链接]
发表于 2022-8-29 13:24 | 显示全部楼层 |阅读模式
原来的讨论贴被归档了, 外站机器人抓的页面 https://machbbs.com/chiphell/472280

上海电信, 没有在局端开桥接, 自己买了华为的8546Q, 刷回原版固件并补全了shell, 改成epon模式, 按照帖子的说法, 这个光猫默认支持balance rr模式的, 所以不需要做啥特别的处理

再按照https://post.s m z d m.com/p/ag47kmnw/的介绍, 在OP里面把两个wan口做了bonding, 但是结果就很诡异, 如果用bonding wan绑定pppoe拨号, 我能看到光猫上面两个口都在闪灯, 应该是有数据流, 但是测速就只有500M+的速度, 如果不用bonding wan, 只用单独的一个wan口绑定pppoe拨号, 测速就是900左右, 那么到底问题可能出在哪里, 该怎么排查比较好呢?
发表于 2022-8-29 13:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2022-8-29 13:35 | 显示全部楼层
chen10247 发表于 2022-8-29 13:33
还有这种骚操作....  我来学习一下......

这不骚啊 不是突破千兆的常规套路么, 尤其是上海电信这个坑爹的isp下面
发表于 2022-8-29 13:44 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-8-29 13:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2022-8-29 14:12 | 显示全部楼层
貌似OP聚合在某些网卡下兼容性不是很好,ROS倒是挺稳的,搞个虚拟机排除下?
 楼主| 发表于 2022-8-29 14:30 | 显示全部楼层
dcl2009 发表于 2022-8-29 14:12
貌似OP聚合在某些网卡下兼容性不是很好,ROS倒是挺稳的,搞个虚拟机排除下? ...

ROS对我又是新东西...学习成本好高, 不过你提到的OP兼容性的问题有没有办法排查出来?
发表于 2022-8-30 10:56 来自手机 | 显示全部楼层
你光猫网络设置里把两个网口都绑定到一起了吗?我之前就用的8546Q,测速可以跑到1250M,稳定用了半年,现在刚换了2.5G光猫,中兴F7607P,可以跑到1300M了
 楼主| 发表于 2022-8-30 14:00 | 显示全部楼层
cipsauer 发表于 2022-8-30 10:56
你光猫网络设置里把两个网口都绑定到一起了吗?我之前就用的8546Q,测速可以跑到1250M,稳定用了半年,现在 ...

光猫里面没有设置啊, 需要单独做么? 我以为它支持balance rr就不需要做什么, 在拨号段绑定就好了
发表于 2022-8-31 01:10 来自手机 | 显示全部楼层
flow 发表于 2022-8-30 14:00
光猫里面没有设置啊, 需要单独做么? 我以为它支持balance rr就不需要做什么, 在拨号段绑定就好了 ...

设置桥接和vlan id那里,把两个端口都勾选上
 楼主| 发表于 2022-8-31 13:51 | 显示全部楼层
cipsauer 发表于 2022-8-31 01:10
设置桥接和vlan id那里,把两个端口都勾选上

刚刚去检查了一下光猫,我是勾选了的,然后光猫里面显示用来聚合的两个lan口都有数据量不小的传输,不过一个lan口大概是另外一个的3倍这样

pppoe_config.png
发表于 2022-8-31 13:56 来自手机 | 显示全部楼层
浙江电信,千兆宽带双拨完变600了
发表于 2022-8-31 14:01 | 显示全部楼层
光猫设置好绑定的接口就行,不用其他设置……

问题很有可能出在OP这一边
 楼主| 发表于 2022-8-31 15:23 | 显示全部楼层
翰墨留香 发表于 2022-8-31 14:01
光猫设置好绑定的接口就行,不用其他设置……

问题很有可能出在OP这一边 ...

我猜也是,关键是怎么排查,luci上看不出什么特别的地方

根据这个帖子的说法https://s.v2ex.com/t/822174

我查了一下ip addr 以及ifconfig,两个wan口状态看着都挺正常的
发表于 2022-8-31 15:54 | 显示全部楼层
flow 发表于 2022-8-31 15:23
我猜也是,关键是怎么排查,luci上看不出什么特别的地方

根据这个帖子的说法https://s.v2ex.com/t/82217 ...

你创建Bond网卡之后两个WAN口应该就没有单独的IP了,然后Bond虚拟网卡本身会获取一个IP,PPPoE连接是基于Bond虚拟网卡的,获取到外网的IP。之后你可以查看到,两个物理网卡的流量是基本一致的。
 楼主| 发表于 2022-8-31 16:09 | 显示全部楼层
翰墨留香 发表于 2022-8-31 15:54
你创建Bond网卡之后两个WAN口应该就没有单独的IP了,然后Bond虚拟网卡本身会获取一个IP,PPPoE连接是基于 ...

实际的场景就有点奇怪,我的两个wan口是eth1 和 eth2,bondwan绑了eth1和eth2以后,用在WAN口上做pppoe拨号
pppoe_config_2.png

ip addr的结果类似于这样

10: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 37:28:CA:89:75:c6 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::62be:b4ff:fe00:84c6/64 scope link
       valid_lft forever preferred_lft forever
11: eth2: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1460 qdisc mq master bondwan state UP group default qlen 1000
    link/ether 37:28:CA:89:75:c7 brd ff:ff:ff:ff:ff:ff
20: bondwan: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1460 qdisc noqueue state UP group default qlen 1000
    link/ether 37:28:CA:89:75:c7 brd ff:ff:ff:ff:ff:ff


这个看起来也对, 因为bond以后对外只会显示某一个接口的mac address

对应看ifconfig流量是这样的, 这里就比较奇怪了,bondwan的流量和eth2完全一致,但是呢eth1也有不小的流量,然后pppoe-wan也就是绑定了bondwan的流量更加多了不少,也不知道多出来的是去哪里了

bondwan   Link encap:Ethernet  HWaddr 37:28:CA:89:75:C7  
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1460  Metric:1
          RX packets:84395773 errors:0 dropped:243240 overruns:8349 frame:0
          TX packets:41733358 errors:0 dropped:195 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:90656384951 (84.4 GiB)  TX bytes:7545836859 (7.0 GiB)

eth1      Link encap:Ethernet  HWaddr 37:28:CA:89:75:C6  
          inet6 addr: fe80::62be:b4ff:fe00:84c6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5348820 errors:0 dropped:4916 overruns:495 frame:0
          TX packets:2940141 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6738111498 (6.2 GiB)  TX bytes:991048986 (945.1 MiB)
          Memory:fe900000-fe9fffff

eth2      Link encap:Ethernet  HWaddr 37:28:CA:89:75:C7  
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1460  Metric:1
          RX packets:84395773 errors:0 dropped:8349 overruns:8349 frame:0
          TX packets:41733358 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:90656384951 (84.4 GiB)  TX bytes:7545836859 (7.0 GiB)
          Memory:fea00000-feafffff



pppoe-wan Link encap:Point-to-Point Protocol  
          inet addr:116.237.20.87  P-t-P:116.237.20.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1452  Metric:1
          RX packets:49393189 errors:0 dropped:0 overruns:0 frame:0
          TX packets:22651571 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:54000049386 (50.2 GiB)  TX bytes:2318367089 (2.1 GiB)

发表于 2022-8-31 17:05 | 显示全部楼层
flow 发表于 2022-8-31 16:09
实际的场景就有点奇怪,我的两个wan口是eth1 和 eth2,bondwan绑了eth1和eth2以后,用在WAN口上做pppoe拨 ...

理论上bondwan和pppoewan的流量应该一致或者没多少差别才对,但是你这个bondwan多了70%以上,显然是有问题的,而且eth1和eth2加起来的流量应该和bondwan一样。


建议检查线缆,两个WAN口的网线用一样长度的成品六类以上线看看。还有,你的eth1和eth2的参数有区别,需要改成一样的MTU。
发表于 2022-8-31 17:06 | 显示全部楼层
还有,你的eth1竟然有一个单独的IPv6地址,是不是哪里设置错了?

怎么感觉你在openwrt里面对两条线路的聚合有问题呢……
发表于 2022-8-31 17:09 | 显示全部楼层
我看你1L给的张大妈的链接是用命令做的bond,实际上完全可以在luci网页里面设置的,更直观简单
 楼主| 发表于 2022-8-31 22:01 | 显示全部楼层
翰墨留香 发表于 2022-8-31 17:06
还有,你的eth1竟然有一个单独的IPv6地址,是不是哪里设置错了?

怎么感觉你在openwrt里 ...

是有问题,结果就是我重启了一下op,bond居然失效了... 我也百思不得其解,明天继续查资料看看怎么解决,你提到的这些问题我都注意到了,但是没找到哪里可以修改,我winscp连接上去全局查找ifcfg*的文件,愣是没找到每个单独网口的设置文件,也真是见鬼了
发表于 2022-9-1 06:47 来自手机 | 显示全部楼层
flow 发表于 2022-8-31 22:01
是有问题,结果就是我重启了一下op,bond居然失效了... 我也百思不得其解,明天继续查资料看看怎么解决, ...

之前试群晖的bond,端口汇聚,bug很多,汇聚实际使用也没有想象中舒爽,老实搞万兆wan口
发表于 2022-9-1 08:47 | 显示全部楼层
flow 发表于 2022-8-31 22:01
是有问题,结果就是我重启了一下op,bond居然失效了... 我也百思不得其解,明天继续查资料看看怎么解决, ...

设置网口参数 的文件是/etc/config/network

(印象中是这个,你看看)
发表于 2022-9-1 09:07 | 显示全部楼层
根本就是OP BONDING没设置对 正确的方法是
modprobe bonding mode=0 miimon=100
ip link set eth1 master bond0
ip link set eth2 master bond0
发表于 2022-9-1 09:24 来自手机 | 显示全部楼层
op聚合我始终就没搞定,换了爱快,直接界面勾上就可以聚合了,测速1200
 楼主| 发表于 2022-9-1 10:43 | 显示全部楼层
翰墨留香 发表于 2022-9-1 08:47
设置网口参数 的文件是/etc/config/network

(印象中是这个,你看看)

这个是逻辑接口的配置,不是物理网口的设置,这个我之前也看了, 里面相关的就是一个WAN口的配置,
config interface 'wan'
        option proto 'pppoe'
        option metric '40'
        option username '马赛克'
        option password '马赛克'
        option keepalive '5 5'
        option mtu '1460'
        option ipv6 '0'
        option delegate '0'
        option _orig_ifname 'bondwan'
        option _orig_bridge 'false'
        option ifname 'eth1'
因为昨天晚上重启以后bond失效,所以现在是用eth1单口拨号中
 楼主| 发表于 2022-9-1 10:49 | 显示全部楼层
greney 发表于 2022-9-1 09:07
根本就是OP BONDING没设置对 正确的方法是
modprobe bonding mode=0 miimon=100
ip link set eth1 master b ...

我用的完整的rc.local里面是这样的,第二句话我都不记得是怎么来的,不过反正bond0也不用,应该影响也不大,剩下的部分应该都ok?你给的那三句话应该不完整,都没有指定bond mode以及绑定的端口是slave还是master
modprobe bonding mode=0 miimon=100
ifconfig bond0 10.10.10.222 netmask 255.255.255.0 up
ip link add bondwan type bond mode balance-rr
ip link set eth1 type bond_slave
ip link set eth2 type bond_slave
ip link set eth1 master bondwan
ip link set eth2 master bondwan
ip link set bondwan up
exit 0
发表于 2022-9-1 10:50 | 显示全部楼层
flow 发表于 2022-9-1 10:43
这个是逻辑接口的配置,不是物理网口的设置,这个我之前也看了, 里面相关的就是一个WAN口的配置,
confi ...

我觉得你在设置BOND之前要把所有的WAN相关的网口删除掉,然后再配置……

而且你这个MTU感觉不大对劲

你可以参考https://zhidao.baidu.com/question/181630483611080324.html自己测试一下
 楼主| 发表于 2022-9-1 11:22 | 显示全部楼层
翰墨留香 发表于 2022-9-1 10:50
我觉得你在设置BOND之前要把所有的WAN相关的网口删除掉,然后再配置……

而且你这个MTU感觉不大对劲

MTU的问题研究出来了,其实也是因为bond没有生效导致的,默认每个网口的MTU都是1500, 然后wan口是设置成1460了,这些都是OP默认的数值,然后wan绑定bondwan,bondwan绑定了eth2,但是绑定eth1的操作实际上是失败了,所以会出现eth2的MTU是1460,eth1还保持了默认的1500

结论就是实际上bonding还没成功,并且没找到原因...
发表于 2022-9-1 11:34 | 显示全部楼层
是否两端链路聚合的模式没有匹配?下面是部分文档摘抄

维度 手工模式 LACP模式
定义 Eth-Trunk的建立、成员接口的加入由手工配置,没有链路聚合控制协议的参与。 Eth-Trunk的建立是基于LACP协议的,LACP为交换数据的设备提供一种标准的协商方式,以供系统根据自身配置自动形成聚合链路并启动聚合链路收发数据。聚合链路形成以后,负责维护链路状态。在聚合条件发生变化时,自动调整或解散链路聚合。
设备是否需要支持LACP协议 不需要 需要
数据转发 一般情况下,所有链路都是活动链路。所有活动链路均参与数据转发。如果某条活动链路故障,链路聚合组自动在剩余的活动链路中分担流量。 一般情况下,部分链路是活动链路。所有活动链路均参与数据转发。如果某条活动链路故障,链路聚合组自动在非活动链路中选择一条链路作为活动链路,参与数据转发的链路数目不变。
是否支持跨设备的链路聚合 不支持 支持
检测故障 只能检测到同一聚合组内的成员链路有断路等有限故障,但是无法检测到链路故障、链路错连等故障。 不仅能够检测到同一聚合组内的成员链路有断路等有限故障,还可以检测到链路故障、链路错连等故障。


Eth-Trunk的工作模式根据以下两种情况选择:

如果两端设备均支持LACP协议,推荐使用LACP模式链路聚合。

如果对端设备不支持LACP协议,必须使用手工模式链路聚合。

服务器和接入设备的链路聚合模式要匹配。
这里以Intel网卡为例,服务器一般采用静态链接聚合和IEEE 802.3ad动态链接聚合两种。当服务器选择静态链接聚合方式,对应接入设备应该选择手工模式;当服务器选择IEEE 802.3ad动态链接聚合方式,对应接入设备应该选择LACP模式。

发表于 2022-9-1 12:00 | 显示全部楼层
Roselle 发表于 2022-9-1 11:34
是否两端链路聚合的模式没有匹配?下面是部分文档摘抄

华为这个猫只能支持balance-rr(bond0)模式的聚合,这种聚合不需要在猫端做设置,路由器设置好了猫端会自动启用
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2024-11-27 04:47 , Processed in 0.015282 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表