正在加载...

OSPF协议

[ 2008/11/03 18:06 | by selboo ]

一、OSPF概述

1、链路状态路由协议
    快速适应网络变化,在网络发生变化时,发送触发更新,以较低的频率发送定期更新.通过LSA的洪泛,形成完整的LSDB.网络拓扑图,以自己为中心,运行SPF算法,计算到每个网络的最短路径.
    邻居表;直接相连的邻接路由器(邻接关系数据库)
    拓扑表;网络或区域内的其他路由器及其连接的网络.(LSDB,OSPF拓扑数据库)
    路由表;前往每个目的地的最佳路径(转发数据库)
    距离矢量和链路状态;使用距离矢量路由选择协议时,路由器依赖于邻居的路由选择决策,路由器并不完全了解网络拓扑.使用链路状态路由选择协议时,每台路由器都完全了解网络拓扑,能够根据准确的网络拓扑信息独立地做出决策.

2、OSPF区域结构
    层次化结构
    中转区域;将其他类型OSPF区域连接起来,快速、高效的传输IP分组.(区域0)
    常规区域;连接用户和资源的其他区域,标准区域、末节区域、绝对末节区域、次末节区域.

3、SPF区域
    减少了路由选择表条目、将区域内拓扑变化的影响限制在本地、将LSA扩散限制在区域内.区域术语;骨干路由器,骨干区域,其他区域都和骨干区域相连,ABR,将非骨干区域连接到骨干区域,ABR(分隔LSA扩散区,是执行区域地址汇总的主要地方,常常是默认路由源,维护其连接的每个区域的LSDB)

4、OSPF邻接关系
    路由器通过交换Hello获得协议特定的参数发现建立邻居关系,建立邻居关系后,通过交换LSA来同步LSDB,形成完全邻接状态.点到点邻居直接成为邻接,LAN网络中,所有路由器根DR、BDR全full.其他路由器之间为DROther.路由器之间的链路状态信息必须同步,LSA被扩散到整个区域.

5、OSPF度量计算
    路由器利用LSDB中的信息,使用SPF算法计算去网络中的最佳路径.每个路由器在一个区域中有着相同的链路状态数据库,以自己为根建立一个最短路径树,计算目的网络最优路径,最小cost之各,放入转发数据库.

6、链路状态数据的结构
    收到LSU后,如果LSDB中没有这样的条目,则将其加入到LSDB中,返回一个链路状态确认,此信息扩散到其他路由器,运行SPF,更新路由表;如果有这样的条目,并信息相同,怱略;有条目信息有更新,则将其加入到LSDB中,返回一个链路状态确认,此信息扩散到其他路由器,运行SPF,更新路由表;有条目,信息更旧,向发送方发新信息.

二、OSPF分组

1、OSPF分组类型
    Hello;发现建立维持邻居关系.DBD;检查路由器的数据库之间是否同步.LSR;向另一台路由器请求特定的链路状态记录.LSU;发送请求的链路状态信息.LSAck ;对其他类型的分组进行确认

2、OSPF包头结构
    OSPF被IP封装,协议号是89
              版本号;V2
              分组类型;5种中的哪一种
              分组长度;OSPF分组长度多少字节
              路由器ID;此分组谁发的
              区域ID;分组来自哪个区域
              校验和;
              身份验证类型;指出路由器是否进行认证,明文还是密文
              身份验证;
              数据;因包类型改变
                     Hello;已知邻居组列表
                     DBD;LSDB摘要
                     LSR;需要的LSU类型和提供所需LSU的RID
                     LSU;完整LSA条目,一个更新中可有多个条目
                     LSA ck;空

3、OSPF邻接关系的建立;hello分组
    使用组播地址;224.0.0.5发送hello.路由器ID;Hello/dead(相同);邻居列表;区域ID(相同);路由器优先级;DR IP地址;BDR IP地址;身份验证密码(相同);末节区域标记(相同);

4、交换hello建立邻接关系状态
    路由器A启动down状态,向其接口发hello,224.0.0.5,其他路由器收到检查其参数,加入邻居表中init状态.所有路由器发单播应答分组.A收到后,将邻居ID加入到邻居列表中,two-way状态.如果是多路访问网络,选DR、BDR.定期交换hello,维护邻接关系,LAN 10秒、NBMA 30秒.网络类型决定了邻居如何形成邻接,点到点网络邻居自动形成邻接,多路访问网络由DR决定如何形成邻接.

5、路由发现阶段
    通过DBD、LSR、LSU、LSAck使所有OSPF路由器的LSDB完全相同(full).形成邻接关系的路由器的状态是准启动exstart.首先通过DBD选举主从路由器,router ID高的成为主路由器,由主路由器控制DBD序号的增长.一旦有设备声称自己是从路由器,则进入exchange状态,通过LSR携带LSA头部向对方描述各自的LSDB.通过LSR携带LSA头部向对方请求相应的LSA,进入loading状态,通过LSU携带LSA进行应答,用LSAck对LSU中的LSA进行确认,最终达到full状态.多路访问中,能够接受有些路由器中有two-way状态.DR通告地址为224.0.0.5,其他路由器为224.0.0.6.

6、LSA序列号
    每个LSA在LSDB保持了序列号,32位, 0x80000001开始和结束0x7FFFFFFF,LSA每30分钏洪泛一次,以保持适当的数据库同步,每一次洪泛,序列号加1越大越好,当序列号到达最大,又回到0x80000001,大的序列号将会作废.
Show ip ospf database           debug ip ospf packet

三、配置OSPF

1、  启用OSPF进程
R1(config)#router ospf 1(进程号只在本地有作用)

2、指定路由器上的哪些接口将参与OSPF进程以及网络所属的OSPF区域
R1(config-router)#network IP  通配符  area  X
R1(config-if)#ip ospf X area X

3、单区域OSPF配置,多区域OSPF配置

4、路由器ID
OSPF路由器ID唯一地标识了网络中的每台OSPF路由器,进程启动时选择路由器ID,路由器是一个唯一的IP地址.选择RID;看是否配置了RID    RID(config-router)#router-id 1.1.1.1    选最大回环口地址,选最大物理口的地址,一但选定,不能换.去掉进程,再配,配置后清进程,改后重启设备

5、查看
    Show Ip protocols         show ip route ospf        show ip ospf interface X
    Show ip ospf         show ip ospf neighbor detail         debug ip ospf events

四、OSPF网络类型

    根据物理链路类型定义了不同的网络类型
    点到点;将一对路由器连接起来的网络
    广播;多路访问广播网络
    NBMA;连接的路由器超过两台,但没有广播功能,FR、ATM、X.25都属于NBMA,OSPF有五种运行模式.
    1、点到点链路;串口接口封装PPP、HDLC、FR ATM点到点子接口、没有DR BDR的选举、OSPF自动检测这种接口类型、OSPF包发送利用多播地址224.0.0.5
    2、多路访问一般为以太网和令牌环、选举DR和BDR、所有的设备必须和DR、BDR邻接、包发往DR、BDR为224.0.0.6、包发往其他设备为224.0.0.5
    3、选举DR、BDR;组播发hello包、最高低先级的为DR.次高的为BDR、其次选RID最大、DR没有抢占、接口模式下指定优先级、优先级默认为1.值从0-255、优先级为0,不能参加DR、BDR选举.只能成为DRother
    4、NBMA拓扑;单一的接口连接到多个站点、拓扑为多个路由器,但不支持广播
    5、DR选举在NBMA网络中;OSPF认为,NBMA像其他的广播网、DR、BDR需要和其他的路由器全连接.但NBMA一般做不到、DR、BDR需要一个邻居列表、邻居不能自动发现路由器
    6、NBMA网络上的OSPF运行模式;符合RFC 2328兼容模式如下; 非广播( NBMA )、 点对多点、思科附加模式;点对多点非广播、广播、点对点
    选择网络类型;ip ospf network [{broadcast | non-broadcast | point-to-multipoint [non-broadcast] | point-to-point}]

7、NBMA模式;作为一个广播网络的协议(行为像一个局域网) .所有串行端口属于同一IP子网.帧中继, X.25 , ATM网络默认为非广播模式.邻居必须是静态配置.重复的LSA更新.符合的RFC 2328.(一个IP子网、必须手工指定邻居、选举DR、BDR、DR和BDR必须与其他所有路由器都直接相连、全互联或部分互联拓扑、hello 30秒)
    配置邻居;R1(config-router)# neighbor ip-address [priority number] [poll-interval number] [cost number] [database-filter all]
RouterA(config-router)# neighbor 192.168.1.2 priority 0
RouterA(config-router)# neighbor 192.168.1.3 priority 0
    校验show ip ospf neighbor

8、点到多点模式;一个IP 子网、使用OSPF组播hello分组来自动发现邻居、不选举DR和BDR,路由器发送的LSA中包含更多有关邻接路由器的信息、通常用于部分互联或星型拓扑中.Hello 30秒.
    配置R1(config-if)#ip ospf network point-to-multipoint
    Show ip ospf interface

9、point-to-multipoint nonbroadcast思科私有;如果没有在VC上启用组播和广播,则不能使用遵循RFC的点到多点模式,因为路由器无法使用组播hello分组动态地发现邻接路由器,此时应该使用Cisco 模式,在这种情况下,必须手工指定邻居,无需选举DR和BDR.
    R1(config)# interface s0/1.2 multipoint   hello 30秒

10、point-to-point Cisco模式;每个子接口属于不同的IP子网、不选举DR、BDR、用于两台路由器需要在一对接口上建立邻接关系时、接口可以是LAN接口,也可以是WAN接口.R1(config)# interface s0/1.2 point-to-point默认模式.不需要指邻居,无需选举DR和BDR.Hello 10秒

11、broadcast;让WAN接口就向LAN接口,一个IP子网,使用OSPF组播hello分组来自动发现邻居、选举DR和BDR,全互联或部分互联拓扑.
    查看建立邻接过程debug ip ospf adj

五、OSPF路由类型

1、大型OSPF网络存在的问题;对路由器内存、CPU压力大、链路带宽的占用(LSA多,LSDB大)、生成巨大路由表,导致转发慢、无法压制内部动荡.
    解决方案;OSPF分区,把一个大的OSPF网络分成若干个小的相互独立的OSPF网络.区域内部是链路状态(LSA的洪泛不允许被阻碍),区域和区域之间的行为是距离适量

2、路由器类型
    由于区域的划分,根据路由器接口与区域的关系,具有不同的类型,行使不同的功能.
    内部路由器;把所有OSPF已知的接口放入同一个区域,LSA的传输不能被该路由器阻塞,一个区域所有内部路由器LSDB完全相同.
    区域边界路由器(ABR);如果路由器的接口分属于两个或两个以上的区域,用来互联两个相互隔离的区域,针对所属的区域分别维护各自独立的LSDB,ABR是区域和区域,外部和用户交往的入口.建议ABR只互联两个区域.骨干路由器;至少有一个接口属于area 0 用于解决区域间问题,以防止区域间的循环.自治系统边界路由器ASBR;用来互联OSPF网络与外部网络(非OSPF)作了重发布的路由器.

3、  虚链路virtual-link
    所有区域必须和区域0有直接的物理连接(ABR必须是骨干路由器)
    骨干区域发生分裂,某个区域和区域0没有直接物理连接.虚链路为物理上没有直接连接到area 0的区域创建到 area 0的逻辑连接.注意事项(虚链路必须创建在连接同一个区域的两个ABR上,其中一个ABR是骨干路由器,不能穿越stub区域).

配置;
R1(config-router)# area 要穿越的区域 virtual-link 对方RID [authentication [message-digest | null]] [hello-interval x] [retransmit-interval x] [transmit-delay x] [dead-interval x] [[authentication-key n] | [message-digest-key n md5n]]
查看;show ip ospf                     show ip ospf virtual-link
Tags: ,
,
发表评论
表情
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]