OSPF基础
OSPF基础
- ospf是基于链路状态的路由协议
- 基于OSPF算法实现
- 以“累计链路开销作为度量值选路”
OSPF工作过程
- 建立邻居
- 同步链路状态数据库
- 计算最优路由
OSPF的建立过程
一、邻居建立
ospf邻居建立通过Hello报文完成的
Hello报文作用
- 邻居发现:自动发现邻居
- 邻居建立:完成Hello报文中的参数协商
- 邻居保持:通过Keepalive机制,检测邻居运行状态
对于不支持组播的网络可以通过手动配置实现邻居的发现与维护。
1
2
ospf 1
peer 10.1.1.2 # 对端接口ip
二、链路状态信息
- 链路类型
- 接口IP地址及掩码
- 链路上所连接的邻居路由器
- 链路的带宽(开销)
网络类型
P2P网络
- 仅两台路由互联
- 支持广播、组播
广播型网络
- 两台或两台以上的路由器通过共享介质互连。
- 支持广播、组播。
NBMA网络
- 两台或两台以上路由器通过VC互连。
- 不支持广播、组播。
P2MP网络
- 多个点到点网络的集合。
- 支持广播、组播。
OSPF的度量方式
某接口cost=参考带宽/实际带宽。
更改cost的两种方式:
- 直接在接口下配置;
- 修改参考带宽(所有路由器都需要修改,确保选路一致性)。
个人看法:路由的出接口;回传路由的入接口
三、报文类型及作用
OSPF报文协议号为89
OSPF报文类型
type | 报文名称 | 报文功能 |
---|---|---|
1 | Hello | 发现和维护邻居关系 |
2 | Database Description | 交互链路状态数据库摘要 |
3 | Link State Request | 请求特定的链路状态信息 |
4 | Link State Update | 发送详细的链路状态信息 |
5 | Link State Ack | 发送确认报文 |
OSPF报文的功能需求
功能 | 实现分析 |
---|---|
发现邻居与保持 | Hello机制即可实现 |
LSA同步 | 双方互相发送LSA,完成同步;同时同步速度更快,占用资源更少 |
可靠性 | 确保LSA同步过程的可靠性 |
四、LSDB同步过程
- A向B发送DD报文
- B回复A DD报文
- A向B发送DD报文 这一步选举自从关系
- 这一步确定主从关系
- 继续确定
- A向B请求LSA信息
- B回复A 自己的LSA信息 A则自己计算路由
- 最后LSAck确定
五、DR与DBR的选举及作用
在这个网络中就会出现 n×(n−1)/2 个邻接关系
还有重复的LSA泛洪,浪费资源
这时就要选举DR跟BDR
作用
- 减少邻居关系
- 降低OSPF协议流量
怎么选举
选举规则:DR/BDR的选举是基于接口的。
- 接口的DR优先级越大越优先。
- 接口的DR优先级相等时,Router ID越大越优先。
- 是不抢占机制,后加入到网络的的设备,就算接口优先级在高也不是DR
- 接口优先级为 0 不参与选举
邻居与邻接关系
网络类型 | 是否建立邻接关系 |
---|---|
P2P | 是 |
Broadcast | DR与BDR 、DRother建立邻接关系BDR与DR、DRother建立邻接关系DRother之间只建立邻居关系 |
NBBMA | DR与BDR 、DRother建立邻接关系BDR与DR、DRother建立邻接关系DRother之间只建立邻居关系 |
P2MP | 是 |
OSPF 域间路由
ospf多区域
作用:
减少LSA的泛洪
特点
同一区域 交互一类、二类LSA
路由器角色:
IR:所有接口都属于一个区域
- 区域内路由器只需要维护本区域的路由
ABR:设备的接口分别连接多个区域
- 但是边界路由器需要维护连接的区域的路由交换
ABR会将一个区域内的一类、二类LSA转换成三类 LSA 发送给别的区域,这时候就不是发送LSA信息了而是转换成路由信息发送别的区域(这个转换传输一定是双向的)
一个路由条目对应一个 三类LSA(ABR产生三类LSA)
三类LSA的内容:
名字 | 解释 |
---|---|
LS Type | 3类 |
LS ID | 目标网段 |
ADV R | 产生此三类LSA的Routr ID |
Net mask | 网络掩码 |
Tos 0 | 开销值 |
区域间路由计算
AR3到达10.0.12.0 网络的cost值为 出接口3+521=524。也就是AR3到达ABR的cost3+AR2本身的LSA3的cost值
区域间路由防环机制
所有区域必须跟Area0相连
这种可以的
这种则是不可以的,违反了规则
如果非骨干区域没有跟骨干区域相连可以使用虚链路(OSPF的特性之一)来实现互通
虚链接配置
需要配置虚链路
1 |
|
1 |
|
OSPF 域内路由
对于P-2-P网络,可以通过 1类 LSA进行性路由计算
对于MA或者NBMA网路,需要 1类 和 2类 LSA进行路由计算
Route-LSA(一类)
每台开启了OSPF的设备都会产生一类LSA
一类LSA头部信息
信息 | 描述 |
---|---|
Type | LSA类型 |
Ls id | 链路状态ID |
Adv rtr | 产生此LSA的路由器的Router ID |
一类LSA的链路类型(三种):
三种链路类型:
- P-2-P(拓扑信息):描述本路由器和邻居之间,属于点到点网络
- StubNet(路由信息):描述一个从本地路由器到一个 stub 网段(Loopback接口)的链路
- TransNet(拓扑信息): 描述从本地路由器到一个TransNet网段(MA网段或者NBMA网段)的链路
链路状态信息:
LInk Type:LSA类型
Link ID:链路状态ID:生成LSA的RID ,该链路对端的标识,不同的链路类型所对应的LinkID是不同的。
不同链路中 | Link ID的含义 |
---|---|
P-2-P链路类型中 | 邻居路由器的RouterID |
StubNet链路类型中 | stub 网段的 IP 地址 |
TransNet链路类型中 | DR的接口 IP 地址 |
Data:用于描述粗链路的附加信息,链路类型不同对用的值也不同
不同链路类型中 | Data的含义 |
---|---|
P-2-P链路类型中 | 本路由器的接口IP地址 |
StubNet链路类型中 | 该Stub网络的网络掩码 |
TransNet链路类型中 | 本路由器的接口IP地址 |
Metric:链路的开销
一条一类LSA可以描述多个链路状态信息
1 |
|
Network-LSA(二类)
只有DR会产生二类LSA
一类LSA头部信息
信息 | 描述 |
---|---|
Type | LSA类型 |
Ls id | DR的接口IP地址 |
Adv rtr | DR的Router ID |
1 |
|