ospf的基础与邻居,邻接关系 --理论

OSPF 路由协议与邻接关系

1 ospf 基础:

OSPF路由器根据在AS 中的不同位置,可以分为以下四类:

1. 区域内路由器(Internal Routers) 该类路由器的所有接口都属于同一个OSPF 区域。

2. 区域边界路由器ABR(Area Border Routers) 该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR 用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。

3. 骨干路由器(Backbone Routers) 该类路由器至少有一个接口属于骨干区域。因此,所有的ABR 和位于Area0 的内部路由器都是骨干路由器。

4. 自治系统边界路由器ASBR(AS Boundary Routers) 与其他AS 交换路由信息的路由器称为ASBR。ASBR 并不一定位于AS 的边界,它可能是区域内路由器,也可能是ABR。只要一台OSPF 路由器引入了外部路由的信息,它就成为ASBR。

2ospf的邻接关系与邻居关系

???????? OSPF链路类型

· 有3种:点到点,广播型,NBMA p2mp。在3种链路类型上扩展出5种网络类型:点到点,广播,NBMA,点到多点,虚链路。其中虚链路较为特殊,不针对具体链路,而NBMA链路对应NBMA和点到多点两种网络类型。
点到点网络:即Point-to-point(P2P)型网络,是指该接口通过点到点的方式与一台路由器相连。此类型网络不需要进行OSPF的DR、BDR选举。

当链路层协议是PPP或HDLC时,OSPF缺省认为网络类型是P2P。在此类型的网络中,OSPF以组播方式(224.0.0.5)发送协议报文。

· 广播型多路访问网络:即Broadcast型网络,网络本身支持广播功能。当链路层协议是Ethernet、FDDI时,OSPF缺省认为网络类型是广播型。此类型网络需要进行OSPF的DR、BDR选举。在该类型的网络中,OSPF通常以组播方式(224.0.0.5和224.0.0.6)发送协议报文。

· 非广播型多路访问网络:即NBMA(Non-Broadcast Multiple Access)型网络,虽然从一个接口可以到达多个目的节点,但是网络本身不支持广播功能,当链路层协议是帧中继、ATM或X.25时,OSPF缺省认为网络类型是NBMA。此时OSPF的邻居需要管理员手工指定。在该类型的网络中,以单播方式发送协议报文。

· 点到多点网络:即Point-to-multipoint(P2MP)型网络,是指该接口通过点到多点的网络与多台路由器相连。

P2MP型网络比较特殊,没有一种链路层协议会被缺省地认为是点到多点类型。点到多点必须是由其他网络类型强制更改而来。常用做法是将NBMA改为点到多点的网络。在该类型的网络中,缺省情况下以组播方式(224.0.0.5)发送协议报文,也可以根据用户需要,以单播形式发送协议报文。

?

OSPF 报文:

1 HELLO报文(hello packet)???? 周期性的发送给本路由器的邻居,使用的组播地址224.0.0.5.???? BR和BDR发送和接受报文使用的组播地址是224.0.0.6。HELLO PACKET内容包括一些定时器数值、DR、BDR、以及自己已经知道的邻居。???? HELLO 时钟的值与路由收敛速度、网络负荷大小成正比。 缺省情况下,PTP、BROADCAST类型接口发送HELLO报文的时间间隔的值为10秒;PTMP、NBMA类型接口发送HELLO PACKET时间间隔为30秒;

2 DD报文(Database description packet) 相邻路由器直间互发DD报文,

报告对方自己所拥有的路由信息内容包括LSDB中每一条LSA摘要(摘要是指LSA的HEAD,通过改HEAD可以唯一标识一条LSA),这样做的目的是为了减少路由器之间传递信息的量,因为LSA的HEAD只占一条LSA的整个数据量的一小部分。根据HEAD,对端路由器就可以判断出是否已经有了这条LSA。????? DATABASE DESCRIPTION PACKET 有两种 (1)空 DD 报文,用来确定MASTER/SLAVE关系。确定MASTER/SLAVE关系后,才发送有路由信息的DD报文 (2)带有路由信息的DD报文,收到有路由信息的DD报文后,路由器比较自己的数据库,发现对方的数据库中有自己需要的数据,则向对方发送LSR(LINK STATE REQUEST)

3 LSR报文(LINK STATE REQUEST PACKET) 两台路由器之间互相交换DD报文后,知道对端的路由器有那些LSA是本地LSDB所缺少的或者对端更新的LSA,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA摘要。

4 LSU报文(LINK STATE UPDATE PACKET) 用来向对端路由器发送所需要的LSA,内容是多条LSA的集合

5 LSACK报文(LINK STATE ACKNOWLEDGMENT PACKET) 由于没有使用可靠的TCP协议,但是OSPF包又要求可靠的传输,所以就有了LSACK包。它用来对接收到的LSU报文进行确认。内容是需要确认的LSA的HEAD.

ospf的邻接关系与邻居关系建立过程:

学习目标: 1. 理解Hello报文的作用

2. 理解OSPF邻居状态变换

3. 理解邻居关系和邻接关系的建立过程

4. 理解LSDB同步过程

字段的解释:

Network Mask:顾名思义是发送Hello报文的接口的网络掩码

HelloInterval:发送Hello报文的时间间隔,单位是秒 Options:标识发送此报

文的OSPF路由器所支持的可选功能。

Rtr Pri:发送Hello报文的接口的Router

Priority,用于选举DR和BDR。

RouterDeadInterval:宣告邻居路由器不继续在该网段上运行OSPF的时间间隔,单

位为秒,通常为四倍HelloInterval。

Designed Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为

0.0.0.0,表示未选举DR路由器。

Backup Designed Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果

设置为0.0.0.0,表示未选举BDR路由器。

Neighbor:邻居路由器的Router ID列表。表示本路由器已经从该邻居收到合法的

Hello报文。

验证一个Hello报文是否合法之前首先需要验证一个OSPF报文是否合法。 验证一

个接收到的Hello报文是否合法包括:

1. 如果接收端口的网络类型是广播型,点到多点或者NBMA,所接收的Hello报文中

Network Mask字段必须和接收端口的网络掩码一致,如果接收端口的网络类型为点

到点类型或者虚连接,则不检查Network Mask字段。

2. 所接收的Hello报文中的HelloInterval字段必须和接收端口的配置保持一致。

3. 所接收的Hello报文中的RouterDeadInterval字段必须和接收端口的配置保持一

致。

4. 所接收的Hello报文中的Options字段中的E-bit(表示是否接收外部路由信息)

必须和相关区域的配置保持一致。关于此比特的具体意义将在《OSPF特殊区域》中

详细解释。

如果路由器发现所接收的合法Hello报文的邻居列表中有自己的Router ID,则认为

已经和邻居建立了双向连接,表示邻居关系已经建立。 这是形成邻居关系的过

程和相关邻居状态的变化过程。

Down:这是邻居的初始状态,表示没有从邻居收到任何信息。在NBMA网络上,此状

态下仍然可以向静态配置的邻居发送Hello报文,发送间隔为PollInterval,通常

和RouterDeadInterval间隔相同。

Attempt:这个状态只在NBMA网络中存在,表示没有收到邻居的任何信息,但是已

经周期性的向邻居发送报文,发送间隔为HelloInterval。如果RouterDeaInterval

间隔内未收到邻居的hello报文,则转为Down状态。

Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不再所收到的

Hello报文的邻居列表中,表示尚未与邻居建立双向通信关系。在此状态下的邻居

要被包含在自己所发送的Hello报文的邻居列表中。

2-WayReceived:此事件表示路由器发现与邻居的双向通信已经开始(发现自己在

邻居发送的Hello报文的邻居列表中)。Init状态下产生此事件之后,如果需要和

邻居建立邻接关系则进入ExStart状态,开始数据库的同步过程,如果不能与邻居

建立邻接关系则进入2-way。

2-way:在此状态下,双向通信已经建立,但是没有与邻居建立邻接关系。这是建

立邻接关系以前的最高级状态。

1-wayReceived:此事件表示路由器发现自己没有邻居发送Hello报文的邻居列表

中,通常是由于对端邻居重启造成的。

DD序列号:每个DD报文都有一个DD序列号,用于DD报文的确认机制。DD序列号是

一个两字节的值。 主从关系:当两个路由器之间通过DD报文交换数据库信息的时

候,首先形成一个主从关系,Router ID大的优先为主,确认主从关系之后,主路

由器发送DD报文,从路由器不能主动发送DD报文,只能回应主路由器发送的DD报文

,回应的时候使用的DD报文的序列号必须和所回应的主路由器发送的DD报文的序列

号一致。 相关的状态解释:

ExStart:形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向

邻居发送DD报文。主从关系是在此状态下形成的;初始DD序列号是在此状态下决定

的。在此状态下发送的DD报文不包含链路状态描述。

Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地

LSDB的内容。

Loading:相互发送LS Request报文请求LSA,发送LS Update通告LSA。

Full:两个路由器的LSDB已经同步。

1. 邻居状态机变为ExStart以后,RTA向RTB发送第一个DD报文,在这个报文中,DD

序列号被设置为552A(假设的值,实际中可能不一样),Initial比特置为1表示这

个是第一个DD报文,More比特为1表示后续还有DD报文要发送,Master比特为1表示

RTA宣告自己为主路由器。

2. 邻居状态及变为ExStart以后,RTB向RTA发送第一个DD报文,知识序列号被置为

5528(也是假设的值)。由于RTB的Router ID比RTA的大,所以RTB应当为主路由器

,Router ID比较结束后,RTA会产生一个NegotiationDone事件,所以RTA将状态机

从ExStart改变为Exchang状态

3. 邻居状态机变为Exchange以后,RTA发送一个新的DD报文,在这个新的报文中包

含LSDB的摘要信息,序列号设置为RTB在步骤2里使用的序列号,More比特为0表示

不需要另外的DD报文描述LSDB,Master比特为0表示RTA宣告自己为从路由器,收到

这样的一个报文后,RTB会产生一个NegotiationDone的事件,因此RTB将邻居状态

改变为Exchange。

4. 邻居状态变为Exchange以后,RTB发送一个新的DD报文,该报文中包含LSDB的描

述信息, DD序列号设为5529(上次使用的序列号加1)。

5. 即使RTA不需要新的DD报文描述自己的LSDB,但是作为从路由器,RTA需要对主

路由器RTB发送的每一个DD报文进行确认。所以,RTA向RTB发送一个新的DD报文,

序列号为5529,该报文内容为空。 发送完最后一个DD报文之后,RTA产生一个

ExchangeDone事件,将邻居状态改变为Loading;RTB收到最后一个DD报文之后,改

变状态为Full(假设RTB的LSDB是最新最全的,不需要向RTA请求更新)。 1.

邻居状态变为Loading之后,RTA开始向RTB发送LS request报文,请求那些在

Exchange状态下通过DD报文发现的,而且在本地LSDB中没有的链路状态信息。 2.

RTB收到LS request报文之后,向RTA发送LS update报文,在LS update报文中,包

含了那些被请求的链路状态的详细信息。RTA收到LS update 报文之后,将邻居状

态从loading改变为full。

3. RTA向RTB发送LS Ack报文,确保信息传输的可靠性。

LS ack报文用于泛洪对已接收LSA的确认。 邻居状态变成Full,表示达到完全邻

接状态。 当有新的LSA生成或收到时,这条新的LSA应当被泛洪。 泛洪新

的LSA时,只需要使用LS update报文和LS ack报文。 1. 当RTA有新的LSA要泛红

时,RTA向RTB发送一个LS update报文,在这个报文里包含这条LSA。 2. 收到新

的LSA以后,RTB向RTA泛红一个LS ack报文进行确认。 当在两个处于完全邻接状

态(邻居状态为Full)的路由器之间泛洪新的LSA时,邻居状态不受影响。

广播型网段上,DR和BDR发送LS update报文和LS ACk报文的目的地址是224.0.0.5,

其余路由器发送LS update报文和LS ack报文的目的地址是224.0.0.6 224.0.0.6

指代一个多路访问网络中DR和BDR的组播接收地址, 224.0.0.5指代在任意网络中

所有运行OSPF进程的接口都属于该组,于是接收所有224.0.0.5的组播数据包。

重点理解好 属于某一组 和 接收怎样的组播数据包,

比如 DR/BDR属于组播地址为224.0.0.6的组(Group),因此它接收目的地址为

224.0.0.6的组播数据包,也就可以理解为何多路访问通过设置DR/BDR可以防止信

息过多处理(因为属于某组的接收者(指OSPF接口),只会剥离到二层,而不会进

一步处理,也就省去了很多资源浪费)。

问题:

1. 如何验证一个Hello报文是否合法?

2. 邻居状态变换分为几个阶段?

3. 不能建立邻接关系的情况下,邻居稳定工作状态是什么?

4. 可以建立邻接关系的情况下,邻居稳定工作状态是什么?

答: 1. 检查Network Mask,HelloInterval,RouterDeadInterval以及Options

字段中的E-bit。

2. 两个阶段:邻居,邻接

3. 2 way 4

. full

原文地址:http://blog.51cto.com/wskang/2122666

时间: 2024-08-16 13:35:57

ospf的基础与邻居,邻接关系 --理论的相关文章

ospf 的基础配置

R1 R2 R3属于OSPF 的骨干区域,R1 R2 R3位于10.1.1.0/24 网段 R2 R3 R4 位于OSPF 的40.1.1.0/24 网段. 希望R2 作为 10.1.1.0 网段的DR, R3作为BDR;R3 作为40.1.1.0 网段的DR,R2 作为BDR. 基础配置: R1 配置: R1(config)#line console 0 R1(config-line)#exec-timeout 0 0 R1(config-line)#logging synchronous R

1.HCNP-R&S-IERN——OSPF路由协议基础

题外话:前段时间一直在搞HCNA-HNTD课程的学习,终于考过了,970分.现在准备趁热打铁搞起HCNP的课程. HCNP-R&S的课程分为3个部分: 1. HCNP-R&S-IERN (Huawei Certified Network Professional-Implementing Enterprise Routing Network) 2. HCNP-R&S-IESN (Huawei Certified Network Professional-Implementing E

OSPF路由基础

1.什么是OSPFOSPF(Open Shortest Path First,开放最短路径优先)是IETF 开发的基于链路状态的自治系统内部路由协议OSPF仅传播对端设备不具备的路由信息,网络收敛迅速,并有效避免了网络资源浪费OSPF直接工作于IP层之上,IP协议号为89OSPF以组播地址发送协议包 2.OSPF协议工作过程主要有四个阶段: 寻找邻居.建立邻接关系.链路状态信息传递.计算路由 3.寻找邻居 4.DR和BDR选举(1.)Hello包携带路由器优先级,优先级为0的路由器不具备选举资格

进程的基础 操作系统 进程的理论

进程的基础 进程的基础 程序 ? 一堆静态的代码文件 进程 ? 一个正在运行的程序进程, 抽象的概念 ? 由操作系统操控调用交于CPU运行 被CPU运行 操作系统 操作系统的基础 ? 管理控制协调计算机中硬件与软件的关系 操作系统的作用 ? 将一些对硬件操作的复杂丑陋的接口, 变成简单美丽的接口 ? 多个进程抢占一个(CPU)资源时, 从操作系统会将你的执行变得合理有序 tip: ? 阻塞: input read write sleep recv accept sendto recvfrom 操

11-15C#基础--数据库之范式理论

数据库的设计理论与思路 在设计数据库的时候,有一个著名的设计理论---范式理论. 1.内容: 第一范式:每一列的数据类型要单一,必须要统一: 第二范式:在设计主键的时候,主键尽量更能体现表中的数据信息. 例如:分数表中的组合主键 货物编号与出入库的时间设置组合主键 第三范式:一个表中的每一列数据信息尽量直接都与主键相关. 2.什么情况下使用‘范式理论’? 以‘进销存’为例: 外键表的主键设计 数据库表之间的关系: 主外键表的关系:1对n的关系,当出现这种关系时,单独抽出来,设计两个表. 当出现n

OSPF多区原理与配置 --理论讲解

[TOC] 前言 一:OSPF的多区域 1.1:生成OSPF多区域的原因 OSPF的三种通信量 路由重分发是域间通信量 AS之间的通讯是外部通信量 1.2:路由器的类型 脚踏两个区域的路由器ABR路由 连接其他AS的是ASBR路由 路由器类型有四个:DR,BDR,ABR,ASBR 1.3:区域的类型 二:链路状态数据库 2.1:链路状态数据库的组成 T1:路由器LSA,所有路由器告诉DR自身直连网段 224.0.0.6 T2:网络LSA,DR通告区域内路由器所有链路状态 224.0.0.5 T3

eNSP——OSPF的基础配置

原理: 模拟实验: 拓扑图: 实验编址: 1.基本配置 根据实验编址和拓扑图进行基本配置,并测试连通性. 2.部署OSPF网络 首先使用ospf命令创建并运行OSPF,1代表进程号 接着使用area命令创建区域并进入ospf区域视图  ,因为是单区域配置,所以使用骨干区域,即0区域 再使用network命令来指定运行OSPF的接口和接口所属的区域. 配置完后可以用 display ospf interface 命令来查看OSPF 检查ospf接口通告是否正确 DR是指定路由器BDR是备份路由器

HAproxy基础(1)-理论篇

一.HAProxy简介 HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或多

OSPF路由协议建立邻居关系、邻接关系和路由汇聚过程中的表类型、包类型及状态类型

邻居关系 OSPF邻居关系的建立,是通过协商Hello包中的参数来实现的.在Init状态,收到邻居的Hello包,并把其当做邻居,将其router-id添加在自己的Hello包中发送,邻居收到后,双方建立two-way状态,形成稳定的邻居关系.邻居关系建立之后,形成邻居表. 邻接关系 OSPF邻接关系的建立,始于Exstart状态,在Full状态,维持稳定的邻接关系.邻接关系的建立是在邻居关系建立的基础之上. 邻接关系区别于邻居关系,邻居关系是只要Hello包中的参数协商成功,就建立.而邻接关系