尝试分析:电信光猫改桥接网速减半问题
一、背景介绍
为了随时随地可以在外面访问家中网络,达到更好的P2P直连内网穿透质量,减少NAT转发,之前我将家里网络拓扑进行了优化,完全甩开了了软路由,直接采用原厂系统的传统硬路由,不再折腾啥OpenWRT、爱快、高格了。
可以帮看看一下我家网络拓扑吗?当然最关键的一步就是将光猫改为桥接模式,让路由器来负责拨号。
我家原本的光猫是电信天翼网关TEWA-1000G,作为一个技术i人,本着能自己解决的就不找人的原则,通过光猫的“漏洞”自己提取了临时超级密码。
此过程网上大把教程,我就不详细写了,简单概括下大概流程:
- 插盘识别:U盘格式化为 FAT32,插入光猫 USB 口,用普通账号登录
192.168.1.1确认设备管理中能识别到 U 盘。 - 抓 Key 备份:登录
192.168.1.1:8080,F12 搜索set3_sessionKey,拼接 URL 触发备份,并在 Console 执行 JS 代码强制写入 U 盘。 - 下载解密:拔出 U 盘连接电脑,获取
.cfg配置文件,使用在线工具xor解密为明文。 - 搜索凭证:在解密文本中搜索
TeleComAccount,提取<Username>和<Password>标签内的内容。 - 登录管理:使用提取的账号和临时密码登录
192.168.1.1:8080,获取超级管理员权限。
⚠️注意:新固件可能已修复此漏洞,如遇失败建议直接联系装机师傅索要,省时省力~
在网络管理中找到INTERNET改为桥接,宽带密码可以在电信APP里查或者F12在光猫后台看,然后进主路由后台设置PPPoE拨号即可。
改桥接后,网络从Port Restricted Cone NAT变为了FullCone NAT,Tailscale(Headscale)、FRP(xtcp)、FNConnect等内网穿透P2P直连成功率几乎100%,甚至可以直接用NATMap直接打洞成功。顺带着游戏延迟、微信视频、BT下载等体验都得到了明显提升。
(BtW:不要加旁路由,不要加旁路由,不要加旁路由,旁路由会让这一切就都白优化了)
二、存在问题
但是爽了没多久,我就发现了光猫改桥接后没多久(大概是一觉醒来后),网速减半了。
我家是千兆宽带,扣除掉NAT损耗、TCP/HTTP首部占用、加密解密占用等种种“公摊”,下行带宽怎么也能到950Mbps才对。
原本光猫路由模式测速能稳定到950Mbps以上的下行,这是正常的。
但自从光猫改了桥接后,链路中其他因素都不变的情况下,测速就只能到400~500Mbps的下行了,上行倒是没变化还是60Mbps左右。这时重启一下光猫和路由器可以“临时”恢复到950Mbps以上,但一旦时间长了(比如睡一觉起来),下行网速又稳定打5折。
此情况能稳定复现。
虽然500Mbps下行也完全够我用了。
但我花了钱呢,作为一个坚定的“白嫖一时爽,一直白嫖一直爽”“出门不捡就算丢”的白嫖党🤣,不能跑满带宽就让我很难受。
三、问题分析
网上搜了一下,发现这个光猫桥接网速五折的问题遇到的人还不在少数,我将问题从小到大做个汇总:
(一)光猫时间不对
桥接后部分地区配置问题导致不能在 TR069 网络使用 NTP 获取时间,时间不对或者时差过大会导致 PON 接口时间窗出现错误影响网速。
(二)运营商限速
有些地区运营商局端会绑光猫MAC和SN码,改为路由器PPPoE后,局端发现拨号的设备不在数据库中,直接QoS限速。
(三)光猫固件BUG
部分品牌、型号的光猫(我搜到的有中兴),WEB 配置INTERNET直接将路由改为桥接后激活的是 CPU 的临时软桥接,是传统的 linux bridge ,此时 hardware offload 不会介入,所有的数据包处理通过 CPU 转发。
(四)光猫性能限制
目前大部分家里的光猫都是办宽带时运营商“免费租用”的定制机器,既然是定制的,考虑到需要大规模铺开,那成本就是一个不得不考量的重要因素。
对运营商来说,路由模式可以大大减少运维成本,降低投诉率,在光猫的集采标准基本没有P2P的要求,而出于成本和商业策略原因,厂商在做固件适配的时候都是卡着运营商的标准来的,所以只要运营商没有提出的要求基本上都是能省则省。
大胆猜测很多光猫因此都只针对运营商推荐的路由模式做了优化,路由模式才支持硬件加速;而桥接模式阉割为 linux bridge “软桥接”,即采用CPU来进行数据包桥接转发,而不通过专门的NAT芯片。
这些阉割平台在桥接下只启用一个 CPU 核处理转发,中断绑定在一个核上,软件路径的上限往往在400~600Mbps。启动初期 cache 热、状态简单,能跑满;运行时间长,流表满、中断累积或队列拥塞后稳定在单核瓶颈。
四、解决思路
(一)治标不治本法
既然重启能恢复一下,那我搞个智能插座定时重启不就行了么?(大误)
(二)手动修改正确时间法
然而我光猫的时间是正确的,Pass。
(三)联系装维小哥法
如果运营商存在局端限速,此时就只能放下i人身份,打电话给负责你片区的装维小哥吧,让他后台给你改桥接可破。
我原本已经和装维小哥约好了上门给我处理(为电信服务点赞),但最终还是没执行,原因继续往下看。
(四)正确配置光猫法
不能直接把 Route 改为 Bridge ,这么操作是始终不会激活 hardware offload 的,只有新建才会是硬桥接并且不存在性能问题。
- 删除原有的Route连接。
- 新建一个 Bridge 类型的连接,参照之前的VLAN 填写。
- 保存,重启光猫,在此之前路由不要拨号。
- 测试拨号,此时是激活了 hardware offload 介入,soc 几乎不参与转发。
但此条我也没弄,原因继续往下看。
(五)换光猫大终极法
如果是光猫固件/硬件阉割了“硬桥接”,那上述所有方法都会无效,此时唯一的解决方法就是换一个支持“硬桥接”的光猫。
我这边电信是不支持自己换光猫的(当然非得自己换也行,网上有教程),我和装维小哥联系好了上门给我换光猫(小哥让我自己去营业厅买光猫)。
五、解决过程
问了ChatGPT,首先排除我家运营商后台限速:
如果是运营商在 BRAS / BNG 侧限速,它是基于账号或端口策略的 QoS 或限速模板,下发后不会因为重启光猫就恢复。重启 CPE 不会改变 OLT 侧的速率配置。
运营商限速的典型表现是“持续性限速”,不是“运行一段时间后退化,重启恢复”。所以从行为模式判断,这不像运营商限速。
更像什么?
更像一个资源或协商状态退化问题。
我们看桥接与路由模式的本质区别:
路由模式下:
- 光猫终止 PPPoE
- NAT 由光猫完成
- 硬件 NAT / 转发加速模块被启用
桥接模式下:
- PPPoE 终止在我自己的路由器
- 光猫只做二层转发
我现在关键现象是:1000Mbps → 500Mbps。
这非常像端口速率协商异常。
1G 网口的标准是 1000Mbps 全双工,如果协商异常,可能降为 100Mbps,但我遇到400~500Mbps 不属于标准协商速率,所以 500 不是物理层降速。
那 500Mbps 更像什么?
更像光猫 CPU 处理瓶颈上限。
我懒得测试到底是固件BUG还是光猫阉割导致的“软桥接”了。可以看到前面背景介绍中放出的另一篇文章,我家现在是全2.5G网络了,干脆直接换带2.5G口的光猫。
于是某天我带上身份证趁中午午休时间去了电信自有的营业厅,和前台妹子解释半天,听不懂我的诉求是啥,让我现场打电话给装维小哥,来个“三方对峙”。
算了,我一个i人,懒得跟她扯,你当是谈中日韩自贸区呢,出来营业厅直接打10000,客服妹子也是一样,啥2.5G、2.4G混为一谈根本不懂,我都有点生气了。
自己看了下2.5G光猫选购攻略,中兴F7015TV3完美符合我的需求,怒上海鲜市场,找了个本地的卖家自提。
本来想着已经约了装维小哥,自提好快些拿到。但没想到卖家不简单啊,准全新光猫包配好。
抱着试试不行有装维小哥兜底的心态,回家将新光猫接好,电脑有线连新光猫,手机开热点给电脑联网,ToDesk让卖家远程给我配置。
为什么我说卖家不简单?
我还以为要上旧光猫备份ID、MAC啥的,结果就让我拍了旧光猫背面标签贴给他做数据🤔,噫……看来是是出来挣外快的🤭。
这我就放心了。
反正就是三下两下配置好后,新光猫能上网了。
删原Route!新建 Bridge!重启!测速!
下行1280Mbps!
爽!
睡了一觉,起来再测!
嗯?
805Mbps?
没睡醒?再试下……
1158Mbps!
虚惊一场。
六、后记
再观察几天看看长时间还会不会掉速,有问题我再回来编辑文字更新进展。
第一次更新进展:
运行24小时后测速:1250Mbps,测速全程CPU占用率5%,看来是hardware offload了。
第二次更新进展:
运行5天后测速:1296Mbps,稳定不掉速了。
参考内容:
更换中兴万兆 2.5GE 光猫今天换了中兴7015TV3光猫,路由模式能跑1200左右,桥接才能跑500多[已解决]光猫桥接后主路由拨号带宽砍半是因为运营商绑定了光猫MAC光猫直连满速,接路由器降速这才是好光猫——中兴F7015TV3 10G EPON & XGPON双模光猫更换小记MT7621的NAT可以跑满千兆吗?光猫折腾——改桥接及网速降半解决办法为什么光猫桥接速度会减半啊?光猫桥接网速降低了_光猫桥接网速降低了-腾讯云开发者社区-腾讯云光猫改桥接,网速减半(千兆)光猫改桥接后无法上网和网速减半问题的解决办法关于光猫改为桥接用软路由拨号导致网速减半解决问题千兆宽带光猫桥接模式只能跑 600 兆左右求助各位大佬光猫桥接网速反而下降联通装机师傅给我说,如果光猫改桥接模式的话,速度只能达到100M北京电信,刚升级了宽带500M->1000M,但是桥接速率减半怎么破?--已解决中兴光猫 F7010C 路由模式只能跑400兆一个有关光猫改桥接后网速变慢的实验以及分析。