一、网速慢的场景
1.单上行出口上网慢
单上行出口上网是指AR路由器和公网之间只有一条上行链路相连。
该场景常见的上网慢原因包括:TCP最大报文段长度MSS(Max Segment Size)值配置不合理、网络攻击导致设备Session资源耗尽、接口模式协商错误等
2.双上行/多上行出口上网慢
双上行/多上行出口上网是指AR路由器和公网之间有两条或者大于两条上行链路相连。
该场景常见的上网慢原因除了单出口场景中列出的,还包括一些特有的原因,例如:Dialer口路由问题、报文来回路径不一致、等价路由问题等。
二、网速慢的如何应对
(一)单上行出口上网慢故障处理
1.报文分片导致部分网页打开慢
(1)背景信息
如果仅是部分网页访问慢,其他网页访问正常,则大概率是由于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字节。
(2)定位步骤
【1】执行命令display ip interface brief,查看公网接口是物理接口还是Dialer接口。
【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资源耗尽
(1)背景信息
当网络中存在一些攻击行为或者业务较多时,路由器会收到大量流量,路由器的Session和Block内存资源很快会被耗尽,超过阈值。
其他正常用户可能会因为分配不到Session和Block资源而出现上网慢情况。
此时,可以检查下设备的Session和Block资源是否正常。
如果发现资源被耗尽,则通过traffic-policy或者traffic-filter命令禁止端口上的异常流量通过,同时找出攻击源进行杀毒。
如果正常流量本身就很多,超过了设备的性能,则需要更换更高性能的设备。
(2)定位步骤
【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"->"最大并发连接数"
[Huawei] diagnose
[Huawei-diagnose] display session statistics top 10 order-by source-ip
【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的流量通过。
[Huawei-diagnose] display session statistics top 10 order-by destination-port
[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攻击导致用户上网时断时续
(1)背景信息
如果用户发现上网时断时续,且网速特别慢,则很有可能是因为私网存在ARP攻击。此时,可以检查设备上是否存在ARP攻击。
(2)定位步骤
【1】执行命令display logbuffer检查设备运行日志,看是否有ARP协议报文因CPU阀值的限制被丢弃。
【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攻击。
此时,根据被攻击端口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
4.公网接口状态异常导致网速慢
(1)背景信息
如果公网接口状态异常,也会导致用户上网慢,例如,接口的状态异常、接口的双工模式不对。此时,可以参考本节内容,检查下AR设备连接公网的接口状态是否正常。
(2)定位步骤
【1】假设AR设备连接公网的接口为GE0/0/1,执行命令display interface查看公网接口的信息,关注Duplex、Total Error、CRC、Giants等加粗部分的参数值。
【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】如果以上操作都无法解决接口异常问题,则有可能是硬件故障,可以尝试更换一台新的设备解决故障。
(二)双上行出口/多上行出口上网慢故障处理
1.Dialer接口拨号失败后路由未失效
(1)背景信息
正常情况下,在双链路/多链路PPPoE拨号场景中,如果一条PPPoE链路拨号失败,用户的上网流量会切换到其他正常的链路转发。
但是,如果拨号失败链路对应的Dialer接口没有Down掉,则该Dialer接口的路由会继续生效。
用户的上网流量会继续在该条拨号失败的链路上转发,从而出现用户访问某些网页慢的问题。
此时,可以使拨号失败链路对应的Dialer接口状态为Down,并使对应的路由失效。
(2)定位步骤
【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时,对应的路由也会同步失效。
system-view
[Huawei] interface dialer 1
[Huawei-Dialer1] dialer number 1 autodial
[Huawei-Dialer1] quit
[Huawei] quit
- 公网口上收到的报文来回路径不一致
(1)背景信息
在双出口/多出口链路上网场景,为了保证私网用户可以从任意一个公网口上网,每个公网口上都会配置NAT功能。
AR的NAT功能会检查公网口上收到报文的来回路径是否一致,即报文从哪个公网口发送出去,对端回复的报文也要从该公网口收到。
如果发现某个公网口上收到的报文来回路径不一致,则会丢弃该报文,导致出现上网慢问题。
例如,AR的双上行公网口分别为GE1和GE2,某个报文从GE1口发送出去,回程报文却从GE2口回来,此时,AR会丢弃该回程报文。
出现这种报文来回路径不一致的情况,一般都是由对端设备发送报文时路由选择不对引起的。
具体的解决办法需要联系对端网络工程师处理,可以检查对端网络的组网或者修改配置等,保证对端设备发出的报文满足源进源出的要求。
(2)定位步骤
【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匹配计数。
- 负载分担场景下的用户上网慢
(1)背景信息
在双出口/多出口场景中,链路之间的关系分为负载分担和主备备份两种。负载分担是指同一时刻,多条链路都在转发流量。
主备备份表示同一时刻只有一条链路在转发流量,另一条处于备份状态。
负载分担可以提高链路使用效率,增加带宽,主要通过配置多条等价路由来实现。
主备备份可以提高链路可靠性,主要通过配置多条不同优先级的路由来实现。
不同的企业使用不同的方式,但是在多条质量差别较大的链路间使用负载分担可能会引入上网慢问题。
例如,AR将某个用户访问某个网页的报文分配到两条链路上转发,质量较差的链路转发报文慢,且丢包多,必然会影响用户的上网体验。
因此,在双出口/多出口场景时,如果遇到负载分担场景下的上网慢问题,可以改成主备备份方式或者配置策略路由来解决。
(2)定位步骤
【1】在AR上执行命令display ip routing-table protocol static查看配置的静态路由表信息。如果路由表内有两条优先级相同的路由分别到不同的下一跳,说明两条路由是等价路由,链路之间是负载分担的关系。
【2】删掉其中一条路由,重新访问网页,检查使用单链路上网时是否会出现上网慢现象。
如果无,则说明两条链路质量都很好,上网慢并非是等价路由引起的问题,有可能是负载分担算法配置不合理引起的。
此时,可以执行命令ip load-balance hash,配置两条等价路由的负载分担方式。缺省情况下,IP报文基于源IP地址和目的IP地址进行负载分担;TCP或者UDP报文基于源IP地址、目的IP地址、源端口号和目的端口号进行负载分担。
system-view
[Huawei] ip load-balance hash src-ip //配置基于源IP地址进行负载分担
【3】如果其中一条路由上网慢,说明该条链路质量差。建议执行命令ip route-static,修改该条路由的优先级,使其小于另一条路由的优先级,让该条链路成为备份链路。路由优先级值越大,路由优先级越低。
[Router] ip route-static 0.0.0.0 0 10.1.1.2 preference 100
【4】如果不想把两条链路改成主备备份,仍然希望两条链路都能转发流量,也可以通过配置策略路由的方式解决该问题。
策略路由配置的原则为让质量好的链路多转发一些流量,质量差的链路少转发一些流量。
例如,让70%的用户流量从质量好的链路转发,30%的用户流量从质量差的链路转发。
- 主备链路场景下的用户上网慢
(1)背景信息
在双出口/多出口场景中,有些企业用户对链路的可靠性要求较高,会同时部署多条链路作为主备链路。这种组网确实可以提高链路可靠性,减少丢包,但不表示一点丢包都没有。
当主链路发生故障时,AR会删除NAT表项里该条链路的相关信息,并等待客户端给服务器发送新的建立连接请求。
AR则根据客户端发送的连接请求重新建立会话表项。
AR重新建立会话表项的时间依赖于客户端和服务器之间的报文交互时间。
极端情况下,如果客户端一直不发请求,则网络访问会中断。
有些用户不太了解AR建立连接的机制,会误认为出故障了,实际上属于正常上网慢现象。
如果遇到主备链路场景下的上网慢问题,可以检查是否由于重新建立连接引起的。
(2)定位步骤
【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.txt
【2】收集设备的日志和告警信息并导出文件。
在用户视图下,执行save logfile命令,将缓冲区的日志和告警信息保存为文件。
save logfile