BFD:

BFD基本概念:
BFD在两台网络设备上建立会话,用来检测网络设备间的双向转发路径,为上层应用服务。BFD本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。

BFD控制报文采用UDP封装,目的端口号为3784,源端口号在49152到65535的范围内。

BFD会话管理:

一、会话状态:

  1. Down:会话处于Down状态或刚刚创建。
  2. Init:已经能够与对端系统通信,本端希望使会话进入Up状态。
  3. Up:会话已经建立成功。
  4. AdminDown:会话处于管理性Down状态。

二、BFD会话迁移过程:

  1. R1和R2各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。
  2. R2收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
  3. R2本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
  4. R1的BFD状态变化同R2。
  5. R2收到状态为Init的BFD报文后,本地状态切换至Up。
  6. R1的BFD状态变化同R2。

BFD会话建立方式:
BFD会话的建立有两种方式,即静态建立BFD会话和动态建立BFD 会话。静态和动态创建BFD会话的主要区别在于本地标识符(Local Discriminator)和远端标识符( Remote Discriminator)的产生方式不同,静态的需要手动指定, 而动态则自己产生。

  1. 静态建立:指的是BFD会话通过命令手工下发BFD会话请求,配置思路如下:
    • 启用BFD。
    • 建立BFD会话的名称及源目IP。
    • 创建本地标识符和远端标识符。

  2. 动态建立BFD会话:动态建立BFD会话时,系统对本地标识符和远端标识符的处理方式如下:
    • 动态分配本地标识符:当应用程序触发动态创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。
    • 自学习远端标识符:值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator获取远端标识符。
    • 配置思路:启用 BFD,建立BFD会话的名称及源目IP即可,不用创建标识符。

BFD单臂回声功能:
在两台直接相连的设备中,其中一台设备支持BFD功能,另一台设备不支持BFD功能,只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备上创建单臂回声功能的BFD会话。支持BFD功能的设备主动发起回声请求功能,没有BFD功能的设备接收到该报文后直接将其环回,从而实现转发链路的连通性功能。

BFD故障检查方式:

异步模式:
在异步模式下,系统之间会按照协商好的周期发送BFD控制报文,如果其某个系统在检测时间内没有收到对端发来的BFD控制报文,就宣告BFD会话的状态为DOWN。异步模式是最常用的BFD方式。

查询模式:
在查询模式下,一旦BFD会话建立,系统就不再周期性发送BFD控制报文,而是通过其他与BFD无关的机制检测连通性(比如路由协议的Hello机制、硬件检测机制等),从而减少BFD会话带来的开销。在查询模式下,系统存在一个查询定时器,当查询定时器到期后,系统会发送一个短序列的查询报文检查链路,如果没有收到返回的报文就宣布会话的状态为DOWN。

BFD联动应用场景:
联动功能由检测模块、Track 和应用模块三部分组成。

检测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块。Track模块将收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。应用模块根据Track项的状态,进行相应的处理,从而实现联动。

以OSPF为例:

  1. 被检测链路出现故障。
  2. BFD快速检测到链路故障,BFD会话状态变为Down。
  3. BFD通知绑定的如OSPF进程BFD邻居不可达。
  4. 本地协议,例如OSPF进程中断OSPF邻居关系。

NQA:

概述:

随着Internet的高速发展,网络支持的业务和应用日渐增多,传统的网络性能分析方法(如Ping、Tracert等)已经不能满足用户对业务多样性和监测实时性的要求。

NQA通过发送测试报文,对网络性能或服务质量进行分析,为用户提供网络性能参数,如时延抖动、HTTP的总时延、通过DHCP获取IP地址的时延、TCP连接时延、FTP连接时延和文件传输速率等。利用NQA的测试结果,用户可以:

  1. 及时了解网络的性能状况,针对不同的网络性能,进行相应的处理。

  2. 对网络故障进行诊断和定位。

NQA还提供了与Track和应用模块联动的功能,实时监控网络状态的变化,及时进行相应的处理,从而避免通信的中断或服务质量的降低。

技术优点:
NQA具有以下几个特点:

  1. 支持多种测试类型
    传统的Ping功能是使用ICMP(Internet Control Message Protocol,互联网控制报文协议)测试数据包在本端和指定目的端之间的往返时间。NQA是对Ping功能的扩展和增强,它提供了更多的功能。目前NQA支持11种测试类型:ICMP-echo、DHCP、DNS、FTP、HTTP、UDP-jitter、SNMP、TCP、UDP-echo、Voice和DLSw测试。

  2. 支持多测试组并发
    NQA模块支持多个测试组并发,用户可以根据需求手工配置并发个数。但对于DHCP测试,同一时刻只允许有一个测试组进行测试。

  3. 支持联动功能
    联动功能是指NQA提供探测功能,把探测结果通知其他模块,其他模块再根据探测结果进行相应处理的功能。目前实现了与VRRP、静态路由、备份中心和策略路由的联动。

联动功能是指通过建立联动项,对当前所在测试组中的探测进行监测,当连续探测失败次数达到一定数目时, 就触发其他模块联动。联动功能的的实现如图:

联动功能由应用模块、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基本术语:

  1. NQA agent:NQA网络测试的客户端。

  2. NQA server:NQA网络测试的服务器端。狭义上,指UDP-echo、TCP、UDP-jitter和Voice四种测试中的NQA server端。广义上,指所有要被探测的对端设备,如FTP server、HTTP server等。

  3. 测试组:NQA测试功能以测试组的形式进行组织。每一个测试组都具有一系列的属性,例如,测试类型,测试目的地址,测试目的端口,测试发包频率等。

  4. 探测:一个能够得到完整探测结果的独立过程。对于TCP、DLSw测试,一次探测是指一次连接;对于UDP-jitter和Voice测试,一次探测发送探测报文的个数由用户来设定;对于FTP、HTTP、DHCP测试,一次探测是指完成一次相应的功能;对于ICMP-echo、UDP-echo测试,一次探测发送一个探测报文;对于SNMP测试,一次探测发送三个探测报文。

NQA测试操作:
在窗户测试组并进行该测试组视图后,可以根据要进行测试配置相关的测试参数,。要成功进行某项测试,需要在NQA客户端上进行如下操作:

  1. 使能NQA客户端功能。
  2. 创建测试组,根据测试类型进行相应测试参数的配置。
  3. 通过启动测试命令执行NQA测试。
  4. 通过显示命令或调试命令查看测试结果。

常用测试机制:

  1. SNMP处理机制
    SNMP测试发送SNMP协议报文到指定端口,根据回应确认对端SNMP功能是否开启。在客户端无法指定SNMP服务的版本号。每次测试时会对SNMP v1/v2c/v3三个版本都进行测试,收到任何一个版本的回复,即认为探测成功。目前,SNMP测试并不区分SNMP server支持哪个版本。SNMP测试的结果和历史记录将记录在测试组中,可以通过命令行来查看探测结果和历史记录。

  2. HTTP处理机制
    HTTP测试主要是测试是否可以与指定的HTTP服务器建立连接,从而判断该设备是否提供了HTTP服务以及建立连接的时间。HTTP测试支持GET和POST操作,即向指定地址的HTTP服务器发送GET请求或者POST请求,在接收到回应信息以后,计算整个测试的时间。整个过程只是和HTTP服务器建立连接,如果建立连接成功即认为成功。HTTP测试的结果和历史记录将记录在测试组中,可以通过命令行来查看探测结果和历史记录。

  3. FTP处理机制
    FTP测试主要是测试是否可以与指定的FTP服务器建立连接,以及与FTP服务器之间传送文件的时间,可以使用该功能探测任何FTP服务器。FTP测试支持GET和PUT操作。GET操作并不会把文件放到本地的文件系统,只是计算下载该文件所需要的时间,取得数据后随即自动释放占用的内存;PUT操作并不是将本地文件放到服务器上,而是上传固定大小及内容的文件(文件名由用户配置,数据为系统内部指定的固定数据;如果配置的文件名和服务器上已有的文件重名,则覆盖原来的文件,测试完成后该文件并不被删除)。因此,FTP测试与本地文件系统无关。FTP测试的结果和历史记录将记录在测试组中,可以通过命令行来查看探测结果和历史记录。

  4. DHCP处理机制
    DHCP测试模拟DHCP client在指定的接口上发起DHCP请求,根据是否申请到地址,确定接口所在的网络中是否有DHCP server服务以及测试申请到地址的时间。DHCP测试只是借用操作接口发送DHCP报文,申请到地址后立即释放DCHP租约,不会为接口真正申请地址,因此不会占用DHCP server的地址资源。进行DHCP测试的操作接口必须处于up状态。DHCP测试的结果和历史记录将记录在测试组中,可以通过命令行来查看探测结果和历史记录。

  5. DNS处理机制
    DNS测试通过模拟DNS client向指定的DNS服务器发送域名解析请求,根据域名解析是否成功及域名解析需要的时间,来判断DNS服务器是否可用,及域名解析速度。DNS测试只是模拟域名解析的过程,不会保存要解析的域名与IP地址的对应关系。DNS测试的结果和历史记录将记录在测试组中,可以通过命令行来查看探测结果和历史记录。

  6. NQA的ICMP测试例用于检测源端到目的端的路由是否可达ICMP测试提供类似于命令行下的Ping命令功能,但输出信息更为丰富:
    • 默认情况下能够保存最近5次的测试结果。
    • 结果中能够显示平均时延、丢包率, 最后一个报文正接收的时间等信息。
    ICMP测试的过程如下:
    • 源端向目的端发送构造的ICMP Echo Request报文。
    • 目的端收到报文后,直接回应ICMPEcho Reply报文给源端。

BFD和NQA的区别:

BFD 用于检查链路的故障,可与各的议进行联合使用,从而达到网络的快速收敛。NQA主要用于检查上层协议的服务是否可用,可与各种协议联动,当然它也可以通过与ICMP协议的联动,从而检测链路是否可用,这个方式比BFD速度会慢一些。

参考资料:HCIE培训文档、新华三技术白皮书

BFD和NQA技术原理相关推荐

  1. BFD快速检测工作原理

    文章目录 前言 存在的问题 应用场景一: 应用场景二 故障检测的方法 BFD协议基本原理 基本概念 BFD建立会话方式和检测 会话建立状态过程 工作流程 BFD配置 BFD与OSPF联动 BFD与VR ...

  2. 【直通华为HCNA/HCNP系列R篇8】VRRP技术原理及配置与管理-王达-专题视频课程

    [直通华为HCNA/HCNP系列R篇8]VRRP技术原理及配置与管理-10465人已学习 课程介绍         本课程以笔者编写,由华为公司指定作为ICT认证培训教材--<华为路由器学习指南 ...

  3. php 伪静态 page-18.html,PHP 伪静态实现技术原理讲解

    PHP 伪静态实现技术原理讲解 发布于 2015-01-18 23:52:58 | 129 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hypertext Pre ...

  4. 看了极光推送技术原理的几点思考

    看了极光推送技术原理的几点思考 分类: android2012-11-26 20:50 16586人阅读 评论(18) 收藏 举报 目录(?)[+] 移动互联网应用现状 因为手机平台本身.电量.网络流 ...

  5. 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

    2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六)  中, 介绍了 ...

  6. 详解微信域名防封的方法以及检测等工具的技术原理

    微信域名完全防封是绝对不可能的,这是必须明确的,曾经有人打折<不死域名>的概念,它不是不死,是稍微命长一点,在推广上成本更低一下,效果更好一些, 主要的技术原理是利用了腾讯云的域名安全联盟 ...

  7. NLP实践:对话系统技术原理和应用

    本文节选自电子工业出版社<自然语言处理实践:聊天机器人技术原理与应用> 作者:王昊奋&邵浩&李方圆&张凯&宋亚楠 以下是节选内容 按照技术实现,我们可将任务 ...

  8. 范成法加工matlab_光学非球面技术原理与加工技术

    光学非球面的定义 广义来说,非球面是不包括球面和平面的其他表面.从应用的角度来说,非球面可以分成轴对称的非球面.具有两个对称面的非球面.没有对称性的自由曲面. 非球面分类 通常把非球面分成二次非球面和 ...

  9. 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  10. 计算机书籍- 聊天机器人技术原理与应用

    去天猫看看智能鼠标 书名: 自然语言处理实践:聊天机器人技术原理与应用 作者:王昊奋 等 出版社:电子工业出版社 出版时间:2019年02月

最新文章

  1. 关于mysql数据库插入数据,不能插入中文和出现中文乱码问题
  2. zookeeper 应用开发
  3. [0630]Tyvj 1063 数字串
  4. 网页设计框架布局代码_网页设计中的分屏切割布局法
  5. Docker 查看日志记录
  6. CentOS 7 常用命令集合
  7. 阶段3 1.Mybatis_10.JNDI扩展知识_3 补充-测试JNDI数据源的使用以及使用细节
  8. HTML5游戏设计与制作
  9. 中兴F607ZA查看超级管理员密码
  10. 利用pandas对MovieLens电影数据分析
  11. 国内最新可用Google谷歌镜像网站入口网站网址
  12. PS 色阶、曲线、色相饱和度
  13. Python提取CSV数据统计四分位数
  14. ESP8266最小系统
  15. 北京车牌到底有什么优势?
  16. 【Linux】su 和 sudo 命令
  17. Anki 2.1.24 版本更新要点
  18. C语言基本数据类型输入输出格式
  19. Android中解析读取复杂word,excel,ppt等的方法
  20. 转 FTP搜索引擎的设计与实现(优化版)

热门文章

  1. 毛星云OpenCV3编程入门之python实现
  2. CAD迷你画图2020R11
  3. B样条曲线与贝塞尔曲线学习笔记
  4. 京东数科“机房巡检机器人”高价值专利荣获专利大奖
  5. Dlubal RFEM(有限元分析软件)官方中文版V5.25.01 | 结构设计软件下载 | 有限元分析软件有哪些
  6. 双色球和大乐透的随机选号并排列
  7. OBS教程:3分钟学会直播推流与视频录制
  8. 怎么用python移动文件夹
  9. python 移动/剪切文件
  10. Chrome谷歌浏览器插件