动态路由协议分类
距离矢量路由协议
- 运行距离矢量路由协议的路由器周期性地泛洪(给自己所有的邻居都发送)自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,然后再通告给其他相邻路由器
- 对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的网段方向在哪里,开销有多大
链路状态路由协议
- 链路状态路由协议通告的是链路状态而不是路由信息
- 运行链路状态路由协议的路由器之间首先会建立邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告);LSA描述了路由器接口的状态信息、例如接口的开销、连接的对象等
- 每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(Link State Database,链路状态数据库)。路由器通过对LSDB中所存储的LSA进行解析,进而了解全网拓扑
- 每台路由器基于LSDB,使用SPF(Shortest Path First,最短路径优先)算法进行计算。每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的“树”。有了这棵“树”,路由器就已经知道了到达所有网段的优选路径
OSPF
以下优点:
- 基于SPF算法,以“累计链路开销”作为选录参考值
- 采用组播形式收发部分协议报文
- 支持区域划分
- 支持对等价路由进行负载分担
- 支持报文认证
- 支持VLSM(Variable Length Subnet Mask,可变长子网掩码),支持手工路由汇总
核心和汇聚层部署在OSPF骨干区域
接入和汇聚层部署在OSPF非骨干区域
Router ID
用于在自治系统中唯一标识一台运行OSPF的路由器,它是一个32位的无符号整数,选举规则如下:
- 手动配置OSPF路由器的Router ID(建议手动配置)
- 如果没有手动配置Router ID,则路由器使用全局Router ID(第一次配置的接口IP地址)
- 如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
- 如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地址作为Router ID
area
- 从逻辑上将设备划分为不同的组,每个组用区域号(Area ID)来标识
- Area ID是一个32bit的非负整数,按点分十进制的形式(与IPV4地址的格式一样)呈现,例如area0.0.0.1.
cost(度量值)
- 使用cost(开销)作为路由器的度量值。每一个激活了OSPF的接口都会维护一个接口cost值,缺省的接口cost=100mbs/接口带宽,其中100mbs为OSPF指定的缺省参考值,该值是可配置的
邻居表
- OSPF在传递链路状态信息之前,需先建立OSPF邻居关系
- 邻居关系通过交互Hello报文建立
- 邻居表显示了OSPF路由器之间的邻居状态,使用display ospf peer查看
LSDB
- LSDB会保存自己产生的及从邻居收到的LSA信息
- Type标识LSA的类型,AdvRouter标识发送LSA的路由器
- 使用命令行display ospf lsdb查看LSDB表
OSPF路由表
- OSPF路由表和路由器路由表是两张不同的表
- OSPF路由表包含destination、cost和nexthop等指导转发的信息
- 使用命令display ospf routing查看OSPF路由表