NQA基础及配置
2022年5月份下午题有考
什么是NQA?
网络质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络指标进行统计。
NQA能够实时监视网络服务质量,在网络发生故障时进行有效的故障诊断和定位。
例如:HTTP的总时延、TCP连接时延、DNS解析时延、文件传输速率、FTP连接时延、DNS解析错误率等。
NQA工作原理
NQA测试中,把测试两端称为客户端和服务器端(或者称为源端和目的端),NQA的测试是由客户端(源端)发起。客户端根据测试例的测试类型,构造符合相应协议的报文并打上时间戳,再发送至服务器端。
NQA服务器负责处理NQA客户端发来的测试报文,通过侦听指定IP地址和端口号的报文对客户端发起的测试进行响应。客户端根据发送和接收报文来计算各项性能指标,如连通性、时延、丢包率等。
NQA测试例处理机制:
- ICMP测试
- Trace测试
- TCP测试
- UDP测试
- DNS测试
- FTP测试
- HTTP测试
- SNMP测试
- LSP ping测试
- LSP trace测试
NQA典型应用
⚡️ 例如:静态路由与NQA联动
静态路由本身并没有检测机制,如果非本机直连链路发生了故障,静态路由不会自动从IP路由表中自动删除,需要管理员介入,这就无法保证及时进行链路切换,可能造成较长时间的业务中断。
基于以上原因,需要有一种有效的方案来检测静态路由所在的链路。对于静态路由而言,现有的静态路由与BFD联动特性,由于受到互通设备两端都必须支持BFD的限制,在某些应用场景无法实施。而静态路由与NQA联动则只要求互通设备的其中一端支持NQA即可。
利用NQA测试例来检测静态路由所在链路的状态,根据NQA的检测结果,决定静态路由是否活跃,达到避免通信的中断或服务质量降低的目的。
以上图为例,RouterA至RouterD有主、备两条链路,RouterA作为NQA客户端来检测至RouterD的链路状态:
- 如果NQA测试例检测到主链路故障,RouterA将这条静态路由设置为“非激活”状态;
- 如果NQA测试例检测到主链路恢复正常,RouterA将这条静态路由设置为“激活”状态。
AR路由器NQA的配置方法
AR路由器NQA配置步骤如下: 1. 进入系统视图。(命令: system-view) 2. 建立NQA测试例。(命令:nqa test-instance <用户名> <测试实例名>) 3. 配置测试例类型 (命令:test-type <测试类型>) 4. 根据不同类型的测试例配置必要参数。(如icmp类型的测试例需指定目的IP、dhcp类型的测试例需指定发送DHCP请求报文的源接口、DNS类型的测试例需指定目的域名等) 5. 根据需要配置相关类型测试例的其他参数。(可选,如测试周期、超时时间等) 6. 与其他模块联动。(可选,如:与vrrp、静态路由联动,在vrrp或静态路由相应命令后track相应的NQA测试例,具体命令请参考相应联动模块方面配置)
如下面的举例:
[Huawei] nqa test-instance admin icmp //配置名为admin icmp的NQA测试例
[Huawei-nqa-admin-icmp] test-type icmp //配置测试例类型为ICMP
[Huawei-nqa-admin-icmp] destination-address ipv4 192.168.3.1 //配置NQA测试例的目的地址为192.168.3.1
[Huawei-nqa-admin-icmp] start now //立即开始执行当前的NQA测试例
[Huawei-nqa-admin-icmp] quit
[Huawei] ip route-static 192.168.5.0 255.255.255.0 GigabitEthernet2/0/0 192.168.4.2 track nqa admin icmp //配置与NQA测试例联动的静态路由
AR路由器NQA联动机制
联动功能是指通过建立联动项,对当前所在测试例中的探测进行监测,当连续探测失败次数达到一定数目时,就触发其他模块联动。
联动功能由应用模块、Track模块和监测功能模块(如NQA)三部分组成。Track模块位于应用模块和NQA之间,当监测项的状态发生变化时,监测功能模块通知Track模块,再由Track模块通知应用模块进行相应的处理,从而实现联动。
以静态路由为例:
用户配置了一条静态路由,下一跳为192.168.0.88,如果192.168.0.88可达,该静态路由有效;
如果192.168.0.88不可达,则该静态路由无效。
通过在NQA、Track模块和应用模块之间建立联动,可以实现静态路由有效性的实时判断。
如果NQA发现192.168.0.88不可达,NQA将通过Track模块通知静态路由模块,静态路由模块可以据此判断该静态路由项无效。
参考案例:
NQA常用命令
nqa test-instance admin icmp
test-type icmp #使用ICMP协议
destination-address ipv4 10.1.17.1 #目的地址
frequency 15 #NQA测试例自动执行测试的时间间隔
interval seconds 2 #NQA测试例的发送报文的时间间隔
timeout 2 #NQA测试例的一次探测的超时时间
probe-count 5 #NQA测试例的一次测试探针数目
start now #立即启动执行当前测试例