OSPF与ISIS协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

OSPF与ISIS协议
目录
1.OSPF路由协议 (1)
1.1基本概念和术语 (1)
1.2协议操作 (2)
2.ISIS路由协议 (3)
2.1ISIS路由协议介绍 (3)
2.2IS-IS 路由协议相关概念 (3)
2.3IS-IS路由协议适用的链路类型 (4)
2.4IS-IS 路由协议结构 (4)
2.5IS-IS路由协议使用的报文 (4)
3.IS-IS与OSPF的比较 (5)
3.1相同点 (5)
3.2不同点 (6)
1. OSPF路由协议
OSPF是一种典型的链路状态路由协议。

采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握全网的拓扑结构,独立计算路由。

因为RIP路由协议不能服务于大型网络,所以,IETF的IGP工作组特别开发出链路状态协议——OSPF。

目前广为使用的是OSPF第二版,最新标准为RFC2328。

OSPF作为一种内部网关协议(Interior Gateway Protocol,IGP),用于在同一个自治域(AS)中的路由器之间发布路由信息。

区别于距离矢量协议(RIP),OSPF具有支持大型网络、路由收敛快、占用网络资源少等优点,在目前应用的路由协议中占有相当重要的地位。

1.1 基本概念和术语
1. 链路状态
OSPF路由器收集其所在网络区域上各路由器的连接状态信息,即链路状态信息(Link-State),生成链路状态数据库(Link-State Database)。

路由器掌握了该区域上所有路由器的链路状态信息,也就等于了解了整个网络的拓扑状况。

OSPF路由器利用“最短路径优先算法(Shortest Path First, SPF)”,独立地计算出到达任意目的地的路由。

2. 区域
OSPF协议引入“分层路由”的概念,将网络分割成一个“主干”连接的一组相互独立的部分,这些相互独立的部分被称为“区域” (Area),“主干”的部分称为“主干区域”。

每个区域就如同一个独立的网络,该区域的OSPF路由器只保存该区域的链路状态。

每个路由器的链路状态数据库都可以保持合理的大小,路由计算的时间、报文数量都不会过大。

3. OSPF网络类型
根据路由器所连接的物理网络不同,OSPF将网络划分为四种类型:广播多路访问型(Broadcast MultiAccess)、非广播多路访问型(None Broadcast MultiAccess,NBMA)、点到点型(Point-to-Point)、点到多点型(Point-to-MultiPoint)。

广播多路访问型网络如:Ethernet、Token Ring、FDDI。

NBMA型网络如:Frame Relay、X.25、SMDS。

Point-to-Point型网络如:PPP、HDLC。

4. 指派路由器(DR)和备份指派路由器(BDR)
在多路访问网络上可能存在多个路由器,为了避免路由器之间建立完全相邻关系而引起的大量开销,OSPF要求在区域中选举一个DR。

每个路由器都与之建立完全相邻关系。

DR 负责收集所有的链路状态信息,并发布给其他路由器。

选举DR的同时也选举出一个BDR,在DR失效的时候,BDR担负起DR的职责。

点对点型网络不需要DR,因为只存在两个节点,彼此间完全相邻。

协议组成OSPF 协议由Hello协议、交换协议、扩散协议组成。

本文仅介绍Hello协议,其他两个协议可参考RFC2328中的具体描述。

当路由器开启一个端口的OSPF路由时,将会从这个端口发出一个Hello报文,以后它也将以一定的间隔周期性地发送Hello报文。

OSPF路由器用Hello报文来初始化新的相邻关系以及确认相邻的路由器邻居之间的通信状态。

对广播型网络和非广播型多路访问网络,路由器使用Hello协议选举出一个DR。

在广播型网络里,Hello报文使用多播地址224.0.0.5周期性广播,并通过这个过程自动发现路由器邻居。

在NBMA网络中,DR负责向其他路由器逐一发送Hello报文。

1.2 协议操作
第一步:建立路由器的邻接关系
所谓“邻接关系”(Adjacency)是指OSPF路由器以交换路由信息为目的,在所选择的相邻路由器之间建立的一种关系。

路由器首先发送拥有自身ID信息(Loopback端口或最大的IP地址)的Hello报文。

与之相邻的路由器如果收到这个Hello报文,就将这个报文内的ID信息加入到自己的Hello报文内。

如果路由器的某端口收到从其他路由器发送的含有自身ID信息的Hello报文,则它根据该端口所在网络类型确定是否可以建立邻接关系。

在点对点网络中,路由器将直接和对端路由器建立起邻接关系,并且该路由器将直接进入到第三步操作:发现其他路由器。

若为MultiAccess 网络, 该路由器将进入选举步骤。

第二步:选举DR/BDR
不同类型的网络选举DR和BDR的方式不同。

MultiAccess网络支持多个路由器,在这种状况下, OSPF需要建立起作为链路状态和LSA更新的中心节点。

选举利用Hello报文内的ID和优先权(Priority)字段值来确定。

优先权字段值大小从0到255,优先权值最高的路由器成为DR。

如果优先权值大小一样,则ID值最高的路由器选举为DR,优先权值次高的路由器选举为BDR。

优先权值和ID值都可以直接设置。

第三步:发现路由器
在这个步骤中,路由器与路由器之间首先利用Hello报文的ID信息确认主从关系,然后主从路由器相互交换部分链路状态信息。

每个路由器对信息进行分析比较,如果收到的信息有新的内容,路由器将要求对方发送完整的链路状态信息。

这个状态完成后,路由器之间建立完全相邻(Full Adjacency)关系,同时邻接路由器拥有自己独立的、完整的链路状态数据库。

在MultiAccess网络内,DR与BDR互换信息,并同时与本子网内其他路由器交换链路状态信息。

在Point-to-Point 或Point-to-MultiPoint网络中,相邻路由器之间互换链路状态信息。

第四步: 选择适当的路由器
当一个路由器拥有完整独立的链路状态数据库后,它将采用SPF算法计算并创建路由表。

OSPF路由器依据链路状态数据库的内容,独立地用SPF算法计算出到每一个目的网络的路径,并将路径存入路由表中。

OSPF 利用量度(Cost)计算目的路径,Cost最小者即为最短路径。

在配置OSPF路由器时可根据实际情况,如链路带宽、时延或经济上的费用设置链路Cost大小。

Cost越小,则该链路被选为路由的可能性越大。

第五步:维护路由信息
当链路状态发生变化时,OSPF通过Flooding 过程通告网络上其他路由器。

OSPF路由器接收到包含有新信息的链路状态更新报文,将更新自己的链路状态数据库,然后用SPF 算法重新计算路由表。

在重新计算过程中,路由器继续使用旧路由表,直到SPF完成新的路由表计算。

新的链路状态信息将发送给其他路由器。

值得注意的是,即使链路状态没有发生改变,OSPF路由信息也会自动更新,默认时间为30分钟。

2. ISIS路由协议
2.1 ISIS路由协议介绍
中文名称:中间系统到中间系统的路由选择协议
英文全称:IS-IS:Intermediate System to Intermediate System Routing Protoco
中间系统到中间系统的路由选择协议(IS-IS)是由ISO 提出的一种路由选择协议。

它是一种链路状态协议。

在该协议中,IS(路由器)负责交换基于链路开销的路由信息并决定网络拓扑结构。

IS-IS 类似于TCP/IP 网络的开放最短路径优先(OSPF)协议。

在ISO规范中,一个路由器就是一个IS(中间系统),提供IS和IS(路由器和路由器)之间通信的协议就是路由协议,即IS-IS路由协议。

IS-IS协议和OSPF协议非常类似,都是链路状态路由选择协议,其实它的出现要比OSPF的原型更早,OSPF在Internet和TCP/IP 网络IP通信的路由选择中使用。

IS-IS既可在IP通信中使用,也可在OSI通信中使用并且可以为同一个域内两个路由器之间传送信息分组提供动态路由。

IS-IS路由协议是一种链路状态协议,使用最短路径优先SPF(Shortest Path First)算法,与OSPF协议有很多相似之处。

IS-IS路由协议属于内部网关协议IGP(Interior Gateway Protocol),用于自治系统内部。

2.2 IS-IS 路由协议相关概念
1.IS-IS路由协议术语
IS(Intermediate System,中间系统)。

相当于TCP/IP 中的路由器,是IS-IS协议中生成路由和传播路由信息的基本单元。

在下文中IS 和路由器具有相同的含义。

ES(End System,终端系统)。

相当于TCP/IP 中的主机系统。

ES 不参与IS-IS路由协议的处理,ISO有专门的ES-IS协议定义终端系统与中间系统间的通信。

RD(Routing Domain,路由域)。

在一个路由域中一群IS 通过相同的路由协议来交换路由信息。

Area(区域)。

路由域的划分单元。

LSDB(Link State DataBase,链路状态数据库)。

所有的网络内连接状态组成了链路
状态数据库,在每一个IS 中都至少有一个LSDB。

IS使用SPF算法,利用LSDB来生成自己的路由。

LSPDU(Link State Protocol Data Unit,链路状态协议数据单元)。

在IS-IS中,每一个IS都会生成一个LSP,此LSP包含了本IS的所有链路状态信息。

每个IS收集本区域内所有的LSP生成自己的LSDB。

NPDU(Network Protocol Data Unit,网络协议数据单元)。

是ISO中的网络层协议报文,相当于TCP/IP中的IP报文。

DIS(Designated IS)即广播网上的指定中间系统。

NSAP(Network Service Access Point,网络服务接入点)。

是ISO中网络层的地址。

用来标识一个抽象的网络层访问服务点,描述ISO 模型的网络地址结构。

2.3 IS-IS路由协议适用的链路类型
IS-IS可以运行在点到点链路(Point to Point Links),如PPP、HDLC等,也可以运行在广播链路(Broadcast Links),如Ethernet、Token-Ring 等,对于NBMA(Non-Broadcast Multi-Access)网络,如ATM,需对其配置子接口,并将子接口类型配置为P2P 或广播网络。

IS-IS 不能在点到多点链路(Point to Multi Point Links)上运行。

2.4 IS-IS 路由协议结构
为了支持大规模的路由网络,IS-IS 在路由域内采用两级的分层结构。

一个大的路由域被分成一个或多个区域。

区域内的路由通过Level-1路由器管理,区域间的路由通过Level-2路由器管理。

1.Level-1路由器
Level-1路由器负责区域内的路由,它与同一区域的Level-1路由器或Level-1-2路由器形成邻居关系,维护一个Level-1的LSDB,该LSDB 包含本区域的路由信息,到区域外的报文转发给最近的Level-2路由器。

2.Level-2路由器
Level-2路由器负责区域间的路由,可以与其他区域的Level-2路由器或Level-1-2路由器形成邻居关系,维护一个Level-2的LSDB,该LSDB包含区域间的路由信息。

所有Level-2路由器组成路由域的骨干网,负责在不同区域间通信,路由域中的Level-2路由器必须是连续的,以保证骨干网的连续性。

3.Level-1-2路由器
同时属于Level-1和Level-2的路由器称为Level-1-2路由器,每个区域至少有一个Level-1-2路由器,以将区域连在骨干网上。

它维护两个LSDB,Level-1的LSDB用于区域内路由,Level-2的LSDB用于区域间路由。

2.5 IS-IS路由协议使用的报文
IS-IS报文直接封装在数据链路帧中,主要分3类,即Hello报文。

LSP和SNP。

1.Hello报文
Hello报文用于建立和维持邻居关系,也称为IIH(IS-to-IS Hello PDUs),其中,广播
局域网中的Level-1路由器使用Level-1 LAN IIH;广播局域网中的Level-2路由器使用Level-2 LAN IIH;非广播网络中则使用Point-to-Point IIH。

2.LSP
LSP(Link State Packet,链路状态报文)。

用来交换链路状态信息。

LSP分为两种,即Level-1 LSP和Level-2 LSP。

Level-2 LSP由Level-2路由器传送,Level-1 LSP由Level-1 路由器传送,Level-1-2路由器则可传送以上两种LSP。

3.SNP
SNP(Sequence Number Packet,时序报文)。

用于确认邻居之间最新接收的LSP,作用类似于确认(Acknowledge)报文,但更有效。

SNP 包括CSNP(Complete SNP,全时序报文)和PSNP(Partial SNP,部分时序报文),进一步又分为Level-1 CSNP、Level-2 CSNP、Level-1 PSNP和Level-2 PSNP。

PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。

CSNP包括LSDB中所有LSP的摘要信息,从而可以在相邻路由器间保持LSDB同步。

在广播网络上,CSNP由DIS定期发送(默认的发送周期为10秒);在点到点线路上,CSNP 只在第一次建立邻接关系时发送。

3. IS-IS与OSPF的比较
3.1 相同点
IS-IS和OSPF是链路状态路由协议的两个最典型的代表,都采用SPF算法来计算路由;
由于具有快速收敛、无环路等特点,IS-IS和OSPF都能很好地支持大型网络,但从全球的部署来看,采用OSPF的还是占了多数,而IS-IS在近几年开始得到比较多的应用;
IS-IS和OSPF一样采用Hello协议来维护邻居关系,但IS-IS的Hello协议与OSPF比起来,相对简单的多;
IS-IS和OSPF都采用分层路由的概念,都有骨干区域,为网络规划提供了比较灵活而且实际的设计方案;
为了控制链路状态数据库的规模和复杂度,IS-IS和OSPF在广播网络上都选举DR来担任数据库同步的主要角色,但在细节处理上还是有较大的差别的;
对协议报文的验证能力是所有高级路由协议所必须具备的功能,IS-IS对于协议报文的验证处理是有些特别的,它按照Level和PDU类型来处理;
IS-IS和OSPF对路由开销的度量(metric)都采用了接口可配置的cost,能够比较正确地反映网络的实际情况;
在支持大型网络的时候,触发更新的Update方式比周期性广播方式要节约大量的协议报文所产生带宽消耗;
对于每个LSP(LSA)都有一个记时器相关联,正常情况下在一定时间内(较长时间)会更新重新计时,如果在规定时间内没有收到新的更新,将从数据库中清除该LSP(LSA),不再用
做路由计算用;
对于边缘区域中的路由器,一是通过区域划分,二是通过设置区域类型来减少对路由器资源的需求。

IS-IS可以将区域中的路由器设置为level- 1 only类型,OSPF可以将整个区域设置为stub、total-stub或NSSA来减少数据库的大小,同时保证正确路由。

3.2 不同点
IS-IS最初是为ISO的标准协议,为CLNS设计的,后来增加了对IP的支持;而OSPF 一开始就是IETF为IP网络设计的;
IS-IS协议直接在链路层上运行,报文直接封装在链路层报文中,支持CLNS、IP等多种协议;OSPF报文封装在IP中,只支持IP协议;
IS-IS协议中整个路由器只能全部属于一个区域,区域边界位于两个路由器之间,路由器的LSDB按Level来维护;而OSPF按接口来,一个路由器可以属于多个区域,为每个区域维护一个LSDB数据库;
OSPF通过特殊的区域ID Area0区来定义骨干区,而IS-IS是通过连续的L2路由器来组成骨干区;
IS-IS的采用的Hello协议比较简单,OSPF比较复杂;而且IS-IS检查比较宽松,邻居之间的Hello和Dead等间隔不一定必须一样,不象OSPF要求必须一致才能形成邻居关系;IETF对IS-IS提供一个改进的3-way的Hello协议,现已有draft:draft-isis- 3way-04.txt(3-way handshake);
IS-IS的LSP生存时间是从20分钟(可配置)往下计算到0来清除旧的LSP,而OSPF 是从0往最大值涨到60分钟(周期不可配置)来清除更新旧的LSA的;
IS-IS协议的DR选举比较简单,而且是抢占式可预见的,优先级最高的是DR,优先级别为0的也可能成为DR;为了保证变动比较小,OSPF协议DR选举机制比较复杂并不可预见,优先级最高的不一定是DR,优先级为0的不可能成为DR,并且有BDR的概念,DR 失败,BDR立即承担DR的职责,而IS- IS没有BDR,DR失败,重新选举DR;
IS-IS不支持P-2-MP类型的网络,并且NBMA网络都只能设置为子接口模拟成P2P来运行;OSPF可以很好地支持以下各种网络类型:Broadcast,NBMA,P-2-P,P-2-MP;
标准的IS-IS 接口cost取值为:0-63,对链路层区分不够,并且一个网络的metric达到1024就认为不可达;而OSPF接口cost取值范围为:0-1024,一个网络的metric达到65535才认为不可达。

IEFT在 draf-ietf-isis-traffic-02.txt中扩大了IS-IS的cost的取值范围和最大有效路径metric。

IS-IS的Level-1的区域只能是是OSPF中Total Stub区域样,依赖最近的区域边界路由器作为所有到区域外网络的出口,造成次优路由;而OSPF非常灵活,非骨干普通区域即可设置为普通区域,选择最优路由,也可以设置为Stub,Total Stub,NSSA;IETF对IS-IS 已经提供一个改进解决方法: RFC 2966: Domain-wide Prefix Distribution with Two- Level IS-IS;
IS-IS一个路由器在一个协议报文中插入所有它发布的IP前缀信息,如果大于发布链路
MTU,将分片,当前一个IS-IS LSP最多分为255片,限制了大约只有3000个IP地址前缀; IETF对IS-IS提供一个改进解决方法,现已有draft:draft-isis-lsp- fragmets-04.txt;
IS-IS虽然在《ISO 10589》中虽然提出了virtual-link来修复分开的骨干区域,但目前厂商基本没有实现,在RFC 1195中也没有提出;OSPF可以很好地支持virtual-link来修复分开的骨干区域或让远端的普通区域连接骨干区;。

相关文档
最新文档