码迷,mamicode.com
首页 > 其他好文 > 详细

OSPFv3 和OSPFv2的大致比较

时间:2016-06-01 06:59:36      阅读:7132      评论:0      收藏:0      [点我收藏+]

标签:blank   target   style   标签   

Technorati 标签: ,,,

OSPFv2(IPv4)简要回顾(RFC2328):

--可支持大规模的路由

--路由变化快速收敛

--无路由环路

--支持等价负载均衡(LSA链路状态路由协议,仅仅支持等价,非等价的是EIGRP和BGP可以支持)

--支持区域分级管理

--支持路由分级管理

--支持验证(明文验证和MD5的验证)

--支持以组播发送协议报文(224.0.0.5和224.0.0.6)

OSPFv2的协议号是89.

Router-ID是一个32位的无符号的整数, 是一个路由器的唯一标示,所以一般用环回来表示.在整个AS内唯一.

区域内的路由器(IAR)------该路由器所有接口都属于同一个ospf区域.

区域边界路由器(ABR)-----负责传递不同区域间的路由信息.该路由器同时属于两个以上的区域(其中一个区域一定是area0)

自治系统边界路由器(ASBR)-----负责引入其他自治系统的路由信息,该路由器引入了其他路由协议(重分发).

PS.路由器的各种类型是可以相互切换的(除了不能同时是IAR和ABR)

所有类型的路由器用一个图表示的话:

技术分享

OSPFv2把所有的网络拓扑抽象成三种情况:

--Stub网络 , 该网络所连接的只有自己的路由.

--Point-to-point网络, 该路由器通过点到点的网络与另一台路由器相连.

--广播(broadcast)或者NBMA网络: 该路由器通过广播网络或NBMA网络与多台路由器相连接.

接口类型:(OSPF的接口有五种类型)

-->点到点(P2P)接口

-->点到多点(P2MP)接口

-->点到多点非广播(P2MP non-broadcast)接口

-->广播(Broadcast)接口

-->NMBA(Non-broadcast Multi-access)接口

~~~~~~Virtual link接口是一种特殊的P2P接口类型.(建立一个虚拟隧道)

OSPF的洪泛与链路状态数据库

在OSPF的一个区域里面,LSA会泛红到所有路由器,最终让该区域的所有路由器进行数据库统一.

通过大家交换LSA.(Type-1,type-2的泛洪)

技术分享

OSPF数据报文有五种:

-->Hello 报文,发现及维持邻居关系,选举DR,BDR

-->DBD报文,描述本地LSDB的情况

-->LSR报文,向对端请求自己没有的LSA

-->LSU报文,向对方更新LSA

-->LSAck报文,收到LSU后,进行确认

■所有报文使用同样的报文头

■除了Vlink,在其他链路上传播距离为一跳.

OSPFv3协议介绍

----运行于IPv6的OSPF路由协议(RFC2740)

---基于OSPFv2基本原理并且增强,是一个独立的路由协议。协议号依然是89,Router-id依然是一个32位的无符号整数.[这里的Router-ID在IPv6中不是一个IP地址的格式了,而是32位无符号整数]

技术分享

虽然OSPFv3和V2很多概念是一样的,但是相互并不兼容.

OSPFv3OSPFv2的不同点:

1, 基于连接(Link),而不是网络(subnet)运行

OSPFv3的拓扑描述依赖于IPv6的link-local地址,又脱离于IPv6的任何地址.

其实也就是说,在链路上面就算没有OSPF的单播地址,也照样能形成邻居关系.因为源是link-local地址,目的是组播地址,这样就能完成ospf的交互.

这里有两个例子:

OSPFv2,是基于链路运行的.例如下面,在同一个MA网络中,一定是大家要子网网段一直,掩码一致,才能建立邻居关系.

技术分享

而OSPFv3如下,每个路由器连接到MA网络中,子网都是不同的.

RTA=5f00.1111::1/32 RTB=5f00.2222::1/32 RTC=5f00.3333::1/32

即使是这样,他们一样的能建立起来OSPF邻居关系,因为使用的是link-local为源地址.

因为拓扑数据库要描述的东西完全和地址没有关系,数据库需要描述的是RTA/B/C在同一个子网,cost是多少就够了.(具体的网段和数据库没有多大关系)

技术分享

2,IPv6地址语义和协议设计分离

OSPFv3的拓扑描述依赖于IPv6的link-local地址,又脱离于IPv6的任何地址.

其实也就是说,在链路上面就算没有OSPF的单播地址,也照样能形成邻居关系.因为源是link-local地址,目的是组播地址,这样就能完成ospf的交互.

具体在哪里体现出语义和协议设计分离呢?

1,利用IPv6的link-local地址来传递网络拓扑信息,但是拓扑信息里不包括IPv6地址.

2,Router-LSA和Network-LSA只反映网络拓扑信息;

3,采用专门的LSA来传递IPv6的前缀信息(Intra-area prefix LSA)

4,Router-ID,Area ID和LSA link state ID依然是IPv4的格式(32bit),而不是IPv6地址

5,邻居由于邻居Router ID来标示.

3,明确LSA洪泛范围并且增加link-local洪泛范围

IPv4中,router-LSA和network-LSA在本区域内进行泛洪.Type-3 summary LSA是在区域间泛洪,type-4是区域间,type-5是全网泛洪.....但是这个范围不外乎都是区域内或者区域间进行泛洪.

但是对于OSPFv3来说,还增加了一个链路范围进行泛洪.

1, 新增加了Type-8的LSA,仅仅在本地链路范围内进行洪泛.泛洪范围:链路本地(link-local scope)

2, 区域范围(Area Scope): Router-LSA, Network LSA, Inter-area-Prefix-LSA

Inter-Area-Router-LSA, AS-NSSA-LSA(仅仅存在于NSSA区域)

Intra-Area-prefix-LSA(新增)

3, 自治系统范围(AS Scope): AS-External-LSA

泛洪范围

 

链路本地泛洪

Link-LSA(Link-local Scope) Type-8

区域内泛洪

Router-LSA(Type-1)

 

Network-LSA(Type-2)

 

Intra-Area-Prefix-LSA(承载区域内IPv6的前缀) Type-9

NSSA区域内

AS-NSSA-LSA(Type-7)

区域间泛洪

Inter-Area-Prefix-LSA

 

Inter-Area-Router-LSA

AS内泛洪

AS-External-LSA(type-5)

4,连接(Link)多实例化

多实例的应用.

场景1:这里A/B/C/D都在同一个子网中,预期的结果是:

A--D形成邻居/邻接关系.

B--C形成邻居/邻接关系.

A-X-C没有任何关系. B-X-D也没有任何关系.

在IPv4中是不行的,但是在IPv6中,在Hello包中增加一个叫Instance-ID的字段.也作为一个必须匹配字段,不同就不能建立邻居.

技术分享

5,使用链路本地(link-local)地址

除了Virtual link以外(虚链路实际上是一个隧道技术,已经超出了链路范围),其他的链路上发送的报文源地址都是link-local地址,目的地址为link-local地址或者是组播地址.[实际上就是根本不会用单播地址进行协商]

6,验证与效验和变化

OSPFv3报文中不再包含AuType和Authentication,而依赖IPv6的扩展验证包头来进行认证.

效验和checksum变化:

OSPFv3使用IPv6标准的check sum. IPv6的效验和覆盖范围比较IPv4,将会覆盖IPv6的包头.

技术分享

7,报文格式变化

下面是OSPFv2和V3的包头的变化:

在V2中,认证有很多字段,到了V3以后就没有了.

但是V3多增加了一个Instance ID,这样就可以做多实例的邻居关系了。

技术分享

OSPFv3包头字段的描述:

--Version:版本,对于OSPFv2,该值=2,OSPFv3=3.

--Type: 1-Hello,2-DD,3-LSR,4-LSU,5-LSAck

--Packet Length: OSPFv3报文长度

--Router ID:路由器ID,全网唯一.

--Area ID:区域ID,除了虚连接以外.其他的都需要和骨干区域相连接.

--Checksum:效验和

--Instance ID:链路实例ID.建立邻居的时候必须匹配,否则2way都建立不起来.V3新增加字段.

8,LSA类型和格式的变化

除了第六是从来没有启用过的,8和9和新增加的.

技术分享

OSPFv3 和OSPFv2的大致比较

标签:blank   target   style   标签   

原文地址:http://361531.blog.51cto.com/351531/1784974

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!