位置:51电子网 » 技术资料 » 通信网络

OSPFv3d在NBMA链路上的设计与实现

发布时间:2007/8/29 0:00:00 访问次数:520

摘要:基于IPv6下最新标准RFC2740,提出了多种链路上OSPFv3的差异:不同的数据包发送方式、邻居建立和维持机制、泛洪机制、邻居状态和接口状态机,提出了OSPFv3在NBMA链路上的解决方案,并在现有OSPFv2源泉代码基础上,成功地NBMA链路上实现了OSPFv3。
关键词:OSPFv3 NBMA 路由 IPv6
开放式是最短路么优先协议OSPF是目前应用于大型网络的主要内部网关路由协议之一,目前版本是IPv4下的OSPFv2。而适用于IPv6下一代互联网的OSPFv3目前尚不成熟,并且基本上都只支持广播链路。然而当前实际应用网络中存在大量的非广播链路,因此多种链路上的OSPFv3的研究和实现具有重要意义。本文针对此目标进行了深入分析和研究。为了使程序实现设计目标并兼容现有的OSPFv3,笔者进行了稳定性、可维护性等性能的分析和研究,成功地在Linux平台的路由器上实现了支持NBMA链路的OSPFv3,并通过了美国Spirent公司的AX4000的一致性测试。
1 多种链路简介
OSPF路由协议支持的链路类型有:点到点、广播、NBMA(Non-Broadcast Multi-Access)和点到多点等。在OSPFv3中一些方案已 实现了对广播链路的支持,但对点到点、NBMA和点到多点的支持几乎没有。本文以NBMA链路为重点,深入分析、设计并实现了对OSPFv3的多链路支持。
首先简要介绍各种链路:
点到点链路(PPP):连接一对路由器的链路,例如56kbps串行线路。
广播链路(Broadcast):它支持多个路由器,具备广播能力。广播链路上的每对路由器假定可以相互直接通信,例如以太网。
非广播链路(Non-Broadcast):它也支持多个路由器,但不具备广播能力,例如X.25公众数据网(PDN)。在非广播链路上OSPF有两种运转模式:(1)Non-Broadcast Multi-Access(NBMA),非广播多址接入,要求链路上两两种由器可以相互直接通信,模拟在广播链路上的操作,如ATM网;(2)Point-to-MultiPoint,点到多点,把非广播链路视为多个点到点链路的集合,如帧中继网。



2 OSPFv3在各种链路上的差异
通过分析RFC2328和RFC2740,可以归纳总结出各种链路类型上的OSPFv3主要在如下几方面有所不同:数据包的发送方式、邻居建立和维持机制、泛洪机制、邻居状态机和接口状态机。
2.1 数据包的发送方式
OSPFv3各种链路类型按照是否支持多播可以分为网组:(1)支持多播,包括广播链路和点到点链路;(2)不支多播,包括NBMA链路和点到多点链路。在OSPFv3路由协议中,涉及多播的数据包有Hello包、LSU包(Link State Update,链路状态更新包)和LSAck包(Link State Acknowledgment,,链路状态确认包)。由于NBAM、点到多点链路没有多播能力,所以在广播链路和点到点链路上以多播发送的数据包将以单播方式发送,即这些包的发送地址将根据链路类型而定。
2.2 领导建立和维持机制
OSPFv3建立邻居关系机制可以分成两种:(1)邻居自动发现。节点主动向邻居发送Hello包,当邻居在RouterDeadInterval内给予正确回应,即认为双方建立了邻居关系。(2)手工配置邻居。首先手工配置接口的邻居(包括Router-ID和Ipv6 link-local address),该接口启动后会间隔HelloInterval发送Hello包给手工配置的合格邻居(路由器优先级不为0),在RouterDeadInterval内结果收到该邻居的正确回应,则建立了邻居关系。否则触发事件Inactivity_timer,把邻居转为Down状态,同时开启查询邻居定时器(发Hello包),定时器间隔是PollInterval,如果收到了邻居的回应(如果邻居激活,会开启reply_timer定时器,发送reply),则说明该手工配置的邻居真实存在,同时关闭poll_timer查询邻居定时器。在广播链路和点到点链路,采用自动发现:周期性地发送Hello包到多播地址ALLSPFRouters,主动建立和维持邻居关系;在NBMA链路和点到多点链路上,采用手工配置。
2.3 泛洪机制
在广播和NBMA链路上有DR(指定路由器)和BDR(备份指定路由器)选举,而点到点链路和点到多点链路没有DR和BDR选择。



2.4 邻居状态机和接口状态机
对NBMA网络有专门的状态Attempt:当邻居处于Down,由到InterfaceUp事件后,路由器将为邻居到表中的(合格候选DR)每个邻居产生Start事件,转为Attempt状态。对点到点、点到多点有接口状态point-to-point。只有广播类型的接口加入到多播组AllSPFRouters和AllDRouters,支持多播的点到点链路的接口加入到多播组AllSPFRouters。
3 NBMA链路上OSPFv3的设计与实现
3.1 单播、多播方式选择
当一个接口启动后,将根据链路类型选择是否加入多播组。对于广播链路和点到点链路的网络接口必须加入多播组以支持多播。在运行了OSPFv3协议后,接口就会周期性地向链路发送Hello报文,以便与同一链路上的其他路由器建立和维持邻居关系。根据链路类型的不同,Hello包的发送地址如图1所示。
LSU包和LSAck包

摘要:基于IPv6下最新标准RFC2740,提出了多种链路上OSPFv3的差异:不同的数据包发送方式、邻居建立和维持机制、泛洪机制、邻居状态和接口状态机,提出了OSPFv3在NBMA链路上的解决方案,并在现有OSPFv2源泉代码基础上,成功地NBMA链路上实现了OSPFv3。
关键词:OSPFv3 NBMA 路由 IPv6
开放式是最短路么优先协议OSPF是目前应用于大型网络的主要内部网关路由协议之一,目前版本是IPv4下的OSPFv2。而适用于IPv6下一代互联网的OSPFv3目前尚不成熟,并且基本上都只支持广播链路。然而当前实际应用网络中存在大量的非广播链路,因此多种链路上的OSPFv3的研究和实现具有重要意义。本文针对此目标进行了深入分析和研究。为了使程序实现设计目标并兼容现有的OSPFv3,笔者进行了稳定性、可维护性等性能的分析和研究,成功地在Linux平台的路由器上实现了支持NBMA链路的OSPFv3,并通过了美国Spirent公司的AX4000的一致性测试。
1 多种链路简介
OSPF路由协议支持的链路类型有:点到点、广播、NBMA(Non-Broadcast Multi-Access)和点到多点等。在OSPFv3中一些方案已 实现了对广播链路的支持,但对点到点、NBMA和点到多点的支持几乎没有。本文以NBMA链路为重点,深入分析、设计并实现了对OSPFv3的多链路支持。
首先简要介绍各种链路:
点到点链路(PPP):连接一对路由器的链路,例如56kbps串行线路。
广播链路(Broadcast):它支持多个路由器,具备广播能力。广播链路上的每对路由器假定可以相互直接通信,例如以太网。
非广播链路(Non-Broadcast):它也支持多个路由器,但不具备广播能力,例如X.25公众数据网(PDN)。在非广播链路上OSPF有两种运转模式:(1)Non-Broadcast Multi-Access(NBMA),非广播多址接入,要求链路上两两种由器可以相互直接通信,模拟在广播链路上的操作,如ATM网;(2)Point-to-MultiPoint,点到多点,把非广播链路视为多个点到点链路的集合,如帧中继网。



2 OSPFv3在各种链路上的差异
通过分析RFC2328和RFC2740,可以归纳总结出各种链路类型上的OSPFv3主要在如下几方面有所不同:数据包的发送方式、邻居建立和维持机制、泛洪机制、邻居状态机和接口状态机。
2.1 数据包的发送方式
OSPFv3各种链路类型按照是否支持多播可以分为网组:(1)支持多播,包括广播链路和点到点链路;(2)不支多播,包括NBMA链路和点到多点链路。在OSPFv3路由协议中,涉及多播的数据包有Hello包、LSU包(Link State Update,链路状态更新包)和LSAck包(Link State Acknowledgment,,链路状态确认包)。由于NBAM、点到多点链路没有多播能力,所以在广播链路和点到点链路上以多播发送的数据包将以单播方式发送,即这些包的发送地址将根据链路类型而定。
2.2 领导建立和维持机制
OSPFv3建立邻居关系机制可以分成两种:(1)邻居自动发现。节点主动向邻居发送Hello包,当邻居在RouterDeadInterval内给予正确回应,即认为双方建立了邻居关系。(2)手工配置邻居。首先手工配置接口的邻居(包括Router-ID和Ipv6 link-local address),该接口启动后会间隔HelloInterval发送Hello包给手工配置的合格邻居(路由器优先级不为0),在RouterDeadInterval内结果收到该邻居的正确回应,则建立了邻居关系。否则触发事件Inactivity_timer,把邻居转为Down状态,同时开启查询邻居定时器(发Hello包),定时器间隔是PollInterval,如果收到了邻居的回应(如果邻居激活,会开启reply_timer定时器,发送reply),则说明该手工配置的邻居真实存在,同时关闭poll_timer查询邻居定时器。在广播链路和点到点链路,采用自动发现:周期性地发送Hello包到多播地址ALLSPFRouters,主动建立和维持邻居关系;在NBMA链路和点到多点链路上,采用手工配置。
2.3 泛洪机制
在广播和NBMA链路上有DR(指定路由器)和BDR(备份指定路由器)选举,而点到点链路和点到多点链路没有DR和BDR选择。



2.4 邻居状态机和接口状态机
对NBMA网络有专门的状态Attempt:当邻居处于Down,由到InterfaceUp事件后,路由器将为邻居到表中的(合格候选DR)每个邻居产生Start事件,转为Attempt状态。对点到点、点到多点有接口状态point-to-point。只有广播类型的接口加入到多播组AllSPFRouters和AllDRouters,支持多播的点到点链路的接口加入到多播组AllSPFRouters。
3 NBMA链路上OSPFv3的设计与实现
3.1 单播、多播方式选择
当一个接口启动后,将根据链路类型选择是否加入多播组。对于广播链路和点到点链路的网络接口必须加入多播组以支持多播。在运行了OSPFv3协议后,接口就会周期性地向链路发送Hello报文,以便与同一链路上的其他路由器建立和维持邻居关系。根据链路类型的不同,Hello包的发送地址如图1所示。
LSU包和LSAck包

相关IC型号

热门点击

 

推荐技术资料

耳机的焊接
    整机电路简单,用洞洞板搭线比较方便。EM8621实际采... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!