一 OSPF概述
<OSPF(Open Shortest Path First)>(RFC2328)
·OSPF属于IGP,是链路状态(Link-State)协议,基于IP Pro 89。
·采用SPF算法(Dijkstra算法)计算最佳路径。(特点:1.最短 2.无环)
·快速响应网络变化。
·网络变化时发触发更新。
·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。
·支持等价的负载均衡,我们所学的协议中,只有EIGRP支持不等价负载。(默认4,最大16)
一个路由器产生的LSA会把自己所有接口的信息都包含其中,对端邻居会把LSA放入LSDB中,继续泛洪此LSA,直到网络中的所有路由器都收到此LSA。
SPF算法:
1、在一个区域内的所有路由器有同样的LSDB
2、每一个路由器在计算时都将自已做为树根
3、具有去往目标的最低cost值的路由是最好的路径
4、最好的路由被放入转发表(路由表,转发数据库)
OSPF区域结构(层次设计)
·OSPF采用层次设计,用Area来分隔路由器。
区域中的路由器保存该区域中所有链路和路由器的详细信息,
但只保存其他区域路由器和链路的摘要信息。
中转区域 Transit area (backbone or area 0)
主要功能:为快速、高效地传输数据包。通常不接用户。
常规区域 Regular areas (nonbackbone areas)
主要是连接用户。而且所有数据都必须经过area 0中转。
包括:Stub / Totally Stubby / NSSA
OSPF只有在一个区域内是链路状态(100%无环路)的,
区域与区域之间是距离矢量关系(这样是不是出现路由环路?那如何解决呢?其实OSPF骨干区域与非骨干区域之间遵循
水平分割法则)。
当regular areas(非骨干区域)传递给area 0时的是路由,所以可以在边界路由器上做汇总。
area 0用来防环!
假如在一个大型网络中,OSPF如果没有分层,会有以下的问题产生:
1、每一个路由器会接收到太多的LSA
2、会经常进行路由的计算
3、路由表太大,而路由器的内存是有限的。
采用层次设计的好处:
1、减少了路由表的条目
2、LSA的flood在网络边界停止,加速会聚
3、缩小网络的不稳定性,一个区域的问题不会影响其它区域。
OSPF 度量值计算
·OSPF Cost = 108/BW (bps)
EIGRP中是KB,OSPF中是Bit
OSPF 5种Packet
VirsionNumber:2 (V3是IPV6)
Type:对应上面5种
Data:见课本
1.Hello
作用:1.建立邻居 2.维护邻居 3.选DR/BDR
R1(config-if)#
ip ospf hello-interval 9 //修改了hello时间间隔,deadtime自动改为hellotime的4倍
R1(config-if)#
ip os dead-interval 80 //修改deadtime
2.DBD(DDP,数据库描述)
3.LSR(链路状态请求)
4.LSU(链路状态更新)
5.LSAck(确认)
OSPF邻接关系建立(adjacency)
1、down state (失效状态)
2、init state (初始状态)
3、two-way state (双向通信状态)
(只有在neighbor list中看见自己的router-id才置于two-way状态,所以有先后顺序)
①邻居关系建立完成
②DR/BDR选举
4、exstart state (信息交换初始状态)
(发送第一个DBD包,两台路由器选举主/从关系和检查MTU,根据router ID)
5、exchange state (信息交换状态)
发送LSR请求LSA
6、loading state (信息加载状态)
收到真正的LSA(LSU),之后确认LSAck
7、full state (完全邻接状态)
Route-ID: 为唯一标识OSPF域中路由器的身份。
设置Route-ID的优先顺序:
1)手工指定Route-ID x.x.x.x(可任意地址 除开0.0.0.0和255.255.255.255,但不能重复)
R1(config-router)#
Router-id 1.1.1.1
2)最大的Loopback IP
3)最大的物理接口IP,无须参与OSPF进程(保证接口是激活状态)higher active physical interface ip
RID也具有非抢占性(比如:如果OSPF进程已运行-意思已经选好RID=1.1.1.1,只有重新启动路由器或者手工指定完刷新进程(
clear ip ospf process)大的Loopback才会生效成新RID)
推荐使用
环回口和
手工指定的router-id,因为它们的稳定性更高。
DR/BDR的选举:
1)比较优先级,越大越优(默认为1,如设为0表示不参与选举)
R1(config-if)#
ip ospf priority 10 2)比较Route-ID,越大越优。
·
DRother发送LSA给DR/BDR用224.0.0.6(
DRother的链路状态发生变化时发送给DR/BDR的组播地址)
·DR发送LSA给DRother用224.0.0.5
·非MA网络(如:p2p没有DR/BDR),路由器都用224.0.0.5
wait time:
在以太网络中作用,在选举DR/BDR之前,先等待40秒。
DR/BDR 特点
1)不抢占。DR正常时,
即使有新的Pri比DR高的路由器也不能抢占成为DR.
今天做实验,修改hello-interval可以抢占DR 先改成非10,再改回来.如果优先级最高(事先改好),即可以抢占DR.
2)DR正常时,
BDR只接收所有信息,
转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。
3)DR是个接口概念。每个网段都会选举DR。
4) 不同网段分别选DR/BDR
OSPF三张表
1.邻居表
确保直连邻居之间能够双向通信(ping通)
必要条件:
(1)
Hello/Dead Intervals
(2)
Area ID
(3)
Authentication Type/Password(认证类型和认证密码)
(4)
Stub Area Flag
(5)MTU(不是必要条件,但需要注意(config-if)#ip ospf mtu ignore忽略MTU比较 注意:在MTU小的那边敲入)
(6) subnet mask(必须是同一个网段)//也就是不能ping通也无法建邻居的
计时器:
·Hello Intervals:10S/30S
·Dead Interval:4*Hello =40S 不同于其它协议的三倍于Hello时间
Dead time一定要大于hello time,要不然会产生邻接关系的翻动
hello包发向224.0.0.5
P2P和广播网络的hello时间是10S
下面这三种网络类型的hello时间是30S
非广播 NON_BROADCAST
点到多点 POINT_TO_MULTIPOINT
点到多点非广播 POINT_TO_MULTIPOINT NON_BROADCAST
OSPF的邻居与邻接关系:
·OSPF路由器与它直连的邻居建立邻居关系。
·OSPF路由器只会与建立了邻接关系的路由器互传LSA。
·路由器只和建立了邻接关系的邻居才可以到达FULL状态。
·路由更新只在形成FULL状态的路由器间传递。
·P2P链路可以到达FULL状态。
·MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。
邻居及邻接的区别.
邻居---必须有直连的链路
邻接--- 1. 必须是邻居, 2. 链路两边同一区域的数据库必须同步(状态为:FULL).
2.拓扑表,链路状态数据库 Topology Table:
LSDB(Link-State DataBase),同一区域的所有路由器LSDB相同。
-------------------------------------------------------------------------
R4#sh ip os database
OSPF Router with ID (4.4.4.4) (Process ID 1)
Router Link States (Area 0)
Link ID ADV Router Age Seq# Checksum Link count
2.2.2.2 2.2.2.2 1969 0x80000014 0x00C46A 1
3.3.3.3 3.3.3.3 254 0x80000008 0x0023F1 2
4.4.4.4 4.4.4.4 263 0x8000000C 0x002FD4 2
11.11.11.11 11.11.11.11 356 0x8000000F 0x0012DA 1
Net Link States (Area 0)
Link ID ADV Router Age Seq# Checksum
192.168.0.3 3.3.3.3 254 0x80000014 0x00BC99
-------------------------------------------------------------------------
OSPF链路状态序列号
1、LSDB中每一个LSA都有一个序列号
2、序列号范围从0x80000001-0x7FFFFFFF(0x80000001-0xFFFFFFFF-0x7FFFFFFF)
3、OSPF
每30分钟flood一次LSA来维持LSDB同步,每flood一次,序列号加1
4、当一个路由器遇到同一个LSA的两个实例时,它必须能够确定哪一个是最近的LSA。(根据序列号来识别)
LSA条目的老化时间默认是一小时(0-3600S)
当一条LSA的序列号到达最大序列号时,始发路由器会发送一个生存时间为最大值的LSA,让其它的路由器从LSDB中清除这条LSA,当其它路由器确认后,再发送一个初始序列号的LSA。
注意:只有始发路由器才可以提前使这条LSA老化
3.Routing Table:
对LSDB应用SPF算法,选择到达目标地址的最佳路由放入路由表。
OSPF LSA
(Link-State Advertisement)
对于每种LSA需要掌握的东西:
1、传播范围
2、由谁产生
3、包含内容
类型1:LSA1(Router
R1#
show ip ospf database router
1、域内路由,仅在本区域传递,不会穿越ABR。
2、每台路由器都会产生。
3、包含本路由器的直连的邻居,以及直连网络的信息
类型2:
LSA2(Network Link States)
R1#
show ip ospf database network 1、仅在本区域传递
2、
只有MA网络才会产生LSA2,
由DR发出。
3、标识出本MA网中有哪些路由器以及本网的掩码信息。
类型3:LSA3(Summary Net Link States)
R1#
show ip ospf database summary 1、域间路由,能泛洪到整个AS。
2、由
ABR发出,穿越一个ABR,其ADV Router就会变成此ABR的Router-id.
3、包含本区域中的所有路由信息,包括网络号和掩码和度量值。
类型4:LSA4(Summary ASB Link States)
R1#
show ip os database asbr-summary
1、把ASBR的Router-id传播到其他区域,让其他区域的路由器得知ASBR的位置。
2、由
ABR产生并发出,
穿越一个ABR,其ADV Router就会变成此ABR的Router-id.(离ASBR最近的ABR产生)
Link ID: ASBR的RID
ADV router: ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)
在ASBR直连的区域内,不会产生4类的LSA,因为ASBR会发出一类的LSA,其中会指明自已是ASBR
类型4LSA告知怎样去达类型5LSA通告的网络
类型5:LSA5(Type-5 AS External Link States)
R1#
show ip os database external 1、域外路由,不属于某个区域。
2、
ASBR产生,泛洪/到整个AS。不会改变ADV Router。
3、包含域外的路由
LSA7(Type-7 NSSA External Link States)
R2#show ip os database nssa-external
特殊的域外路由,只存在于NSSA区域中。
Link ID: 路由(网络号)
ADV router: ASBR的router ID (只在NSSA区域中)
R2(config-if)#bandwidth 5000
R2(config-if)#ip ospf cost 30
OSPF的四种路径类型:1、区域内路由(O)
2、区域间路由(O IA)
3.1、类型1的外部路由(E1)[在传输过程中会累加每个入接口的cost值]
3.2、类型2的外部路由(E2)[重分布进OSPF的路由默认就是O E2但COST不会改变,传输过程中也不变]
4.1、OSPF NSSA external type 1(N1)
4.2、OSPF NSSA external type 2(N2)
外部路由重分布进OSPF的两种类型O E1 和O E2,如果有去往同一目标的多条路由重分布进OSPF,OSPF在选择外部路由的时候,遵循的原则是:
[1]O E1优于O E2
[2]在同样的情况下,Cost越小越优先
[3]在cost相同的情况下,选择到达ASBR最优的路径
新命令:
Router(config-router)#max-lsa maximum-number [threshold-percentage] [warning-only] [ignore-time] [ignore-count] [reset-time]
定义一个百分比值,当收到LSA的条数超过我指定的值,进行相应的操作,用于限定路由器所能收到的LSA条数
maximum-number 所允许收到LSA的最大条数
[threshold-percentage] maximum-number的百分比,超过这个值就会发出警告,默认75%
[warning-only] 只发送警告,不做其它动作,默认是关闭的
[ignore-time] 超过最大值后进入ignore状态的时间,默认5分钟,5分钟后恢复
[ignore-count] 超过多少次后,一直进入ignore状态
[reset-time] 一直进入ignore状态后多长时间重置所有邻居
ABR有多条路由时如何发出三类LSA:
ABR路由器即使知道它有多条路由可以到达同一个目的地,它只会为这个目的地始发单条网络汇总LSA通告。不论是从核心区域到非核心,还是从非核心到核心区域。而且一定是代价最低的一条LSA。
<修改Cost参考值>
·OSPF Cost = 108/BW (bps) 环回口的COST值是1,serial口的COST值是64,以太口是10
要修改路由的COST值有两种方法:
第一种(改COST):
R1(config)#int e0
R1(config-if)#ip ospf cost 10 直接修改COST值1-65535
第二种(改分子10^8=100M):
R1(config)#router ospf 110
R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps10的六次方)在COST公式中修改分子,本例修改分子为10的九次方
第三种(改分母-入向接口带宽):
请简述 OSPF 的三要点 简述ospf的特点
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章