记一次硬核抗洪:房东傻瓜交换机引发的接入网口崩溃死循环修障指南

软硬兼施:三维终极抗洪解决技术方案

既然高通底层的硬件风暴控制和硬件 ACL 被固件部分裁剪(ssdk_sh 提示 This request is not support),且系统没有 arptables 和 sysctl 命令,我们最终通过物理层钝化、内核层免疫、防火墙层前移三个维度彻底解决了问题。
1. 物理层防御:锁死 100M 全双工
利用高通交换芯片控制台(SSDK),强行清除 WAN 口的自动协商,让网卡物理层启用更宽的电气容错和更慢的接收频率,压制住 PHY 芯片的过载闪断。
ssdk_sh
port autoneg restart 2 disable
port speed set 2 100
port duplex set 2 full
quit
 
2. 内核层防御:绕过工具链直接修改 proc 接口
直接向 Linux 原始内核伪文件系统注入指令,告诉内核不再去为了全楼栋泛滥的无用 ARP 广播耗费计算资源,直接从协议栈最前端静默丢弃。
# 2 表示只有在目标 IP 确实配置在 WAN 口上,且源 IP 与该接口子网匹配时才响应 ARP
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# 1 表示当有单播或广播更新时,必须严格匹配路由表验证来源
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_filter

 

3. 防火墙层防御:关闭硬件 Bypass 并将规则前移
使用华硕系统的 nvram 强行关闭高通硬件加速引擎(因为 WAN 口已被迫锁死百兆,四核 CPU 纯软件转发仅需耗费 3% 性能,完全无感)。
加速引擎关闭后,Linux 防火墙全面苏醒。我们将“二层 MAC 地址阻断罩”写进必然存在的 mangle 表 PREROUTING 链(位置最靠前),除了房东信任的网关 MAC 外,其他所有未知 MAC 流量一律在三层前直接丢弃。
# 强行关闭高通硬件加速
nvram set fc_disable=1
nvram set runner_disable=1
nvram set hnat_disable=1

# 将拦截规则作为华硕官方用户规则钩子写入 nvram,防止 WAN 口重启时被华硕系统自动冲掉
nvram set fg_fw_user_rules="iptables -t mangle -I PREROUTING 1 -i eth0 -m mac ! --mac-source 3c:46:d8:3d:fb:6e -j DROP"
nvram set script_userrun="echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_ignore && echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_filter"
nvram commit
reboot

 

备忘:如何还原

若日后搬离该环境,可通过以下指令恢复高通加速与自动协商:
nvram unset fc_disable && nvram unset runner_disable && nvram unset hnat_disable
nvram unset fg_fw_user_rules && nvram unset script_userrun && nvram commit
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 0 > /proc/sys/net/ipv4/conf/eth0/arp_filter
# 进入 ssdk_sh 恢复 auto:port speed set 2 auto
reboot

 

或直接恢复出厂设置。

发表评论

错误: Content is protected !!