动态路由协议-链路状态协议OSPF

一、OSPF的基本概念

1、OSPF简介
开放式最短路径优先OSPF是IETF组织开发的一个机遇链路状态的内部网关协议(Interior Gateway Protocol);其中开放式代表公有协议,不受厂商的限制,在任意设备上使用,应用最广泛的协议。版本:IPV2/IPV3,本文的OSPF均为OSPF IPV2协议。
2、OSPF的优点
作为基于链路状态的协议,除了能够解决RIP所面临的诸多问题以外,还有以下四点优点:
①、OSPF采用组播形式收发协议报文,组播地址是:224.0.0.5(.5代表OSPF内所有的路由器)/244.0.0.6(代表OSPF指定路由器DR);
②、支持无类型域间选路;
③、支持对等价路由器进行负载分担:路径开销相等的情况下,相等的两条路都可以选择;
④、支持报文认证。
3、Router-ID
①、OSPF的术语是Router-ID,一台路由器指定唯一的Router-ID。一旦设定无法更改。若想更改需要重启OSPF进程,但是重启的风险:网络需要重新收敛,重新计算,数据传输有风险;
②、Router-ID的设定可以通过手工配置,用32位点分十进制表示的。一般指的就是回环地址(loopback 0),因为loopback 0属于虚拟主机,接口不会断掉,从而保证了协议的稳定性。
4、OSPF Cost
①、OSPF使用cost“开销”作为路由度量值;
②、OSPF接口cost=100M/接口宽带,其中100M为OSPF的参考带宽,可以修改。数值取整,并非四舍五入;
③、每一个激活OSPF的接口都有一个cost值
④、一条OSPF路由的cost由该路由从起源一路到达本地所有入接口cost值得总和,具体含义看下图。
动态路由协议-链路状态协议OSPF_第1张图片
R1:cost=1;R2:cost=50;R3:cost=1
R1–R2的cost值=50+1;
R1–R3的cost值=50+1+1

二、OSPF邻居关系建立过程

1、OSPF的三张表
①、邻居表(peer):是一种可靠的路由协议,需要先建立OSPF邻居关系之后才能发送hello报文,建立邻接关系(全毗邻的邻居关系),网络收敛,形成邻居表;
OSPF邻居关系:直连的路由器是邻居
邻接关系:全毗邻的邻居关系
②、链路状态数据库(LSDB)
OSPF是由LSA(链路状态通告)来描述网络拓扑信息的,用LSDB存储网络的LSA,运行OSPF时LSDB表必须同步
③、OSPF路由
基于LSDB进行SPF(Dijkstra算法是Dijkstra发明的)计算,得出路由表
2、OSPF五种报文
OSPF Hello报文:邻居到邻接关系,中间发送hello报文,到网络收敛之后,仍会发送hello报文,周期性是10s,为了确认邻居仍然存在,若40s没有响应(down),即4倍的周期性时间,就重新寻找邻居(发的组播是255.0.0.5);
OSPF DD报文:描述LSDB,相当于携带LSA头部信息,一个摘要;
OSPF LSR报文:链路状态请求。用于向对方请求所需的LSA,会携带具体的信息;
OSPF LSU报文:用于向对方发送其所需要的LSA,LSA是承载在LSU报文里面的,注意:抓包时只能发现LSU;
OSPF LSAck报文:确认报文。对收到的LSA进行确认。
3、OSPF邻居关系的建立
那么报文从宏观和细节两个方面了解:
①、宏观(四步)
动态路由协议-链路状态协议OSPF_第2张图片
第一步:建立关系R1发送hello包,R1的route-id会记录进去,R2收到hello信息,只有R1的1.1的信息,R2会再记录1.2,这时R2再回hello包给R1时,就建立了关系;
第二步:首先协商主(master)/从(slave)关系,为了选择谁先发送DD报文;发送DD报文,交互LSA头部摘要信息;
第三步:包含LSR(请求)、LSU(发送LSA)、LSAck(确认);
第四步:同步之后进入OSPF全毗邻的邻接关系。
②、细节(即OSPF邻居关系的建立有七种状态)
down状态:时间很短,开启了OSPF协议,还没有收到hello包;
INT状态:OSPF协议启动之后立马发送hello包,R2刚收到R1的hello包,在R1里面只建立了自己的ip,还没有R2的信息,没有双向建立,对于R2来说把R1置于INT状态,在R2里面去设置;
Two-way状态:R2发送自己的ip,把邻居设为R1,双向关系建立之后R1就是Two-way状态;MA网络会选举DR(指定路由器)、BDR(备份指定路由器)(这两个名词后面会做详解);
Ex-start状态(就绪状态):发送DD报文,产生序列号(Seq=x),route-id 大的为主,选择主从关系的时候,DD报文是不携带LSA头部关系的,标志位:I、M、MS
I=1:正在协商主从,I=0:确认主从;
M=1:代表还有DD报文要发送 ,M=0:表示发送DD报文是最后一个;
MS=1:表示报文是主(master)发的,MS=0,表示报文是从(slave)发的;
**Exchange状态:**交换信息,确定主从,开始携带(LSA头部信息)摘要,I=0,MS=0置为从,master发送DD报文11,slave就用原来的DD报文,也是11,这时主再发,主需要+1,DD报文就是12。周而复始,是交互的过程,等到R1和R2都没有了,就进入下一个阶段;
**Loading状态:**发LSR请求–收到全部的信息发送LSU信息–LAck ,R1和R2都是Loading;
**FULL状态:**交换结束

三、OSPF的基本工作机制

1、DR、BDR的特性
在上面提到OSPF邻居关系的建立的Two-way状态时,MA网络会选举DB、BDR,下面详细讲解下概念以及工作原理:
1)选举规则:先优先级大的,若优先级相同,选routeid大的,默认优先级:1,可选范围是0-255,若没有0则不参加选取;
2) 没有抢占性
DR:指定路由器
BDR:备份指定路由器

动态路由协议-链路状态协议OSPF_第3张图片
在OSPF系统中,建立邻居关系之后,会存在DR和BDR,若DR坏了,BDR承载,当DR恢复正常之后,不会变成BDR,不存在抢占
DR BDR监听组播地址224.0.0.6
DRother 监听组播地址 224.0.0.5
路由器除了被定于为DR和BDR,其余都是DRother。
2、LSA的泛洪
仍看上图
路由器R3用224.0.0.6通知DR及BDR–DR、BDR监听224.0.0.6这一组播地址–DR向组播地址224.0.0.5发送更新以通知其他路由器–所有的OSPF路由器监听224.0.0.5这一组播地址–路由器收到包含变化后的LSA的LSU后–更新自己的LSDB,过一段时间(SPF延迟)-对更新链路状态数据库执行SPR算法–更新路由表
3、OSPF area(区域)的概念
①、单区域的问题:
LSA泛洪严重,OSPF路由器的负担很大;
区域内部动荡会引起全网络路由器的SPF计算;
LSDB庞大,资源消耗过多,设备性能下降,影响数据转发;
每台路由器都需要维护的路由表越来越大,但区域内路由无法汇总
那么就要划分多区域
②、OSPF多区域的优点:
※减少了LSA洪泛的范围,有效的把拓扑图变化控制在区域内,达到网络优化的目的;
※在区域边界可以做路由汇总,减少了路由表
※充分利用OSPF特殊区域的特性,进一步减少了LSA泛洪,从而优化路由
※多区域提高了网络扩展性,有理由组件大规模的网络
area 0位骨干区域,负责在非骨干区域之间中专有“区域边界路由”贵大的链路状态通告信息。area 0 是骨干区域,是必须要有的区域,有且只有一个,若存在多区域,每个区域都要跟area 0相连,area1/2 标准区域
动态路由协议-链路状态协议OSPF_第4张图片
动态路由协议-链路状态协议OSPF_第5张图片
除了骨干区域,还可以配置一下四种区域类型:
stub 末梢区域:后面没有路由器设备 R5
totally 完全末梢区域:只有一条默认路由出去,R4
nssa 非完全末梢区域:完全的不够彻底,R3–R4这一段在OSPF的末梢,但是后面还连着起亚区域,就叫非完全末梢区域,跑的就是7类LSA,不会泛洪到其他区域
totally nssa 完全非完全末梢区域
③、路由器的角色名称:
IR:区域内路由器
ABR:区域边界路由器ABR
BR:骨干路由器
ASBR:AS边界路由器
4、OSPF网络类型(此点仅做了解即可):
动态路由协议-链路状态协议OSPF_第6张图片

四、了解OSPF的基础配置

1、OSPF的基础配置
先配置各接口ip
再设置loopback 0 ip地址
进入全局配置ospf

ospf 1 创建OSPF进程号
ospf 1 router-id 1.1.1.1 指定OSPF路由地址
area 0  配置骨干区域
network 192.168.1.0  0.0.0.255 在骨干区域配置特定接口
ospf cost 9 进接口配置cost值

2、OSPF的查看及验证

display ospf brief  查看ospf协议相关运行参数
display ospf per    查看ospf邻居表
display ospf lsdb   查看lsdb表
display ospf routing 查看ospf路由
ospf dr-priority 255  修改OSPF DR的优先级

五、OSPF六类LSA与链路状态数据库

OSPF使用LSA(链路状态通告)来在网络中的路由器之间交换网络拓扑信息。LSA详尽地描述了网络的拓扑,OSPF总共有LSA-1、LSA-2、LSA-3、LSA-4、LSA-5、LSA-7共6类LSA他们分别拥有不同的职能

1、Type-1 LSA:Router LSA
又称:LSA1或者type-1 LSA,每一台运行OSPF的设备都会产生LSA-1;

  • 传播范围:只能在本区域传播,不能跨越ABR
  • 宣告者:每个OSPF路由器
  • 内容:直连接口的网段信息和cost,即路由和拓扑信息
  • 查看方法:dis ospf lsdb router 1.1.1.1
    Link-id为Router-id,ADV为通告者
    注意,在LSA-1中看不到掩码,掩码信息需要在LSA-2中查看

2、Type-2 LSA: Network LSA
只在多路访问MA网络中存在

  • 传播范围:只能在本区传播,不能跨越ABR
  • 宣告者:DR(通告一共有多少台路由器运行)
  • 内容:描述有多少成员以及掩码信息,直连接口的网段信息和cost值
  • 查看方法:dis ospf lsdb network
    1类2类小结:
    借助一个区域内所泛洪的Type-1LSA及Type2,该区域中的所有路由器能够还原出区域的完整拓扑,并在此基础上计算出到达区域内各个网段的最佳、无环路由

3、Type-3LSA: Summary LSA
汇总LSA,可通过操作拦截

  • 传播范围:整个OSPF域
  • 通告者:ABR(本区域边界路由器,可能发生改变)
  • 内容:域间路由,LSA-3穿越多个ABR时,通告者改变;数据汇总到area0中,归纳汇总的作用
  • 查看方法:dis ospf lsdb summary

4、Type-4 LSA:ASBR Summary LSA
告诉其他区域ASBR所在的位置,根据LSA-5而来

  • 传播范围:除ASBR所在区域外的整个OSPF区域
  • 宣告者:ABR(穿越多个ABR时改变)
  • 内容:ASBR的Router-id
  • 查询方法:dis ospf lsdb asbr

5、Type-5 LSA:External LSA
外部LSA,描述外部信息,不属于任何一个区域

  • 传播范围:整个OSPF域;
  • 宣告者:ASBR(只有引入了外部路由并且重分发动作执行后才会成为ASBR,通告在穿过多个区域时一直不改变);
  • 内容:外部路由,在路由表中标记为“O-ASE”;
  • 查询方法:dis ospf lsdb ase
    LSA-4和LSA-5通常是一起出现的,LSA-5讲述的是外部路由,而LSA-4则是说ASBR的位置,所以是先有LSA-5再有LSA-4

6、Type-7 LSA: NSSA LSA
与LSA-5只是称呼的不同,都是关于域外路由的

  • 传播范围:整个NSSA区域;
  • 宣告者:ASBR(穿过多个区域时一直不改变);
  • 内容:外部路由,会出现在NSSA区域,不允许进入到其他Area,
  • 查询方法:dis ospf lsdb nssa
    NSSA的ABR在收到Type-7 LSA后,负责将其转换成Type-5 LSA,然后注入到Area0中,进而传播到整个OSPF域。

Type-5 LSA和Type-7 LSA都有两种度量值Type1和Typ2,将外部路由引入OSPF是,如果为指定该外部路由的度量值类型,则缺省为Type2,且路由的外部cost缺省为1。

7、配置命令

[R4]ospf 1	进入ospf进程 
[R4-ospf-1]import-route rip 1 type 2 cost 1   别人注入到OSPF时需要配置cost值
[R4]rip 1        进入rip进程
[R4-rip-1]import-route ospf 1  注入到rip进程 
需注意:入注是双向的
import-route direct 引入直连路由
import-route static 引入静态路由
default-route-advertise always 引入默认路由

查看各类信息

dis ospf routing 查看ospf的全局路由表
dis ospf ladb router 1.1.1.1  1类
dis ospf lsdb network 2类
dis ospf lsdb summary 3类
dis ospf lsdb asbr 4类
dis ospf lsdb ase  5类
dis ospf lsdb nssa  7类

六、实验要求:给路由器配置OSPF,并让PC1和PC2互通

动态路由协议-链路状态协议OSPF_第7张图片

R1
[r1]sys R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 192.168.1.254 24
[R1-GigabitEthernet0/0/0]int g0/0/1
[R1-GigabitEthernet0/0/1]ip add 12.0.0.2 24
[R1-GigabitEthernet0/0/1]q
[R1]int loo	
[R1]int LoopBack 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1]ospf 1     创建OSPF进程号为1
[R1-ospf-1]ospf 1 router-id 1.1.1.1  指定OSPF路由地址1.1.1.1
[R1-ospf-1]area 0  配置骨干区域
[R1-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255 在骨干区域配置特定接口
[R1-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
R2
[Huawei]sys R2
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[R2-GigabitEthernet0/0/0]int g0/0/1
[R2-GigabitEthernet0/0/1]ip add 23.0.0.2 24
[R2-GigabitEthernet0/0/1]1
[R2]int loop	
[R2]int LoopBack 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]q
[R2]ospf 1
[R2-ospf-1]ospf 1 router-id 2.2.2.2	
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
R3
[R3]int g0/0/0
[R3-GigabitEthernet0/0/0]i add 23.0.0.1 24
[R3-GigabitEthernet0/0/0]int g0/0/1
[R3-GigabitEthernet0/0/1]ip add 192.168.2.254 24
[R3-GigabitEthernet0/0/1]q
[R3]int l	
[R3]int LoopBack 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3]ospf 1
[R3-ospf-1]ospf 1 router-id 3.3.3.3	
[R3-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255

动态路由协议-链路状态协议OSPF_第8张图片
动态路由协议-链路状态协议OSPF_第9张图片
验证可以看一下路由器

display ospf per

动态路由协议-链路状态协议OSPF_第10张图片

dis ip routing-table

动态路由协议-链路状态协议OSPF_第11张图片

你可能感兴趣的:(网络服务,ospf,路由器)