Network ICMP监控技术

NQA 网络质量分析

静态路由与NQA联动

静态路由本身并没有检测机制,如果非本机直连链路发生了故障,静态路由不会自动从IP路由表中自动删除,需要管理员介入,这就无法保证及时进行链路切换,可能造成较长时间的业务中断。

基于以上原因,需要有一种有效的方案来检测静态路由所在的链路。对于静态路由而言,现有的静态路由与BFD联动特性,由于受到互通设备两端都必须支持BFD的限制,在某些应用场景无法实施。而静态路由与NQA联动则只要求互通设备的其中一端支持NQA即可。

静态路由与NQA联动组网

利用NQA测试例来检测静态路由所在链路的状态,根据NQA的检测结果,决定静态路由是否活跃,达到避免通信的中断或服务质量降低的目的。

以上图为例,RouterA至RouterD有主、备两条链路,RouterA作为NQA客户端来检测至RouterD的链路状态:

  • 如果NQA测试例检测到主链路故障,RouterA将这条静态路由设置为“非激活”状态;
  • 如果NQA测试例检测到主链路恢复正常,RouterA将这条静态路由设置为“激活”状态。

NQA ICMP 测试

  • nqa test-instance admin icmp
  • test-type icmp
  • destination-address ipv4 x.x.x.x
  • commit

NQA 与静态路由联动

  • nqa test-instance admin icmp
  • test-type icmp
  • destination-address ipv4 x.x.x.x
  • frequency 6
  • interval seconds 3
  • timeout 2
  • probe-count 2
  • start now

ip route-static x.x.x.x mask y.y.y.y track nqa admin icmp

开启snmp 网管

  • snmp-agent
  • snmp-agent sys-info version v2c
  • snmp target-host inform address udp-domain 10.156.217.216
  • snmp community read cipher public

Network MTU和MSS

最大传输单元(Maximum Transmission Unit, MTU)

数据链路层传输的帧大小是有限制的,不能把一个太大的包直接塞给链路层,这个限制被称为—MTU
以太网的帧格式,以太网的帧最小的帧是 64 字节,除去 14 字节头部和 4 字节 CRC 字段,有效荷载最小为 46 字节
最大的帧是 1518 字节,除去 14 字节头部和 4 字节 CRC,有效荷载最大为 1500,这个值就是以太网的 MTU

因此如果传输 100KB 的数据,至少需要 (100 * 1024 / 1500) = 69 个以太网帧。

IP 分段

IPv4 数据报的最大大小为 65535 字节,这已经远远超过了以太网的 MTU。
当一个 IP 数据包大于 MTU 时,IP 会把数据报文进行切割为多个小的片段(小于 MTU),使得这些小的报文可以通过链路层进行传输

TCP 最大段大小(Max Segment Size,MSS)—–传输层

因为有 MTU 的存在,TCP 每次发包的大小也会被限制
TCP 为了避免被发送方分片,会主动把数据分割成小段再交给网络层,最大的分段大小称之为 MSS

MSS = MTU – IP header头大小 – TCP 头大小

在以太网中 TCP 的 MSS = 1500(MTU) – 20(IP 头大小) – 20(TCP 头大小)= 1460

TCP 套接字选项 TCP_MAXSEG

TCP 有一个 socket 选项 TCP_MAXSEG,可以用来设置此次连接的 MSS,如果设置了这个选项,则 MSS 不能超过这个值