一、定义
OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的IGP协议之一
目前针对IPV4协议使用的是OSPF Version2(RFC2328);针对IPV6协议使用OSPF Version3(RFC2740);
运行在OSPF路由器之间交互的是LS(Link State 链路状态)信息,而不是直接交互路由。
OSPF支持VLSM(可变长子网掩码),支持手工路由汇总
在核心交换机和汇聚交换机以及出口路由器上运行OSPF,实现园区网络内的路由可达。、
二、OSPF基础术语
1.区域
OSPFArea 用于标识一个OSPF的区域。
区域是从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识
OSPF协议通过区域将网络分为两层的结构:第一层叫做骨干区域,第二层叫作非骨干区域
原则:①骨干区域Area 0,有且只有一个
②骨干区域Area 0,必须要连续
③其他非0的区域称为非骨干区域,非骨干区域必须要与骨干区域直接相连
如果是单区域(只有一个区域),就规划为Area0即可。两个非骨干区域相接是不通的

2.Router-ID
Router-ID路由标识符,用于在一个OSPF域中唯一的标识一台路由器。
Router-Id的设定可以通过手工配置的方式,或使用系统自动配置的方式。
区域的边界在路由器上,划分区域就是将路由器的接口进行区域的划分
Router-ID格式是点分十进制,与IP地址格式相同,但通常没有地址的意义。
一台路由器只能有一个Router-ID,无论这台路由器的不同接口在多少个区域内。
华为设备 出厂有个全局的默认Router-ID,默认值为0.0.0.0,第一个配置在这台设备接口上的有效的IP地址会自动默认设置为这台设备的全局Router-ID。当然也可以人为的配置。
默认情况下当OSPF协议没有配置协议的router-id时,默认使用全局router-id作为协议的router-id。
认为修改配置全局router-id后,协议的router-id并不会随之改变,需要重置OSPF
<R1>reset ospf process。 //不要修改Router-id,网络会瘫痪
当配置OSPF协议时,人为配置了协议的Router-id,则人为配置的优先使用。
实际项目中使用设备上的LoopBack接口地址作为Router-ID,并且人为配置接口地址为ospf router id;如果设备没有LoopBack接口则人为规划地址,OSPF域内唯一即可。
Huawei\]int g0/0/0
\[Huawei-GigabitEthernet0/0/0\]ip add 10.1.12.2 24
\[Huawei-GigabitEthernet0/0/0\]int lo 0
\[Huawei-LoopBack0\]ip add 2.2.2.2 32
\[Huawei-LoopBack0\]q
\[Huawei\]dis router id \\\\查看全局router-id
RouterID:10.1.12.2 \\\\第一个配置的接口ip为全局ip
\[Huawei\]ospf 1 router-id 2.2.2.2 \\\\将OSPF协议里的router-ip配置成与环回口ip相同
\[Huawei-ospf-1\]q
\[Huawei\]dis router id
RouterID:10.1.12.2
\[Huawei\]dis ospf brief
OSPF Process 1 with Router ID 2.2.2.2 \\\\process--OSPF进程号
OSPF Protocol Information
RouterID: 2.2.2.2 Border Router:
Multi-VPN-Instance is not enabled
Global DS-TE Mode: Non-Standard IETF Mode
Graceful-restart capability: disabled
Helper support capability : not configured
Applications Supported: MPLS Traffic-Engineering
Spf-schedule-interval: max 10000ms, start 500ms, hold 1000ms
Default ASE parameters: Metric: 1 Tag: 1 Type: 2
Route Preference: 10
ASE Route Preference: 150
SPF Computation Count: 0
RFC 1583 Compatible
Retransmission limitation is disabled
Area Count: 0 Nssa Area Count: 0
ExChange/Loading Neighbors: 0
Process total up interface count: 0
Process valid up interface count: 0

### 3.**开销值(度量值)**
开销cost 度量matric
OSPF使用cost开销作为路由的度量值,每一个激活了OSPF的接口都会维护一个接口cost值,缺省时接口cost=100Mbit/s÷接口带宽。其中100Mbit/s为OSPF指定的缺省参考值,该值是可以配置修改的。
计算开销值是如果出现小数位,采用去尾法。值不足1就取1
笼统的说,一条OSPF路由的cost值可以理解为是从目的网段到本路由器沿途所有**出接口**cost值的累加
华为、华三设备认为环回口默认开销为0,思科设备认为环回口开销默认为1。

链路带宽大于参考带宽时就可能会导致路由器选择了低速链路,此时可以将参考带宽改大。
修改标准带宽
\[Huawei\]ospf 1
\[Huawei-ospf-1\]bandwidth-reference 1000 \\\\修改带宽标准为100Mbit/s,在现在项目中大概率都会改
Info: Reference bandwidth is changed. Please ensure that the reference bandwidth
that is configured for all the routers are the same.
\\\\请确保在所有路由器上配置成一样
\[Huawei\]INT G0/0/0
\[Huawei-GigabitEthernet0/0/0\]ospf cost 10 \\\\将接口带宽开销改为10,人为设置的带宽优先级大于默认
因为开销不同可能会出现来回路径不一致,在问题排错的时候要知道来回经过了哪些链路,确定是哪条链路出问题,进行故障的定位和排除。
在项目中建议链路两端开销都改成一样的

## 三、**OSPF协议报文类型**
OSPF有五种类型的协议报文,这些报文在OSPF路由器之间交互起不同的作用。
|--------------------------------|---------------------------------------------------|
| 报文名称 | 报文功能 |
| Hello | 周期性发送,用来发现和维护OSPF邻居关系 |
| Database Description (DBD\\DD) | 描述本地LSDB的摘要信息,用于两台设备进行数据库同步 |
| Link State Request (LSR) | 用于向对方请求所需要的LSA,设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文 |
| Link State Update (LSU) | 用于向对方发送其所需要的LSA |
| Link State ACK | 用来对收到的LSA进行确认 |
## 四、OSPF三大表项
OSPF有三张重要表项:**OSPF邻居表、LSDB表和OSPF路由表**
### 1.OSPF邻居表
OSPF在传递链路信息之前,需先建立OSPF邻居关系
OSPF邻居关系通过交互Hello报文建立
OSPF邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。
【R1】display ospf peer
\
同一种协议的不同进程和不同种协议的不同进程都是用来在本地隔离路由域的,没有全局意义。
路由协议的路由进程在本地实现路由域的隔离,路由器在多个域的边界隔离不同域时使用多个进程。
一个接口只能加到一个进程中。项目中用一个路由域的设备配置相同的进程号,方便管理。
2.LSDB链路状态数据库
LSDB会保存自己产生的及从邻居收到的LSA信息
Type标识LSA的类型,AdvRouter标识发送LSA的路由器
使用命令行display ospf lsdb查看LSDB表
<HUAWEI> display ospf lsdb
OSPF Process 1 with Router ID 10.1.1.1
Link State Database
Area: 0.0.0.0 \\在区域0中拥有的所有链路信息
Type LinkState ID AdvRouter Age Len Sequence Metric
类型
Router 10.1.1.1 10.1.1.1 1348 48 800007C9 10000
Router 10.1.1.2 10.1.1.2 1078 60 80000654 0
Network 192.168.10.1 192.168.10.1 1349 32 80000060 0
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 0.0.0.0 10.1.1.2 1743 36 800005FE 1
3.路由表
OSPF路由表和路由器表是两张不同的表项。本例中OSPF路由表有三条路由
OSPF路由表包含Destination、cost NextHop等指导转发的信息
使用命令display ospf routing
<HUAWEI> display ospf routing
OSPF Process 1 with Router ID 10.2.2.9
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
目的网段 开销 链路类型 下一跳 路由器ID 域
10.12.12.0/24 1 Transit 10.12.12.10 10.2.2.9 0.0.0.1
10.13.13.0/24 1 Stub 10.13.13.1 10.2.2.9 0.0.0.0
10.11.11.0/24 2 Transit 10.12.12.11 10.0.0.1 0.0.0.1
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
10.0.0.0/8 1 Type2 1 10.12.12.11 10.0.0.1
Total Nets: 4
Intra Area: 3 Inter Area: 0 ASE: 1 NSSA: 0