园区网路由

OSPF网络类型

七大状态

状态 状态描述
Down OSPF最开始的状态
Init 初始化状态,收到对端发来Hello报文后状态为Init,但Hello报文中不含自己的Router ID
two-way 收到的Hello报文中包含有自己的Router ID ,则状态为2-way
Exstart 信息交换初始化状态,交互第一个DD报文,开始建立邻接状态
Exchange 信息交换状态,交互其余所有的DD报文
Loading 交互LSR,LSU,LSACK报文
Full 完全邻接状态
  • Down:发送hello报文
  • Init:接收到邻居发来的hello报文,但是该hello报文中没有自己的router id
  • Two-way:接收到的hello报文中,有自己的router-id,选举DR/BDR
  • Exstart: 交互第一个dd 报文,确认主从关系,保证传输可靠
  • Exchange:交互数据库描述信息
  • Loading:数据库同步
  • Full:完全邻接状态

建立邻居关系

  • OSPF使用Hello报文发现和建立邻居关系
  • 在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)
  • OSPF Hello报文中包含了路由器的RouterID、邻居列表等信息

6.2.1

同步数据库

6.2.2

DD报文部分字段解释

  • I:当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0
  • M (More):当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文
  • MS (Master/Slave):当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,RouterID大的一方会成为Master。当值为1时表示发送方Master
  • DD sequence number:DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性

OSPF网络类型

为什么要有网络类型

  • 因为OSPF运行在不同的链路层就会有不同的问题,比如运行在以太网,默认为广播的网络环境下,就会存在共享网段中邻居数量多的问题,占用设备资源的问题,所以有了多种网络类型来适应不同的网络环境

OSPF有四种网络类型

  • 广播类型(Broadcast)
  • 非广播类型(NBMA)
  • 点到点类型(P2P)
  • 点到多点类型(P2MP)

链路层协议

  • 当链路层协议是Ethernet,OSPF网络类型默认是Broadcast

  • 当链路层协议是fr(帧中继)时,国内都已经不用了,OSPF运行在这个网络环境中,默认使用NBMA的网络类型 (不常见)

  • 数据链路层运行的协议为PPP或者HDLC时,默认的网络类型为P2P

  • 点到多点就是多个点到点(不常见)

DR和BDR

广播网络中的问题

一个共享网段中,存在多个OSPF路由器,同步信息效率低

  • 任何一台路由器都会与其余所有路由器建立邻接关系,会形成n*(n-1)/2个邻接关系,管理复杂
  • 重复的发送和接收数据库信息,浪费带宽和设备资源

6.2.3

DR

DR(Designated Router):指定路由器

  • 其他所有路由器都与DR建立邻接关系,和DR交换链路状态信息
  • 其他路由器之间不建立邻接关系,不直接交换链路状态信息

6.2.4

BDR

BDR(Backup Designated Router):备份指定路由器

  • 为了规避单点故障风险,通过选举BDR,在DR失效时快速接管DR的工作
  • 当一个网段中,具有多个ospf路由器的时候,为了快速和可靠的实现ospf数据库同步,需要指定一个路由器,也就是DR
  • 选举为DR后,本网段中其他所有路由器,仅仅和DR同步消息,所以DR就拥有全部的数据库信息,所以DR非常重要
  • 如果DR一旦出现故障,会导致DR与其他所有的路由器的邻接关系失效,数据库无法同步信息,也无法进行路由计算和数据转发
  • 所以为了规避单点故障风险,会选举备份指定路由器,也就是BDR
  • 在DR失效时,BDR可以快速接管DR的工作

6.2.5

DR和BDR的作用

  • 减少邻接关系,降低设备负担
  • 降低OSPF协议流量
  • 加快数据库同步

DR与BDR的选举规则

DR/BDR的选举是非抢占式的

DR/BDR的选举是基于端口的

  • 接口的DR优先级越大越优先
  • 接口的DR优先级相等时,RouterID越大越优先

每个网段中DR只有一个,BDR可以没有,DR必须有一个,如果没有DR,邻居将会一直卡在Two-way状态,无法建立邻接,无法full

当DR优先级为0时,不参加DR选举,直接变成DR-other

哪个接口先配置IP地址和OSPF,哪个接口会成为DR

6.2.6

不同网络类型中DR与BDR的选举操作

OSPF网络类型 是否选举DR 是否和邻居建立邻接关系
P2P
Broadcast DR与BDR、DRother建立邻接关系,BDR与DR、DRother建立邻接关系,DRother之间只建立邻居关系
NBMA DR与BDR、DRother建立邻接关系,BDR与DR、DRother建立邻接关系,DRother之间只建立邻居关系
P2MP

路由器接口的角色分类

  • DR:指定路由器
  • BDR:备份指定路由器
  • DR-other:其他路由器
    • 同网段中,接口既不是DR,也不是BDR,就是DR-other

路由器接口的角色概述

  • DR,BDR,DR-other都是指的接口,不是指的路由器
  • 是在同一网段中选举DR,不是在一个区域中选举DR
  • 在运行OSPF的路由器的多个接口角色可能相同,也可能不同
    • 比如:同一台路由器1个接口是DR,另外1个接口是DR-other

DR优先级

查看接口的DR优先级

1
2
3
4
5
6
7
8
9
[R1]display ospf interface

OSPF Process 1 with Router ID 3.3.3.3
Interfaces

Area: 0.0.0.0 (MPLS TE not enabled) ##优先级,默认1
IP Address Type State Cost Pri DR BDR
192.168.23.3 Broadcast BDR 1 1 192.168.23.2 192.168.23.3
192.168.34.3 Broadcast DR 1 1 192.168.34.3 192.168.34.4

优先级默认为1

修改接口的DR优先级

1
2
3
[R1-GigabitEthernet0/0/0]ospf dr-priority 100               //修改接口优先级为100
<R3>reset ospf process //重启OSPF进程
Warning: The OSPF process will be reset. Continue? [Y/N]:y

OSPF数据库

OSPF数据库

OSPF数据库

  • OSPF数据库中,包含的是自己的链路状态信息,以及从邻居设备所学习过来的链路状态信息
  • 而OSPF协议,正是通过链路状态信息,才可以将最终的路由条目计算出来,用于指导数据转发

查看OSPF数据库

1
<R1>display ospf lsdb

LSDB:链路状态数据库

  • 作用:存储LSA

LSA:链路状态通告

  • LSA是什么:用于计算路由的网段信息和拓扑信息
  • 拓扑信息:拓扑图(我是谁,我连着谁)
  • 网段信息:IP地址,掩码,cost值
  • 拓扑信息和网段信息作用是什么? 计算路由, 他们都属于计算路由的源材料
  • 所以:LSA包含就是拓扑信息和网段信息,而拓扑信息和网段信息又是计算路由的原材料
  • 所以LSA就是计算路由的原材料
  • 数据库同步的过程,其实就是,邻居之间,LSA交换的过程

OSPF数据库解析

查看OSPF数据库

1
2
3
4
5
6
7
8
9
10
11
<R1>display ospf lsdb 

OSPF Process 1 with Router ID 1.1.1.1
Link State Database

Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 2.2.2.2 2.2.2.2 186 36 8000000C 1
Router 1.1.1.1 1.1.1.1 186 36 8000000F 1
Network 192.168.12.1 1.1.1.1 186 32 80000009 0
Sum-Net 192.168.45.0 2.2.2.2 186 28 80000008 3

LSA结构

LSA结构

  • Type:类型:表示的是LSA的各种类型
  • LinkState ID:名字:表示的是LSA的名字
  • AdvRouter:通告路由器:表示的是产生这个LSA的路由器的router-id
  • Age:年龄:表示的是LSA的老化时间,最大时间是3600s
  • Len:长度:表示的是LSA的大小(单位是字节)
  • Sequence:序列号:表示的LSA的新旧程度,数值越大表示越新
  • Metric:度量值:表示链路的度量值

常见的LSA类型

类型 名称 描述
1 路由LSA
(Router LSA)
每个设备都会产生,描述了区域内路由器的网段信息、拓扑信息与开销值
2 网络LSA
(Network LSA)
由DR产生,辅助1类LSA完善区域内的拓扑信息和掩码
3 网络汇总LSA
(Network Summary LSA)
由ABR产生,描述区域内某个网段的路由,该类LSA主要用于区域间路由的传递
4 ASBR汇总LSA
(ASBR Summary LSA)
由ASBR产生,描述到ASBR的路由
5 AS外部LSA
(AS External LSA)
由ASBR产生,用于描述到达OSPF的外部路由
7 非完全末梢区域LSA
(NSSA LSA)
由ASBR产生,用于描述到达OSPF的外部路由

Router LSA详解

Router LSA详解

Router LSA(1类LSA):

  • 每台OSPF路由器都会产生
  • 它描述了该路由器的拓扑信息、接口网络信息、度量值
  • Router LSA只能在所属的区域内传播
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<R2>display ospf lsdb router 2.2.2.2             //查看名字为2.2.2.2的LSA

OSPF Process 1 with Router ID 2.2.2.2
Area: 0.0.0.0
Link State Database

Type : Router //Router表示是1类LSA
Ls id : 2.2.2.2 //表示这条LSA的名字,是该路由器的RouterID
Adv rtr : 2.2.2.2 //发布这条LSA的路由器,用RouterID表示
Ls age : 982 //链路状态老化时间:此字段表示LSA已经生存的时间,单位是秒
Len : 36 //是一个包含LSA头部在内的LSA的总长度值
Options : E //每一个bit都对应了OSPF所支持的某种特性
seq# : 8000000f //链路状态序列号:当LSA每次有新的实例产生时,序列号就会增加
chksum : 0xff30 //校验和:用于保证数据的完整性和准确性。
Link count: 1 //作用:描述了设备的拓扑信息、网段信息、度量值
* Link ID: 192.168.23.2 //特点:每个设备都会产生1类LSA,1类LSA只能在区域内传输
Data : 192.168.23.2
Link Type: TransNet //连接类型
Metric : 1

//广播型网络中的1类LSA,给出我们的信息遗漏两个重要的因素
1)我们连接DR的那个接口的IP地址的掩码信息是多少,1类的LSA没有告诉我们
192.168.23.2的掩码是多少,学习1类LSA的邻居是无法感知到的

2)通过1类的LSA,我们无法感知到邻居的存在,也无法感知用哪个接口连接着邻居
只能感知到我们连接着DR

所以,在广播型网络中,我们学习到拓扑信息和网段信息不全,没有办法精确的计算出来路由
所以在广播型网络中,我们还需要2类LSA来弥补1类LSA的不足

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

Link Type Link ID Link Data
Point-to-Point(P2P):描述一个从本路由器到邻居路由器之间的点到点链路,属于拓扑信息 邻居路由器的Router ID 宣告该Router LSA的路由器接口的IP地址
TransNet:描述一个从本路由器到一个Transit网段(例如MA或者NBMA网段)的连接,属于拓扑信息 DR的接口IP地址 宣告该Router LSA的路由器接口的IP地址
stubNet:描述一个从本路由器到一个stub网段(例如Loopback接口)的连接,属于网段信息 宣告该RouterLSA的路由器接口的网络IP地址 该Stub网络的网络掩码

Network LSA详解

Network LSA详解

Network LSA(2类LSA):

  • 由DR产生,描述本网段的链路状态,在所属的区域内传播
  • Network LSA记录了该网段内所有与DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[R2]display ospf lsdb network 192.168.23.2

OSPF Process 1 with Router ID 2.2.2.2
Area: 0.0.0.0
Link State Database


Type : Network //表示是2类LSA
Ls id : 192.168.23.2 //这条LSA的名字,是该网段中DR这个接口的IP地址 Adv rtr : 2.2.2.2 //AdvRouter:发布这条LSA的路由器是DR接口所在的那台OSPF路由器的RouterID
Ls age : 6
Len : 32
Options : E
seq# : 8000000a
chksum : 0x4a68
Net mask : 255.255.255.0 //作用:补全DR所在网段的掩码信息,同时记录了该网段内所有与DR建立邻接关系的OSPF路由器,
Priority : Low 描述完整的区域内的拓扑信息
Attached Router 2.2.2.2 //特点:DR产生2类LSA,2类LSA仅仅在区域内传输
Attached Router 3.3.3.3 //最后两条信息,代表DR的管理范围
也就是说:2.2.2.2 连接着DR,要和DR建立邻接关系,这个2.2.2.2归DR管理
3.3.3.3 连接着DR,要和DR建立邻接关系,这个3.3.3.3归DR管理