OSPFv3动态路由协议在NBMA链路上的实现

1 问题的提出
  随着网络信息时代的到来,Internet技术在全球范围内得到了迅速的发展,开放最短路径优先(Open Shortest Pass First,简称OSPF)动态路由协议已成为解决网络路由的首选内部网关协议。
  
  在从IPv4向IPv6过渡的阶段,OSPFv3(开放最短路径优先第3版)作为下一代网络中的核心路由技术已经引起学术界的足够重视和深入研究,但当前的研究与实现多是在串行线路相连的路由器构成的网络拓扑上运行的情况,而Internet包含多种子网技术(也就是数据链路技术):如以太网、802.5令牌环网、FDDI环、帧中继子网、ATM、分组无线网等。为此,有必要研究OSPFv3协议在多种链路上的实现机制,本文将基于NBMA链路类型研究OSPFv3协议的实现方案。
  
  2 OSPFv3的基本原理
  开放式最短路径优先(OSPF)算法是由互联网工程任务组(IETF)的内部网关协议工作组为IP网络专门设计的路由协议,是一种基于区域实现的、建立在链路状态(Link State)算法和Dijkstra算法基础之上的内部网关动态路由协议。OSPFv3是该协议的第3版本,是IPv6网络中路由技术的主流协议。
  
  2.1 邻居的发现与保持
  
  OSPFv3通过呼叫协议来完成发现邻居并保持邻接状态,呼叫协议主要是通过定时发送Hello协议包来实现的。每个运行OSPF的接口都发送Hello包,Hello包用于发现和维护邻居关系,并最终形成近邻关系(Adjacency)。
  
  在广播(Broadcast)和非广播多点接入NBMA(Not Broadcast Multicast Access)网络上,Hello还用于选择指派路由器DR(Designed Router)和备份指派路由器BDR(Backup Designed Router)。
  
  2.2 数据库的同步
  
  每个运行OSPFv3协议的路由器都维护一个用于跟踪网络链路状态的链路状态数据库(LSDB:Link State DataBase)。数据库中存储的是反映路由器及其链路状态的各种链路状态通告(LSA:Link State Advertisement ),这些状态包括路由器可用接口、已知可达路由和各链路的状态信息。链路状态数据库实际上就是一张有关该区域的完整的网络映射图,是路由器建立路由表的依据,一个自治系统内的路由器要形成对网络拓扑结构的一致视图,就必须同步它们的链路状态数据库。OSPFv3依靠“邻接协议”、“交换协议”、“扩散协议”来完成数据包的交互,并最终实现同一个路由域中所有路由器的LSDB同步。
  
  2.3 OSPFv3在NBMA上的工作原理
  
  OSPFv3把不同的子网技术分为以下几类:点到点子网、广播子网、NBMA子网(Non-Broadcast Multi-Access,非广播多路接入子网)以及点到多点子网。其中,点到点链路指连接一对路由器的链路,例如56Kb串行线路;广播链路具备广播能力,其上的每对路由器可以相互直接通信,例如以太网;NBMA链路不具备广播能力,要求链路上两两路由器可以相互直接通信,模拟在广播链路上的操作,如ATM网;点到多点链路指把非广播链路视为多个点到点链路的集合,如帧中继网。
  
  OSPFv3在NBMA链路上的工作特点如下:
  
  (1)邻居发现机制:由于NBMA网络类型不能自动发现邻居,所以需要手工给其配置邻居,并采取NBMA特有的邻居发现机制进行邻居的查询。
  
  (2)数据包的发送方式:广播链路和点到点链路上链路状态更新包向组播地址发送,而NBMA没有多播能力,所以必须复制链路状态更新,然后向每个邻居路由器发送。
  
  (3)泛洪机制:NBMA链路和广播链路相同,在DR(指定路由器)和BDR(备份指定路由器)选举之后,其他所有路由器与DR和BDR进行数据库交互。
  
  3 OSPFv3在NBMA链路上的实现
  由于NBMA网络类型不能自动发现邻居,所以需要手工给其配置邻居,包括邻居的IPv6链路本地地址以及邻居的Router-ID。首先把路由器的某个接口设置为NBMA链路类型,并在此接口上配置邻居。
  
  根据工作原理分析实现流程:手动配置邻居之后,该邻居被加入到该接口的邻居列表中,按照正常的发送hello包的规则,每间隔HelloInterval会发送hello包给邻居,在RouterDeadInterval内必须收到邻居的回应才会认为该邻居可以进行通信,才会开始DR、BDR的选举,进而进行下面的操作;如果在RouterDeadInterval内没有收到对方邻居的hello包回应,则认为邻居是一个虚假的邻居,把该邻居进行删除的处理;(在一般链路类型如广播链路,邻居是自动发现的,RouterDeadInterval后没有收到hello回应,则自动把该邻居从接口列表中进行删除;而在NBMA链路类型中,如果在RouterDeadInterval内没有邻居的回应,则触发事件Inactivity_timer,把邻居转为Down状态,同时开启查询邻居定时器(发Hello包),定时器间隔是PollInterval,如果收到了邻居的回应(如果邻居激活,会开启reply_timer定时器,进行reply的发送)则说明该手工配置的邻居真实存在,同时关闭poll_timer查询邻居定时器;反之如果在查询时间内还没有收到邻居的回应,则继续发poll查询,直到手工删除该邻居为止)。
  
  3.1 邻居发现机制的实现
  
  NBMA的邻居发现是靠poll_timer定时器来查询邻居的存在,直到邻居启动reply_timer定时器给其回应,才算找到了邻居;同时关闭poll_timer定时器。
  
  (1)查询邻居模块
  
  该模块用于完成邻居的手工配置,并根据NBMA的邻居发现机制查询邻居。
  
  (2)接收Hello包处理模块
  
  该模块用于完成对收到的Hello包进行处理,并根据对收到包中邻居信息的判断进行NBMA相关的操作。
  
  (3)发送Hello包处理模块
  
  该模块部分是在找到邻居后进行的处理,所以不涉及poll_timer以及reply_timer等一系列NBMA特有的操作机制,只需在发送Hello包时判断接口是否为NBMA类型,并根据判断发送Hello包。
  
  3.2 数据库同步的实现
  
  NBMA网络的数据库同步与广播网络的实现方法一样,首先选定指定路由器DR和备份指定路由器BDR,其他所有路由器开始执行与DR和BDR之间的数据库交换,并且向NBMA网络的泛洪总是通过DR到达连在NBMA网络上的其他路由器的。
  
  唯一一点不同是:广播子网中路由器把链路状态更新向组播地址AllSPFRouter和AllDRouter发送,而在NBMA网络中,必须复制链路状态更新,然后分别向每个邻居路由器发送。
  
  4 结束语
  OSPFv3作为IPv6时代的重要内部网关协议,在很大程度上增强了网络的灵活性与稳定性,本文从Internet包含的多种子网技术出发,分析并提出了基于NBMA链路类型的OSPFv3动态路由协议的实现方案。有关传统的点到点和广播链路类型的实现方案比较成熟,而点到多点链路类型上OSPFv3的实现与NBMA链路基本相同,只是泛洪机制中存在DR/BDR选举以及邻居/接口状态机上有所区别。随着IPv6时代的到来,如何将OSPFv3动态路由协议高效地运行在多种链路状态类型有机融合的新一代网络上将是我们努力的目标 文章录入:csh    责任编辑:csh

(0)

相关推荐

  • OSPFv3动态路由协议在NBMA链路上的实现

    1 问题的提出 随着网络信息时代的到来,Internet技术在全球范围内得到了迅速的发展,开放最短路径优先(Open Shortest Pass First,简称OSPF)动态路由协议已成为解决网络路由的首选内部网关协议. 在从IPv4向IPv6过渡的阶段,OSPFv3(开放最短路径优先第3版)作为下一代网络中的核心路由技术已经引起学术界的足够重视和深入研究,但当前的研究与实现多是在串行线路相连的路由器构成的网络拓扑上运行的情况,而Internet包含多种子网技术(也就是数据链路技术):如以太网

  • jQuery 绑定事件到动态创建的元素上的方法实例

    在进入主题之前,我们先来看一个前台页面经常用到的功能:点击页面输入框时自动选择其中文本. 很容易想到利用输入框的focus事件,当输入框获得焦点时,再调用jQuery的select()方法. Okay,想法很简单,逻辑似乎也无错.具体我们来看一下现实到底能不能实现. 1.页面构造个表单,放上几个输入框.代码看起来是这样子的. 复制代码 代码如下: <form action="/" method="post">        <table>  

  • 路由器原理及路由协议

    本文通过阐述TCP/IP网络中路由器的基本工作原理,介绍了IP路由器的几大功能,给出了静态路由协议和动态路由协议,以及内部网关协议和外部网关协议的概念,同时简要介绍了目前最常见的RIP.OSPF.BGP和BGP-4这几种路由协议,然后描述了路由算法的设计目标和种类,着重介绍了链路状态法和距离向量法.在文章的最后,扼要讲述了新一代路由器的特征. 近十年来,随着计算机网络规模的不断扩大,大型互联网络(如Internet)的迅猛发展,路由技术在网络技术中已逐渐成为关键部分,路由器也随之成为最重要的网络

  • 路由协议试题

    解决路由环问题的方法有(ABD)A. 水平分割B. 路由保持法C. 路由器重启D. 定义路由权的最大值 下面哪一项正确描述了路由协议(C)A. 允许数据包在主机间传送的一种协议B. 定义数据包中域的格式和用法的一种方式C. 通过执行一个算法来完成路由选择的一种协议D. 指定MAC地址和IP地址捆绑的方式和时间的一种协议 下内容哪些是路由信息中所不包含的(A)A. 源地址B. 下一跳C. 目标网络D. 路由权值 以下说法那些是正确的(BD)A. 路由优先级与路由权值的计算是一致的B. 路由权的计算

  • OSPF路由协议概念及工作原理

    OSPF路由协议概念及工作原理 --随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多.应用最广泛的路由协议之一.OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作小组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第二版,定义于RFC1247和RFC1583. 1.概述 --OSPF路由协议是一种典型的链

  • OSPF路由协议详解

    OSPF路由协议 OSPF的基本概念和工作过程 开放式最短路径优先协议(OSFP)是基于开放标准的链路状态路由选择协议,它完成各路由选择协议算法的两大主要功能:路径选择和路径交换.Internet工程任务协会(IETF)于1988年开发了OSPF,其最近版本是OSPF版本2,在RFC 2328中进行了描述. OSPF路由协议概述 OSPF是内部网关路由协议 在共同管理域下的一组运行相同路由选择协议的路由器的集合为一个自治系统(Autonomous System,AS).在互联网中,一个自制系统是

  • 如何选择路由协议

    当网络启用了路由协议,网络便具有了能够自动更新路由表的强大功能.但是使用象RIP/RIP2.OSPF或IGRP/EIGRP等一些主要的内部网关协议(InteriorGatewayProtocol,IGP)都有一定的协定. 内部网关协议首先适合于在那些只有单个管理员负责网络操作和运行的地方:否则,将会出现配置错误导致网络性能降低或是导致网络运行不稳定的情况.对于由许多管理员共同分担责任的网络,如Internet,则考虑使用EGP协议(InteriorGatewayProtocol,外部网关协议),

  • JavaScript中的索引数组、关联数组和静态数组、动态数组讲解

    数组分类: 1.从数组的下标分为索引数组.关联数组 复制代码 代码如下: /* 索引数组,即通常情况下所说的数组 */ var ary1 = [1,3,5,8]; //按索引去取数组元素,从0开始(当然某些语言实现从1开始) //索引实际上就是序数,一个整型数字 alert(ary1[0]); alert(ary1[1]); alert(ary1[2]); alert(ary1[3]);   /* 关联数组,指以非序数类型为下标来存取的数组  python中称为字典 */ var ary2 =

  • 分析Windows和Linux动态库

    摘要:动态链接库技术实现和设计程序常用的技术,在Windows和Linux系统中都有动态库的概念,采用动态库可以有效的减少程序大小,节省空间,提高效率,增加程序的可扩展性,便于模块化管理.但不同操作系统的动态库由于格式 不同,在需要不同操作系统调用时需要进行动态库程序移植.本文分析和比较了两种操作系统动态库技术,并给出了将Visual C++编制的动态库移植到Linux上的方法和经验. 1.引言 动态库(Dynamic Link Library abbr,DLL)技术是程序设计中经常采用的技术.

  • Android实现动态向Gallery中添加图片及倒影与3D效果示例

    本文实例讲述了Android实现动态向Gallery中添加图片及倒影与3D效果的方法.分享给大家供大家参考,具体如下: 在Android中gallery可以提供一个很好的显示图片的方式,实现上面的效果以及动态添加数据库或者网络上下载下来的图片资源.我们首先实现一个自定义的Gallery类. MyGallery.java: package nate.android.Service; import android.content.Context; import android.graphics.Ca

随机推荐