OSPF→

属于IGP (Interior Gateway Protocol),AS内部网关路由协议。
OSPF的流量使用IP协议号89。
链路状态路由协议。
使用Dijkstra算法,也被称为SPF(Short Path First最短路径算法)。

路由生成过程

邻居发现:通过发送Hello报文形成邻居关系。
LSA通告:邻居间发送链路状态信息形成邻接关系。
路由计算:根据最短路径算法算出路由表。

链路类型

广播多路访问型(Broadcast multiAccess):Ethernet
点到点型(Point-to-Point):PPP、HDLC
非广播多路访问型(None Broadcast MultiAccess,NBMA):Frame Relay
点到多点型(Point-to-MultiPoint)

LSA

OSPF→_第1张图片
除Hello报文外,其它的OSPF报文都携带LSA信息。LSA头部信息包括:
1.LS age:此字段表示LSA已经生存的时间,单位是秒。当LSA被始发时,该字段为0,随着LSA在网络中被泛洪,该时间逐渐累加,当到达MaxAge(缺省值为3600s)时,LSA不再用于路由计算。
2.Option:该字段每一个比特指出了部分OSPF域中LSA能够支持的某种特性。
3.LS type:此字段标识了LSA的类型。常用的LSA类型有六种。
4.Link State ID:根据LSA的不同而不同。
5.Advertising Router:产生该LSA的路由器的ID。
6.Sequence Number:当LSA每次新的实例产生时,这个序列号就会增加。这个字段可以帮助其他路由器识别更新的LSA实例。
7.Checksum:关于LSA的全部信息的校验和。因为Age字段,所以校验和会随着老化时间的增大而每次都需要重新进行计算。
8.Length:是一个包含LSA头部在内的LSA的长度。

链路状态类型、链路状态ID、通告路由器三元组唯一地标识了一个LSA。
链路状态老化时间 、链路状态序列号 、校验和用于判断LSA的新旧。

dis ospf lsdb
dis ospf lsdb router
dis ospf lsdb network
dis ospf lsdb summary
dis ospf lsdb asbr
dis ospf lsdb ase

状态机

i:Down:在上一个邻居失效时间内,没有收到任何hello报文
ii:Attempt:只存在于NBMA网络中,表示试图联系自己邻居
iii:Init:表示一台路由器收到另一台路由器的hello报文,但是报文中的邻居表里没有自己的RouterID
iv:2-way:表示一台路由器收到另一台路由器的hello报文,报文的邻居表中有自己的RouterID。DR/BDR选举。点到点直接进入下一状态;MA网络进行DR/BDR选举(30s)。DR,BDR进入下一状态,非DR,BDR保持邻居关系,hello包周期保活即可。
v:Exstart:在协商主从时,确定DD报文的序列号,比较MTU。(MTU不一样时停在此状态)ospf mtu-enable //开启MTU比较。主从选举。
vi:Exchange:使用真正的DBD包进行LSDB目录的交互,交换LSA摘要
vii:Loading:对方的LSA摘要和自己的LSDB比较后,发现LSA摘要中存在LSDB中没有的,使用LSR/LSU/LSack获取未知信息。
vii:Full:实现邻接关系

LSA类型

OSPF→_第2张图片
LSA TYPE 1:router LSA由每台路由器为所属的区域产生的LSA,描述本区域路由器链路到该区域的状态和代价。一个边界路由器可能产生多个LSA TYPE1。(Router Link)类型1的LSA是任何一台OSPF路由器都会产生的,每一台OSPF路由器的每一个OSPF接口都会有自己的链路状态,但是每台OSPF路由器只能产生一条类型1的LSA,即使有多个OSPF接口,也只有一条类型1的LSA,因为所有OSPF接口的链路状态是被打包成一条类型1的LSA发送的。一个区域正是由于LSA 1的存在,才有精确的路由表,一个区域如果只有LSA 1,同样可以正常通信。LSA 1 只能在单个区域内传递,ABR不能将LSA 1转到发另外一个区域,并且没有任何权利修改LSA 1。
OSPF→_第3张图片
V (Virtual Link ) :如果产生此LSA的路由器是虚连接的端点,则置为1。
E (External ):如果产生此LSA的路由器是ASBR,则置为1。
B (Border ):如果产生此LSA的路由器是ABR,则置为1。

links :LSA中的Link(链路)数量。Router LSA使用Link来承载路由器直连接口的信息。
OSPF→_第4张图片
LSA TYPE 2:network LSA由DR产生,含有连接某个LAN路由器的所有链路状态和代价信息。只有DR可以监测该信息。(Network Link)类型2的LSA只有在需要选举DR/BDR的网络类型中才会产生,并且只是DR产生,BDR没有权利产生,LSA 2与LSA 1没有任何关联,没有任何依存关系,是相互独立的。
OSPF→_第5张图片
LSA TYPE 3:summary LSA由ABR产生,含有ABR与本地内部路由器连接信息,可以描述本区域到主干区域的链路信息。它通常汇总缺省路由而不是传送汇总的OSPF信息给其他网络。(Summary Link)类型3的LSA就是将一个区域的LSA发向另一个区域时的汇总和简化。
OSPF→_第6张图片
LSA TYPE 4:Summary LSA由ABR产生,由主干区域发送到其他ABR, 含有ASBR的链路信息,与LSA TYPE 3的区别在于TYPE 4描述到OSPF网络的外部路由,而TYPE 3则描述区域内路由。(ASBR Summary Link)
对于外部路由,执行重分布的路由器ASBR在LSA中写上自己的Router-ID,然后传递到多个OSPF区域,所以会被多个ABR转发,而ABR在转发外部路由的LSA时,是没有权限修改LSA的Router-ID,这样一来,外部路由的Router-ID在所有OSPF路由器上都不会改变,永远是ASBR的Router-ID,最终造成的结果是只有与ASBR同在一个区域的路由器才能到达外部路由,因为只有与ASBR同在一个区域的路由器才知道如何到达ASBR的Router-ID,而其它区域的路由器对此却无能为力;为了能够让OSPF所有区域都能与外部路由连通,在ABR将外部路由从ASBR所在的区域转发至其它区域时,需要发送单独的LSA来告知如何到达ASBR的Router-ID,因为ABR将外部路由的LSA告诉了其它区域,是有义务让它们与外部路由可达的,所以额外发送了单独的LSA来告知如何到达ASBR的Router-ID;这个单独的LSA就是类型4的LSA,LSA 4是包含的ASBR 的Router-ID,只要不是ASBR所在的区域,都需要ABR发送LSA 4来告知如何去往ASBR。
OSPF→_第7张图片
LSA TYPE 5:AS External LSA由ASBR产生,含有关于自治域外的链路信息。除了存根区域和完全存根区域,LSA TYPE 5在整个网络中发送。(External Link)类型5的LSA就是外部路由重分布进OSPF时产生的,并且是由ASBR产生的,LSA中包含ASBR的Router-ID,任何路由器都不允许更改该Router-ID,LSA 5中还包含Forward Address,对于LSA 5 的Metric值计算与选路规则也有所不同,详细信息请见OSPF外部路由部分。
OSPF→_第8张图片
Forwarding Address:标识到所通告目的地址的报文将被转发到这个地址,当FA=0.0.0.0时,到达这个外部网段的流量会发送给引入外部路由的ASBR,当FA≠0.0.0.0时,流量会发送到这个转发地址。5类LSA一般FA字段都是0,除非做了这些操作:1.外部路由出接口没有silent;2.外部路由出接口要启用了OSFP;3.外部路由出接口type必须是MA

LSA TYPE 7:Not-So-Stubby LSA由ASBR产生的关于NSSA的信息。7类LSA是由NSSA区域内的ASBR始发,描述到AS外部的路由,仅在NSSA区域内传播的LSA,7类LSA的格式与5类LSA除FA字段其他字段都是相同的,5类LSA是在整个OSPF系统中传播的,7类LSA是在NSSA区域内泛洪传播的。LSA TYPE 7可以转换为LSA TYPE 5。(NSSA Link)因为NSSA区域可以将外部路由重分布进OSPF进程,而NSSA不是一般的常规区域,所以在NSSA将外部路由重分布进OSPF时,路由信息使用类型7来表示,LSA 7由NSSA区域的ASBR产生,LSA 7也只能在NSSA区域内传递,如果要传递到NSSA之外的其它区域,需要同时连接NSSA与其它区域的ABR将LSA 7 转变成LSA 5后再转发。

5种报文

ospf通用报文头
Version: ospf协议的版本号,版本2支持ipv4,版本3支持ipv6
Message Type:报文类型,hello,dd,lsr,lsu,lsack 五种报文类型 分别对应数值1,2,3,4,5
Packet Length:报文总长度,包括hello报文,单位字节
Source OSPF Router: 发送该报文的路由器的RouterID
Area ID:发送该报文的接口所在的ospf区域
Checksum:校验和
Auth Type:ospf的认证类型
Auth Data:ospf的加密密钥

Hello

发现建立并周期保护邻居关系
OSPF→_第9张图片
1:Router ID;
2:Area ID,区域ID;
3:auth type,认证类型;0 null,1 明文,2 md5
4:authentication,认证信息;
5:netmask,网络掩码;
6:Hello interval,接口的hello间隔时间;
7:Options,可选项标记,共有5位。(E:允许Flood AS-external-LSAs;N/P:处理Type-7 LSAs;)
8:Rtr pri,路由器的优先级,其实是接口的优先级;
9:Dead interval,接口的dead间隔时间,是hello时间的4倍;
10:Designated Router,指定路由器DR,
11:Backup designated router,备份指定路由器;
12:Neighbor,路由器有效邻居的路由器ID;

DBD

数据库描述包——进行主从关系的选举,最重要的作用是发送LSDB目录,含LSA首部。路由器收到LSDB摘要后,只请求自己没有的lsa,从而减少了LSA的无效范洪。
OSPF→_第10张图片
第一个DBD是空的,没有LSA信息,用来选举master路由器。以自身为Master,随机生成DBD报文序列号,彼此交换该DBD报文后,主从选举DBD:比较双方的router-id ,router-id大的一方为主(master ),小的一方为从(slave);主用于控制LSA的交互。在extart状态的时候开始选择主从。

DD报文传输的可靠是依靠OSPF选举主从来实现的。从路由器收到主设备的DD报文之后,之后发送的DD报文中序列号同步主设备的序列号,而主设备接收到从设备的DD报文之后,将序列号+1,做隐式的确认。

MTU如果值不一样,就会卡在exstart状态和EXchange状态。卡在EXchange状态的为slave设备。

1.The I-bit, or Initial bit, which when set indicates the first DD packet sent
2.The M-bit, or More bit, which when set indicates that this is not the last DD packet to be sent
3.The MS-bit, or Master/Slave bit, which is set in the DD packets originated by the master

(1)DBD包中携带MTU值(最大传输单元),要求邻居MTU值必须相同,否则将卡在exstart或exchange状态;默认华为设备未开启MTU检测(MTU=0);开启方法[r1-GiagabitEther0/0/1]ospf mtu-enable。
OSPF→_第11张图片
(2)隐性确认(DBD包的特性)-不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD。

LSR

链路状态请求——对收到的邻居发来的LSDB目录中本地未知的LSA进行请求,包含一个或多个三元组。
OSPF→_第12张图片

LSU

对收到邻居发来的LSR,LSU携带一条条完整的LSA给邻居。
OSPF→_第13张图片

LSAck

对LSU进行确认,含LSA头部。一份LSAck可以对多份LSU中的LSA做确认。
OSPF→_第14张图片

四张表

邻居表:主要记录形成邻居关系路由器。
display ospf peer
OSPF→_第15张图片
链路状态数据库:记录链路状态信息。
display ospf lsdb
OSPF→_第16张图片
OSPF路由表:通过链路状态数据库得出。
display ospf routing
OSPF→_第17张图片
display ip routing-table protocol ospf
OSPF→_第18张图片
全局路由表:OSPF路由与其他比较得出。
display ip routing-table
OSPF→_第19张图片

OSPF区域

可以配置单区域或多区域。配置单区域时,是Area0、Area1或Area8都行。

每台路由器在同一个区域内LSDB表一样。

骨干区域 :作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。假设多区域的 OSPF 中没有骨干 Area 0 ,那么多区域的 OSPF 中将不会传播域间路由信息。
标准区域 :除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,该区域不接受类型4和类型5的 LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
OSPF→_第20张图片
完全末梢区域 :在末梢区域的基础上隔绝普通网络汇总的3类LSA,但通告一条含默认路由的3类LSA。
次末节区域:NSSA 具有末节区域的优点,它们不接受有关自治系统外部的路由的信息(也就是该区域不接受 LSA 4 和 LSA 5,但有 LSA 7),而使用默认路由前往外部网络。然而,NSSA 可以包含 ASBR,这违反了关于末节区域的规则。在 NSSA 区域中允许存在 ASBR,所以也就可以引入外部路由。这个外部路由在 NSSA 区域内以 LSA 7 存在。当此 LSA 7 路由离开 NSSA 区域进入别的区域时,NSSA 的 ABR 会进行 LSA 7 向 LSA 5 的转换。
OSPF→_第21张图片
完全次末节区域:在次末节区域的基础上隔绝普通网络汇总的3类LSA,但通告一条含默认路由的3类LSA。

LSDB的更新

1,周期更新:OSPF路由器每隔30分钟就 会周期更新自己产生的LSA,更新后序列号 seq+1,校验和重新计算,age时间重置为0,并传递给自己的邻居并累加传输延迟InfTransDelay(默认为1)。
2,触发更新:网络发生变化之后,就会触发更新自己的LSA。更新序列号seq+1,校验和重新计算,age时间重置为0,并传递给自己的邻居,累加传输延迟InfTransDelay(默认=1)。

如何比较LSA的新旧?
1.首先比较序列号,如果序列号越大,则越新。
2.如果序列号相同,则比较校验和,校验和越大越新。
3.如果校验和相同,则比较存活时间(LS Age),如果这些LSA中有一条存活时间为3600s,4.则认为该LSA是最新的,用于删除一条LSA。
5.如果所有LSA age不等于3600S,则判断LSA age的差值,如果大于900S(15分钟)则认为LSA age小的最新,如果小于900S则认为相同;
6.如果上述条件都一样的话,则认为这两条LSA是相同的,将本地的LSA保留。

DR和BDR选举

DR负责收集所有的链路状态信息,并发布给其他路由器。在DR失效的时候,BDR担负起DR的职责,BDR收到所有的LSA后不会发布。增加一个路由,邻居关系加二。

1、DR/BDR的选举基于接口。
2、接口的DR优先级越大越优先,默认值为1,可调范围是0-255。
int g0/0
ip ospf priority 2
3、接口的DR优先级相等时,Router ID越大越优先。
4、DR的选举没有抢占性
5、DR和BDR的选举过程是先选BDR再选DR

点对点链路(串口,s0/0,T1或E1)不会选举DR与BDR。

224.0.0.5(AllSPFRouters),224.0.0.6(AllDRouters)

点对点和广播网络类型下Hello包发送间隔时间10秒,死亡超时时间为40秒。

路由汇总

ABR上
ASBR上

OSPF→_第22张图片

认证

ospf的认证有两种,区域认证和链路认证。
[R1]ospf 1
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]authentication-mode simple plain huawei
。。。。。。。。。。。。。
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ospf authentication-mode md5 1 huawei
认证方式又分为简单验证模式、MD5验证模式和Key chain验证模式。
S9300, S9300X V200R021C10 命令参考

Cisco

OSPF→_第23张图片

你可能感兴趣的:(Datacom,网络)