- OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的IGP协议之一。
- IPv4协议使用OSPF Version 2(RFC2328);IPv6协议使用OSPF Version 3(RFC2740)。
- OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总。
- 运行OSPF路由器之间交互的是LS(Link State,链路状态)信息,而不是直接交互路由。
- OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。
- 每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。
- 路由器依据这些路径形成路由加载到路由表中。
动态路由协议的分类 | |
按工作区域分类 | |
IGP(Interior Gateway Protocols,内部网关协议) | RIP、OSPF、IS-IS |
EGP(Exterior Gateway Protocols,外部网关协议) | BGP |
按工作机制及算法分类 | |
(Distance Vector Routing Protocols,距离矢量路由协议) | RIP(很少用) |
(Link-State Routing Protocols,链路状态路由协议) | OSPF、IS-IS |
OSPF基础术语 | |
区域 | OSPF Area用于标识一个OSPF的区域;区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识。 |
Router-ID | Router-ID(Router Identifier,路由器标识符),用于在一个OSPF域中唯一地标识一台路由器。 |
度量值(Cost)开销 | 一条OSPF路由的Cost值可以理解为是从目的网段到本路由器沿途所有入接口的Cost值累加。 |
OSPF协议报文类型 | |
Hello | 周期性发送,用来发现和维护OSPF邻居关系。 |
Database Description(DD) | 描述本地LSDB的摘要信息,用于两台设备进行数据库同步。 |
Link State Request(LSR) | 用于向对方请求所需要的LSA。 |
Link State Update(LSU) | 用于向对方发送其所需要的LSA。 |
Link State ACK(LSA) | 用来对收到的LSA进行确认。 |
RA | OSPF状态机 | RB | |
Hello报文,我是1.1.1.1,我还不知道链路上有谁 | ---->>> | Init | |
2-way | Hello报文,我是2.2.2.2,我发现了邻居1.1.1.1 | <<<---- | |
Hello报文,我是1.1.1.1,我发现了邻居2.2.2.2 | ---->>> | 2-way | |
邻居关系建立成功 | |||
Ex-start | DD我是Master,序列号X我的Router-ID是1.1.1.1 | ---->>> | Ex-start |
Exchange | DD我是Master,序列号Y我的Router-ID是2.2.2.2 | <<<---- | |
DD(序列号为Y,rou-id大为主)这是我的LSDB中的LSA摘要信息 | ---->>> | Exchang | |
DD(序列号Y+1递增)这是我的LSDB中的LSA摘要信息 | <<<---- | ||
Loading | LSR我要请求xx LSA的完整信息 | ---->>> | Loading |
LSU这是你请求的xx LSA的完整信息 | <<<---- | ||
...... | |||
Full | LS ACK确认收到LSU | ---->>> | Full |
OSPF网络类型 | |
P2P(Point-to-Point,点对点) | 一段链路上只能连接两台网络设备的环境。 |
BMA(Broadcast Multiple Access,广播式多路访问) | BMA也被称为Broadcast,指的是一个允许多台设备接入的、支持广播的环境。 |
NBMA(Non-Broadcast Multiple Access,非广播式多路访问) | 典型的例子是帧中继(Frame-Relay)网络。 |
P2MP(Point to Multi-Point,点到多点) | 常用做法是将非全连通的NBMA改为点到多点的网络。 |
一般情况下,链路两端的OSPF接口网络类型必须一致,否则双方无法建立邻居关系 |
- OSPF路由器身份:
- DR(Designated Router,指定路由器)。
- BDR(Backup Designated Router,备用指定路由器)。
- DRother路由器。
- DR、BDR与其他OSPF路由器建立邻接关系。
- DRother之间只能保持邻居关系,停滞在2-way状态。
- BDR会监控DR的状态,并在当前DR发生故障时接替其角色。
- OSPF域(Domain):一系列使用相同策略的连续OSPF网络设备所构成的网络:
- OSPF路由器在同一个区域(Area)内网络中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。
- 如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题:( LSDB越来越庞大、OSPF路由表规模增加、路由器资源消耗多、设备性能下降、影响数据转发、庞大的LSDB进行路由计算变得困难、网络拓扑变更时,LSA全域泛洪和全网SPF重计算带来巨大负担。)
- OSPF引入区域(Area)的概念,将一个OSPF域划分成多个区域,可以使OSPF支撑更大规模组网。
- OSPF多区域的设计减小了LSA泛洪的范围,有效的把拓扑变化的影响控制在区域内,达到网络优化的目的。
- 在区域边界可以做路由汇总,减小了路由表规模。
- 多区域提高了网络扩展性,有利于组建大规模的网络。
- OSPF路由器根据其位置或功能不同,有这样几种类型:
- 区域内路由器(Internal Router)
- 区域边界路由器ABR(Area Border Router)
- 骨干路由器(Backbone Router)
- 自治系统边界路由器ASBR(AS Boundary Router)
OSPF基础配置 |
[R1]ospf 1 router-id 1.1.1.1 ##创建ospf进程并设置router-id |
[R1-ospf-1]area 0 ##创建骨干区域 |
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.255 ##宣告网段+反掩码 |
[R1-GE0/0/1]ospf cost 100 ##修改ospf开销(取值1~65535) |
[R1-ospf-1]bandwidth-reference 10000 ##设置带宽参考值(缺省100) |
[R1-GE0/0/1]ospf dr-priority ##设置选举DR优先级(取值0-255) |
OSPF三大表项 |
[R1]display ospf peer ##查看邻居表 |
[R1]display ospf lsdb ##查看OSPF库 |
[R1]display ospf routing ##查看OSPF路由表 |