NQA简介
NQA(Network Quality Analyzer,网络质量分析)通过发送探测报文,对链路状态、网络性能、网络提供的服务及服务质量进行分析,并为用户提供标识当前网络性能和服务质量的参数,
如时延、抖动时间、TCP连接建立时间、FTP连接建立时间和文件传输速率等。
利用NQA的分析结果,用户可以:
• 及时了解网络的性能状况,针对不同的网络性能进行相应处理。
• 对网络故障进行诊断和定位。
1.NQA基本概念
1)测试组
NQA测试组是一组测试参数的集合,如测试类型、测试目的地址、测试目的端口等。NQA测试组由一个管理员名称和一个操作标签来标识。管理员通过NQA测试组来实现对NQA测试的管理和调度。
在一台设备上可以创建多个NQA测试组,可以同时启动多个NQA测试组进行测试。
2)测试和探测
启动NQA测试组后,每隔一段时间进行一次测试,测试的时间间隔由frequency命令来设定。
一次NQA测试由若干次连续的探测组成,探测的次数由probe count命令来设定。
NQA支持多种测试类型:ICMP-echo、ICMP-jitter、DHCP、DNS、FTP、HTTP、UDP-jitter、SNMP、TCP、UDP-echo、UDP-tracert、Voice、Path-jitter和DLSw测试。不同测试类型中,探测的含义不同:
• 对于TCP和DLSw测试,一次探测操作是指建立一次TCP或DLSw连接;
• 对于ICMP-jitter和UDP-jitter和Voice测试,一次探测操作是指连续发送多个探测报文,发送探测报文的个数由probe packet-number命令来设定;
• 对于FTP、HTTP、DHCP和DNS测试,一次探测操作是指完成一次相应的功能,例如上传或下载一个文件,获取一个Web页面,申请一个IP地址,将一个域名解析为IP地址;
• 对于ICMP-echo和UDP-echo测试,一次探测操作是指发送一个探测报文;
• 对于SNMP测试,一次探测操作是指发送三个SNMP协议报文,分别对应SNMPv1、SNMPv2c和SNMPv3三个版本;
• 对于Path-jitter测试,一次探测操作分为两个步骤:首先通过tracert探路获取到达目的地址的路径(最大为64跳);再根据tracert结果,分别向路径上的每一跳发送多个ICMP-echo探测报文,发送探测报文的个数由probe packet-number命令来设定;
• 对于UDP-tracert测试,一次探测操作是指一个特定TTL值的节点发送一个探测报文的操作;
2.NQA工作机制
NQA测试的典型组网中包括以下两部分:
• NQA测试的源端设备:又称为NQA客户端,负责发起NQA测试,并统计探测结果。NQA测试组在NQA客户端上创建。
• NQA测试的目的端设备:负责接收、处理和响应NQA客户端发来的探测报文。
在进行TCP、UDP-echo、UDP-jitter和Voice类型测试时,必须在目的端设备上配置NQA服务器功能,开启指定IP地址和端口上的监听服务。此时,目的端设备又称为NQA服务器。
当NQA服务器接收到客户端发送给指定IP地址和端口的探测报文后,将对其进行处理,并发送响应报文。
在其他类型的测试中,目的端设备只要能够处理NQA客户端发送的探测报文即可,不需要配置NQA服务器功能。例如,在FTP测试中,目的端设备上需要配置FTP服务器相关功能,
以便处理客户端发送的FTP报文,而无需配置NQA服务器功能。
NQA测试的过程为:
① NQA客户端构造指定测试类型的探测报文,并发送给目的端设备;
②目的端设备收到探测报文后,回复应答报文;
③ NQA客户端根据是否收到应答报文,以及接收应答报文的时间,计算报文丢失率、往返时间等。
3.支持联动功能
联动功能是指在监测模块、Track模块和应用模块之间建立关联,实现这些模块之间的联合动作。联动功能利用监测模块对链路状态、网络性能等进行监测,并通过Track模块将监测结果及时通知给应用模块,
以便应用模块进行相应的处理。 NQA可以作为联动功能的监测模块,对NQA探测结果进行监测,当连续探测失败次数达到一定数目时,就通过Track模块触发应用模块进行相应的处理。
以静态路由为例,用户配置了一条静态路由,下一跳为192.168.0.88。通过在NQA、Track模块和静态路由模块之间建立联动,可以实现静态路由有效性的判断:
①通过NQA监测地址192.168.0.88是否可达。
②如果192.168.0.88可达,则认为该静态路由有效,NQA不通知Track模块改变Track项的状态;如果NQA发现192.168.0.88不可达,则通知Track模块改变Track项的状态。
③ Track模块将改变后的Track项状态通知给静态路由模块。静态路由模块据此可以判断该静态路由项是否有效。
4.支持阈值告警功能
NQA可以对探测结果进行监测,在本地记录监测结果,或通过Trap消息将监测结果通知给网络管理系统,以便网络管理员了解NQA测试运行结果和网络性能。
NQA通过创建阈值告警项,并在阈值告警项中配置监测的对象、阈值类型及触发的动作,来实现阈值告警功能。
阈值告警项包括invalid、over-threshold和below-threshold三种状态:
• NQA测试组未启动时,阈值告警项的状态为invalid。
• NQA测试组启动后,每次测试或探测结束时,检查监测的对象是否超出指定类型的阈值。如果超出阈值,则阈值告警项的状态变为over-threshold;如果未超出阈值,则状态变为below-threshold。
如果阈值告警项的触发动作为trap-only,则当阈值告警项的状态改变时,向网络管理系统发送Trap消息。
1)监测对象
NQA阈值告警功能支持的监测对象及对应的测试类型,如下表所示。
2)阈值类型
NQA阈值告警功能支持的阈值类型包括:
• 平均值(average):监测一次测试中探测结果的平均值,如果平均值不在指定的范围内,则该监测对象超出阈值。例如,监测一次测试中探测持续时间的平均值。
• 累计数目(accumulate):监测一次测试中探测结果不在指定范围内的累计数目,如果累计数目达到或超过设定的值,则该监测对象超出阈值。
• 连续次数(consecutive):NQA测试组启动后,监测探测结果连续不在指定范围内的次数,如果该次数达到或超过设定的值,则该监测对象超出阈值。
3)触发动作
NQA阈值告警功能可以触发如下动作:
• none:只在本地记录监测结果,以便通过显示命令查看,不向网络管理系统发送Trap消息。
• trap-only:不仅在本地记录监测结果,当阈值告警项的状态改变时,还向网络管理系统发送Trap消息。
• trigger-only:在显示信息中记录监测结果的同时,触发其他模块联动。
5.NQA配置任务简介
NQA客户端支持两种配置方式:NQA测试组和NQA模板。NQA测试组配置完毕后,通过调度测试组就可以进行测试操作;NQA模板配置完毕后并不启动测试,需要外部特性(如负载均衡)调用NQA模板,
为该特性创建NQA测试组后,并自动启动NQA测试。
6.配置举例
1)在NQA客户端上配置NQA测试组
以ICMP-echo举例
ICMP-echo测试利用ICMP协议,根据是否接收到应答报文判断目的主机的可达性。ICMP-echo测试的功能与ping命令类似,但ICMP-echo测试中可以指定测试的下一跳设备。在源端和目的端设备之间存在多条路径时,
通过配置下一跳设备可以指定测试的路径。并且,与ping命令相比,ICMP-echo测试输出的信息更为丰富。
nqa entry admin-name operation-tag :创建NQA测试组,进入NQA测试组视图
type icmp-echo:配置测试类型为ICMP-echo,并进入测试类型视图
destination ip x.x.x.x :配置探测报文的目的地址
type icmp-echo:配置测试类型为ICMP-echo,并进入测试类型视图
frequency x:指定连续两次NQA测试操作的时间间隔
next-hop ip x.x.x.x:指定ICMP echo操作的下一跳
reaction 1 checked-element probe-fail threshold-type consecutive 5 action-type trigger-only:配置一个反应设置
2)在NQA客户端上配置NQA模板
以ICMP举例
ICMP类型的NQA模板为外部特性提供ICMP类型的测试,外部特性通过引用该模板来启动ICMP测试,并根据是否接收到ICMP应答报文判断目的主机的可达性。
nqa template icmp xx:创建ICMP类型的NQA模板,并进入模板视图
destination ip x.x.x.x :配置探测报文的目的地址
frequency x:指定连续两次NQA测试操作的时间间隔
probe timeout xx:配置每次探测超时时间
ttl xx:配置探测报文在网络中可以经过的最大跳数
tos xx:配置NQA探测报文IP报文头中服务类型域的值
vpn-instance xx:指定操作所属的VPN
reaction trigger probe-pass xx:配置连续探测成功的次数,当连续探测成功次数达到命令配置的数值时,NQA客户端会把探测成功的消息发送给外部特性,使外部特性利用NQA测试的结果进行相应处理
reaction trigger probe-fail xx:配置连续探测失败的次数,当连续探测失败次数达到命令配置的数值时,NQA客户端会把探测失败的消息发送给外部特性,使外部特性利用NQA测试的结果进行相应处理
3)显示与维护命令
display nqa history [ admin-name operation-tag ]:显示NQA测试组的历史记录
display nqa reaction counters [ admin-name operation-tag [ item-number ]]:显示NQA阈值告警功能的当前监测结果
display nqa result [ admin-name operation-tag ]:显示最近一次NQA测试的当前结果
display nqa statistics [ admin-name operation-tag ]:显示NQA测试的统计信息
display nqa server:显示服务器的状态信息