您的位置:首页 > 其它

OSPF运行机制以及原理之一

2010-12-04 10:02 363 查看
OSPF使用IP协议号89,EIGRP使用IP协议号88

链路:本地路由器的接口,

1.通过拓扑表构建ospf的拓扑图出来





将图中的拓扑跑ospf,然后根据拓扑数据库将拓扑图还原

记得当时参加培训时,我们的老牛人就是用这个告诉我们OSPF可以依照LSDB构建出网络完整的拓扑。

show ip ospf database

ospf:每台路由器都有相同的拓扑数据库

eigrp:show ip eigrp topology all-links,eigrp不能构建完整的数据库

链路状态:在同一区域内的每台路由器拥有相同的拓扑数据库,能构建出整个区域的完整拓扑结构,去往区域的任何目标都是在自己本地计算完成的

高级距离矢量:邻居间相互通告彼此的路径信息,依赖于传闻进行路由选择

OSPF邻居关系的建立:通过交换hello包。如果hello包里面有相应的信息匹配,则可以成为邻居,不匹配不能成为邻居,邻居关系的状态是two-way。
Hello包的内容

是否需要匹配才能成为邻居

始发路由器的路由器ID



始发路由器接口的区域ID



始发路由器接口的地址掩码



始发路由器接口的认证类型和认证信息



始发路由器接口的hello时间间隔



始发路由器接口的路由器无效时间间隔



路由器的优先级



指定路由器和备份指定路由器



标识可选性能的5个标记位

是,如stub标记

始发路由器的所有有效邻居的路由器ID

信息交换的不同

ospf交换的是lsa,是链路状态的通告,lsa包括:序列号、链路类型、邻居的rid、网络前缀、stub等信息

eigrp交换的是路由条目

LSA:关于邻居的信息、网络前缀、网络类型<链路的类型>

一、ospf的工作机制:

初始化的工作过程:数据包类型、建立邻居 <邻接表>、信息交换<拓扑表>、路由的算法<SPF>、路由表

路由协议的维护:邻居的状态、检测、链路状态变化的通告和更新

OSPF的网络类型:点到点、广播、NBMA

二、扩展性结构设计:多区域设计架构---区域的类型

三、稳定性与可靠性:路由汇总、虚链路的应用

四、安全:其验证的方式

邻居 明文

区域 密文

虚链路

序列号、确认、重传

数据包的类型:

hello:建立、维护邻居关系

dbd:链路状态数据库的目录、摘要

lsr:链路状态的请求

lsu:链路状态更新,打包了lsa

lsack:对关键的数据包进行确认,包含了lsa的头部

确认:

显式确认——lsu使用显式确认。

隐式确认——DBD、LSR一般使用隐式确认。

EIGRP的数据包类型:hello 查询 更新 应答 确认

ospf邻接关系的建立过程:

1.hello包:10S发送一次,间隔40S

建立邻居的条件:子网掩码、hello计时器、区域ID、验证、stub节点路由器必须要相同,才可以视为邻居

router-id:拓扑数据库或邻居表中对路由器的标识

配置:手工配置>环回口优先>活动物理接口地址最大优先,router-id一旦被选定,无法更改,解决办法:clear ip ospf process

邻接关系建立过程:

down:

init:路由进程启动,开始发送和接收hello

two-way:双向邻居状态,从邻居接收到的hello包中发现了自己的相关信息,即邻居router把本地router自己当成邻居

DBD

exstart:预启动状态,双方在开始交换信息之前,进行master中slave的选举,确定由谁来发起信息交换过程

此时的DBD用于选举、交换DBD信息,router-id大的成master,router-id小的成slave

exchange:交换链路状态数据库的目录,(DBD:包含数据库的摘要)由master先开始发起信息交换的过程,双方相互发送链路状态数据库的摘要信息,由DBD完成

loading:加载,双方经过链路状态数据库的目录对比,发现有些内容是自己所没有的,通过lsr向对方索取具体的内容,对方接收到lsr后,以lsu打包对方所请求的LSA,发送给对方。LSACK用于确认

full:双方经过LSDB的交换,最终LSDB完全相同,此时LSDB进入同步状态,邻接关系才进入到full

ospf也可以在接口下启动:

int s0/1

ip ospf 110 area 1

调试信息: R1 debug ip ospf adj,抓包R1 S0/0

ospf的信息都是组播的:hello dbd lsr lsu lsack 组播地址224.0.0.5

eigrp的信息有组播也有单播,hello、更新、查询 有组播;更新、查询、应答、确认有单播

在广播网络环境下:drother与dr、bdr建立全邻接关系,224.0.0.6 drother之间的邻接关系状态为two-way

DR和BDR的选举在two-way状态下面进行。

DR:

BDR:只监测DR的状态,当DR出现故障down后,bdr成为dr,BDR不能转发数据

先举dr、bdr的作用:减少lsa的泛洪,选举规则:优先级高的优先(优先级从0到255的整数,默认优先级为1),优先级相同,RID高的优先

优先级0表示不参与选举,在选举出dr/bdr之后,将接口的优先级设置为0后会放弃对dr/bdr的选举

在实际工程中间,如果要改变DR/BDR的话,一般不允许清进程,所以修改dr other接口的优先级为0

DR/BDR的选举在two-way状态之后

OSPF交换信息的内容是LSA,包含在LSU中,LSA里面包括邻居、网络类型、网络前缀。其中前两项用来构建拓扑表

由LSA构成LSDB(链路状态数据库),所有路由器维护相同表项

3.路由算法

cost值的计算:10^8/带宽(本地链路开销),去住目的开销,是所经历的每段链路的开销之和

SPF算法:最短路径优先,以自己为根结点 (计算自己到直连邻居的最短路径,计算邻居到下级邻居的cost),计算自己到网络中任何结点的最短路径,构建一棵SPF最短路径树

路由表:根据SPF,将每个节点的网络前缀附加到结点,此时构建出路由表

SPF算法:以本地路由器为根结点,逐级计算去住目标节点的最短路径,最终构建出以本路由器为根节点的去住所有节点的最短路径树(STP),将每个节点相关的网络前缀附加在最短路径树上,即构建出路由表

运行维护过程:

1.邻居状态检测:hello 10S→holdtime 40S

NBMA:hello 30S→holdtime 120S

2.链路状态变化如何通告:→触发更新,LSU

接口状态变化:UP DOWN,地址的变化,接口的网络类型改变

通过LSU发送LSA,对方收到用LSACK回应

LSU判断:根据LSA的序列号判断处理

A.LSA不存在,将LSA放入LSDB,运行SPF算法,计算出最新的路由变化,泛洪给邻居

B.LSA的序列号更新,说明这是新的链路状态变化,更新LSDB,运行SPF算法,反映出路由的变化,然后泛洪,

C.LSA序列号与自己数据库相同,忽略

D.LSA序列号比自己数据库的序列号更小,说明对方还不知道最新的通告,将最新的LSA通告给对方

LSA定期更新与老化

LSA在拓扑数据库的老化时间是一个小时(超时清除),用于删除因为路由器down掉或失效的拓扑数据库,但在稳定的拓扑数据库,因为LSA是触发更新,所以正常情况不发送LSA,有可能得LSA到达才华时间超时,采用定期更新来防止LSA的才华,采用DBD,每30min发送一次。

LSBD的过载机制:

避免LSDB过载 防止router崩溃

OSPF:采用组播包

224.0.0.5

224.0.0.6

OSPF的各种运行方式
模式

首选NBMA拓扑

子网地址

Hello定时器

邻接关系

RFC/CISCO

示例

广播

全互联、部分互联

相同

10S

自动发现、选DR/BDR

cisco

LAN接口

非广播

全互联、部分互联

相同

30S

手工配置、选DR/BDR

RFC

串行接口

点到多点

部分互联或星型

相同

30S

自动发现,不需DR/BDR

RFC

无需DR的帧中继OSPF模式,在VC支持组播、广播时使用

点到多点非广播

部分互联或星型

相同

30S

手工配置、不需DR/BDR

CISCO

无需DR的帧中继OSPF模式,在VC支持组播、广播时使用

点到点

部分互联或星型拓扑 使用子接口

每个子接口各不相同

10S

自动发现、不需DR/BDR

CISCO

包含点到点子接口的串行接口

关系:

IP子网,只有点到点模式各子接口的IP子网各不相同,其余均在同一子网

邻居发现:广播、点到点、点到多点为自动发现;非广播、点到多点非广播为手工配置

选DR/BDR:广播、非广播选举DR/BDR,点到多点、点到多点非广播,点到点不需要DR/BDR

OSPF在点到点子接口上使用点到点模式,在多点子接口使用非广播模式

要在多路访问模式下面选举DR/BDR,防止LSA泛洪。广播、非广播多路访问模式下面采用

非广播环境下面不能自动发现邻居,需要手工指定。非广播、点到多点非广播

OSPF的网络类型

点到点:专线

广播:以太网

NBMA:有五种类型

1>、点到点的网络,不需要二层寻址,把二层单播、组播、广播都当成单播,OSPF不需要做特殊设置

2>在以太网,可以认为以太网是全互联,LSA泛洪,解决办法是选举DR/BDR

单播→目标MAC地址,通信对方的MAC地址

广播→255.255.255.255,目标MAC是FFFF.FFFF.FFFF,针对所有用户

组播→三层224.0.0.5/224.0.0.6,网络中的一组用户,二层封装,将组播IP映射成MAC,由0100.5e开头,接着一位为0,后面的23位用IP的23位,构建出224.0.0.5/224.0.0.6。交换机能识别

对于该组播MAC:

A.交换机支持组播,监听组播包,并发现组用户,构建转组播MAC发表

B.交换机不支持组播,交换机不能构建出组播的转发表,而会将组播MAC当成未知单播进行泛洪,所有用户都能接收

NBMA:非广播多路访问

在帧中继网络里面,可以构建全互联,依赖于虚电路,企业中通学采用部分部分互联或HUB—SPOKE结构,中心站点有多条虚电路与每个分支连接

1.单播包:根据路由表以及二层虚电路的映射来决定二层封装的DLCI号,本地dlci与对方的IP地址为一对

2.广播包:三层地址是255.255.255.255,二层也不存在广播,虚电路只存在单播

二层:a.不支持广播,丢弃

b.模拟广播运行,在每条虚链路上复制一份数据包,从每一条虚链路上发送

frame-relay map ip dlci 对方IP broadcast

如果没有指定broadcast参数,不会将模拟广播发往该dlci

3.组播包:网络中一组用户,帧中继不支持组播,把组播当成广播来处理

a.不支持广播,丢弃

b.支持模拟广播,以多个二层framge-relay单播帧在每条虚链路转发来模拟广播运行

OSPF在NBMA环境下:
网络类型

标准

拓扑

是否支持广播

Hello包

LSA泛洪

DR/BDR

NBMA

IETF

全互联

不支持

30



选举

点到多点

IETF

部分互联或星型

模拟广播

30





广播

CISCO

全互联

支持广播

10



选举

点到多点非广播

CISCO

部分互联或星型

不支持

30





点到点

CISCO

点到点

支持

10





ospf在点到点或者广播环境下
网络类型

拓扑

是否支持广播

Hello包

LSA泛洪

DR/BDR

点到点

点到点

支持

10





广播

全互联

支持

10



选举

OSPF的NBMA网络环境,IETF定义了两种网络,非广播多路访问和点到多点

NBMA:不支持模拟广播,二层虚电路为全互联

配置:手工指定邻居,(neighbor 192.168.1.1)以单播建立邻居关系

选举DR/BDR来减少泛洪

点到多点:支持模拟广播,二层虚电路为部分互联或星型结构。

配置:不需要做特殊设置,不会存在LSA泛洪,不需要DR/BDR

让三层知道有模拟广播,二层支持模拟广播

CISCO对IETF的补充

广播:全互联拓扑,支持广播,是基于NBMA的广播,选举DR/BDR,减少LSA泛洪

点到多点非广播:部分互联或星型拓扑,不支持广播,用单播建立邻居,不选DR/BDR

点到点:点到点子接口的虚电路连接,点到点的子接口,每个子接口在不同的IP网段

虚链路:指一条通过一个非骨干区域连接到骨干区域的链路

虚链路的作用:通过一个非骨干区域连接到骨干区域;通过一个非骨干区域连接一个分段的骨干区域两边的部分区域。

使用虚链路注意事项:

虚链路必须配置在两台ABR之间;配置了虚链路所经过的区域必须拥有全部的路由选择信息,这样的区域又被称为传送区域;传送区域不能是一个末梢区域

以上内容为本人去年笔记,如有错漏之处,敬请批评指正,谢谢!

本文出自 “神策” 博客,请务必保留此出处http://liu008qing.blog.51cto.com/151315/440731
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: