记办公室网从完全炸掉到勉强能用的修复过程
Published in:2023-11-17 | category: 技术

记办公室网从完全炸掉到勉强能用的修复过程

背景

办公室的网络有一天突然无法使用了。最开始的症状是,WLAN 无法连接,虽然密码输对了但是就是连接不上。

并且,对于新接入办公室网络的设备,都不能自动跳转 WLAN 的登录页面,因此无法使用网络。

办公室的网络是这样的:

stateDiagram
    sdu_net --> switchPort1
    switchPort2 --> PC2
    switchPort3 --> PC3
    switchPort4 --> PC1
    switchPort5 --> Server
    switchPort6 --> Screen
    switchPort7 --> WorkStation
    switchPort8 --> LAN1
    state switch {
      switchPort1:#1
      switchPort2:#2
      switchPort3:#3
      switchPort4:#4
      switchPort5:#5
      switchPort6:#6
      switchPort7:#4
      switchPort8:#8
    }
    state wireless_Router {
        wireless_Router_LANPorts : LAN
        wireless_Router_WANPort: WAN
        wireless_Router_wireless: Wireless
    }
    state wireless_Router_LANPorts{
        LAN1
        LAN2
        LAN3
        LAN4
    }
    state wireless_Router_wireless {
        2.4G
        5G
        visitor(disabled)
    }

至于为什么这么设计,主要是考虑到sdu_net按MAC地址分配带宽,如果使用了路由器组成子网,那么路由器的MAC地址就会被sdu_net识别,从而导致所有设备的总带宽就是路由器的MAC地址对应的带宽,网速会严重受限。

由于这种情况下,网络中的设备都直接使用了sdu_net中DHCP分配的IP地址,因此无法使用路由器的DHCP功能,再加上租期的限制,已经不可能知道路由器现在的IP地址是什么了。而且sdu_net的安全性限制了局域网中设备互相访问,无法登入路由器的管理页面。

我们只能长按路由器的重置键,将路由器恢复出厂设置,然后重新配置路由器。

本来应该没什么问题的。重置完路由器之后,将交换机接到路由器的线暂时接到路由器的WAN口,由于DHCP默认打开,我们将LAN口接到一个电脑上,那个电脑就可以通过网关的IP地址访问到路由器的管理页面。简单配置了LAN口,关闭了DHCP服务器功能并将LAN口的IP地址改为自动获取,然后将入户线接回LAN口。

然后,我们发现,办公室的电脑都一下子全部连不上网了。

接下来,我们尝试将入户线直接接上交换机,拔下路由器。将所有设备全部接入交换机。在Windows设备上,运行

1
ipconfig /renew

然后,意外地发现——居然无法获取 IP 地址了。那么问题应该在上游。

随后,我将入户线直接插到我的电脑上面,能分配IP并且登录之后能正常上网。接下来再将入户线插回交换机,还是一样的效果,无法上网,无法分配 IP 地址。

暂时的解决办法是,既然不知道为什么入户线只能让一个设备联网,就接入路由器的 WAN 口,由于路由器的 MAC 地址已经被之前的某个人设置为了无感知,登录的步骤也跳过了。

此时,办公室的网络拓扑变成了这样:

stateDiagram
    sdu_net --> wireless_Router_WANPort
    switchPort1
    switchPort2 --> PC2
    switchPort3 --> PC3
    switchPort4 --> PC1
    switchPort5 --> Server
    switchPort6 --> Screen
    switchPort7 --> WorkStation
    LAN1 --> switchPort8
    state switch {
      switchPort1:#1
      switchPort2:#2
      switchPort3:#3
      switchPort4:#4
      switchPort5:#5
      switchPort6:#6
      switchPort7:#7
      switchPort8:#8
    }
    state wireless_Router {
        wireless_Router_LANPorts : LAN
        wireless_Router_WANPort: WAN
        wireless_Router_wireless: Wireless
    }
    state wireless_Router_LANPorts{
        LAN1
        LAN2
        LAN3
        LAN4
    }
    state wireless_Router_wireless {
        2.4G
        5G
        visitor(disabled)
    }

问题重现

接下来的几天办公室网络访问总是非常卡顿和不稳定。带宽的限制理论上也不至于这么严重。

对于一个不稳定的网络,首先想到的就是丢包率。于是我在办公室的电脑上面运行:

1
ping -t www.baidu.com

运行了半个小时,测试出丢包率在50%左右。难怪DHCP无法正常使用,因为数据包丢的差不多了。一台设备还勉勉强强凑合——多发几个数据包总有一两个能成功;设备一多就肯定不行了。

这种问题只好找网管来解决了。网管在后台发现,办公室的设备频繁上线、下线;测试硬件,入户的网口1#芯基本不能正常工作(估计因此导致丢包)。

但是由于线都走在墙面内部,不方便重新排线,只能等后续安排;但是办公室的设备无法连网的问题还是要解决的。这种时候就只能想些不太正常的办法了。

我们得到了一个无线网卡。将网卡插在一个电脑上面并连接到了无线网络,把Internet连接共享到子网,该电脑的有线网卡连上路由器的 LAN 口,路由器的 LAN 再接上交换机;配置该电脑为网关,IP地址 192.168.137.1,路由器设置了一个我能记住的IP 192.168.137.254,设置路由器的 DHCP 区段在 192.168.137.xxx 并将 DNS 服务器设置到了公共 DNS 9.9.9.9 上面。

问题暂时解决。

附上解决方案时的图:

stateDiagram
    sdu_net(WLAN) --> workStation_WLAN
    switchPort1
    switchPort2 --> PC2
    switchPort3 --> PC3
    switchPort4 --> PC1
    switchPort5 --> Server
    switchPort6 --> Screen
    workStation_LAN --> switchPort7
    switchPort8 --> LAN1
    state switch {
      switchPort1:#1
      switchPort2:#2
      switchPort3:#3
      switchPort4:#4
      switchPort5:#5
      switchPort6:#6
      switchPort7:#7
      switchPort8:#8
    }
    state wireless_Router {
        wireless_Router_LANPorts : LAN
        wireless_Router_WANPort: WAN
        wireless_Router_wireless: Wireless
    }
    state wireless_Router_LANPorts{
        LAN1
        LAN2
        LAN3
        LAN4
    }
    state wireless_Router_wireless {
        2.4G
        5G
        visitor(disabled)
    }
    state workStation {
        workStation_LAN: LAN
        workStation_WLAN: WLAN
    }
Prev:
记一次 Windows 系统更新导致双系统无法启动的修复过程
Next:
搭建这个网页的一些记录