上网方式及理论网速:
如图1-1,宽带网络是一个极其复杂的端到端系统,包括LAN侧和WAN侧。LAN侧指用户到AR这一段,包括FIT AP、S、用户终端等设备。WAN侧指AR到Internet之间,包括光猫、接入网、核心网设备,不过这些都是运营商提供的,与用户无关,不在本文讨论范围内。
下行速率是指Internet向用户发送信息时的数据传输速率,单位是Mbit/s,比如打开浏览器,下载文件等。上行速率是指用户向Internet上传文件时可以达到的速率。对于大部分用户来说,主要上网业务是从Internet下载文件,而非上传文件,所以下行速率一般都高于上行速率。用户从宽带运营商那里办理的带宽值就是下行速率。例如,用户办理了200M宽带套餐,这里的200M就是下行速率,对应的上行速率可能只有几十M。
用户终端可以通过有线方式上网,也可以通过无线方式上网,不同的上网方式,用户能达到的最大网速也不同。本文讨论的是有线用户访问Internet时遇到的下行网速慢问题,因此下行速率才是有线用户网速可以达到的理论值。此外,有线用户的网速还与网络硬件设施有关。在解决网速慢问题之前,请先检查网络的硬件设施符合网速的要。
如何测网速:
当发现上网慢问题时,建议先测量一下实际的网速后再处理故障。常用的网速测量方法有网站测速、测速工具测速等。不同的测速方法测量结果略有不同,建议使用不同的测速方法多测几次:
使用网站测速。各大运营商网站都提供了测速功能,例如中国电信宽带测速网,不同区域网址不一样,例如上海;也可以用一些专门的测速网站来测,例如测速网。使用测速工具测速。在应用商店下载并安装测量网速的工具进行测速,例如网速测试、网络测速大师、测网速大师等。
有些测速软件的测量结果是下载速度MB/s,但会同步换算成对应的带宽值Mbit/s。如果没有,也可以根据1MB/s = 8Mbit/s的关系,自己换算一下。
了解网速慢故障场景:
AR作为企业网络的路由网关设备,在企业网络里扮演了非常重要的角色,为用户提供上网服务。为了帮助用户解决在通过AR上网时遇到的上网慢问题,本文从多个现网真实案例中,总结出两大常见上网慢故障场景:单上行出口上网慢和双上行/多上行出口上网慢。
单上行出口上网慢:
单上行出口上网是指AR路由器和公网之间只有一条上行链路相连。如图1-2所示,AR和Internet之间的连线只有一条,GE3/0/0是连接Internet的接口,也叫作公网口,Etp/0/0是连接私网的接口,也叫作私网口。该场景常见的上网慢原因包括:TCP最大报文段长度MSS值配置不合理、网络攻击导致设备Session资源耗尽、接口模式协商错误等,具体定位方法请参见单上行出口上网慢故障处理章节。
双上行/多上行出口上网慢:
双上行/多上行出口上网是指AR路由器和公网之间有两条或者大于两条上行链路相连。如图1-3所示,AR和Internet之间的连线有多条,GE0/0/1和GE0/0/2都是公网口,GE0/0/3是私网口。该场景常见的上网慢原因除了单出口场景中列出的,还包括一些特有的原因,例如:Dialer口路由问题、报文来回路径不一致、等价路由问题等,具体定位方法请参见双上行出口/多上行出口上网慢故障处理章节。
)
为什么网速慢,原因在这里:
图1-4是用户通过AR上网慢故障树,列出了单上行出口和双上行出口两种场景上网慢的常见原因。
单上行出口上网慢故障处理:
报文分片导致部分网页打开慢:
背景信息
如果仅是部分网页访问慢,其他网页访问正常,则大概率是由于TCP最大报文段长度MSS值配置不合理,导致报文被分片传输,影响用户的上网速度。此时,可以参考本节内容,修改报文分片的参数值。
最大传输单元MTU是用来标识IP报文是否分片的选项。如果对端发送的IP报文长度超过MTU值,则IP报文会进行分片处理。为了保证TCP报文不分片,配置过程中需要注意MSS与MTU的关系。一般情况下,为了不影响报文传输,MSS值加上报文开销不超过MTU值。例如,以太网接口的缺省MTU值为1500字节,为了保证报文不分片,MSS值最大配置为1460 20)字节。推荐用户配置MSS值为1200字节。
定位步骤:
【1】执行命令display ip interface brief,查看公网接口是物理接口还是Dialer接口。
display ip interface brief*down: administratively down ^down: standby : loopback : spoofing : E-Trunk down The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 3 The number of interface that is UP in Protocol is 2 The number of interface that is DOWN in Protocol is 3 Interface IP Address/Mask Physical Protocol Atm0/0/0 unassigned down down Bridge-if10 unassigned down down MFR0/0/1 unassigned down down NULL0 unassigned up up GE0/0/1 x.x.x.x/24 up up GE0/0/2 x.x.x.x/24 up up
【2】如果是物理接口,则在物理接口视图下执行命令tcp adjust-mss配置接口的TCP最大报文段长度,推荐数值为1200。
system-view[Huawei] interface GigabitEthernet 0/0/1[Huawei-GigabitEthernet0/0/1] tcp adjust-mss 1200
【3】如果是Dialer接口,则在Dialer接口视图下执行命令tcp adjust-mss配置接口的TCP最大报文段长度,推荐数值为1200,并执行命令mtu配置接口的最大传输单元值为1492。对于Dialer接口,adjust-mss值和mtu值不能配置一样。
[Huawei] interface Dialer 0[Huawei-Dialer0] tcp adjust-mss 1200[Huawei-Dialer0] mtu 1492[Huawei-Dialer0] restart
【4】建议同步将私网接口的TCP最大报文段长度值也配置成推荐值1200。假设私网接口为GE0/0/2,则在私网接口上配置tcp adjust-mss 1200命令。
system-view[Huawei] interface GigabitEthernet 0/0/2[Huawei-GigabitEthernet0/0/2] tcp adjust-mss 1200
私网流量大导致设备的Session资源耗尽:
背景信息
当网络中存在一些攻击行为或者业务较多时,路由器会收到大量流量,路由器的Session和Block内存资源很快会被耗尽,超过阈值。其他正常用户可能会因为分配不到Session和Block资源而出现上网慢情况。此时,可以参考本节内容,检查下设备的Session和Block资源是否正常。如果发现资源被耗尽,则通过traffic-policy或者traffic-filter命令禁止端口上的异常流量通过,同时找出攻击源进行杀毒。如果正常流量本身就很多,超过了设备的性能,则需要更换更高性能的设备。
定位步骤
【1】执行命令display logbuffer,查看Log缓冲区记录的信息中是否有大量Session和Block内存资源过载的日志。
display logbufferLogging buffer configuration and contents: enabled Allowed max buffer size: 1024 Actual buffer size: 512 Channel number: 4, Channel name: logbuffer Dropped messages: 0 Overwritten messages: 167 Current messages: 512 Mar 5 2021 15:47:25+08:00 Huawei %%01FORWARD/4/SESSION-RES-LACK[135]:The device session resources were overloaded.Mar 5 2021 16:29:25+08:00 Huawei %%01FORWARD/4/CAP-BLOCK-RES-LACK[259]:The block memory resources were overloaded.Mar 5 2021 16:34:25+08:00 Huawei %%01FORWARD/4/SESSION-RES-LACK[261]:The device session resources were overloaded.Mar 5 2021 16:43:25+08:00 Huawei %%01FORWARD/4/CAP-BLOCK-RES-LACK[273]:The block memory resources were overloaded.
【2】进入诊断视图,执行命令display session statistics top 10 order-by source-ip根据源IP地址统计Top 10用户的Session信息,检查Total Sessions字段的值是否接近设备的Session规格。设备的Session规格可以在规格查询工具中查到,以AR1220C为例,选择“接入路由器”->“AR1220C”->“软件性能”->“IP应用”->“NAT”->“最大并发连接数”。
[Huawei] diagnose[Huawei-diagnose] display session statistics top 10 order-by source-ipSession statistic top 10 -------------------------------------------------------------------------------------------------TOP-N IP/Port Counts Percentage -------------------------------------------------------------------------------------------------1 192.168.1.99 19714 76.505744 2 192.168.1.88 5988 23.238125 3 192.168.1.165 9 0.034927
【3】如果设备的Session数已达到设备的规格,且发现Top 10会话里有大量私网终端建立的会话,说明私网中可能存在攻击行为。此时,执行命令display session statistics top 10 order-by destination-port进一步查看私网终端建立的会话的端口信息。本例中,私网用户建立了大量目的端口为445和1433的会话,建议在私网接口上配置ACL规则拒绝目的端口为445和1433的流量通过。
[Huawei-diagnose] display session statistics top 10 order-by destination-portSession statistic top 10 -------------------------------------------------------------------------------------------------TOP-N IP/Port Counts Percentage -------------------------------------------------------------------------------------------------1 445 15486 60.097796 2 1433 9565 37.119683 3 3389 648 2.514747[Huawei-diagnose] quit [Huawei] interface GigabitEthernet 0/0/0[Huawei-GigabitEthernet0/0/0] display this#ip address 192.168.1.255 255.255.255.0
在流策略里绑定ACL并将流策略应用到私网接口GE0/0/0,不允许目的端口为445和1433的流量通过私网接口,从而解决故障。
[Huawei] acl 3000 [Huawei-acl-adv-3000] rule 20 permit tcp destination-port eq 445[Huawei-acl-adv-3000] rule 25 permit tcp destination-port eq 1433[Huawei-acl-adv-3000] quit[Huawei] traffic classifier virus operator or[Huawei-classifier-virus] if-match acl 3000[Huawei-classifier-virus] quit[Huawei] traffic behavior virus[Huawei-behavior-virus] deny[Huawei-behavior-virus] quit[Huawei] traffic policy virus [Huawei-trafficpolicy-virus] classifier virus behavior virus [Huawei-trafficpolicy-virus] quit[Huawei] interface GigabitEthernet 0/0/0[Huawei-GigabitEthernet0/0/0] traffic-policy virus outbound[Huawei-GigabitEthernet0/0/0] traffic-policy virus inbound
【4】如果检查之后,没有发现私网有攻击行为,则说明私网的业务较多,流量大属于正常现象,当前的设备性能已无法满足私网的业务,需要更换性能更高的设备。
私网存在ARP攻击导致用户上网时断时续:
背景信息
如果用户发现上网时断时续,且网速特别慢,则很有可能是因为私网存在ARP攻击。此时,可以参考本节内容,检查设备上是否存在ARP攻击。
定位步骤
【1】执行命令display logbuffer检查设备运行日志,看是否有ARP协议报文因CPU阀值的限制被丢弃。
display logbufferSep 9 2021 16:01:55+00:00 Huawei %%01SECE/4/PORT_ATTACK[0]:Port attack occurred.Sep 9 2021 16:01:54+00:00 Huawei %%01DEFD/4/CPCAR_DROP_MPU[1]:Some packets are dropped by cpcar on the MPU. Sep 9 2021 16:01:54+00:00 Huawei %%01DEFD/4/CPCAR_DROP_MPU[2]:Some packets are dropped by cpcar on the MPU.
【2】如果日志中有ARP报文被丢弃,则怀疑设备连接的私网中存在ARP攻击。此时,可以在设备上配置攻击溯源功能,进一步排查。
system-view[Huawei] cpu-defend policy 1[Huawei-cpu-defend-policy-1] auto-defend enable[Huawei-cpu-defend-policy-1] auto-defend threshold 40 //可适当调整建议不要太小[Huawei-cpu-defend-policy-1] auto-defend attack-packet sample 5[Huawei-cpu-defend-policy-1] auto-defend protocol all[Huawei-cpu-defend-policy-1] auto-defend trace-type source-ip source-mac source-portvlan[Huawei-cpu-defend-policy-1] auto-defend alarm enable[Huawei-cpu-defend-policy-1] quit[Huawei] cpu-defend-policy 1 [Huawei] cpu-defend-policy 1 global
【3】配置完攻击溯源后,当网络出现异常时,在设备上执行命令display auto-defend attack-source进一步确认是否存在ARP攻击。
[Huawei] display auto-defend attack-sourceAttack Source User Table:-------------------------------------------------------------------------MacAddress InterfaceName Vlan:Outer/Inner TOTAL -------------------------------------------------------------------------xxxx-xxxx-xxxx GigabitEthernet0/0/1 0 368 yyyy-yyyy-yyyy GigabitEthernet0/0/0 0 7152 -------------------------------------------------------------------------Total: 2Attack Source Port Table:-----------------------------------------------------InterfaceName Vlan:Outer/Inner TOTAL -----------------------------------------------------GigabitEthernet0/0/1 0 368 GigabitEthernet0/0/0 0 23472 -----------------------------------------------------Total: 2Attack Source IP Table:-------------------------------------IPAddress TOTAL Packets -------------------------------------x.x.x.x 368 y.y.y.y 7152 ------------------------------------- Total: 2
如上所示,私网中源IP地址为y.y.y.y,源MAC为yyyy-yyyy-yyyy的用户发送了大量的攻击报文。此时,根据被攻击端口GE0/0/0,逐层往下找到攻击源用户,使用杀毒软件杀毒,解决故障。
【4】如果无法查到攻击源用户,可以在设备的私网接口GE0/0/0上配置ACL规则过滤掉二层ARP流量功能,拒绝源MAC地址为yyyy-yyyy-yyyy的报文通过私网接口,解决故障。
[Huawei] acl number 4444[Huawei-acl-L2-4444] rule 5 deny l2-protocol arp source-mac yyyy-yyyy-yyyy [Huawei] interface gigabitethernet 0/0/0[Huawei-GigabitEthernet0/0/0] traffic-filter inbound acl 4444[Huawei-GigabitEthernet0/0/0] quit[Huawei] quit
公网接口状态异常导致网速慢
背景信息
如果公网接口状态异常,也会导致用户上网慢,例如,接口的状态异常、接口的双工模式不对。此时,可以参考本节内容,检查下AR设备连接公网的接口状态是否正常。
定位步骤
【1】假设AR设备连接公网的接口为GE0/0/1,执行命令display interface查看公网接口的信息,关注Duplex、Total Error、CRC、Giants等加粗部分的参数值。
display interface GigabitEthernet 0/0/1 GigabitEthernet0/0/1 current state : UP Line protocol current state : UP Last line protocol up time : 2021-10-08 09:00:00 Description:HUAWEI, AR Series, GigabitEthernet0/0/1 Interface Route Port,The Maximum Transmit Unit is 1500 Internet Address is 120.44.5.15/24 IP Sending frames' Format is PKTFMT_ETHNT_2, Hardware address is 60d7-55f0-42c1 Last physical up time : 2021-10-08 09:00:00 Last physical down time : 2021-10-08 08:58:09 Current system time: 2021-10-22 06:14:56 Port Mode: COMMON COPPER Speed : 100, Loopback: NONE Duplex: FULL, Negotiation: ENABLE Mdi : AUTO, Clock : - Last 300 seconds input rate 99992 bits/sec, 50 packets/sec Last 300 seconds output rate 192 bits/sec, 0 packets/sec Input peak rate 223880 bits/sec,Record time: 2021-10-13 14:13:56 Output peak rate 18464 bits/sec,Record time: 2021-10-20 07:27:05 Input: 55586497 packets, 13516267464 bytes Unicast: 10526, Multicast: 195548 Broadcast: 55380423, Jumbo: - Discard: 0, Total Error: 0 CRC: 0, Giants: 0 Jabbers: 0, Throttles: 0 Runts: 0, Symbols: 0 Ignoreds: 0, frames: 0 Output: 9237 packets, 590811 bytes Unicast: 9227, Multicast: 0 Broadcast: 10, Jumbo: - Discard: 0, Total Error: 0 Collisions: 0, ExcessiveCollisions: 0 Late Collisions: 0, Deferreds: 0 Input bandwidth utilization threshold : 100.00% Output bandwidth utilization threshold: 100.00% Input bandwidth utilization : 0.11% Output bandwidth utilization : 0.01%
【2】如果在全双工模式下,公网接口的双工模式被协商成了半双工,则公网接口在发送报文时会丢包,从而影响用户的上网速度。此时,可以检查公网接口协商的双工状态是否正确,即Duplex是否为FULL。
如果发现接口双工模式协商的不对,则可能是设备本身协商错了,也可能是对端接口的速率与本端接口的速率不一致导致。先在公网接口上执行命令speed,修改本端接口的速率和对端相同。
system-view [Huawei] interface GigabitEthernet 0/0/1[Huawei-GigabitEthernet0/0/1] undo negotiation auto[Huawei-GigabitEthernet0/0/1] speed 100
速率修改成一致后,如果接口的双工模式仍然协商错误,则可以执行命令duplex full手动配置接口的双工模式为全双工。
system-view [Huawei] interface GigabitEthernet 0/0/1[Huawei-GigabitEthernet0/0/1] duplex full[Huawei-GigabitEthernet0/0/1] quit[Huawei] quit
如果上述步骤无法解决双工问题,建议直接更换一根确认为好的网线,重新对接端口。
【3】如果接口上存在一些错包计数,即Total Error、CRC等参数不为0,则说明设备收到了错误报文。设备收到错误报文的原因比较多,可能是使用的线缆类型错误,也可能是对端设备的问题。
【4】如果以上操作都无法解决接口异常问题,则有可能是硬件故障,可以尝试更换一台新的设备解决故障。
双上行出口/多上行出口上网慢故障处理:
Dialer接口拨号失败后路由未失效
背景信息
正常情况下,在双链路/多链路PPPoE拨号场景中,如果一条PPPoE链路拨号失败,用户的上网流量会切换到其他正常的链路转发。但是,如果拨号失败链路对应的Dialer接口没有Down掉,则该Dialer接口的路由会继续生效。用户的上网流量会继续在该条拨号失败的链路上转发,从而出现用户访问某些网页慢的问题。此时,可以参考本节内容,使拨号失败链路对应的Dialer接口状态为Down,并使对应的路由失效。
定位步骤
【1】执行命令display ip interface brief,查看Dialer接口与IP相关的简要信息,包括IP地址、子网掩码、物理链路和协议的Up/Down状态等。
display ip interface brief*down: administratively down ^down: standby : loopback : spoofing : E-Trunk down The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 3 The number of interface that is UP in Protocol is 2 The number of interface that is DOWN in Protocol is 3 Interface IP Address/Mask Physical Protocol Dialer1 unassigned up up Dialer2 100.64.40.165/32 up up
【2】执行命令display ip routing-table查看IPv4路由表的信息。
display ip routing-tableRoute Flags: R - relay, D - download to fib, T - to vpn-instance------------------------------------------------------------------------------Routing Tables: PublicDestinations : 31 Routes : 32 Destination/Mask Proto Pre Cost Flags NextHop Interface0.0.0.0/0 Static 60 0 D 0.0.0.0 Dialer1Static 60 0 D 100.64.40.165 Dialer2
【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的报文通过。
system-view[Huawei] acl 3000[Huawei-acl-adv-3000] rule 5 permit tcp source 172.168.1.254 0.0.0.0 source-port eq 65532 [Huawei-acl-adv-3000] quit[Huawei] interface GigabitEthernet 0/0/2[Huawei-GigabitEthernet0/0/2] traffic-filter inbound acl 3000[Huawei-GigabitEthernet0/0/2] quit
【2】在GE0/0/2上配置完流量统计功能后,执行命令display acl all查看设备上是否有ACL匹配计数。如果有如下粗体部分的记录,说明GE2口上收到了GE1口发出去的报文,出现了报文来回路径不一致的情况,需要联系对端网络工程师处理。
[Huawei] display acl all Total quantity of nonempty ACL number is 1 Advanced ACL 3000, 1 rule Acl's step is 5 rule 5 permit tcp source 172.168.1.254 0 source-port eq 65532
负载分担场景下的用户上网慢
背景信息
在双出口/多出口场景中,链路之间的关系分为负载分担和主备备份两种。负载分担是指同一时刻,多条链路都在转发流量。主备备份表示同一时刻只有一条链路在转发流量,另一条处于备份状态。负载分担可以提高链路使用效率,增加带宽,主要通过配置多条等价路由来实现。主备备份可以提高链路可靠性,主要通过配置多条不同优先级的路由来实现。
不同的企业使用不同的方式,但是在多条质量差别较大的链路间使用负载分担可能会引入上网慢问题。例如,AR将某个用户访问某个网页的报文分配到两条链路上转发,质量较差的链路转发报文慢,且丢包多,必然会影响用户的上网体验。因此,在双出口/多出口场景时,如果遇到负载分担场景下的上网慢问题,可以参考本节内容,改成主备备份方式或者配置策略路由来解决。
定位步骤
【1】在AR上执行命令display ip routing-table protocol static查看配置的静态路由表信息。如果路由表内有两条优先级相同的路由分别到不同的下一跳,说明两条路由是等价路由,链路之间是负载分担的关系。
在双出口/多出口场景中,有些企业用户对链路的可靠性要求较高,会同时部署多条链路作为主备链路。这种组网确实可以提高链路可靠性,减少丢包,但不表示一点丢包都没有。当主链路发生故障时,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 命令,采集设备诊断信息并保存为文件。
display diagnostic-information dia-info.txtThis operation will take several minutes, please wait........................................................................................... Info: The diagnostic information was saved to the device successfully.
【2】收集设备的日志和告警信息并导出文件。
在用户视图下,执行save logfile命令,将缓冲区的日志和告警信息保存为文件。
save logfileInfo: It may take several seconds,please wait... Save log file successfully.