HCIP-OSPF学习
OSPF路由基础
-
OSPF:开放式最短路径优先
- 属于IGP协议,链路状态路由协议,使用IP协议号89
- OSPF的报文头部
- version:版本,V2/V3
- type:报文类型
- Hello
- DD
- LSR
- LSU
- LSAck
- acket length:数据大小
- Router ID:产生这个报文的路由器的RID
- area ID:报文通告的区域范围
- checksum:校验和
- Auth Type:认证类型,0、不认证,1、简单铭文认证,2、MD5认证
- Auth Data:认证数据,根据认证类型不同数据内容不同
- OSPF的报文类型
- Hello报文
- 发现建立维护邻居关系
- DD报文
- 协商主从以及判断LSDB是否同步
- I:如果置为为1,表示是发送的第一个DD报文
- M:如果置位为1,表示后续还有DD报文(不是最后一个)
- MS:如果置位为1,表示自己是主设备
- 协商主从以及判断LSDB是否同步
- LSR
- 请求自己缺少的LSA
- LSU
- 携带完整的LSA信息
- LSAck
- 确认报文
- Hello报文
- OSPF的状态机
- Down
- 初始状态,开始发送Hello报文
- Attempt
- NBMA网络独有状态,发送了Hello报文,一直没有收到回应,120s后回到Down状态
- Init
- 发送Hello报文后也收到了Hello报文,但是收到的Hello报文邻居列表不包含自身RID
- 2-Way
- 发送Hello报文后收到Hello报文的邻居包含自身RID,表示邻居关系建立完成,在这个状态下选举DR,BDR,选举时间40s
- Exstart
- 发送第一个DD报文,用来选举主从关系,不携带LSDB摘要,协商MTU(最大传输单元),华为默认不协商MTU,用0填充
- 主设备MTU>从设备MTU,两者都处于Exstart
- 主设备MTU<从设备MTU,从设备进入Exchange,主设备处于Exstart
- Exchange
- 发送第二个DD报文,携带摘要信息,用来判断LSDB是否同步,如果已经同步则进入FULL状态,没有同步进入Loading状态
- Loading状态
- 发送LSR,LSU,LSAck开始同步LSDB
- Full状态
- 邻接关系建立成功
- Down
- DR和BDR
- DR:指定路由器
- BDR:备份指定路由器
- 选举DR为了减少邻接关系,先比较路由器的优先级,范围0~255,越大越优,为0不参与选举,优先级相同比较RID,越大越优
- 选举过程
- 先选举一个BDR,BDR发现没有DR升为DR,在重新选举一个BDR,DR不支持抢占,如果已经存在DR即使更优也不会抢占
- OSPF的网络类型
- P2P:点到点网络,当底层是PPP/HDLC时,认为网络类型为P2P
- 组播发送所有报文
- MA(Brodcast):广播网络,当底层为以太网时,认为网络类型为MA
- 组播发送Hello,单播发送DD报文,单播LSR,单播LSU,组播LSAck
- NBMA:非广播多路访问,当底层为FR/ATM时,认为网路类型为NBMA,需要手工指定邻居
- 单播发送所有报文
- P2MP:点到多点,没有任何一种底层协议认为是P2MP网络,只有手动修改
- 组播发送Hello报文,单播发送DD,LSR,LSU,LSAck
- P2P:点到点网络,当底层是PPP/HDLC时,认为网络类型为P2P
- 网络类型不同的两台设备之间能建立邻居关系?
- P2P-MA:可以建立
- P2P-NBMA:不可以建立
- P2P-P2MP:修改Hello时间建立
- MA-NBMA:不可以建立
- MA-P2MP:修改Hello时间建立
- P2MP-NBMA:不可以建立
- NBMA和其他任何网络类型都无法正常建立邻居,因为只有NBMA是单播发送Hello报文,其他都是组播发送
OSPF路由计算
-
LSA的头部信息
- LS Age:LSA的老化时间,0s–>3600s,3600s表示老化
- Option:可选项,每一个bit都表示OSPF的一个特性
- LS Type:LSA的类型(1,2,3,4,5,7)
- Link State ID:链路状态标识,不同的LSA有不同的表示
- Adv Router:通告路由器,表示这条LSA是由那个路由器产生的,通常用RID的形式
- LS Seq:LSA的序列号,初始0X80000000——>0X8FFFFFFF---->0X0000000---->0X7FFFFFFF(正常情况每更新一次序列号+1)
- LS Check:链路状态校验和,校验整个LSA
- Length:LSA的大小,包括LSA头部
-
LS Type+LS ID+ADV可以唯一标识一条LSA
-
LS Age+LS Seq+LS Check用来判断LSA的新旧(先比较序列号,越大越新,序列号一样比较校验和,越大越新,前两者都相同比较老化时间,3600s为最优,两者之差小于900s表示同样新,否则越小越新)
-
路由如果收到比本地更新的LSA,则替换掉本地的,如果收到没有本地更新的LSA,则丢弃旧的LSA,并将本地更新的LSA泛洪给邻居
-
Router-LSA:一类LSA,所有运行了OSPF都会产生可以描述点到点网络的拓扑路由信息,描述MA网络的拓扑信息
- LS ID:产生着的RID
- ADV:产生着的RID
- 一类LSA可以描述四种链路类型
- P2P:用来描述点到点网络的拓扑信息
- LInkID:点到点邻居的RID
- Data:自己的接口IP地址
- StubNet(Sda波奈特):用来描述点到点网络以及点到点环境下的路由信息
- Link ID:目的网路号
- Data:网路掩码
- Transnet:用来描述传输网络,描述连接到一个DR
- Link ID:DR的接口IP地址
- Data:自己接口的IP地址
- VLink:用来描述虚连接
- Link ID:虚连接邻居的RID
- Data:自己接口的IP地址
- OSPF支持四种网络类型,其中P2P和P2MP都属于点到点网络类型,只需要Router-LSA就足以描述链路状态信息,MA和NBMA属于广播网络类型,Router-LSA只描述了一部分拓扑信息,还需要Network-LSA描述(拓扑+路由)
- P2P:用来描述点到点网络的拓扑信息
-
Network-LSA:二类LSA,由DR产生,用来描述广播网络环境下的路由信息和拓扑信息
- LS ID:DR的接口IP地址
- ADV:产生者的RID
-
一类 LSA
-
Type Router LS ID 产生者RID Adv 产生者RID Link conunt 链路数量 Link ID Data Link Type 链路类型 Metric 开销
-
-
二类LSA
-
Type Network Ls id DR接口IP地址 Adv rtr 产生者RID Net mask 掩码 Attached Router 链接的路由器(RID表示)
-
-
Network Summary -LSA详解
- IR:区域内部路由器
- ABR:区域边界路由器
- ASBR:自治系统边界路由器
- Network Summary-LSA:三类LSA(路由汇总LSA),由ABR产生,用来描述区域间路由信息
- LS ID:目的网络号
- ADV:产生这条三类LSA的ABR的RID
- 一条三类LSA只能描述一条路由
- 路由计算:累计传递过程中的所有入接口开销
- 区域防环:特殊的区域设计,非骨干区域必须和骨干区域相连,三类LSA的传递必须经过骨干区域,收到来自非骨干区域的三类LSA不进行计算,从一个区域传出的三类LSA不能再回去
- 虚连接:解决骨干区域不连续的问题(非骨干区域连接骨干区域)
- 虚连接只能跨越一个区域
-
AS External -LSA:五类LSA,由ASBR产生,用来描述外部路由信息
- LS ID:外部路由目的网络
- ADV:ASBR的RID
-
ASBR Summary-LSA:四类LSA,由ABR产生,用来描述ASBR所在的位置
- LS ID:ASBR的RID
- ADV:ABR的RID
-
与ASBR处于同一区域的设备只需要通过五类LSA就可以知道访问外部路由,与ASBR不在同一个区域的设备不知道ASBR是谁,所以需要由该区域的ABR产生相对应的四类LSA来描述ASBR的位置
-
外部路由类型:缺省为Type-2,Cost=1
- Type-1:计算AS外部开销+AS内部开销
- Type-2:只计算AS外部开销
-
AS外部开销指ASBR到达外部路由的开销,AS内部开销指路由器到达ASBR的开销
-
OSPF的路由类型及优先级
- 区域内路由>区域间路由>一类外部>二类外部
-
有五类一定有四类吗?
- 不一定,ASBR所在的区域没有四类
-
有四类一定有五类吗?
- 不一定,华为中路由器只要执行了引入动作,没有具体路由,ASBR也会置位,与ASBR处于同一区域的ABR通过一类LSA的ASBR置位就会项其他区域产生相应的四类LSA
-
五类LSA
- Type:External
- LS id:外部路由目的网段
- ADV:ASBR的RID
- TOS 0:去往外部路由的开销
- Type:外部路由类型
- Forwarding:FA为0按照ASBR访问
- Type:External
-
四类LSA:
- type:Sum-Asbr
- LS id:ASBR的RID
- ADV:ABR的RID
OSPF特殊区域及特性
-
特殊区域
-
Stub区域:不允许四类,五类LSA进入,传递一类,二类,三类以及一条三类缺省LSA(用来访问外网)
-
在ABR路由器上非骨干区域视图下:stub---------(双方都需要)即可
-
-
Totally Stub区域:不允许三类明细,四类,五类LSA进入,传递一类,二类,以及一条三类缺省LSA(用来访问区域间路由和外部路由)
-
在ABR路由器上非骨干区域视图下:stub no-Summary 在对方的路由器区域视图下:stub
-
-
NSSA区域;不允许四类,五类LSA进入,传递一类,二类,三类,七类LSA(访问本区域外部路由)和一条七类缺省LSA(用来访问其他区域的外部路由)
-
Totally NSSA;不允许三类明细,四类,五类LSA进入,传递一类,二类,七类,三类缺省和七类缺省LSA(三类缺省访问区域间路由,七类缺省访问其他区域的外部路由)
-
NSSA LSA:七类LSA,由NSSA区域的ASBR产生,用来描述NSSA区域引入的外部路由
- LS ID:NSSA区域外部路由目的网络
- ADV:NSSA区域ASBR的RID
-
由于七类LSA只能在NSSA区域内传递,其他区域无法访问该区域的外部路由,所以需要NSSA区域的ABR执行七转五的动作,向其他区域产生五类LSA,对于其他区域来说,执行七转五的路由器就是ASBR
-
如果存在多个ABR,由RID大的路由器进行七转五的动作
- 七类LSA的FA地址一定不为0,会填入ASBR的地址(如果存在环回口地址,就填入最后宣告到OSPF的环回地址,如果没有环回口,就填入最后宣告到OSPF的物理接口地址),FA地址为了防止次优路径
-
七类LSA
- Type:NSSA
- LS id:外部路由目的网络
- ADV:ASBR的RID
- Net mask:掩码
- TOS:外部路由开销
- E type:外部路由类型
- Forwarding Address:转发地址
-
区域间路由汇总:针对于域间传递的路由进行汇总,可以减少三类LSA的泛洪数量,由于三类LSA是由ABR产生,所以在ABR上面进行配置
-
外部路由汇总:针对于引入的外部路由进行汇总,可以减少五类/七类LSA泛洪数量,五类/七类由ASBR产生,在ASBR上面进行汇总
-
静默接口,路由器连续终端的接口也开启了OSPF,会一直发送OSPF的报文,终端并不会处理OSPF协议报文,还会造成资源损耗,开启静默接口后,不会从接口发送/接收任何的OSPF报文,但是接口的直连网段依旧可以发布给邻居
-
接口认证:针对接口下所连接的路由器进行认证,认证通过才能建立OSPF邻居关系
-
区域认证:针对区域下所有的路由器进行认证
- 开启认证时,认证模式以及密码等参数需一致才能认证通过
-
总结OSPF-LSA
-
类型 LSID 产生者 传递范围 作用 Router-LSA 产生者的RID 每个运行了OSPF的路由器 区域内 描述P2P环境的路由及拓扑信息,MA环境下的拓扑信息 Network-LSA DR的接口IP地址 DR 区域内 描述MA环境下的路由及拓扑信息 Network Summary-LSA 目的网络 ABR 区域间 描述区域间路由信息 ASBR Summary-LSA ASBR的RID ABR 除了特殊区域外的所有区域除了特殊区域以及ASBR所在区域的其他区域 描述ASBR所在的位置 AS External-LSA 目的网络 ASBR 除了特殊区域以及ASBR所在区域的其他区域 描述外部路由信息 NSSA-LSA 目的网络 NSSA区域 NSSA区域以及TotallyNSSA区域 描述NSSA区域的外部路由信息