三、OSPF 协议
1.Router-id
是一个32bit长度的数值。类似于IP地址,例如 192.168.200.1
,唯一标识一台使用ospf的路由器。
配置方法:
# 配置LookBack回环地址
interface lookback 0
ip address 1.1.1.1 32
quit
# 配置ospf 的 router-id
ospf 1 router-id 1.1.1.1
2. 重启OSPF协议
reset ospf proccess
3. OSPF的三张表
-
邻居表
两台直连的路由器需要建立邻居关系,接口激活了OSPF后,接口会周期发送Hello报文。邻居会写入邻居表。
display ospf peer # 显示邻居
-
链路状态数据库
a. 链路状态协议的路由器在网络中泛洪链路状态信息,这些信息被称为 LSA (链路状态通告)。
b. LSA ->(装载到) LSDB 中,让路由器对于整体网络拓扑图完整认知。
display ospf lsdb
-
OSPF路由表
OSPF 会根据 LSDB中的数据,通过SPF算法计算出最优路径,最终把结果加载到全局路由表中。
display ospf routing # 查看ospf路由表
4. OSPF 报文类型及格式
OSPF基于IP协议,头部协议号为89
。OSPF使用组播的方式作为目的IP地址。
224.0.0.5 # 指向所有OSPF的路由器
224.0.0.6 # 指向所有OSPF DR路由器
OSPF 使用了5种报文类型如下:
类型 | 报文名称 | 报文描述 |
---|---|---|
1 | Hello | 发现OSPF邻居,维护邻居关系 |
2 | DD(数据库描述) | 描述LSDB,携带LSDB中LSA的头部数据(仅仅只是头部) |
3 | LSR(链路状态请求) | 向OSPF邻居请求LSA |
4 | LSU(链路状态更新) | 发送LSA,LSA是承载在LSU中泛洪的 |
5 | LSAck(链路状态确认) | 收到LSU后,确认收到 |
5. Hello 报文
默认缺省情况下
1. P2P或者Broadcast类型的接口上的Hello间隔为10s。
2. NBMA及P2MP类型的接口上的Hello间隔为30s。
6. 邻接关系
OSPF邻居状态
- Down(失效) ,此时暂未收到任何Hello报文。
- Init(初始),此时已经发现某个邻居发来的Hello报文,但未发现自己的Router-ID时候,准备接下来继续发送Hello报文给对方,带上自己的Router-ID。
- Attempt(尝试),未收到邻居回应的Hello报文。
- 2-way (双向通信),发送空的DD报文,不携带LSA头部信息,只是用于协商Master路由器。
- Exchange(交换),发送描述自己LSDB的LSA头部信息,完整的DD报文。
- Loading(加载),发送LSA请求完整的LSA,对方回应LSU。
- Full,全部完成同步。
7. DR和BDR的概念
一个MA网络中需要选举一个DR指定路由,一个BDR备用指定路由,其它为DROther。所有DROther都只和DR还有BDR建立邻接关系,其它DROther之间只在2-way状态,极大减少网络中信息交换量。
8. OSPF角色
1. 内部路由器(IR),所有接口都在一个区域内并且激活OSPF。
2. 区域边界路由器(ABR),至少有一个接口在Area0中激活,同时还有其它接口在其他区域激活。
3. 骨干路由器(BR),路由器所有接口都在Area0中激活,并且ABR也是骨干路由。
4. 边界路由器(ASBR)
9. OSPF单区域配置
掩码的反码
ospf 1 router-id 1.1.1.1
area 0
network 172.16.1.0 0.0.0.255 # 172.16.1.254/24
network 172.17.12.0 0.0.0.3 # 172.17.12.2/30
10. OSPF报文认证
ospf 1
area 0
authentication-mode md5 1 cipher huawei123 # 1 为 Key-ID
ospf 1
area 0
authentication-mode simple cipher huaweixx