基础知识
OSPF:开放式最短路径优先协议 (无类别链路状态IGP动态协议)
OSPF的特点:
1.OSPF将自治系统划分为逻辑上的区域,使用LSA来发布路由信息,并通过OSPF报文在区域内路由器之间交互建立链路状态数据库和路由表
2.支持等开销的负载均衡:如果存在多条到达同一目的地的路径,并且这些路径的开销(Cost)值相同,OSPF可以在这些路径之间分配流量,从而是实现负载均衡
3.基于组播进行更新 224.0.0.5 224.0.0.6
4.支持触发更新 :每30min进行一次周期更新
5.需要结构化的部署 :区域划分 地址规划
区域划分的规则:
1.星型结构 骨干区域为0区 大于0为非骨干区域 所有非骨干区域必须接在骨干区域上
- **ABR(域间路由器)**两个区域互联时 必须存在ABR(同时工作在两个区域)
Router ID
1.Router ID 路由器标识符 用于在一个OSPF域中唯一的标识一台运行OSPF协议的路由器。
2.Router ID 的设定可以通过手工配置的方式进行,或使用系统配置的方式生成。
3.定义rid值时,建议使用IP地址,全网需要唯一,手工配置,要是不适用手工配置使用系统自动生成则会自动配置环回的最大数值,如果没有环回存在,则选择物理接口的最大数值。
OSPF协议5中报文
Hello报文 :用于邻居间的发现 关系建立 和 周期保活
DD报文 :数据库表述包 用于携带本地数据库目录
LSR报文 :链路状态请求包 在查看完对端邻居的DD包后基于本地的LSDB进行查询随后发出
LSU报文 :链路状态更新包 用于携带各种LSA信息
LSAck报文 :链路状态确认包 用于确定收到对端的信息
距离矢量协议:
运行距离矢量协议的路由器周期性的泛洪自己的路由表,通过路由的交汇,每台路由器都从相邻的路由器学习到路由条目,并且加载到自己的路由表
对于网络中所有路由器而言,路由器并不清楚网络的拓扑,只是简单的要知道去往某个目的地方在哪儿,距离多远,这就是距离矢量算法的本质。
链路状态协议:
与距离矢量协议不同,链路状态协议通告的是链路状态信息而不是路由表,运行链路状态协议的路由器之间首先会建立一个协议的邻居关系。
然后彼此之间开始交互LSA(链路状态通告)。每台路由器都会产生LSA,路由器将收到的LSA信息放入自己的LSDB(链路状态数据库)中。路由器通过LSDB,掌握全网的拓扑信息。最后,路由器将使用SPF算法,后将最优路径加载于本地路由表中。
邻居和DR/BDR选举
邻居关系:OSPF路由器通过发送Hello报文来发送和维护邻居关系。
DR和BDR选举 :在多路访问网络中,为了减少链路状态更新的数量,OSPF会选举指定路由器(DR)和 备份指定路由器(BDR)
度量值和路由计算
OSPF度量值 :主要基于链路宽带计算,宽带越高,cost值越低。
cost=开销值=参考带宽/接口带宽;默认的参考带宽为100M;整段路径cost值之合最小为最佳。
若接口带宽大于参考带宽,则度量值为1,将会导致选路不佳,故在接口带宽大于参考带宽的网络中,可以进行认为修改参考带宽。
SPF算法:OSPF使用迪杰斯特拉来计算最短路径树
流程图总结
OSPF状态机
Down状态 :未被激活的状态,一旦本地发出hello包则进入下一个状态机。
Init状态: 标识处于初始化状态。
Tow-Way状态: 双向通讯的建立,表示建立了邻居关系 。
匹配条件
Exstart状态 :预启动 使用不携带数据库目录的DD包进行主从选举,RID大者为主,优先进入下一个状态机。
Exchange状态 :准交换 携带具体的数据库目录的DD包进行目录交换 需要ack确认
**Loading状态:**加载,在查看完对端的DD包后,根据本地的LSDB查询,随后使用LSR包区索要,对端则使用LSU包进行回复,最后LSack包进行确认。
Full状态:转发 邻接关系的建立
OSPF的工作过程
1.启动配置已完成后,本地组播224.0.0.5发送hello包;
2.Hello包将携带本地rid值,及本地已知的所有邻居的rid值;若接收到来自对端的hello包中,存在本端的rid,那么视为双方认识,邻居关系建立;生成邻居表。
3.邻居关系建立之后,开始条件匹配,若匹配失败则永远停留于邻居关系,仅hello包保活即可。
4.若匹配成功,则表明可以建立邻接关系
5.先使用不携带数据库目录的DD包进行主从选举,rid大者为主,优先共享数据库目录;
6.基于对端的DD包中的数据库目录,查询本地的链路状态数据库,筛选出需要补充的LSA信息。
7.之后使用LSR包 LSU包以及LSack包进行交互来获取未知的LSA信息。最终生成数据库表(链路状态数据库表)
8.之后启用SPF算法,基于本地的LSDB生成有向图。在计算出最短路径,基于树形结构找到本地为起点到达目标网段的最短路径,加载于路由表中;
9.收敛完成后,hello包周期保活即可
10.每30min邻接关系之间,在进行DD的比对,若一致则继续保活,若不一致,则重新收敛。
结构突变:
1.新增一个网段:增加直接新增网段的设备,直接使用更新包告知邻接关系,需要ack确认。
2.断开一个网段:直接断开网段,直接使用更新包告知邻接关系,需要ack确认。
3.无法连接:hello time 10s, dead time 40s ,时间到了就删除邻居信息。
OSPF的基础配置
[R1]ospf 1 router-id 1.1.1.1 定义进程为 1 rid为1.1.1.1
[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
反掩码: 掩码反过来
<R1>display ospf peer 查看详细邻居关系
<R1>display ospf peer brief 查询邻居表
<R1>display ospf lsdb 查询链路状态数据库目录
<R1>display ospf lsdb ruoter 2.2.2.2 打开目录中的 router 2.2.2.2
[R1]display ip routing-table protocal ospf 查询由ospf协议生成的路由表
[R1]display ospf routing 查询由OSPF生成的路由
[R1-ospf-1]bandwidth-reference 1000 修改参考带宽为1000M/s
(注意:一旦修改,全网所有设备都必须修改一致)
OSPF的扩展配置
从邻居关系建立成为邻接关系的条件 (网络类型----两个类型)
1.点到点:在一个网段内仅支持存在两个节点
2.MA:多路访问---在一个网段内,存在的节点不限制
在MA网络中,若所有的设备均称为邻接关系,将可能出现大量的重复更新;故进行DR/BDR的选举,所有非DR/BDR的设备间仅维持邻居关系即可。非DR/BDR的设备统称为DRother
选举规则:
1.先比较参选接口的优先级,默认为1; 0-255 大为优
2.若参选接口优先级相同,则比较参选接口的RID,大为优
[R1-GigabiEtherent0/0/0]ospf dr-priority 2 调整参选接口DR设备的优先级为2
注意:DR/BDR的选举非抢占性质,故所需要网段内部重新选举,**需要重启所有参选的OSPF进程;**若参选接口的优先级为0,则将视为放弃选举。一个网段至少存在一台DR。
<R1>reset ospf process 重启OSPF进程
手工认证: 从邻居间的接口上定义安全密钥
[R1-GigabitEtherent 0/0/0]ospf authentication-mode md5 1 cipher 123456
手工汇总---区域汇总:在ABR上将A区域的路由共享到B区域时,方可进行手工汇总
[R2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.255.255.0
在0区中 汇总一条 1.1.0.0 255.255.255.0 的路由条目
被动接口(沉默接口):仅接受不发送路由信息的接口,不能在路由器之间使用
[R1-ospf-1]silent-interface g0/0/1 定义该接口为沉默接口
使用情景:
1.控制路由传播: 在网络设计中,可能需要限制某些接口上的路由信息传播,以避免不必要的路由更新或者维护网络的逻辑分区。例如,可以在连接到终端设备的接口上配置沉默接口,以防止路由信息泄露到用户网络中。
2.优化网络性能:通过使接口成为沉默接口,可以减少网络中的路由协议消息数量,从而降低网络负载并提高性能。这对于高流量或关键业务网络尤为重要。
3.防止路由环路 :在某些情况下,为了防止路由环路的发生,可能需要禁止接口参与路由协议的邻居关系建立。沉默接口可以实现这一点,因为它们不会发送或接收Hello报文,从而无法与其他设备建立邻居关系。
4.网络安全 :在安全敏感的环境中,沉默接口可以作为一种安全措施,防止外部设备获取内部网络的路由信息,增加网络的安全性。
5.简化路由表:在某些网络拓扑中,可能不希望某个接口的路由信息被广泛传播。通过配置沉默接口,可以保持路由表的简洁,避免不必要的路由条目。
6.网络测试和故障排除 :在进行网络测试或故障排除时,有时需要暂时禁用接口上的路由协议,以便集中测试或隔离问题。沉默接口可以快速实现这一需求。
加快收敛---改计时器
Hello time 10s
dead time 40s
修改一台路由器某个接口的hello time 时,该接口的dead time 将自动关闭匹配
[R1-GigabitEtherent0/0/0]ospf timer hello 修改 hellotime
[R1-GigabitEthernet0/0/0]ospf timer dead 修改deadtime
缺省路由
在边界路由器上进行配置,配置一条缺省路由后,将自动向内部设备进行发送,生成缺省路由,并指向边界路由器方向。
[R3-ospf-1]default-route-advertise always 缺省路由