OSPF
路由协议:用于确定数据包传输路径的协议,建立和维护路由表,工作在传输层与应用层,如OSPF、IS-IS
可路由协议:可被路由器转发的协议,工作在网络层,如IPv4、IPv6
衡量路由协议的主要指标:准确性、收敛速度、开销、安全性、适用的网络规模、厂商之间的兼容性
内部网关协议用于同一个AS之内,外部网关协议用于不同AS号之间
距离矢量路由协议
运行距离矢量路由协议的路由器周期性的泛洪自己的路由表
通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中
对网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的的方向在哪里,距离有多远
链路状态路由协议
链路状态路由协议通告的是链路状态而不是路由表
运行链路状态路由协议的路由器之间首先会建立一个协议的邻居关系,然后彼此之间开始交互链路状态通告(LSA),存储在LSDB中的LSA经过SPF算法计算出最优路径之后存储在路由表中
*SPF算法:最短路径优先算法,以自己为源,计算出最优的无环路径
链路状态路由协议的LSDB相同,路由表不同
OSPF
开放最短路径优先协议,基于IP协议号89,属于传输层的协议
-
用Hello包确认连接:每个路由器向相邻路由器发送Hello数据包,以确认连接状态。Hello数据包包含路由器的标识信息、接口信息等,用于建立和维护邻居关系。
-
交换链路状态信息:在确认连接后,路由器之间开始交换链路状态信息(LSA),包括每个路由器所连接的线路的带宽、延迟等。这些信息被收集并存储在链路状态数据库(LSDB)中。
-
计算路由表:基于LSDB中的信息,路由器使用最短路径优先(SPF)算法来计算路由表。SPF算法选择成本最低的路由作为最优路由,其中成本通常根据带宽设置,但也可以由网络管理员根据需要进行调整
-
RID(router-ID):作为OSPF路由器的唯一标识,不能冲突,可以手工配置也可以自动选举
-
选举规则:
①手工指定最优先
②如果没有手工指定,选择最大的双UP的回环口的IP地址
③如果没有回环口,选择最大的双UP的物理接口的IP地址
- 开销:用于衡量路径长短,越小越优
接口开销=10^8/接口带宽,以太网接口默认为10,回环口默认为1,串行接口默认为64
链路开销=源到目标路径上所有出接口的开销之和
-
组播地址:224.0.0.5:所有启用了OSPF的路由器都会加入的一个组播地址
224.0.0.6:只有DR和BDR加入的组播地址
-
DR:指定路由器
BDR:备份指定路由器
-
区域:骨干区域:area 0
非骨干区域:除了0以外的其他区域
所有区域必须与骨干区域直接相连,所有骨干区域必须直连
三张表
- 邻居表:存放邻居信息
- 拓扑表(链路状态数据库LSDB):存放整个网络环境的地图
- 路由表:最优的路由条目会加入路由表
五个报文
- Hello报文:用于发现和维持OSPF邻居关系,参数包含hello/dead、RID、area ID、DR、BDR、接口优先级、子网掩码、版本(v2是IPv4,v3是IPv6)、验证
- DD报文:描述本地LSDB的摘要信息,包含LSA报头,用于两台设备进行数据库同步
- LSR报文:交换DD报文后,每台路由器会根据自己的LSDB检查LSA报头,如果它没有任何LSA当前信息,会生成一个LSR数据包并将其发送给邻居来请求更新的LSA
- LSU报文:包含所应更新的LSA列表,此数据包通常用于泛洪
- LSACK报文:用来对收到的LSA进行确认
七个状态
在配置动态路由协议(如OSPF、BGP)时,路由器需要有一个唯一的标识(Router ID)
由于Loopback接口的稳定性和可靠性,它常被用作Router ID的来源
华为命令 | 用途 |
---|---|
router id 1.1.1.1 | 设置RID为1.1.1.1 |
interface loopback 0 | 创建loopback接口,编号为0 |
ip add 1.1.1.1 24 | 为lo 0添加地址 |
ospf 1 | 设置ospf进程号为1 |
area 0 | 设置ospf区域0 |
network 12.12.12.0 0.0.0.255 | 设置通告及反掩码 |
display ospf peer | 查看邻居表 |
思科命令 | 用途 |
---|---|
int loopback 0 | 创建loopback接口,编号为0 |
ip add 1.1.1.1 24 | 为lo 0添加地址 |
router ospf 1 | 进入ospf进程,进程号为1(本地有效) |
router-id 1.1.1.1 | 设置RID为1.1.1.1 |
network 12.12.12.0 0.0.0.255 area 0 | 设置通告、反掩码及区域 |
show ip ospf neighbor | 查看邻居表 |
clear ip ospf process | 重启ospf进程(重新选举) |
show ip ospf int lo0 | 查看关于ospf协议接口的详细信息 |
DR和BDR
每条链路都会选举一个DR和BDR,不可抢占,如果需要更换需要重置OSPF进程
选举过程:
- Hello包携带路由器优先级,优先级越大越优先,默认以太网接口优先级为1,串行接口优先级为0,优先级为0的路由器不参与选举
- 优先级一致的情况下,比较Router ID、Router ID越大越优先
- 先选举BDR,在选举DR,BDR会监控DR的状态,并在当前DR发生故障时接替DR
- 一旦选定DR和BDR,即使OSPF区域内新增优先级更高的路由器,DR和BDR也不重新选举,只有当DR和BDR都失效后才重新选举