检查和诊断

检查和诊断

我们有一个入门级企业无线路由器TP-Link TL-WVR1300G(中文页面)我们在B市有两台物理服务器,分别位于A市和B市,并且我们在这两台服务器之间通过互联网建立了VoIP(SIP)中继。

直到最近几天,一切都很好:这个 VoIP 中继上的语音质量变得非常差,以致通话的双方无法听到对方的声音(或者一方可以听到另一方的声音,但反之亦然)。

一开始以为是网络不好或者有人占用了大带宽导致的,但是经过后面的检查和诊断,并不是这个原因。


检查和诊断

当语音质量不佳时,

  • A市的互联网总流量并没有达到ISP提供的全部带宽,甚至连一半的带宽都没有达到。
  • 我可以从 A 城市的服务器 ping 通 B 城市的路由器的 IP 地址,但我会得到很大的数据包丢失率(>10%,我甚至有一次得到了 63%,每 5 分钟 ping 100 次)。虽然我不会得到每 5 分钟超过 10% 的数据包丢失率,但仍然很多。
  • B市的员工可能同时遇到网速慢的情况。
  • 我无法使用流行的浏览器访问路由器的Web管理页面——没有响应。
  • 实际上,如果我使用curl命令访问路由器的 Web 管理页面的主页在早晨,我可以得到响应。然后我尝试使用它wget -r来获取路由器的整个站点,它在访问一个 .png 文件时挂起:/webpages/themes/neoteric/img/password_unshow.png

    --2018-11-18 13:43:03--  http://172.18.1.1/webpages/themes/neoteric/img/password_unshow.png
    正在连接 172.18.1.1:80... 已连接。
    已发出 HTTP 请求,正在等待回应... 200 OK
    长度:3365 (3.3K) [image/png]
    正在保存至: “172.18.1.1/webpages/themes/neoteric/img/password_unshow.png”
    
    172.18.1.1/webpages/themes/neoteric/img/password_unshow.png 100%[======================================================================>]   3.29K   660 B/s  用时 5.6s
    
    2018-11-18 13:43:08 (600 B/s) - 在 3372/3365 字节处发生读取错误 ((null))。重试中。
    
    --2018-11-18 13:43:09--  (尝试次数: 2)  http://172.18.1.1/webpages/themes/neoteric/img/password_unshow.png
    正在连接 172.18.1.1:80... 已连接。
    已发出 HTTP 请求,正在等待回应... ^C
    

    现在,即使使用命令行访问,直到第二天早上 08:00 才可以访问路由器的 Web 管理页面(无响应)。

    但是看看wget报告的字节范围:2018-11-18 13:43:08 (600 B/s) - 在 3372/3365 字节处发生读取错误 ((null))。重试中png 文件的大小为 3365 字节,但wget尝试读取大于文件大小的 3372 字节(结果为空),为什么?

  • 于是我禁用了 Firefox 中的加载图像选项(将permissions.default.image值更改为2about:config 页面中的值),第二天访问路由器的 Web 管理页面,没有问题。我发现有一个名为“自动清理”的配置,它被安排在每天早上 08:00(这就是路由器自动自我修复的原因)。
  • 在周末,B市没有员工值班的时候,即使路由器的Web管理页面无法访问,ping的丢包率也很低。

问题)

  • 路由器访问password_unshow.png文件时不响应HTTP请求,是不是硬件故障(flash memory故障?)的现象?
  • 造成数据包丢失率较高的可能原因有哪些?

更新 2018-11-21

我尝试了python脚本https://github.com/coincoin7/Wireless-Router-Vulnerability/blob/master/TplinkDiagnosticAuthenticatedRCE.txt,并使用 登录路由器telnet,它运行的是OpenWRT变体,我发现复制一些图像文件时出现IO错误:

root@TP-LINK:/etc/config# uname -a
Linux TP-LINK 3.3.8 #1 Wed Oct 19 19:14:51 CST 2016 mips GNU/Linux

root@TP-LINK:/etc/config# cat /etc/openwrt_version 
14.07
root@TP-LINK:/etc/config# cat /etc/openwrt_release 
DISTRIB_ID="OpenWrt"
DISTRIB_RELEASE="Barrier Breaker"
DISTRIB_REVISION="r38802"
DISTRIB_CODENAME="barrier_breaker"
DISTRIB_TARGET="ar71xx/generic"
DISTRIB_DESCRIPTION="OpenWrt Barrier Breaker 14.07"
DISTRIB_TAINTS="no-all no-ipv6 busybox"

root@TP-LINK:~# ll /www/webpages/themes/neoteric/img/password_unshow.png 
-rw-rw-r--    1 root     root          3365 Oct  8  2016 /www/webpages/themes/neoteric/img/password_unshow.png
root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/password_unshow.png /tmp
cp: read error: Input/output error
root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/password_shown.png /tmp
cp: read error: Input/output error
root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/tp-link.png /tmp
cp: read error: Input/output error

root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/icons-02.png /tmp/
root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/icons-01.png /tmp/
root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/loading.gif  /tmp/

root@TP-LINK:~# cp -p /www/webpages/themes/neoteric/img/refresh.png  /tmp/
cp: read error: Input/output error

因此,看起来闪存出现故障了。

相关内容