无类别链路状态IGP动态路由协议
- 距离矢量协议:运行距离矢量协议的路由器会周期性的泛洪自己的路由表。通过路由的交互,每台路由器从相邻的路由器学习到路由。并且加载进自己的路由表中;对于网络中的所有路由器而言,路由器并不清楚网络的拓扑结构,只是简单的知道要去往某个目的地(即网段)的方向在哪(下一跳在哪)距离多远。这即是距离矢量协议的本质。
- 链路状态协议:与距离矢量协议不同,链路状态协议通告的是链路状态信息(拓扑信息),而不是路由表。运行链路状态协议的路由器之间会建立一个协议的邻居关系,然后彼此逐渐开始交互LSA(链路状态通告)。每台路由器都会产生LSA,路由器将接收到的LSA放入自己的LSDB(链路状态数据库)中。路由器通过LSDB,掌握了全网所有的拓扑信息。最后,有路由器通过SPF算法计算出最优路径,随后加载于自己的路由表中。
SPF的特征
- 支持等开销负载均衡
- 基于组播进行更新----224.0.0.5 224.0.0.6
- 支持触发更新;也有自己的周期更新(每30min进行一次周期更新)相当于对整体进行查验bug,体检
- 需要结构化的部署----区域划分 地址规划
- 相同区域传递拓扑,不同区域传递路由
注:区域划分的规则--
- 星型结构------0区为骨干区域;大于0为非骨干区域,所有非骨干区域必须接入到骨干区域上
- 必需要有ABR------域间路由器,两个区域相连时,必须存在ABR,ABR--同时存在两个区域上
Router-ID 路由器标识符,用于一个OSPF域中唯一的标识一台路由器
Router-ID的设定可以通过手工配置的方式,或使用系统自动生成的方式。
定义RID值,建议使用IP地址,全网唯一,要是不进行手工配置则会自动生成----优先配置为环回的最大数值,如果没有环回,则自动配置为最大物理接口数值。
使用COST值作为度量值:COST=开销值=参考带宽/接口带宽;
默认参考带宽为100M,整段路径COST值之和最小为最佳
若接口带宽大于参考带宽,则度量值为1,可能会导致选路不佳,故而在接口带宽大于参考带宽的网络中,可以人为的修改参考带宽。
[r1-ospf-1]bandwidth-reference 1000 修改参考带宽
一旦修改,全网带宽都要修改
OSPF的数据包类型
- HELLO包 用于邻居的发现,关系建立,确认保活
- DBD包 数据库描述包 用于携带本地数据库目录
- LSR包 链路状态请求包 在查看完对端邻居的DBD包后,基于本地的位置查询LSA随后去索要位置的LSA信息,就通过这个LSR包。
- LSU包 链路状态更新包 用于携带各种LSA信息
- LSACK包 链路状态确认包 用于确认接收到对端的信息
Down状态:表示未激活的状态,一旦本地发出HELLO包,则会进入下一个状态。
Init状态:表示初始化状态,
Tow-way状态:双向通信,表示建立了邻居关系
注:经过条件匹配:成功则进入下一个状态机,失败则停留于Tow-way状态。
Exstart状态:预启动状态 发出空的DBD包 看谁的router-ID大 优先进入Exchange状态。
Exchange状态:准交换状态 分享自己的数据库目录
Loading状态:加载状态,在查看完对端邻居的DBD包后,使用LSR包来询问自己位置的LSA信息,对端使用LSU包进行恢复,本地还需要使用LSACK进行确认回复。
Full状态:邻接关系建立的标识
OSPF的工作过程
启动配置完成后,以本地的组播地址224.0.0.05发送Hello包(携带本地的RID值,即已知邻居的RID),如果对方发送的Hello包中有我的rid,即视为认识,另据关系的建立生成邻居表
开始条件匹配 匹配成功 继续 匹配失败 停留,永远是邻居关系
使用空的DBD包进行主从关系选举,对比RID值,谁大谁优先进入下一个状态,优先共享数据库目录
双方对比DBD包,看你有我没有的东西
使用LSR/LSU/LSACK来获取未知的LSA信息并加载与本地的LSDB中
启动本地SPF算法 计算最短路径树,在基于树形结构算出本地为起始点到达全网各个节点的最优路径,最后加载与本地路由表中,收敛完成后,hello保活即可。每30min进行一次周期更新,周期更新即为对比数据库目录,如果相同,则继续hello包保活,不相同,则重新收敛。
结构突变:
- 新增一个网段 直连新增网络设备,直接使用更新包告知邻接关系,需要ACK确认。
- 新增一个网段 直连断开网络设备,直接使用更新包告知邻接关系,需要ACK确认。
- 无法沟通:hellotime 10s,dead time 40s死亡时间,时间到了就删除邻居信息。
OSPF的基础配置
[R1]ospf 1 router-id 1.1.1.1 创建ospf进程号为1 仅具有本地意义 同时定义RID值 建议使用IP地址 全网需要唯一。
[R1-ospf-1]area 0 进入0 区
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
一一对应除了我所对应的数本身外还有0种变化
注:反掩码,先写掩码 然后用255.255.255.255减去掩码
<R1>display ospf peer 查询详细邻居关系
<R1>display ospf brief 查询邻居表
<R1>display ospf lsdb 查询链路状态数据库
OSPF的扩展配置
1.从邻居关系建立成为邻接条件
(1)点到点的网络:在一个网段中,仅支持存在两个节点的网络(在点到点的网络类型中,可以直接成为邻接关系)
(2)MA:多路访问---在一个网段内,存在的节点数量不限
在MA网络中,若所有设备均是邻接关系,则会造成大量的重复更新,故,进行DR/BDR的选举,所有非DR/BDR的设备被称之为DRother,DRother之间维持邻居关系。
选举规则:
(1)先比较参选接口的优先级 默认1 范围0-255 大为优
(2)若参选接口的优先级相同,比较参选设备的RID,大为优
[R1-GigabitEthernet0/0/0]ospf dr-priority 2 将参选接口优先级改为2
切记:ospf的DR选举是非抢占性的,故需要重启ospf进程达到重新选举的目的。
<R1>reset ospf process 重启ospf进程
2.手工认证
在邻居间接口上定义安全密钥
[R1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456