OSPF----开放最短路径优先协议
0x00 OSPF简介
OSPF是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法被用来计算最短路径树。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。不同厂商管理距离不同,思科OSPF的协议管理距离(AD)是110。
0x01 OSPF数据包类型
1.Hello — Hello 数据包用于与其它 OSPF 路由器建立和维持相邻关系。Hello 协议将在下一主题中详细讨论。
2.DBD — DBD(数据库说明) 数据包包含发送方路由器的链路状态数据库的简略列表,接收方路由器使用本数据包与其本地链路状态数据库对比。
3.LSR — 随后,接收方路由器可以通过发送链路状态请求 (LSR) 数据包来请求 DBD 中任何条目的有关详细信息。
4.LSU — 链路状态更新 (LSU) 数据包用于回复 LSR 和通告新信息。LSU 包含七种类型的链路状态通告 (LSA)。LSU 和 LSA 将在下一主题中简略讨论。5. LSAck - 路由器收到 LSU 后,会发送一个链路状态确认 (LSAck) 数据包来确认接收到了 LSU。
0x02 OSPF路由器ID
OSPF 路由器 ID 用于唯一标识 OSPF 路由域内的每台路由器。一个路由器 ID 其实就是一个 IP 地址。
Cisco 路由器按下列顺序根据下列三个条件确定路由器 ID:
1.使用通过 OSPF router-id 命令配置的 IP 地址。
2.如果未配置 router-id,则路由器会选择其所有环回接口的最高 IP 地址。
3.如果未配置环回接口,则路由器会选择其所有物理接口的最高活动 IP 地址。
0x03 DR与BDR的选举
在多路访问网络中,OSPF 会选举出一个指定路由器 (DR) 负责收集和分发 LSA。还会选举出一个备用指定路由器 (BDR),以防指定路由器发生故障。其它所有路由器变为 DROther(这就表示该路由器既不是 DR 也不是 BDR)。
DR 和 BDR 是如何选出的呢?选举过程遵循以下条件:
1.DR:具有最高 OSPF 接口优先级的路由器
2.BDR:具有第二高 OSPF 接口优先级的路由器
3.如果 OSPF 接口优先级相等,则取路由器 ID 最高者。
0x04 OSPF配置
各个端口地址分配如图中所示,按照图中配置好各个端口的地址。
配置OSPF协议
在R1上做以下配置
R1(config)#router ospf 1
R1(config-router)#network 10.0.0.2 0.0.0.0 area 0
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.3.0 0.0.0.255 area 0
在R2上做以下配置
R2(config)#router ospf 1
R2(config-router)#network 10.0.0.1 0.0.0.0 area 0
R2(config-router)#network 192.168.1.0 0.0.0.255 area 0
R2(config-router)#network 192.168.2.0 0.0.0.255 area 0
R2(config-router)#network 192.168.3.0 0.0.0.255 area 0
在R3上做以下配置
R3(config)#router ospf 1
R3(config-router)#network 10.0.0.3 0.0.0.0 area 0
R3(config-router)#network 192.168.2.0 0.0.0.255 area 0
R3(config-router)#network 192.168.1.0 0.0.0.255 area 0
R1路由器的路由表
R2路由器的路由表
R3路由器的路由表
0x05 其他配置命令
show ip ospf neighbor //检查路由器的邻接状态
show ip protocols //查看运行的路由协议及协议相关的信息
show ip ospf //查看OSPF协议信息及各种计时器
show ip ospf interface //查看OSPF的接口相关配置信息