OSPF 网络类型与网络类型互连
OSPF 网络类型
OSPF 接口根据链路类型可分成 4 种网络类型:
-
Point-to-point networks
-
Broadcast networks
-
NonBroadcast Multi-Access (NBMA) networks
-
Point-to-Multipoint networks
不同的网络类型,可使 OSPF 按不同方式来工作,具体见表所示。
类型 ~~~~~~~~~~~~~~~~~~~~~~ | 说明 |
---|---|
广播 | 当链路层协议是 Ethernet 时,缺省情况下,OSPF 认为网络类型是 Broadcast。 在该类型的网络中: 通常以组播形式发送 Hello 报文、LSU 报文和 LSAck 报文。 其中,224.0.0.5 的组播地址为 OSPF 设备的预留 IP 组播地址;224.0.0.6 的组播地址为 OSPF DR/BDR ( Backup Designated Router) 的预留 IP 组播地址。 以单播形式发送 DD 报文和 LSR 报文 |
NBMA | 当链路层协议是帧中继、ATM 时,缺省情况下,OSPF 认为网络类型是 NBMA。 在该类型的网络中,以单播形式发送协议报文 (Hello 报文、DD 报文、LSR 报文、LSU 报文、LSAck 报文) |
点到多点 P2MP | 没有一种链路层协议会被缺省地认为是 Point-to-Multipoint 类型。 点到多点必须是由其他的网络类型强制更改的,常用做法是将非全连通的 NBMA 改为点到多点的网络。 在该类型的网络中: 以组播形式 (224.0.0.5) 发送 Hello 报文。 以单播形式发送其他协议报文 (DD 报文、LSR 报文、LSU 报文、LSAck 报文) |
点到点 P2P | 当链路层协议是 PPP、HDLC 和 FrameRelay (仅 P2P 类型子接口) 时,缺省情况下,OSPF 认为网络类型是 P2P。 在该类型的网络中,以组播形式 (224.0.0.5) 发送协议报文 (Hell。报文、DD 报文、LSR 报文、LSU 报文、LSAck 报文) |
(1) Broadcast 网络是以太网等网络上的默认网络类型,它对网络的要求是接在网络上的所有节点直接建立全互联的邻居,并自动选举 DR, 完成和 DR 的同步。选举 DR 需要引入 Wait 时间,所以 Broadcast 网络上的邻居震荡时网络收敛时间较长。故很多园区网络中,如果网段只有两个 OSPF 节点,则使用 Point-to-Pomt 网络类型去替换需要选择 DR 的 Broadcast 网络类型,以提高收敛速度。
(2) Point-to-Point 网络类型需要工作在只有两个节点的环境中,彼此之间不需要选择 DR,建立邻居关系后,直接开始数据库同步,收敛较快。在生产网络中,园区网中的核心层和汇聚层之间往往使用多个点到点类型链路来取代 VLAN 中的 Broadcast 类型的以太网链路。
(3) NBMA 网络类型是 OSPF 在 FR/ATM 网络上的默认网络类型。虽然 FR 和 ATM 网络也是一种多点网络,但却无法像以太网一样,使用组播 / 广播地址发单份报文给所有其他节点,所以被称为 NBMA 网络。这种网络需要使用手工方式来指定邻居,不能使用组播自动发现邻居。使用 Peer 命令相互指定邻居的接口 IP 以建立邻居关系,并仅以单播的形式接收和发送报文 (所有报文都是单播)。NBMA 和 Broadcast 类型网络之间的区别只是发现邻居的方式不一样,LSDB 及计算拓扑的方式是一样的,甚至计算出的路由都是一样的。
NBMA 这种网络类型不适宜不规整的非广播网络拓扑,例如,在部分互联网络或不规则网络拓扑中,DR 的位置难于指定。需要手工指定邻居及 DR。DR 应设在所有 DRother 可直接同其建立邻居关系的位置,重新设计网络。
(4) P2MP 网络类型同样是为多点的网络而设计的一种网络类型。它的最大好处就是它可适用于任何不规则的网络,它不用考虑 DR 的位置,因为 P2Mp 不需要 DR, 它把网络看成任意多个点到点的链路。这明显区别于 OSPF 在 FR 上的其他网络类型 NBMA。NBMA 按广播网络来计算路由,而 P2Mp 像对待 P2P 网络一样来计算路由,其不选择 DR, 所以建立邻接时速度会快些。
各种网络类型互连
OSPF 下不同网络类型的接口间通过 Hello 报文建立邻居关系,由于 Hello 报文中没 Broadcast 和 P2P 这两种网络类型可以相互建立邻居关系,可以完成数据库同步,但却无法计算出对方的路由,原因是网络类型不一致,OSPF 在画二者逻辑拓扑时,Broadcast 需要连接到虚节点,而 P2P 网络需要和邻居节点直连,在逻辑拓扑上,二者无法连接到一起,所以计算路由时,互相都无法算出各自节点后面的路由。
各种网络互联的类型见表所示
网络类型组合 | 邻居建立 | 邻接同步 | 路由计算 | 补充说明 |
---|---|---|---|---|
NBMA + 其他网络类型 | 不可以 | —————— | —————— | NBMA 只能和同类型的节点建立邻居关系 |
P2MP + Broadcast | 调整间隔后可以 * | 可以 | 无法计算出对方路由 | 注:*Hello 和 Dead 间隔一致即可。 |
P2MP + P2P | 调整间隔后可以 | 可以 | 可以 | |
Broadcast + P2P | 可以 | 可以 | 无法计算出对方路由 |
via: huawei
OSPF 路由算法之 LSA
夜半少年 于 2020-03-18 00:08:21 发布
LSA—— 链路状态通告
一、LSA 固定头部
Type ~~~~~ | Age | Do not age flag | Link state id | ADV | Seq |
---|---|---|---|---|---|
LSA 的类型 | 表明 LSA 的产生时间 | LSA 永不老化标志位 | 不同的 LSA 的类型有不同的涵义 | Advertising Router,指明通告该 LSA 的设备 router id | 序列号,表明路由器产生 LSA 的顺序 |
OSPFv3:除了上面几类 LSA,还会有 8 类、9 类 LSA。
Do not age flag 为 1 时:LSA 不会周期更新,而是需要设置 LSA 永不老化,以维持 LSA 的有效性,用于按需链路中。
Seq:最小值为 0X80000001,最大值为 0X7FFFFFFF。序列号第一个 bit,若为 0,则代表是正值;若为 1,则代表是负值。
当始发路由器每产生一个;LSA 实例时,序列号增加 1,且序列号越大 LSA 越新。
判断 LSA 新旧
字段 | 判断方法 |
---|---|
sequence number | 值越大越新 |
checksum | 值越大越新 |
age | 若 age=3600s,则将该 LSA 删除; 若 age≠3600s,则看两类 LSA 的 age 的差值: age 间的差值 <900s,则认为两条 LSA 相同而丢弃后来的 LSA; age 间的差值>=900s,age 越小越新 |
二、六类 LSA 报文
LSA type | type name | function |
---|---|---|
1 类 | Router-LSA | 携带区域内的信息 |
2 类 | Network-LSA | 携带区域内的信息 |
3 类 | Summary-LSA | 携带区域间的信息 (ABR) |
4 类 | ASBR-summary-LSA | 携带区域间的信息 (ASBR) |
5 类 | AS-external | 携带 AS 外部路由信息 |
7 类 | NSSA-LSA | 携带 AS 外部路由信息 |
1 类 LSA——Router LSA(区域内的 LSA)
作用:描述本设备的接口网络类型、接口的 IP 地址、该接口建立的对端设备的信息、到达对端邻居的开销值。
生成者(ADV):每台启用了 OSPF 的设备都会产生;
传播范围:只能在区域内传播;
防环:使用 SPF 进行防环;
Link state id:产生该 LSA 的 route id;
flag:
① V=1,则代表该设备建立了 Vlink 的邻居;
② E=1,则代表该设备为 ASBR 设备(有做外部路由引入到 OSPF 中);
③ B=1,代表该设备为 ABR 设备;
Router LSA 链路类型对比分析:
Link Type | Link ID | Link Data |
---|---|---|
Transit | DR 的接口地址 | 本端的接口 IP |
Stub | 网络号 | 掩码 |
P2P | 对端的 RID | 本端的接口 IP |
Vritual link | 对端的 RID | 本端的接口 IP |
例子:
在 AR1 LSDB 查看:
<Huawei>dis ospf lsdb router
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
Link State Database
Type : Router
Ls id : 2.2.2.2
Adv rtr : 2.2.2.2
Ls age : 204
Len : 36
Options : E
seq# : 80000004
chksum : 0x34f0
Link count: 1
* Link ID: 10.1.1.1
Data : 10.1.1.2
Link Type: TransNet
Metric : 1
Type : Router
Ls id : 1.1.1.1
Adv rtr : 1.1.1.1
Ls age : 192
Len : 36
Options : E
seq# : 80000006
chksum : 0x6ebd
Link count: 1
* Link ID: 10.1.1.1
Data : 10.1.1.1
Link Type: TransNet
Metric : 1
2 类 LSA(区域内的 LSA)
作用:描述MA 网络,配合 1 类 LSA共同描述区域内的拓扑信息
生成者(ADV):DR 生成,DR 的 router id;
传播范围:只能在区域内传播;
Link state ID:DR 的 IP 地址;
Net mask:DR 所在网段的掩码;
Attached router:与 DR 相连的设备的 router id;(拓扑信息)
防环:使用 SPF 进行防环;
MA 网络是什么?
MA,multiple access,包含广播型、NBMA 型的网络
例子:
在 AR1 LSDB 查看:
<Huawei>dis ospf lsdb network
OSPF Process 1 with Router ID 1.1.1.1
Area: 0.0.0.0
Link State Database
Type : Network
Ls id : 10.1.1.1
Adv rtr : 1.1.1.1
Ls age : 265
Len : 32
Options : E
seq# : 80000003
chksum : 0x42f8
Net mask : 255.255.255.0
Priority : Low
Attached Router 1.1.1.1
Attached Router 2.2.2.2
3 类 LSA(区域间的 LSA)
作用:描述其他区域的路由信息,路由信息包含了路由前缀、掩码、去往该路由的开销;
生成者(ADV):ABR 生成
该区域有几个网段就会生成几条 3 类 LSA,3 类 LSA 不是凭空产生,是由 1 类 LSA 里面的 stubnet 的链路类型产生以及 2 类 LSA 中的 link state ID 和掩码一起生成;
Link state ID:路由的前缀;
Netmask:该路由的掩码;
metric:ABR 设备到达该网段的开销;
特点:3 类 LSA 每经过一个 ABR 设备,会将 3 类 LSA 中的 ADV 变为经过的 ABR 设备的 router id,并且会重新计算开销;
鉴于 3 类 LSA 没有拓扑信息容易出现环路,有相应的防环措施,如下:
(1)ABR 设备收到其他非骨干区域传递过来的 3 类 LSA,执行接收(同步 LSDB)不计算 LSA(防环);
(2)非骨干区域必须围绕骨干区域(区域 0)进行建立;
问题 1:当路由器收到了 LSA1 和 LSA2,路由器是如何来识别这两个 LSA 是否是同一个 LSA 的 ==?
答:LSA 头部有三个字段来标识一条 LSA,分别是: type 、Link State ID 、Advertising Router。
如果以上三个字段的值都相同,路由器便会认为这两 LSA 是同一个 LSA。
问题 2:如果两个 LSA 相同,路由器应该接收哪个 LSA?
答:LSA 头中,有三个字段来判断一条 LSA 的新旧:1、age,老化时间;2、Sequence Number,也即 LSA 序列号;3、Checksum 校验和
问题 3:路由器 LSA 是怎么样选举出来的?
答:选举的三个要素:1、序列号大的优先;2、校验和大的优先;3、比较老化时间。
a. 如果一条 LSA 为 3600 秒(即最大 age 时间),那就选择该 LSA。
b. 如果两个 LSA 的 age 时间之差大于 15 分钟,age 时间小的优先。
c. 如果两个 LSA 的 age 时间之差在 15 分钟之内,说明这两个 LSA 相同,随意选择一个即可。
OSPF 的区域设计原则
(1)非骨干区域必须围绕骨干区域(区域 0)进行建立;
(2)骨干区域不能被分割;
(3)两个区域或以上必须存在骨干区域(为了有 ABR 设备执行 1、2 类转 3 类的操作);
不规范的区域设计解决措施 ——vlink
实现:通过建立 vlink 实现延长区域 0 的范围;vlink 是属于区域 0;
vlink 建立的注意事项:
(1)建立 vlink 的设备要同处于一个相连的非骨干区域中;
(2)vlink 指的是对方的 router id;
vlink 只是一个临时的修补方案,不建议长期使用:
(1)加大非骨干区域设备的负担;
(2)加大非骨干区域链路的负担;
(3)虚连接不稳定;
vlink 配置:
ospf 1 router-id 10.1.1.1
area 0.0.0.1
vlink-peer 10.1.2.2
检查:
dis ospf vlink
4 类 LSA
作用:当需要访问外部路由的设备发现本设备和 ASBR 不在同一个区域,所以不能实现外部路由的访问,4 类 LSA 就可以帮助该设备找到 ASBR;描述 ABR 到达 ASBR 的开销;
生成者:ABR,ABR 的 router id;
Link state ID:ASBR 的 router id;
metric:ABR 设备到达 ASBR 的开销;
5 类 LSA (外部路由 LSA)
作用:描述引入的外部路由的前缀、掩码、开销;
特点:引入多少条外部路由,就会生成多少条 5 类 LSA;
产生者(ADV):ASBR(区域边界路由器)
Link state ID:引入的外部路由的前缀;
netmask:外部路由的掩码;
External type:开销类型;
(1)E1:既有 OSPF 内部的开销,也有 OSPF 外部的开销,外部开销也默认为 1;
(2)E2:只显示 OSPF 外部的开销,默认为 1;(默认类型为 E2)
假如现在运行了 OSPF 的路由器,收到了两条 5 类 LSA:
(1)若有 E1 也有 E2,比较开销类型,E1>E2;
(2)若两条 LSA 开销类型都为 E1,则比较开销总值,越小越好;
(3)若两条 LSA 开销类型都为 E2,则比较外部开销,越小越好,如果外部开销一致,则内部开销;
例子:
站在 AR1 LSDB 来看的:
<Huawei>dis ospf lsdb ase
OSPF Process 1 with Router ID 1.1.1.1
Link State Database
Type : External
Ls id : 10.0.2.0
Adv rtr : 2.2.2.2
Ls age : 629
Len : 36
Options : E
seq# : 80000001
chksum : 0x2a92
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1
Priority : Low
# 因为引入的是 direct 直连路由,所以 10.1.1.0 网段也包含进来了
Type : External
Ls id : 10.1.1.0
Adv rtr : 2.2.2.2
Ls age : 629
Len : 36
Options : E
seq# : 80000001
chksum : 0x2993
Net mask : 255.255.255.0
TOS 0 Metric: 1
E type : 2
Forwarding Address : 0.0.0.0
Tag : 1
Priority : Low
6、Forwarding address:转发地址 =
作用:可以防止次优路径;
生成条件:
(1)连接外部路由的接口必须是 MA 网络类型;
(2)连接外部路由的接口不能被静默的;
(3)连接外部路由的接口需要宣告进 OSPF 中;
不满足生成条件时,FA 则用 0.0.0.0 填充;
1、tag:标签,可用于路由控制;
2、OSPF 计算开销的:cost = 参考带宽(100M)/ 实际带宽,得出来的值小于 1,以 1 计算;
7、LSA 更新方式
(1)有携带拓扑信息:1、2 类 LSA 更新时,需要把整个新的 LSA 发送出来进行更新;
(2)只携带路由信息:3、4、5、7 类 LSA 更新时,直接将无效的 LSA 的 age=3600S 以后泛洪,让其他设备对该 LSA 进行老化;
8、OSPF 节省设备资源的操作 ——4 种特殊区域的创建
(1)stub(末节区域):过滤 OSPF 的 4、5 类 LSA,需要访问外部路由时,通过 ABR 设备下发的 0.0.0.0 缺省路由(3 类 LSA)实现;
(2)totally stub(完全末节区域):过滤 OSPF 的 3、4、5 类 LSA,需要访问其他区域的路由和外部路由时,通过 ABR 设备下发的 0.0.0.0 缺省路由(3 类 LSA)实现;
(3)NSSA(no so stub area):过滤 OSPF 的 4、5 类 LSA,NSSA 区域的设备引入的外部路由在区域内则变为 7 类 LSA,如果需要访问其他区域的设备引入的外部路由,通过 ABR 设备下发的 0.0.0.0 缺省路由(7 类 LSA)实现;如果其他区域需要访问 NSSA 区域的设备所引入的外部路由,通过 ABR 设备(router id 大)将 NSSA 区域引入的 7 类 LSA 转换成 5 类 LSA 实现;
(4)totally NSSA:过滤 OSPF 的 3、4、5 类 LSA,如果需要访问其他区域或者其他区域的设备引入的外部路由,通过 ABR 设备下发的 0.0.0.0 缺省路由(7 类 LSA)实现;
九、路由汇总:
(1)区域间的路由汇总:
在 ABR 设备上进行实现,如果汇总以后不通告相当于将路由过滤;
配置:
ospf 1 router-id 2.2.2.2
area 0.0.0.1
abr-summary 172.16.0.0 255.255.0.0
(2)外部路由的汇总:
在 ASBR 设备上汇总,也可以在 7 转 5 的 ABR 设备上做汇总;
配置:
ospf 1 router-id 3.3.3.3
asbr-summary 100.1.1.0 255.255.255.0
via:
-
一篇文章彻底理解【OSPF路由算法之LSA】_ospf通过lsa计算路由-CSDN博客 夜半少年 于 2020-03-18 00:08:21 发布