文档库 最新最全的文档下载
当前位置:文档库 › ospf学习笔记1

ospf学习笔记1

ospf学习笔记1

<OSPF(Open Shortest Path First)>
开放最短路径优先协议

OSPF的基本特性:
·OSPF属于IGP,是Link-State协议,基于IP Pro 89。
·采用SPF算法(Dijkstra算法)计算最佳路径。
·快速响应网络变化。
·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。
·网络变化时是触发更新。
·支持等价的负载均衡。

OSPF维护的3张表:
1)Neighbor Table:
 确保直接邻居之间能够双向通信。
2)Topology Table:
 LSDB(Link-State DataBase),同一区域的所有路由器LSDB相同。
3)Routing Table:
 对LSDB应用SPF算法,选择到达目标地址的最佳路由放入路由表。

OSPF的区域划分:
·OSPF采用层次设计,用Area来分隔路由器。
 区域中的路由器保存该区域中所有链路和路由器的详细信息,
 但只保存其他区域路由器和链路的摘要信息。

·Transit area (backbone or area 0)
 主要功能:为快速、高效地传输数据包。通常不接用户。

·Regular areas (nonbackbone areas)k
 主要是连接用户。而且所有数据都必须经过area 0中转。
 包括:Stub / Totally Stubby / NSSA

采用分区域设计的好处:
1、可以在区域边界做汇总,减少了路由表的条目
2、只有一个区域内的路由器才会同步LSDB,LSA的flood在网络边界停止,减少了LSA的flood,加速会聚
3、缩小网络的不稳定性,一个区域的路由问题不会影响其它区域。

OSPF的邻居与邻接关系:
OSPF中路由器之间的关系分两种:
1、邻居
2、邻接

·OSPF路由器可与它直连的邻居建立邻居关系。
·P2P链路上,邻居可以到达FULL状态,形成邻接关系
·MA网络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。形成邻接
·路由器只和建立了邻接关系的邻居才可以到达FULL状态。
·路由更新只在形成FULL状态的路由器间传递。
·OSPF路由器只会与建立了邻接关系的路由器互传LSA。同步LSDB

Route-ID:
 一个号码而已,用来唯一标识OSPF域中路由器。

 设置Route-ID的优先顺序:
 1)手工指定Route-ID x.x.x.x(可任意,但区域内不能重复)
 2)自动选择最大的Loopback IP作route-id
 3)自动选择最大的物理接口IP(接口必须是激活状态)

推荐手工指定的router-id

DR/BDR的选举:
 
DR--指定路由器
BDR--备份的指定路由器

选举规则:
1)比较优先级,越大越优(默认为1,如设为0表示不参与选举)
 2)比较Route-ID,越大越优。

·DRother发送LSA给DR/BDR用224.0.0.6
·DR发送LSA给DRother用224.0.0.5
·非MA网络(没有DR/BDR),路由器都用224.0.0.5


<DR/BDR>特点

 1)不抢占,DR正常时,即使有新的Pri比DR高的路由器也不能抢占成为DR。
 2)DR正常时

,BDR只接收所有信息,转发LSA和同步LSDB的任务由DR完成,当DR故障时,BDR自动成为DR,完成原DR的工作,并选举新的BDR。
 3)DR是个接口概念。每个网段都会选举DR。
4) 不同网段分别选DR/BDR

SPF算法:
1、在一个区域内的所有路由器有同样的LSDB
2、每一个路由器在计算时都将自已做为树根
3、具有去往目标的最低cost值的路由是最好的路径
4、最好的路由被放入转发表

计时器:
·Hello Intervals:10S/30S
·Dead Interval:4*Hello =40S 不同于其它协议的三倍于Hello时间

hello包发向224.0.0.5

下面这三种网络类型的hello时间是30S
NON_BROADCAST
POINT_TO_MULTIPOINT
POINT_TO_MULTIPOINT NON_BROADCAST

OSPF开销值计算:
·OSPF Cost = 108/BW (bps)

几种常用接口的COST值:
1、环回口的COST值是1
2、serial口的COST值是64
3、标准以太接口是10
4、快速以太接口是1
--------------------------------------------------------------------------------

·OSPF的5种报文:
 1)Hello:发现并建立邻接关系。
 2)DBD:包含路由的摘要信息。
 3)LSR:向另一台路由器请求特定路由的完整信息。
 4)LSU:用于LSA的泛洪和回应LSR该条路由的完整信息。在OSPF中,只有LSU需要显示确认
 5)LSAck:对LSU做确认。

影响OSPF邻居或者邻接关系的因素有:
1、ROUTER ID不能相同;
2、HELLO时间必须一致;
3、DEAD时间必须一致;
4、区域ID必须相同;
5、认证必须相同;
6、STUB标志位必须相同;
7、MTU不匹配无法形成邻接关系(一边是EXSTART,一边是EXCHANGE);
8、OSPF版本号不同(目前版本为2);
9、当OSPF网络类型是MA(多路访问)时,要求掩码一定一致(两个邻居)。因为会出现DR和LSA-2,无法描述网段。

OSPF邻接关系状态机:
1、down state
2、init state
3、two-way state
4、exstart state
5、exchange state
6、loading state
7、full state

OSPF的同步过程:

DBD包中有一个三位的标志字段(主从关系控制标志):I、M、master/slaver
I(是否第一个包) M(是否还有后续包) M/S
1 1 1
0 1 0
0 1 1
分别是0x7,0x2,0x3 具有最高route-id的路由器为主,建邻居时第一个DBD是空的。



1. 在Down状态下路由器发出第一个hello包。当R2收到一个Hello包,并且在这个hello包中看不到自已的ID,则将自已和邻居的关系转到Init状态。Init是一个one way 状态,当R1和R2都认识对方后就会进入Two Way状态。

2. 在Two Way时,将选举DB/BDR(MA网络)。进入Two way状态后(即从Exstart开始),表示这两个路由器已经建立了邻居关系了。但最终能不能邻接关系要看最后是不是FULL。

3. Exstart:Exstart是firstDBD, 确认主从关系。

4. Exchange: Exchange是通过DBD交换LSA的头部信息


DBD分为firstDBD和DBD。
firstDBD不携带Lsa头部信息。通过firstDBD确认主从关系。主的作用只是为了控制序列号的同步。RID高的将成为主。
DBD只携带LAS的头部信息,没有携带LAS的具体信息。承载完整LAS是LASUpdate包。
DBD报文信息:
I(1为firstDBD)为1;MS(为主从位,1为主,0为从);M(1为没有结束,0为已经结束)
FirstDBB三个位都为1。

5.Loading:等待M位为0时,才进入loading。
LSRrequest:是不携带LAS头部的,只通过(公告ID,LSA L类型,linkID)来请求具体的条目。
LSRUpdate:含有真正LSA完整信息的,用来回应LSRrequest。

6.FULL:完成了邻接关系的完整建立。
LSRAck:用来确认的。并且携带LSA头部信息。确认DBD,Request,Update

---------------------------------------------------------------------------------------
<OSPF>

R1(config)#router ospf 110 注意:进程号是cisco的私有技术
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0 (正/反掩码皆可)
R1(config-router)#network 12.1.1.0 255.255.255.0 area 0 区域号还可用点分十进制表示

R1#show ip protocols
R1#show ip ospf 可查看router-id,进程号,域的数量
R1#show ip ospf interface
R1#show ip ospf interface brief
R1#show ip ospf neighbor 查看邻居信息

R4(config-if)#ip ospf hello-interval 9
(dead自动*4)

R4(config-if)#ip ospf dead-interval 80

R4(config-if)#ip ospf priority 10 修改优先级

R1#show ip os database

注意:在OSPF中,环回接口的路由掩码会变为32位
--------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------
假如在一个大型网络中,OSPF如果没有分层,会有以下的问题产生:
1、每一个路由器会接收到太多的LSA
2、会经常进行路由的计算
3、路由表太大,而路由器的内存是有限的。

OSPF路由器的类型:
1、内部路由器--在一个普通区域内的路由器
2、核心路由器--在area 0区域内的路由器
3、ABR区域边界路由器--连接两个不同区域的路由器
4、ASBR自治系统边界路由器--连接OSPF域到另一个自治系统的路由器

LSA序列号:
1、LSDB中每一个LSA都有一个序列号
2、序列号范围从0x80000001-0x7FFFFFFF(符号,线性,循环,ospf v1版本重新开始是从0开始,v2版本从80000001开始)
3、OSPF每30分钟flood一次LSA来维持LSDB同步,(始发路由器)每flood一次,序列号加1
4、当一个路由器遇到同一个LSA的两个实例时,它必须能够确定哪一个是最新的LSA。(LSA相同则比较老化时间,发现已经3600秒,10秒后重新循环,最大老化LSA清对方LSA,紧接着出始路由器再发送序列号80000001的LSA)(根据序列号来识别)
5、LS

A条目的老化时间默认是一小时(0-3600S)

当一条LSA的序列号到达最大序列号时,始发路由器会发送一个生存时间为最大值的相同的LSA,让其它的路由器从LSDB中清除这条LSA,当其它路由器确认后,再发送一个初始序列号的LSA。
注意:只有始发路由器才可以提前使这条LSA老化

<LSA(Link-State Advertisement)>

链路状态类型、链路状态ID、通告路由器用来唯一地标识一条LSA

序列号、校验和、老化时间标识一条LSA的具体实例

老化时间 可选项 类型
链路状态ID(Link-ID)
通告路由器(ADV Router)
序列号
校验和 长度

·类型 指明是哪种类型的LSA
·Link-ID 每一条LSA都有一个Link-ID,区分不同路由器发出的LSA
·ADV Router 指通告路由器的Router-id

学习时的注意点:
1、每种LSA的传播范围
2、每种LSA由谁产生,也就是说由谁通告的
3、每种LSA所包含内容

LSA1(Router Link States)

R1#show ip ospf database router 查看LSDB中的1类LSA的详细信息

特点:
1、域内路由,仅在本区域传递,不会穿越ABR。
2、每台路由器都会产生。
3、包含本路由器的直连的邻居,以及直连接口的信息

Link ID: router ID
ADV router: router ID

三种信息:1、Another neighbor
2、stub network(串口链路网段描述信息)
3、transit network (Ma网络的一些信息)

LSA2(Net Link States)

R1#show ip ospf database network

特点:
1、仅在本区域传递
2、只有MA网络才会产生LSA2,由DR发出。
3、标识出本MA网中有哪些路由器以及本网的掩码信息。

Link ID: DR的接口IP
ADV router: DR的router ID

1类和2类结合可以还原出ma网络区域内的网络拓扑,1类和2类也是链路状态LSA

LSA3(Summary Net Link States)

R1#show ip ospf database summary

特点:
1、域间路由,能泛洪到整个AS。
2、由ABR发出,每穿越一个ABR,其ADV Router就会变成此ABR的Router-id.
3、包含本区域中的路由信息,包括网络号和掩码。

Link ID: 路由route(网络号)
ADV router: ABR的router ID(经过一个ABR,就会改为这个ABR的router ID)

三类LAS会被一个区域的边界ABR路由器重新产生并泛洪进下一个区域,所以每穿越一个ABR,其通告路由器就会发生改变。


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.

Link ID: ASBR的RID
ADV router: ABR的router ID(经过一个ABR

,就会改为这个ABR的router ID)(cisco显示是ip地址,这是cisco编写软件错误造成的,在卷一上有说明)

在ASBR直连的区域内,不会产生4类的LSA,因为ASBR会发出一类的LSA,其中会指明自已是ASBR

LSA5(Type-5 AS External Link States)

R1#show ip os database external

特点:
1、域外路由,不属于某个区域。
2、ASBR产生,泛洪到整个AS。不会改变ADV Router。
3、包含域外的路由
Link ID: 路由(网络号)
ADV router: ASBR的router ID (unchange)

LSA7(Type-7 AS External Link States)

R2#show ip os database nssa-external

特点:
特殊的域外路由,只存在于NSSA区域中。
Link ID: 路由(网络号)
ADV router: ASBR的router ID (只在NSSA区域中)

OSPF的四种路径类型:
1、域内路由
2、域间路由
3、E1的外部路由
4、E2的外部路由

外部路由重分布进OSPF有两种类型

·重分布进OSPF的路由默认为E2,Cost=20,且传递过程中不改变COST。
·如果改为E1类型,则在传输过程中会累加每个入接口的cost值

如果有去往同一目标的多条路由重分布进OSPF,OSPF在选择外部路由的时候,遵循的原则是:

[1]O E1优于O E2

[2]在同样的情况下,Cost越小越优先

[3]在cost相同的情况下,选择到达ASBR最优的路径
每个oe2路由都有一个forward metric,代表路由从AS进入后经过链路开销之和。 show ip route xxxx查看。

0》OIA》OE1》OE2
从区域0和非0区域收到O路由,默认用O的路由

新命令:
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有两个方法:

1、通过一条命令直接改动接口的COST值
R1(config)#router os 110
R1(config-if)#ip ospf cost 10 直接修改COST值1-65535

2、修改OSPF中COST值计算公式的分子
注意:这里改动的值是以10的六次方为单位的。

例如:在COST公式中修改分子,本例修改分子为10的九次方
R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps10的六次方)

-------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------

汇总的好处:
1、减少路由条目数
2、使拓扑变化的影响局限在一个小范围内
3、减少了LSA3和LSA5的flood

<域间汇总>
只能在ABR上做,用来将一个区域的路由传递到另一个区域时进行汇总。域间汇总只能对打O的路由做汇总。

R2(config)#router ospf 110
R2(config-router)#area 0 range 172.16.32.0 255.255.224.0
(汇总哪个区域的路由)

在R2本地会产生一条特殊的路由,用来防环
O 172.16.32.0/19 is a summary, 00:00:06, Null0


本命令还可用来做路由的过滤:
R2(config)#router ospf 110
R2(config-router)#area 0 range 172.16.0.0 255.255.0.0 not-advertise 过滤掉172.16.0.0的网络及其所包含的子网

<域外汇总>
用于将外部路由重分布进OSPF时进行汇总,只能在ASBR上做。

R2(config)#router ospf 110
R2(config-router)#summary-address 172.16.0.0 255.255.0.0(在ASBR上做)

本地也会产生特殊路由来防环 O 172.16.0.0/16 is a summary, 00:00:04, Null0

<向OSPF区域注入默认路由>

第一种做法:
需要先写一条静态的默认路由,再用命令下发。

R1(config)#ip route 0.0.0.0 0.0.0.0 Serial 0
R1(config-router)#default-information originate

O*E2 0.0.0.0/0 [110/1] 以外部路由的形式下发默认路由,metric值默认为1


第二种做法:
不需要写一条静态的默认路由,直接下发。

R1(config-router)#default-information originate always

还可在下发默认路由时指定metric的类型和metric值
R1(config-router)#default-information originate always metric-type 1 metric 3

<OSPF特殊区域>
在OSPF中共有四类特殊区域,都是用来对OSPF做优化的。可以减少一个区域中的LSA3和LSA5。

1、Stub
2、Totally Stub
3、NSSA
4、Totally NSSA

<Stub>

·将某区域设为Stub可阻止LSA4/5进入Stub区域,缩小了区域内路由器的LSDB,降低内存消耗。

·Stub区域中,ABR会发出一条LSA3默认路由给Stub区域的其他路由器。
 默认的Seed Cost=1

·配置Stub区域的注意点:
1、必须将Stub区域的所有路由器都配成Stub。
 2、Stub区域不能用作虚链路的中转区域。
 3、Stub区域中不能出现ASBR。
 4、Area 0不能配成Stub。

·hello报文中有一个stub area flag,也叫E位,所有的stub路由器会将这一位置为0,路由器建邻居的时候,将比较这一位,要求必须匹配。

配置命

令:
R2(config-router)#area 2 stub
R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)在同时有两个ABR的情况下,可通过修改这个COST值来实现选路

<Totally Stubby > Cisco 私有

·更加缩小区域内路由器的LSDB,在Stub基础上,又阻止LSA3。(阻止LSA3/4/5 )
·也会由ABR发出一条LSA3默认路由给Stub区域内的其他路由器。

配置步骤:
先配置出一个STUB区域,然后在ABR上打上以下命令:
R2(config-router)#area 2 stub no-summary (只需在ABR上做)

<NSSA(Not-So-Stubby Areas)>

·NSSA区域和Stub区域一样会阻止LSA4/5。
·NSSA区域打破了Stub区域的规则,可以存在ASBR。
·ASBR会引入外部路由,是以LSA7引入的,只有NSSA区域中才会现LSA7。
·NSSA区域的边界ABR会将LSA7转成LSA5,传播到其他区域。这时,ABR也成为了ASBR,因为它也引入了LSA5。其它区域路由器看到LSA5的通告路由器是ABR。

配置命令:
R2(config-router)#area 2 nssa 

注意:NSSA区域不会自动产生默认路由,要手动下发一条

R2(config-router)#area 2 nssa default-information-originate
 (在ABR上做,由ABR产生一条LSA7默认路由传播到NSSA其他路由器,默认Seed Cost=1,并且不会发生变化)

还可改动默认路由的metric类型,metric值
R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)
R2(config-router)#area 2 nssa default-information-originate metric 6 metric-type 1

R2(config-router)#area 2 nssa no-redistribution 在ABR上做
 (对ABR上有外部路由进入NSSA区域时,将其阻止,因为在ABR向nssa区域下发默认路由后,不需要它再将它直连的一些外部区域路由传进NSSA区域)以上两个命令可以打在一起。

totally NSSA area

也是CISCO私有特性--
Totally NSSA,能阻止LSA3/4/5,并且由ABR产生LSA3默认路由传播到NSSA其他路由器

相关文档