HCIP-ICT实战进阶01-OSPF各类LSA介绍及分析
  RvkpSRzrFqU1 2023年11月01日 44 0

HCIP-ICT实战进阶01-OSPF各类LSA介绍及分析

课程目标

  • 解释LSA关键字段的作用
  • 描述常见LSA类型及其功能
  • 阐明SPF算法
  • 描述ospf区域内路由、区域间路由计算原理
  • 描述ospf区域间路由的防环机制
  • 描述ospf外部路由计算原理

1 区域内路由计算

1.1 回顾

在同一个区域内所有路由器的LSDB(Link State DataBase,链路状态数据库)相同

image-20221015100614328

不考虑区域间和不考虑引入的情况下, 每一台开启OSPF的设备设备会产生一个一类LSA, 一个广播网络会存在一个二类LSA, PtoP网络不需要LSA.(这里做简单了解, 下面会详细展开)

所以上图拓扑共有7(5+2)条LSA.image-20221015101516849

1.2 OSPF协议报文头部

image-20221015101559193

1.2.1 ospf报文头部结构:

Version: 当前OSPF的版本号;

(message) Type: 报文类型: 1-hello, 2-dd(dbd), 3-lsr, 4-lsu, 5-lsack;

Packet Length: OSPF报文长度;

Router ID(source ospf router): 生成该报文设备(路由器、三层交换机或防火墙)的Router Id;

areaID: 表示该报文需要被通告到的区域;

Checksum: 校验字段, 对整个ospf报文进行校验, 确定报文完整性;

auth-type: 认证类型: 0-不认证, 1-简单明文认证(simple), 2-加密认证(md5);

authentication data: 具体认证信息;

具体的hello报文、dd报文内容;

在wireshark中查看:

image-20221015102510111

这是一条支持ospfv2的hello报文, 长度为52byte, 源设备发出接口ip地址为10.0.3.3, 在区域0被通告, 校验码为0xec86, 认证方式为无认证, 具体认证信息为空.

1.2.2 hello报文

image-20221016152704433

  1. network mask: 发送报文接口所在网络的掩码;
  2. hello Interval: 发送hello报文的时间间隔;
  3. options: 可选项;
  4. Router Priority: 发送接口的DR优先级;
  5. Dead Interval: 该接口认定邻居死亡时间/s;
  6. DR: DR的IP地址;
  7. BDR: BDR的IP地址;
  8. active neighbor(多个): 当前设备已激活邻居的ip地址.

注意: 根据ospf报文头部和hello报文里的内容, 判断一下ospf邻居建立过程中都对那些信息进行检查.

知识点拾遗: hello报文间隔10s发送一次, 存活时间为40s.

细说一下options字段:

image-20221016153032063

功能: 用于表示ospf某些特征, 比如当前ospf设备是否为特殊区域设备, ospf的特殊防环机制

字段名称 具体含义
DN 用于在MPLS VPN场景下的防环
O 当前ospf开启了不透明LSA(九类 十类 十一类LSA), 常见使用场景: 优雅重启、SR--SegmentRouting
DC 表示按需链路特性(不再周期性发送hello报文, 邻居不老化)
EA 设备支持八类LSA
N/P 只存在在hello报文中使用(DD报文也存在), 1-支持七类LSA, 0-不支持七类LSA;
N/P 只存在LSA中使用, 1-需要进行七类LSA转换成五类LSA, 0-不允许七类LSA转五类LSA
MC 表示是否支持组播数据转发
E 表示设备是否支持五类LSA功能. 1-所有五类LSA都会有该字段, 非末端区域(Stub区域--ospf的特殊区域, 我下篇博客会提到)会有该标识; 0-该设备的接口具有识别和收发五类LSA功能
MT 表示ospf的多拓扑特性

是不是看的一头雾水? 这里可以先作简单理解, 之后结合之后的内容来记忆.

但是可以先看看几种类型的LSA.

1.2.3 DD报文

DD报文用于描述LSDB,该报文中携带的是LSDB中LSA的头部数据(也就是并非完整的LSA内容,仅仅是头部数据)

image-20221016155443970

  1. Interface MTU(接口最大传输单元): 发送该dd报文接口的mtu值, 缺省为0;
  2. option: 同hello报文中options含义;
  3. Res: 当前未使用,置为0(一共有5个比特);
  4. I(init): 1-当前dd报文是第一个, 0-不是第一个;
  5. M(more): 表示当前设备是否发送完全LSA头部信息, 0-发送完全 1-还没发完;
  6. MS: 表示主/从设备, 1-Master, 0-Slave
  7. (DD) Seq: DD序列号, 在DD报文交互的过程中,DD序列号被逐次加1,用于确保DD报文传输的有序性和可靠性。值得注意的是,DD序列号必须是由Master路由器来决定的,而Slave路由器只能使用Master路由器发送的DD序列号来发送自己的DD报文;
  8. LSA Header: 当路由器使用的DD报文来描述自己的LSDB时,LSA的头部信息被包含在此处。一个DD报文可能包含着一条或者多条LSA的头部;

思考:image-20221015113250588

回顾Master/Slave(主从路由器)选举:

根据Router Id判断: Router ID越大越优先

为什么要决定主从: 是ospf的一种可靠性机制.

DD报文的作用: 用于选择主从路由器, 然后交互设备之间的LSA目录, 最后决定要更新那些LSA信息.

分析:

第一次交互(双方互发dd报文)之后, 则可以确定主从设备, 主从设备会对交互报文的序列号(Seq)进行确认, 序列号以主设备序列号为主, 从设备使用主设备的序列号进行报文发送(为了确保数据传输没有发生丢失, 保证可靠性, 丢失则进行重传).

注意: 这里最开始的两个dd报文是没有任何LSA信息的, 只是为了确认主从关系.

选出主从路由器之后, 则可以开始LSA头部信息交互:

  1. 此时主设备发送的dd报文依旧按照第一个dd报文处理, 即I=1 M=1 MS=1 Seq=628: 主设备序列号(没有LSA);

  2. 从设备收到该DD报文, 然后进行回复, I=0 M=0(此时M取决于该dd报文是否能将全部LSA头部携带) MS=0 Seq=628(此时会携带LSA头部信息);

  3. 之后主设备收到DD回复, 将主机的LSA头部信息放入DD报文进行发送, I=0 M=0(此时M取决于该dd报文是否能将全部LSA头部携带) MS=1 Seq=629;

  4. 之后从设备收到DD回复, 此时从设备已经没有LSA需要发送了,所以只是进行简单回复, I=0 M=0 MS=0 Seq=629(没有LSA头部信息);

问: 一次ospf邻居建立中最少会发送几次dd报文?

答: 6次.(如果你的回答是4, 那么你漏掉了最开始的用来确认主从关系的dd报文)

1.2.4 LSR报文

作用: 根据前面交互的DD报文, 决定需要请求那些LSA详情.

image-20221016161212894

  1. LS Type: 表示LSA类型(几类LSA);
  2. Link State ID: 不同LSA含有不同;
  3. Adv Router: 表示该LSA来自哪个设备.

1.2.5 LSU报文

用于回复LSR请求,向对方发送详细的LSA信息.

image-20221016161355480

  1. Number of LSA: 表示当前更新报文里面具体有多少个LSA信息;
  2. LSAs(多条): 具体LSA信息.

1.2.6 LSAck报文

用于回复LSU报文更新, 每个LSA头部长度为20byte.

image-20221016161441894

  1. LSA信息: 用于表示收到了LSA.

1.3 LSA头部信息

LSA: 链路状态信息, 用来描述网络拓扑情况.

  1. LS age: 表示当前该LSA已经存在的时间, LSA有从0开始的老化时间[3600s]和更新周期[1800s];
  2. options: ospfv2版本在hello报文和LSA里面出现;
  3. LS Type: 表示当前为几类LSA, 1-一类, 2-二类...;
  4. Link State ID:不同LSA类型含义不同, 下面会讲到;
  5. Adv Router: 始发产生该LSA的设备routerID;
  6. Seq: 表示同一个LSA那个是最新的, 每次产生/更新会+1, 取值范围: 0x80000000到0x7FFFFFFF, 0x8表示正常使用, 0x7表示需要更新序列号. (序列号是有上限的, 用完之后需全网删除该LSA并重新发放新的序列号为1的LSA);
  7. checksum: 表示校验和;
  8. length: LSA信息的长度.

2 常见LSA的类型

image-20221015162751406

image-20221015162759483

几种常见类型的LSA

类型 名称 描述
1 路由器LSA(Router LSA) 每个设备都会产生, 描述链路设备的状态和开销, 该LSA只能在接口所属的区域内泛洪.
2 网络LSA(Network LSA) 由DR产生, 描述该DR接入的MA网络中所有与之形成邻接关系的路由器, 以及DR自己, 该LSA只能在接口所属区域内泛洪.
3 网络汇总LSA(Network Summary LSA) 又ABR产生, 用于描述某个网段内的路由, 该类LSA主要用于区域间路由的传递.
4 ASBR汇总LSA(ASBR Summary LSA) 由ABR产生, 描述到ASBR的路由, 通告给除ASBR所在区域的其他相关区域.
5 AS外部LSA(AS External LSA) 由ASBR产生, 用于描述到达ospf域外的路由.
7 非完全末梢区LSA(NSSA LSA) 由ASBR产生, 用于描述到达OSPF域外的路由, NSSA LSA与外部LSA功能类似, 但是泛洪范围不同, NSSA LSA只能在始发的NSSA内泛洪, 并且不能直接进入Area0, NSSA的ASBR会将7类LSA转换为5类LSA进入Area0.

2.1 一类LSA(LSA-type 1)

一个一类LSA可以携带多个链路信息, 一台ospf设备通过一个LSA描述自己的链路.

image-20221016205958707

  1. LinkState ID(头部信息): 在一类LSA里面, LinkState ID表示的含义和Advertising Router一模一样, 即表示该LSA始发产生网络的Router ID信息;

  2. Seq: 序列号;

  3. checksum: 校验和;

  4. Length: LSA长度;

  5. Flags:

    V(Virtual Link): 1-表示始发路由器是虚链路的某一个端点;

    E(External): 1-表示产生1该LSA的设备为ASBR设备;

    B(Border): 1-表示产生1该LSA的设备为ABR设备;

  6. Number of Links: 一个LSA描述的设备链路数量, 一台设备会产生一个一类LSA,一个一类LSA里面会有非常多的链路信息.

    (下面表格是重点)因为一台设备肯顶有多条链路是属于ospf的, 每一条链路都会通过以下三个内容进行呈现:

    Link Type 1 2 3 4
    7. Link Type含义 P2P(点到点)网络 Transit(transnet)广播网络 Stubnet末梢网络 virtual(VLink)虚链路
    8. Link ID 邻居路由器的router ID DR路由器的接口IP地址 网段信息(IP地址) 邻居路由器的router ID
    9. Link Data 和网络相连的始发路由器接口的ip地址 和网络相连的始发路由器接口的ip地址 子网掩码 始发路由器的虚链路接口IP地址
  7. TOS: 目前在ospfv2中暂不使用

  8. Metric: 链路开销(cost)值, 接口cost值 = (10^8)/接口带宽(100M)=1

P2P网络: 表示串行链路;

Transit(transnet)广播网络: 表示至少两台设备连接在一起的广播网络;

Stubent末梢网络: 表示至少两台设备连接在一起的广播网络, 该链路不存在邻居信息,比如环回口. 就算配置环回接口按照24位掩码配置的,但是OSPF仍然会把环回接口按照32位主机路由进行通告更新,除非把环回接口的链路类型改成点对点;

虚链路(virtual): 当出现非骨干区域无法直接连接到骨干区域时, 可以在某个非骨干区域设置虚链路, 形成跨非骨干区域连接;

注意: P2P网络中,接口IP信息通过type 1来表述, 网络掩码信息会通过type 3表述, 需要将两部分结合才能推断出那部分网络的具体拓扑图.

2.1.1 Router LSA描述P2P网络

image-20221016222244213

tpye为1(PTP), 这是一个p2p网络中的LSA, 邻居路由器的Router ID为10.0.3.3, 宣告该LSA设备的接口IP为10.0.35.5, TOS不管他, 链路开销值为48.

2.1.2 Router LSA描述Transit网络

image-20221016215600422

tpye为2(transit), 这是一个广播网络中的LSA, DR接口IP为10.1.234.3, 宣告该LSA设备的接口IP为为10.0.234.3, TOS不管他, 链路开销值为1.

2.1.3 Router LSA描述Stubnet网络

image-20221016215636821

tpye为3(Stubnet), 这是一个末梢网络中的LSA, 网段IP为10.1.234.0, 该网段子网掩码为255.255.255.0, TOS不管他, 链路开销值为1.

2.2 二类LSA(LSA-type 2)

一个二类LSA能携带一个网段的掩码信息多个邻居信息.

P2P网络中根据一类LSA可以判断整个网络结构. 但广播网络中只能简单判断结构, 需要二类LSA协助.

  1. Link State ID(头部信息): 表示DR接口ip地址;
  2. network mask: 网络掩码;
  3. attached router(多个): 与该DR连接在同一个网络中的所有设备.

结合到二类LSA, 可以判断完全的广播网络结构

思考: 在抓包过程中, 会发现某些LSU报文中并不是自己的内容, 为什么?

解答: 所有设备将LSA泛洪给DR, 之后由DR进行广播网络的LSDB同步, 所以DR会发送不属于自己的LSU.

2.3 SPF算法

image-20221015154129060

  1. ospf网络中每一台设备都会以自己为根节点, 计算SPF算法

  2. 以自己为根节点, 查看自己产生的一类LSA, 根据一类LSA信息, 可以判断邻居有哪些, 比如DR、设备, 包括当前设备的路由信息有哪些.

    以上信息罗列出来后, 根据最短开销原则, 选择最优的下一跳进行下一步计算, 其他补上最优的信息做一个保留.

  3. 根据下一跳:

    1. 如果是DR, 则查看DR产生的二类LSA(当前DR连接着哪些设备、DR连接到点的这些设备的接口开销值在SPF算法中看做0[原本是1]);

    2. 如果是设备, 则查看该设备产生的一类LSA.

SPF计算完成后, 会把计算过程中的路由信息计入到OSPF路由表

题解示例:

image-20221017100018477

image-20221017100029412

image-20221017100043993

image-20221017100055493

image-20221017100102210

image-20221017100115677

image-20221017100125081

  1. ospf路由表查看:

    display ospf routing
    

    ospf路由表为ospf算出的最优路由表, 但并不是实际使用的路由表

  2. 全局路由表查看:

    display ip routing-table
    

    全局路由表才是实际使用的路由表

注意: ospf路由表的最优路由, 并不一定加入到全局路由表

3 区域间路由计算

3.1 大型网络中, 单区域ospf存在的问题

  1. 网络规模越来越大时, LSDB将变得非常臃肿, 加大路由器性能损耗;
  2. 网络拓扑变更时, 会引发整个网络路由重新计算;
  3. 无法部署路由汇总.

3.2 区域划分

一类二类LSA只会在区域内泛洪, 通过区域内划分在一定程度上降低网络设备内存和cpu损耗.

划分区域后, 路由器可以分为两种角色:

  1. 区域内部路由器(Internal Router): 该类设备的缩影接口属于同一个ospf区域;
  2. 区域边界路由器ABR.

注: 官方定义的ABR: 该设备至少有一个接口连接着骨干区域, 有其他接口连接着其他常规区域., 但平时口述通常会将连接不同区域的区域间设备称为ABR.

到这里可能你会有一个疑问, 多区域ospf的非骨干区域不是只能和骨干区域连接吗? 这就涉及到上面小小提过一嘴的虚链路,这个会在下面详细展开聊.

3.3 三类LSA(LSA-type 3)

一条三类LSA只能描述一条网段路由信息, 一个区域内有多个网段就需要发送多个三类LSA.

  1. Link State ID(头部信息): 表示通告的网段信息(网段ip)

  2. network mask: 表示通告网段的子网掩码信息;

    通过以上两条信息, 就能知道三类LSA表示的路由信息.

  3. metric: 表示当前生成三类LSA设备去往目标网段的开销值;

  4. Adv router: ABR的RouterID.

3.4 区域间路由信息传递

image-20221015164907089

R4设备在Area1里如何向Area2传递路由信息?

  1. R4设备会根据链路信息, 生成一类/二类LSA, 传递的信息称之为链路状态信息而非路由信息;

  2. R2设备作为ABR从area1收到R4的LSA, 先把LSA做一次SPF算法后得到最短路径路由信息, 由于R2为ABR且连接Area0, 所以R2会将路由信息转换为三类LSA(Network Summary LSA)再传递给Area0;

    R4设备传递一类/二类LSA给R2之后, R2计算SPF计算路由, 就可以知道R2去往目标网段的开销值信息.

    计算完成路由信息, 需要生成三类LSA:

    1. Link State ID: 192.168.1.0(目标网段)
    2. Adv Router: 10.0.2.2(R2这台ABR设备的RID)
    3. network mask: 255.255.255.0(目标网段掩码)
    4. Metric: 1(链路开销值)
  3. Area0的设备根据三类LSA可以生成去往R4方向的路由信息;

    R3设备收到三类LSA也是先计算路由信息, 计算过程如下:

    1. 该三类LSA的路由信息先获取(192.168.1.0/24);

    2. 当前设备去往ABR的开销值是多少(2);

      因为三类LSA的Adv Router是ABR, 所以当前设备根据Adv Router和本区域的一类二类LSA结合, 最后计算出来去往该ABR的开销值信息;

    3. 区域内的开销值计算完成之后, 将区域内开销值和三类LSA里面的开销值累加, 就得到了当前设备去往目标网段的开销值(3).

  4. R3设备作为ABR从area0学习到三类LSA, 先将三类LSA计算为路由信息, 再将该路由信息重新生成为三类LSA并传递给Area2.

    现在R3去往目标网段开销值为3, R3生成d三类LSA:

    • Link State ID不变: 192.168.1.0(目标网段)
    • Adv Router改变: 10.0.3.3(R3这台ABR设备的RID)
    • network mask不变: 255.255.255.0(目标网段掩码)
    • Metric改变: 3(表示R3设备去往目标网段的开销值)
  5. 最后R5计算出R4-R5之间的路由信息.

  6. 区域间路由计算结果验证

image-20221015171506356

3.5 区域间环路问题

假设非骨干区域之间可以互相传递信息

image-20221015171717410

ospf防环机制:

  1. 区域间防环机制: 非骨干区域之间不能直接传递LSA信息, 只能通过骨干区间中转;

  2. 三类LSA防环机制(水平分割): ABR不会将到达某个区域内网段路由的三类LSA再注入回该区域;

    原理:

    1. 收到目的网段在本区域三类LSA是需要先进行路由计算, ABR设备计算完路由, 会发现区域内有该路由, 三类LSA中也有该路由, 有因为一类二类LSA优先级高于三类LSA(区域内优先级大于区域间), 因此ABR忽视该路由;
    2. 该三类LSA的Adv Router是当前路由器, 因此该三类LSA不进行计算.
  3. ABR从非骨干区域收到的三类LSA, 不进行路由信息计算

3.6 虚连接VLink(虚链路)

ospf要求骨干区域与非骨干区域必须是连续的, 但是不要求物理上连续 ,可以使用虚连接使骨干区域和非骨干区域在逻辑上连续. 虚连接可以在任意两个ABR上建立, 但是要求这两个ABR都有端口连接到相同的非骨干区域.

image-20221019193038206

虚连接可以在osfp骨干区域断开的情况下, 进行骨干区域虚拟连接, 但是这种方式会打破了ospf的一些防环机制, 会产生环路, 只能作为临时解决方案.

  • 配置命令为:

    ospf ospf-process
    area area-id
    vlink-peer route-id
    
  • 查看虚链路情况:

    display ospf vlink
    

如果建立虚连接的两台设备有多个物理接口可以进行vlink建立, 则此时会选择IP地址较大的端口进行数据传输, 因为link-peer命令是指定RID, 没有指定IP地址, 因此设备需要自行选择IP地址较大的端口进行两端的通信.

3.6.1 虚连接环路

这里Area 2要和Area 1通信

image-20221019194731565

过程:

  1. R4与R2建立逻辑上的虚链路;
  2. 首先R5将Area2内的链路状态信息通过一类二类LSA发送给ABR-R4;
  3. R4收到Area2内的链路信息后进行路由计算, 再生成三类LSA, 通过物理链路(R4-R3-R2)单播发送给R2;
  4. R2收到三类LSA, 在Area1内泛洪并进行路由计算, 再重新生成三类LSA向R1传递(这时R1学到了三类LSA);
  5. R3在收到R2设备泛洪的三类LSA, 根据ospf的防环机制(正常设备收到非骨干区域的三类LSA不进行路由计算, 也不重新生成), 不进行计算和重新生成三类LSA;
  6. R3收到R1从area0中发送的三类LSA, 进行路由计算并生成三类LSA在area1里泛洪.

至此, area1学习到了area2里面的路由信息, 实现了两个非骨干区域通过虚链路(area2-->R4-->R2-(R3)->R1-->area1)进行数据通信.

虚链路带来的环路: R1访问R5的时候: R1-R2-R3, 抓包会看到大量ICMP报文, TTL值会一直减少至0后被丢弃

有时间去看看虚链路环路实验

最后再强调一遍, 虚链路是对于问题网络规划的一种临时解决方案, 现实出现这种情况还是要对网络进行重新规划部署, 使非骨干区域都与骨干区域物理上相连.

4 外部路由计算

网络中存在部分链路未开启ospf协议如:

  • 路由器连接外部网络使用静态路由或者BGP协议;
  • 服务器直连的链路未开启ospf.

image-20221019203324060

4.1 基本概念

将其他路由协议的路由信息转换成当前路由协议可以识别的信息(五类LSA)然后进行传递.

image-20221019203451217

进行了引入操作的设备, 在ospf里面称之为ASBR(AS Boundary Router, 自治系统边界路由器), ASBR将外部路由信息以AS-external LSA(五类LSA)的形式再ospf网络内泛洪.

  • 配置命令

    ospf ospf-id
    import-route xxx
    

    xxx: static rip isis bgp direct...

4.2 五类LSA

一个五类LSA只能携带一个路由信息

  1. Link State ID(头部信息): 通告的网段信息;

  2. network mask: 掩码信息;

  3. E-type: 外部路由使用的度量(开销)类型, ospf将外部路由开销值类型分为两个type:

    type 1: 需要进行开销值累加(总开销值=内部开销值+外部开销值);

    type 2: 固定开销值为AS外部开销值.

  4. metric: 表示外部路由的开销值(ASBR去往外部路由的开销值)

  5. Forwarding Address: 转发地址, 表示去往目标网段的下一跳转发地址(大部分情况下为0.0.0.0)

  6. External Route Tag: 标记

五类LSA的含义: 大部分情况下, 表示有设备希望去往该外部路由的网段, 则将设备信息发送给ASBR.

存在问题:

  1. 跨区域之后ASBR的Router ID信息无法得知;

  2. 五类LSA传递信息全程不改变直接传递, 计算路由又是根据Router ID计算, 所以与ASBR不在同区域无法计算路由.

因此ospf在五类LSA之上, 增加了一个四类LSA, 用于辅助计算去往ASBR的路径. ABR在传递五类LSA的同时会生成一个四类LSA.

4.3 四类LSA

ABR在传递五类LSA的同时会生成一个四类LSA.

  1. Link static ID: 表示ASBR的Router ID信息;
  2. Adv Router: 表示产生该四类LSA的ABR设备的Router ID;
  3. network mask: 四类里面该字段无意义;
  4. metric: ABR设备去往ASBR设备的开销.

包含信息:

  1. ASBR的Router ID, 用于和五类LSA对应;
  2. ABR去往ASBR的开销, 用于计算其他区域的开销值;
  3. ABR的RID, 用于计算当前区域内部的开销值.

4.4 外部路由计算方法

在五类LSA中E-type为1时, 进行路由计算. (type 2时不用计算, 开销固定为外部开销值)

  1. 根据五类LSA, 得到路由信息;
  2. 找到ASBR的Router ID信息, 根据该信息, 在一类/二类LSA中找到去往ASBR的路径, 找到之后就根据一类+二类+五类LSA计算出内部开销值;
  3. 之后在五类LSA里面, 再看到ASBR去往外部的开销值.

根据以上信息, 就可以知道当前设备学到的路由信息总开销值(内部开销值+外部开销值).

image-20221023201051706

细说: 收到五类LSA的设备, 首先计算当前网络内去往ASBR的内部开销值, 然后看一下五类LSA的信息(开销值, 开销值类型), 如果开销类型为2(固定开销值)直接以五类LSA的metric值进行计算, 如果开销类型为1(累加), 则内部开销+五类开销;

4.5 避免次优路径

image-20221021205243509

当ospf进行外部路由引入时, 发现邻居的IP地址和当前收到的外部路由下一跳地址是同一个网段.如上图所示, RTB引入外部路由192.168.3.0/24, 通过五类LSA发送给RTA学习, 但RTA、RTB、RTC相连的端口处于同一个网段(中间存在二层设备, 图里没画), RTB去往RTC的下一跳是10.1.123.3, 此时如果没有设置FA地址, 则RTB发送给RTA的五类LSA会告知RTA要前往192.168.3.0/24的下一跳是RTB, 但是从拓扑结构上来看(不考虑开销差异)RTA->RTB->RTC是次优路径.

此时RTB设备为了避免次优路径, 于是在五类LSA的FA地址(Forwarding Address)字段写入了RTC的IP地址, 告诉RTA可以直接将数据转发给RTC来前往外部路由.

注: 路由传递才需要考虑协议, 数据转发是根据已经生成好的路由信息转发, 无需考虑协议类别问题.

FA被写入的基本条件:

  1. ASBR在连接外部路由的接口上开启了ospf, 如果没有开启, 则识别不到次优路径;
  2. 该接口没有配置silent-interface(静默接口);
  3. 接口的网络类型必须是广播Broad或者非广播NBMA网络;
  4. 该接口的IP地址在OSPF配置的network命令指定的网段范围内.

4.6 ospf路由优先级

一类二类生成的ospf路由称为区域内路由

三类生成的ospf路由称为区域间路由

五类(五类+四类)生成的路由称为外部路由(根据开销值类型(type)可以细分为两类: 一类外部路由、二类外部路由)

优先级: 区域内>区域间>一类外部>二类外部

5 总结

image-20221021212408234

  1. OSPF多区域设置的时候,通过报文如何判断ABR设备?
    ----一类LSA的Flag字段

  2. P2P网络和广播网络对于OSPF的差别?
    ----(是否需要选举DR)
    ----LSA里面的Link Type不一样
    ----P2P只需要一类LSA、广播需要一类+二类

  3. 一个网络里面只有一个区域10,是否可以正常工作?
    ----如果整个网络里面只有单区域,则无论该区域是什么编号(不管是不是骨干区域),都可以正常工作。
    ----如果该网络中出现多个不同区域(这些区域间也需要通信),那么必须要村子骨干区域,实现非骨干区域之间的互访。

  4. 在一个P2P网络里面,OSPF已经进入稳定邻居状态(FULL),拓扑稳定无变动运行了7小时之后,期间网络中交互哪些OSPF报文?
    ----此时OSPF邻接关系建立完成,且是FULL(拓扑稳定无变动)
    ----Hello报文(Hello默认10秒发送一次)
    ----LSU(OSPF的周期性更新1800秒)
    ----LSAck(对收到的LSU做确认)

  5. 常用的查看ospf lsdb中几类LSA报文的命令

    display ospf lsdb [router/network/summary/asbr/ase] [router-id/self] 
    

个人7k字纯手打学习随笔, 如有错字纰漏, 还望指正.

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  YOkriIV1Am1d   4天前   14   0   0 网络安全