⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc1131.txt

📁 RFC规范的翻译稿
💻 TXT
📖 第 1 页 / 共 5 页
字号:

7.1  Hello协议
Hello协议是用来建立和管理邻居关系的,它了保证了在邻居间的双向通信。Hello包定期在路由器的所有接口传出,双向通信可使路由器在邻居的Hello包中看到自己。
在多路访问网络中,Hello协议选择网络指定的路由器,指定路由器控制网络中生成什么样的邻接(见下文)。
Hello协议在广播网络中和非广播网络比较工作是不同的,在广播网络中,每个路由器通过定期的组播Hello包来公告它自己,允许动态地发现邻居,这些Hello包含有和指定路由器等同的路由器的视图,和最近收到Hello包的路由器的列表。
在非广播网络对Hello协议的操作必须配置一些信息,每个可能成为指定路由器都有一个与网络相连的其它路由器的列表,一个可能成为指定路由器的路由器,路由器的接口在所连接的非广播网络第一次开始操作时向所有其它可能成为指定路由器发送Hello信息,试图在网络中找到指定路由器。如果路由器自己被选为指定路由器,它开始向与网络中相连的其它路由器发送Hello包。
在发现一个邻居之后,确认双向通信,如果在一个多路访问网络则选择一个指定路由器,并决定是否将邻居作为邻接(见10.4节)。在点对点网络和虚拟连接中总是试图建立邻接。建立邻接的第一步是同步相邻的拓朴数据库,在下节讲解。

7.2  同步数据库
在基于SPF的路由算法中,所有路由器的拓朴数据库保持同步是很很重要的。OSPF只是简单地请求邻接的路由器保持同步。同步处理在开始试图建立邻接时就开始了,每个路由器通过向邻居发送一系列的数据库描述包来解释它自己的数据库,当邻居看到一个连接状态公告比它自己的同样的公告还要近时,它就注解这个新的公告应当为请求包。
这种传送和接收数据库描述包被称为“数据库交换处理”,在这个过程中,两个路由器形成一个主/次关系,每个数据库交换包有一个顺序号,数据库描述包由主(查询)方发送,由次方通过对照顺序号进行确认。所有的查询和响应组成了连接状态数据的汇总。主方是仅允许传输数据库描述包,它在固定间隔内传送,这个长度配置为常量:RxmtInterval。
每个数据库描述包含一个后面有包的指示-即M位,当路由器由到一个发送的数据库包中的M位置为结束时,数据库交换处理才算结束。
在数据库交换处理结束后,每个路由器有一个邻居已最后更新的连接状态公告的列表。这些会在连接状态请求包中请求。连接状态请求包是在固定的时间间隔RxmtInterval内没有完成的请求。当所连接状态请求都完成后,数据库得到了同步,路由器也完成了邻接建立。此时邻接已全功能运行,在两个路由器连接状态公告中广播。
邻接在数据库交换过程开始时用来传播,这种简单的数据库同步,保证了在预定的固定时间内完成。

7.3  指定路由器
每个多路访问网络都有一个指定路由器。指定路由器完成下面路由协议的两个重要功能:
* 指定路由器为网络组织网络连接状态公告,这个公告列出了当前与网络相连的路由器的集合(包含指定路由器自身)。这个公告的连接状态ID为指定路由器接口的IP地址。IP网络数即可根据子网/网络掩码算出。
* 指定路由器在网络中是所有其它路由器的邻接。因为连接状态数据库是通过邻接同步(通过邻接建立和广播过程),指定路由器在同步过程中作为中心的角色。
指定路由器由Hello协议选出,一个路由器的Hello包中有它自己的优先级,这个优先级是在每个接口基本配置时给出的,通常,当到一个网张的一个路由器的接口第一次激活时,它首先检查网络中是否有指定路由器,如果有,它接受这个指定路由器,而不管它自己的优先级。(这使得定期确定指定路由器比较困难,但确保指定路由器不经常更换,见下文)。否则,如果它是这个网络中最优先级的路由器则宣布自己为指定路由器。更详细(精确)内容参加9.4节的选择指定路由器。
指定路由器是很多邻接的端点,在广播网络为了优化广播过程,指定路由器使用地址为AllSPFRouters的组播它的连接状态更新包,而不用向每个邻接单独发送包。
在本文档的第二章讨论了区域的有向图表示,路由器节点上标有路由器的ID值,广播网络节点标准确地标有指定路由器的IP地址。当指定路由器改变时,图中的网络节点将被新的节点替代。这将引起网络及它所连接的路由器组织新的连接状态公告,直到拓朴数据库再次收敛,一些暂时性的连接丢失可能发生,结果是在ICMP中发送不可到达信息作为数据传输的响应。为此,指定路由器应很少发生变化。应当配置路由器的优先级使网络中较可靠的路由器最终成为指定路由器。

7.4 后备指定路由器
为了平滑过渡到新的指定路由器,在每个多路访问网络中有一个后备的指定路由器。后备的指定路由器在网络中和其它的路由器邻接,在前面的指定路由器失败时成为指定的路由器。如果网络中没有后备的指定路由器,当必须产生一个新的指定路由器时,在路由器之间及和网络连接的其它路由器之间生成新的邻接。部分生成邻接的过程了是拓朴数据库同步的过程,这可能化费很长一段时间,在这段时间里,网络将不能可靠地传输数据。后备的指定路由器消除了这个过程,因为它已经存在。这意味着传输中断的周期仅是一次新的连接状态公告在网络中传播的时间(宣布新的指定路由器)。
后备的指定路由器不在网络中生成网络连接公告(如果这样做,则传输一个新的指定路由器将非常的快,然而,这需要在数据库的大小和当指定路由器消失后收敛速度之间权衡)。
后备的指定路由器也是由Hello协议选出,每个Hello包中有一个字段为网络标识后备的指定路由器。
在广播的一些步聚中,后备的指定路由器伴演一种消极的角色,让指定路由器做更多的工作。这可大大减少本地路由的能信,详细信息参见13.3节。

7.5  邻接图
一个邻接绑定到网络是两个路由器所共有的。如果两个路由器共有多个网络,则在他们之间有多个邻接。
可以用一种无向图表示网络中邻接的集合。竖向由路由器组成,如果两个路由器为邻接则有一条边界线相连。邻接图描述了穿越自治系统的路由协议包的流向和详细的连接状态更新。
可能有两种图,依赖于网络是否为多路访问网络。在物理的点对点网络(和虚拟连接),在他们的数据库同步后,网络中的两个路由器将成为邻接。在多路访问网络,所有指定路路由器和后备的指定路由器是与网络连接的其它路由器的邻接,及所有邻接的帐户。
这些图在图10中表示。后备的指定路由器和指定路由器在广播过程中完成很少的功能(见13.3节)。这也是用虚线连接后备的指定路由器的原因。
图10:邻接图
8.  协议包处理
本节讨论路由协议包的常规处理,路由器的拓朴数据库保持同步是非常重要的,因为这个原因,路由协议包无论在发送和接收上,都应该比常规的数据包更优先对待。
路由协议包只在邻接问发送(Hello包除外,它用于发现邻接)。这意味着所有的协议包只传送一个IP跳数,除了那些在虚拟连接上的传送。
所有的路由协议包都有标准的头,下面的内容给出如何填写和校验这个标准的包头。对每个包类型,给出了针对此类型处理的更多细节。

8.1 传送协议包
当一个路由器传送一个路由协议包时,它填写如下的标准包头的字段,关于包头的更多细节参见附录2。
图11:接口状态发生变化
版本#:设置为1,在本规范中的协议文档版本号。

包类型:OSPF包类型,如连接状态更新或Hello包。

包长度:用字节表示的整个OSPF包长度,包括标准包头。

路由器ID:标识路由器自己的号(谁组织的包)。

区域ID:包将被传递的区域号。

检查和:对标准IP的整个OSPF包生成的16位余数检查和,包含64位的认证字段。这个检查和应当在将包传送到相应的认证过程之前计算出来。

认证类型和认证:每个OSPF包交换都是经过认证的。认证类型按协议划分详见文档的附录D。不同的认证类型可以用在OSPF的每个区域。64位的认证字段由相应的认证过程设置。这个过程应当是在形成发送包的最后一个被调用。认证字段的值的设置由包的内容和认证关键字(基于每接口配置)共同确认。

包的IP目的地址按如下选择:在物理点对点网络,IP地址总是设为AllSPFRouters。在其它类型网络中(含虚拟连接),多数的OSPF包使用单播,如直播传送到另一端的邻接,假如这样,IP目的地址正好是另一端邻接的邻居的IP地址(见第10章),只在广播网络不使用单播,在这些网络中Hello包使用组播目的地址AllSPFRouters。指定路由器和它的后备在发送连接状态更新和连接状态确认包都使用组播地址AllSPFRouters,其它路由器发送他们的连接状态更新和连接状态确认包都使用组播地址AllDRouters。
重传连接状态包总是使用单播。
IP源地址就设为发送接口的IP地址。接口到无编号点对点网络无连接的IP地址,在这样的接口,IP源地址设为路由器的其它任意的IP地址。为此原因,路由器必须至少有一个连接的IP地址(路由器的所有接口都是无编号点对点连接是可能的,如果这样,路由器必须设一个IP地址,这个地址在路由器的路由连接公告中作为一个主机路由)。大部分情况下,虚拟连接正好同样可以做为无编号点对点网络,然而,每个虚拟连接都有一个接口IP地址(在构造路由表处理是发现)在虚拟连接上发送包时作为IP源地址。
特点包类型格式的大部分信息构成如下:
类型
包名字
详述章节
1
Hello
9.5节
2
数据库描述
10.8节
3
连接状态请求
10.9节
4
连接状态更新
13.3节
5
连接状态确认
13.5节

8.2 接收协议包
只要路由器接收到一个协议包,它就标注上是接收包的接口。对于配有虚拟连接的路由器,将不能立即发现与包相连的接口,例如,图6中的路由器RT11,如果RT11在它的接口到网络N8的OSPF协议包,它可能想把它与在区域2的接口相联,或与路由器RT6的虚拟连接相联(是主干中的部分)。下面我们假定包初始与无虚拟连接相联。
为了使包在IP级别上接受,在包传递到OSPF处理以前,必须进行以下测试:
* IP包检查和必须正确。
* 包的IP目的地址必须是接由端口的IP地址,或是IP组播地址AllSPFRouters和AllDRouters中的一个。
* IP协议为规定的OSPF类型(89)。
* 本地组织的包不应传到OSPF,确切地说,应检查源IP地址确保这个包的组播不是路由器自己产生的。
下一步,OSPF包的头被校验,包头中的特定字段应和接收端口的配置相匹配,如果不匹配,则包被丢弃。
* 版本字段必须是协议版本1。
* OSPF包内容的16位检查和必须检验,记住必须从检查和计算中除去64位的认证字段。
* OSPF头中的区域ID必须进行检验,如果以下两项均失败,则包被丢掉。头中的区域ID应满足下面中的一项:
-匹配接收接口的区域ID。假如这样,包传送中经过了一跳,因此,包的源IP地址必须和接收接口在同一个网络内。这可用比较包的源IP地址和接口的IP地址来确定,用相同的接口掩码地址对地址进行掩码。
-指示主干。假如这样,包通过虚拟连接传送过来,接收路由器必须是一个区域边界路由器,包中指定的路由器ID(源路由器)必须是虚拟连接配置的另一端。接收接口必须连接到虚拟连接配置的穿过区域。如果所有这些检查都通过,包被接收并人此开始与虚拟连接关联(和主干区域)。
* 包的目的IP地址为AllDrouters,只有指定路由器或后备的指定路由器的接口可以接收(见9.1节)。
* 认证类型必须和相应区域特定的认证相匹配。

下一步,包被认证。这依赖于特定的认证类型(见附录D)。所有其它类型的包都只在邻接间传递。即包必须传到路由器的一个活跃的邻居。发送者的路由器ID号(源路由器)可在OSPF的包头中找到。接收接口相关联的数据结构由活跃的邻居列表组成。和任意的活跃邻居都不匹配的包被丢弃。
在这点上,所有接收到的协议包都与活跃的邻居相联,更深地特定包类型的输入处理过程,参考以下章节:
类型
包名字
详细章节(接收)
1
Hello
10.5节
2
数据库描述
10.6节
3
连接状态请求
10.7节
4
连接状态更新
13节
5
连接状态确认
13.7节

9. 接口数据结构
一个OSPF接口是路由器和网络之间的连接。对每个连接的网络都有单一的一个OSPF接口结构;每个接口结构至少有一个IP接口地址(见下文)。对一个接口多个地址的支持需要更深的考虑。
一个OSPF接口可以考虑成属于包含相连网络的一个区域,所有由路由器组织通过这个接口的路由协议包都标有这个接口的区域号。一个或多个路由器邻接通过一个接口发展,一个路由器的连接状态公告反映了这个接口的状态和他们相连的邻接。
下面是与接口相关的数据选项,注意这里的一些选项是与相关网络的配置信息,这些选项对与网络相接的路由器必须是相同的。
类型(Type):与接口相接的网络类型。它的值可以为:广播(broadcast)、非广播但为多路访问、点对点或虚拟连接。
状态(State):一个接口的功能层次。状态确定是否在所有接口上允许全邻接。状态也会在连接状态公告中反映。
IP接口地址:与接口相连的IP地址。通过些接口组织的所有路由协议包中都会把它作为源IP地址出现。无编号点对点网络无相连的IP地址。
IP接口掩码:标识与相联结的网络的IP地址的一部分。常常指子网掩码。用接口的IP地址和此掩码进行掩模得到相连网络的IP网络数量。
区域ID:相连网络属于的区域ID值。所有由此接口组织的路由协议包中都标有此区域ID号。
Hello间隔(HelloInterval):用秒表示的时间长度,路由器通过接口发送Hello包的时间间隔。从此接口发送出去的Hello包中公告。
路由器死亡间隔:在路由器的邻居宣布它关闭前的秒数,当他们停止收听路由器的Hello时。从此接口发送出去的Hello包中公告。
接口传输延迟:通过这个接口传输一个连接状态更新包估计经过的秒数。更新包中的连接状态公告在传输前要增加此值到他的生命中。这个值应当计入传输帐户和传播延迟,它必须大于0。
路由器优先级:一个8位的无符号整数。当连结到网络的两个路由器都想成为指定路由器时,其中优先级高的将获得。一个优先级被设为0的路由器在相连接的网络上要成为指定的路由器是不合格的。从此接口发送出去的Hello包中公告。
Hello计时器:一个间隔计时器,使接口定期发送Hello包。每隔Hello间隔后激发。在无广播网络中每个单独的Hello包被发往每个有资格的邻居。
等待计时器:一个单发计时器,使接口退出等待状态,结果在网络中选定一个指定路由器。时间的长度为路由器死亡间隔。
邻居路由器列表:与这个网络相接的其它路由器。在多路访问网络中,这个表由Hello协议形成,邻接将成为这些邻居的一部分。检查所有这些邻居的状态可以确定邻接的邻居集。
指定路由器:为连接的网络选择的指定路由器。在多路访问网络中由Hello协议选出指定路由器。有两个标识保留给指定路由器:路由器ID和在网络上接口的IP地址。指定路由器在网络中广播连接状态,网络连接状态公告中标有指定路由器的IP地址,这个项目初始值为0,表示没有指定路由器。
后备的指定路由器:后备的指定路由器也是在多路访问网络中由Hello协议选出的。网络中所有的路由器都与指定路由器和后备的指定路由器邻接。在当前指定路由器失效时后备的指定路由器成为指定路由器。初始值为o,表示没有后备的指定路由器。
接口出口代价:通过这个接口发送包的代价,用连接状态尺度表示。在路由器的连接公告中作为接口的连接代价公告。对每个IP服务类型可能会有不同的值,接口的代价值必须大于0。
连接公告间隔:对属于这个接口的邻接,在连接状态公告重传间的间隔秒数。也用于重传数据库描述和连接状态请求包。
认证关键字:这个配置数据允许认证过程生成或检验OSPF头中的认证字段。认证关键字可基于每接口配置。如,如果认证类型要求简单的口令,认证关键字将是64位的口令。在组织路由协议包时这个关键字直接插入到OSPF包头中,且对不同的网络可以有单独的口令。

9.1  接口状态
本节中将讲解路由器接口的多种状态。这些状态按处理功能列表,如:无效状态列在第一

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -