网速慢的常见原因

0    74    2

Tags:

👉 本文共约7405个字,系统预计阅读时间或需28分钟。

上网方式及理论网速

如图1-1,宽带网络是一个极其复杂的端到端系统,包括LAN侧和WAN侧。LAN侧指用户到AR这一段,包括FIT AP、S、用户终端等设备。WAN侧指AR到Internet之间,包括光猫、接入网、核心网设备,不过这些都是运营商提供的,与用户无关,不在本文讨论范围内。

网速慢的常见原因

图1-1 用户上网组网图

下行速率是指Internet向用户发送信息时的数据传输速率,单位是Mbit/s,比如打开浏览器,下载文件等。上行速率是指用户向Internet上传文件时可以达到的速率。对于大部分用户来说,主要上网业务是从Internet下载文件,而非上传文件,所以下行速率一般都高于上行速率。用户从宽带运营商那里办理的带宽值就是下行速率。例如,用户办理了200M宽带套餐,这里的200M就是下行速率,对应的上行速率可能只有几十M。

用户终端可以通过有线方式上网,也可以通过无线方式上网,不同的上网方式,用户能达到的最大网速也不同。本文讨论的是有线用户访问Internet时遇到的下行网速慢问题,因此下行速率才是有线用户网速可以达到的理论值。此外,有线用户的网速还与网络硬件设施(光猫、AR、S、网线)有关。在解决网速慢问题之前,请先检查网络的硬件设施符合网速的要。

如何测网速

当发现上网慢问题时,建议先测量一下实际的网速后再处理故障。常用的网速测量方法有网站测速、测速工具测速等。不同的测速方法测量结果略有不同,建议使用不同的测速方法多测几次:

  • 使用网站测速。各大运营商网站都提供了测速功能,例如中国电信宽带测速网,不同区域网址不一样,例如上海;也可以用一些专门的测速网站来测,例如测速网。
  • 使用测速工具测速。在应用商店下载并安装测量网速的工具进行测速,例如网速测试、网络测速大师、测网速大师等。

有些测速软件的测量结果是下载速度MB/s,但会同步换算成对应的带宽值Mbit/s。如果没有,也可以根据1MB/s = 8Mbit/s的关系,自己换算一下。

了解网速慢故障场景

AR作为企业网络的路由网关设备,在企业网络里扮演了非常重要的角色,为用户提供上网服务。为了帮助用户解决在通过AR上网时遇到的上网慢问题,本文从多个现网真实案例中,总结出两大常见上网慢故障场景:单上行出口上网慢和双上行/多上行出口上网慢。

单上行出口上网慢

单上行出口上网是指AR路由器和公网之间只有一条上行链路相连。如图1-2所示,AR和Internet之间的连线只有一条,GE3/0/0是连接Internet的接口,也叫作公网口,Eth2/0/0是连接私网的接口,也叫作私网口。该场景常见的上网慢原因包括:TCP最大报文段长度MSS(Max Segment Size)值配置不合理、网络攻击导致设备Session资源耗尽、接口模式协商错误等,具体定位方法请参见单上行出口上网慢故障处理章节。

网速慢的常见原因图1-2 单上行出口上网场景组网示例

双上行/多上行出口上网慢

双上行/多上行出口上网是指AR路由器和公网之间有两条或者大于两条上行链路相连。如图1-3所示,AR和Internet之间的连线有多条,GE0/0/1和GE0/0/2都是公网口,GE0/0/3是私网口。该场景常见的上网慢原因除了单出口场景中列出的,还包括一些特有的原因,例如:Dialer口路由问题、报文来回路径不一致、等价路由问题等,具体定位方法请参见双上行出口/多上行出口上网慢故障处理章节。

网速慢的常见原因

图1-3 双上行/多上行出口上网场景组网示例(PPPoE拨号)

为什么网速慢,原因在这里

图1-4是用户通过AR上网慢故障树,列出了单上行出口和双上行出口两种场景上网慢的常见原因。

网速慢的常见原因

图1-4 为什么网速这么慢故障树

单上行出口上网慢故障处理

报文分片导致部分网页打开慢

背景信息

如果仅是部分网页访问慢,其他网页访问正常,则大概率是由于TCP最大报文段长度MSS(Max Segment Size)值配置不合理,导致报文被分片传输,影响用户的上网速度。此时,可以参考本节内容,修改报文分片的参数值。

最大传输单元MTU(Maximum Transmission Unit)是用来标识IP报文是否分片的选项。如果对端发送的IP报文长度超过MTU值,则IP报文会进行分片处理。为了保证TCP报文不分片,配置过程中需要注意MSS与MTU的关系。一般情况下,为了不影响报文传输,MSS值加上报文开销(TCP首部、IP首部等)不超过MTU值。例如,以太网接口的缺省MTU值为1500字节,为了保证报文不分片,MSS值最大配置为1460(1500 − 20(TCP首部最小长度) − 20(IP首部最小长度))字节。推荐用户配置MSS值为1200字节。

定位步骤

【1】执行命令display ip interface brief,查看公网接口是物理接口还是Dialer接口。

【2】如果是物理接口,则在物理接口视图下执行命令tcp adjust-mss配置接口的TCP最大报文段长度,推荐数值为1200。

【3】如果是Dialer接口,则在Dialer接口视图下执行命令tcp adjust-mss配置接口的TCP最大报文段长度,推荐数值为1200,并执行命令mtu配置接口的最大传输单元值为1492。对于Dialer接口,adjust-mss值和mtu值不能配置一样。

【4】建议同步将私网接口的TCP最大报文段长度值也配置成推荐值1200。假设私网接口为GE0/0/2,则在私网接口上配置tcp adjust-mss 1200命令。

私网流量大导致设备的Session资源耗尽

背景信息

当网络中存在一些攻击行为或者业务较多时,路由器会收到大量流量,路由器的Session和Block内存资源很快会被耗尽,超过阈值。其他正常用户可能会因为分配不到Session和Block资源而出现上网慢情况。此时,可以参考本节内容,检查下设备的Session和Block资源是否正常。如果发现资源被耗尽,则通过traffic-policy或者traffic-filter命令禁止端口上的异常流量通过,同时找出攻击源进行杀毒。如果正常流量本身就很多,超过了设备的性能,则需要更换更高性能的设备。

定位步骤

【1】执行命令display logbuffer,查看Log缓冲区记录的信息中是否有大量Session和Block内存资源过载的日志。

【2】进入诊断视图,执行命令display session statistics top 10 order-by source-ip根据源IP地址统计Top 10用户的Session信息,检查Total Sessions字段的值是否接近设备的Session规格。设备的Session规格可以在规格查询工具中查到,以AR1220C为例,选择“接入路由器”->“AR1220C”->“软件性能”->“IP应用”->“NAT”->“最大并发连接数”。

【3】如果设备的Session数已达到设备的规格,且发现Top 10会话里有大量私网终端建立的会话(源IP地址为私网终端的IP地址,例如步骤1中的192.168.1.99和192.168.1.88),说明私网中可能存在攻击行为。此时,执行命令display session statistics top 10 order-by destination-port进一步查看私网终端建立的会话的端口信息。本例中,私网用户建立了大量目的端口为445和1433的会话,建议在私网接口上配置ACL规则拒绝目的端口为445和1433的流量通过。

在流策略里绑定ACL并将流策略应用到私网接口GE0/0/0,不允许目的端口为445和1433的流量通过私网接口,从而解决故障。

【4】如果检查之后,没有发现私网有攻击行为,则说明私网的业务较多,流量大属于正常现象,当前的设备性能已无法满足私网的业务,需要更换性能更高的设备。

私网存在ARP攻击导致用户上网时断时续

背景信息

如果用户发现上网时断时续,且网速特别慢,则很有可能是因为私网存在ARP攻击。此时,可以参考本节内容,检查设备上是否存在ARP攻击。

定位步骤

【1】执行命令display logbuffer检查设备运行日志,看是否有ARP协议报文因CPU阀值的限制被丢弃。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

【2】如果日志中有ARP报文被丢弃,则怀疑设备连接的私网中存在ARP攻击。此时,可以在设备上配置攻击溯源功能,进一步排查。

【3】配置完攻击溯源后,当网络出现异常时,在设备上执行命令display auto-defend attack-source进一步确认是否存在ARP攻击。

如上所示,私网中源IP地址为y.y.y.y,源MAC为yyyy-yyyy-yyyy的用户发送了大量的攻击报文(本例中GE0/0/1为公网接口,报文数量增长不大,可以忽略)。此时,根据被攻击端口GE0/0/0,逐层往下找到攻击源用户,使用杀毒软件杀毒,解决故障。

【4】如果无法查到攻击源用户,可以在设备的私网接口GE0/0/0上配置ACL规则过滤掉二层ARP流量功能,拒绝源MAC地址为yyyy-yyyy-yyyy的报文通过私网接口,解决故障。

公网接口状态异常导致网速慢

背景信息

如果公网接口状态异常,也会导致用户上网慢,例如,接口的状态异常、接口的双工模式不对。此时,可以参考本节内容,检查下AR设备连接公网的接口状态是否正常。

定位步骤

【1】假设AR设备连接公网的接口为GE0/0/1,执行命令display interface查看公网接口的信息,关注Duplex、Total Error、CRC、Giants等加粗部分的参数值。

【2】如果在全双工模式下,公网接口的双工模式被协商成了半双工,则公网接口在发送报文时会丢包,从而影响用户的上网速度。此时,可以检查公网接口协商的双工状态是否正确,即Duplex是否为FULL。

如果发现接口双工模式协商的不对,则可能是设备本身协商错了,也可能是对端接口的速率与本端接口的速率不一致导致。先在公网接口上执行命令speed,修改本端接口的速率和对端相同。

速率修改成一致后,如果接口的双工模式仍然协商错误,则可以执行命令duplex full手动配置接口的双工模式为全双工。

如果上述步骤无法解决双工问题,建议直接更换一根确认为好的网线,重新对接端口。

【3】如果接口上存在一些错包计数,即Total Error、CRC等参数不为0,则说明设备收到了错误报文。设备收到错误报文的原因比较多,可能是使用的线缆类型错误,也可能是对端设备的问题。

【4】如果以上操作都无法解决接口异常问题,则有可能是硬件故障,可以尝试更换一台新的设备解决故障。

双上行出口/多上行出口上网慢故障处理

Dialer接口拨号失败后路由未失效

背景信息

正常情况下,在双链路/多链路PPPoE拨号场景中,如果一条PPPoE链路拨号失败,用户的上网流量会切换到其他正常的链路转发。但是,如果拨号失败链路对应的Dialer接口没有Down掉,则该Dialer接口的路由会继续生效。用户的上网流量会继续在该条拨号失败的链路上转发,从而出现用户访问某些网页慢的问题。此时,可以参考本节内容,使拨号失败链路对应的Dialer接口状态为Down,并使对应的路由失效。

定位步骤

【1】执行命令display ip interface brief,查看Dialer接口与IP相关的简要信息,包括IP地址、子网掩码、物理链路和协议的Up/Down状态等。

【2】执行命令display ip routing-table查看IPv4路由表的信息。

【3】根据步骤1和步骤2查到的信息,可以看到Dialer1接口虽然拨号失败,未分配到IP地址,但是接口的物理和协议状态都为UP,导致Dialer1接口的路由仍然生效。此时,建议在每一个Dialer接口下配置命令dialer number 1 autodial,使Dialer接口拨号失败后转换为Down状态。当该Dialer接口的状态变为Down时,对应的路由也会同步失效。

公网口上收到的报文来回路径不一致

背景信息

在双出口/多出口链路上网场景,为了保证私网用户可以从任意一个公网口上网,每个公网口上都会配置NAT功能。AR的NAT功能会检查公网口上收到报文的来回路径是否一致,即报文从哪个公网口发送出去,对端回复的报文也要从该公网口收到。如果发现某个公网口上收到的报文来回路径不一致,则会丢弃该报文,导致出现上网慢问题。

例如,AR的双上行公网口分别为GE1和GE2,某个报文从GE1口发送出去,回程报文却从GE2口回来,此时,AR会丢弃该回程报文。出现这种报文来回路径不一致的情况,一般都是由对端设备发送报文时路由选择不对引起的。本节内容主要是指导用户如何在AR上定位出是否是因为报文的来回路径不一致引起的上网慢问题。具体的解决办法需要联系对端网络工程师处理,可以检查对端网络的组网或者修改配置等,保证对端设备发出的报文满足源进源出的要求。

定位步骤

【1】假设AR双上行公网口分别为GE0/0/1上和GE0/0/2,GE1口的对端设备所在的网络地址为172.16.1.0/24,用户访问该网段的一台主机的IP地址和端口号为172.16.1.254/24和65532。在AR的GE0/0/2口上配置基于ACL对报文流进行过滤功能,即GE0/0/2口上仅允许源IP地址为172.16.1.254/24,源端口号为65532的报文通过。

【2】在GE0/0/2上配置完流量统计功能后,执行命令display acl all查看设备上是否有ACL匹配计数。如果有如下粗体部分的记录,说明GE2口上收到了GE1口发出去的报文,出现了报文来回路径不一致的情况,需要联系对端网络工程师处理。

负载分担场景下的用户上网慢

背景信息

在双出口/多出口场景中,链路之间的关系分为负载分担和主备备份两种。负载分担是指同一时刻,多条链路都在转发流量。主备备份表示同一时刻只有一条链路在转发流量,另一条处于备份状态。负载分担可以提高链路使用效率,增加带宽,主要通过配置多条等价路由来实现。主备备份可以提高链路可靠性,主要通过配置多条不同优先级的路由来实现。

不同的企业使用不同的方式,但是在多条质量差别较大的链路间使用负载分担可能会引入上网慢问题。例如,AR将某个用户访问某个网页的报文分配到两条链路上转发,质量较差的链路转发报文慢,且丢包多,必然会影响用户的上网体验。因此,在双出口/多出口场景时,如果遇到负载分担场景下的上网慢问题,可以参考本节内容,改成主备备份方式或者配置策略路由来解决。

定位步骤

【1】在AR上执行命令display ip routing-table protocol static查看配置的静态路由表信息。如果路由表内有两条优先级相同的路由分别到不同的下一跳,说明两条路由是等价路由,链路之间是负载分担的关系。

【2】删掉其中一条路由,重新访问网页,检查使用单链路上网时是否会出现上网慢现象。如果无,则说明两条链路质量都很好,上网慢并非是等价路由引起的问题,有可能是负载分担算法配置不合理引起的。此时,可以执行命令ip load-balance hash,配置两条等价路由的负载分担方式。缺省情况下,IP报文基于源IP地址和目的IP地址进行负载分担;TCP或者UDP报文基于源IP地址、目的IP地址、源端口号和目的端口号进行负载分担。

【3】如果其中一条路由上网慢,说明该条链路质量差。建议执行命令ip route-static,修改该条路由的优先级,使其小于另一条路由的优先级,让该条链路成为备份链路。路由优先级值越大,路由优先级越低。

【4】如果用户不想把两条链路改成主备备份,仍然希望两条链路都能转发流量,也可以通过配置策略路由的方式解决该问题。策略路由配置的原则为让质量好的链路多转发一些流量,质量差的链路少转发一些流量。例如,让70%的用户流量从质量好的链路转发,30%的用户流量从质量差的链路转发。

主备链路场景下的用户上网慢

背景信息

在双出口/多出口场景中,有些企业用户对链路的可靠性要求较高,会同时部署多条链路作为主备链路。这种组网确实可以提高链路可靠性,减少丢包,但不表示一点丢包都没有。当主链路发生故障时,AR会删除NAT表项里该条链路的相关信息,并等待客户端给服务器发送新的建立连接请求。AR则根据客户端发送的连接请求重新建立会话表项。AR重新建立会话表项的时间依赖于客户端和服务器之间的报文交互时间。极端情况下,如果客户端一直不发请求,则网络访问会中断。有些用户不太了解AR建立连接的机制,会误认为出故障了,实际上属于正常上网慢现象。如果遇到主备链路场景下的上网慢问题,可以参考本节内容,检查是否由于重新建立连接引起的。

定位步骤

【1】在AR路由器上连续多次执行命令display nat session查看NAT映射表项信息是否有变化。

【2】如果发现NAT表项中“SrcAddr Port Vpn”字段的源端口号发生变化,说明AR设备上重新建立了NAT会话表项,该上网慢是由NAT表项重新建立引起的,属于正常情况,无需额外处理。

收集上网慢故障信息

如果以上步骤均未能解决您的问题,请先按如下步骤收集相关信息,然后寻求技术支持。

【1】收集故障相关信息

一键式收集设备的所有诊断信息并导出文件。

在用户视图下,执行display diagnostic-information file-name 命令,采集设备诊断信息并保存为文件。

【2】收集设备的日志和告警信息并导出文件。

在用户视图下,执行save logfile命令,将缓冲区的日志和告警信息保存为文件。

参考

https://mp.weixin.qq.com/s/nLOQVBAvXqMBcOAo5l6RWA

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部