OSPF:开放式最短路径优先协议
无类别链路状态型IGP动态路由协议;
链路状态型协议优势:本地计算所得路由,了解整个网络的拓扑---防环、选路
缺点:更新量大---邻居间需要交互的信息很多
因为更新量的问题,导致 OSPF协议需要结构化的部署---良好的地址规划、合理的区域划分; 组播更新:224.0.0.5 224.0.0.6
触发更新+周期更新
- OSPF的数据包类型
hello包邻居和邻接关系的发现、建立、周期(10s)保活―存在RID每台路由器在网络中存在唯一的名字
DBD 数据库描述包---数据库目录
LSR链路状态请求---针对邻接DBD目录中,本地未知的LSA进行查询
LSU链路状态更新---携带各种具体的LSA 进行更新到邻接
LSack链路状态确认---确认对端的信息
LSA--链路状态通告具体的一条一条路由或者拓扑
LSDB--链路状态数据库---本地所有LSA的集合
- OSPF的状态机---两台运行ospf协议的路由器间的,不同阶段的关系状态;
Down一旦收到ospf的hello包进入下一个状态机
Init初始化---收到的hello包中若存在本地的RID、那么进入下一个状态机
2way 双向通讯---邻居关系建立的标志
条件匹配:点到点网络直接进入下一个状态,MA网络中进行DR/BDR选举(40s),非DR/BDR间不能进入下一个状态机;
Exstart--预启动―使用不携带目录信息的DBD包进行主、从关系的选举,RID数值大为主,优先进入下一个状态机
Exchange 准交换﹐使用携带LSDB数据库目录的DBD包进行交互,需要ack确认
Loading加载﹐再查看完对端的DBD目录后,基于目录中本地未知的LSA信息﹐使用 LSR进行查询,对端使用LSU进行应答,最终ack确认;---获取本地未知的LSA
Full转发邻接关系建立的标志
- OSPF的工作过程
OSPF协议的启动配置完成后,邻居间组播收发hello包,发现邻居,建立邻居关系﹔生成邻居表;
邻居关系建立后,进行条件的匹配,匹配失败将停留为邻居关系,仅 hello包周期保活即可;匹配成功将建立邻接关系;使用DBD/LSR/LSU/LSACK来获取本地未知的所有LSA信息;生成LSDB数据库表;
之后本地基于本地的数据库,生成有向图--->最短路径树图--->基于树型结构,计算本地到达所有未知网段的最短路径,加载于本地的路由表中;
收敛完成后,正常每10s 邻居和邻接间周期使用hell包保活即可;每30min,邻接关系间使用DBD包再对比下数据库是否完全一致;若不一致需要LSR/LSULSACK重新获取未知信息:
结构突变:
1、新增网段
2、断开网段
3、无法沟通每10s一个hello ,40s的dead time;4个hello周期一直未收到邻居的hello,视作邻居出问题,断开关系,删除本地从该邻接学习到的所有信息;
4)OSPF的基础配置
[r1]ospf 1 router-id 1.1.1.1启动时,需要定义进程号,仅具有本地意义
同时建议配置RID,结构为IPV4地址,全网唯一;手工配置--》环回数值最大的 ip地址--》物理接口数值最大的ip地址
[r1-ospf-1]
宣告: 1、激活--被激活接口可以收发ospf_信息惇2、接口信息被告知给邻接
3、区域划分
[r1-ospf-1]area 0
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0
[r1-ospf-1-area-0.0.0.0]network 1.1.1.0 0.0.0.255
[r2-ospf-1-area-0.0.0.0]q
[r2-ospf-1]area 1
[r2-ospf-1-area-0.0.0.1]network. 23.1.1.1 0.0.0.0
在具体宣告每个接口时,需要使用反掩码进行匹配
区域划分的规则:
1、星型结构(轴辐状、中心到站点)---区域0为骨干区域,大于0为非骨干区域,所有非骨干必须直连骨干区域
2、区域间必须存在ABR--区域边界路由器同时连接两个区域的路由器
启动配置完成后,宣告配置完成后,邻居间收发hello包,建立邻居关系;生成邻居表:
[r2]display ospf peer
[r2]display ospf peer brief查看邻居简表
邻居关系建立后,进行条件匹配;匹配失败为邻居关系,仅hello包周期保活;
匹配成功为邻接关系,可以使用DBD/LSR/LSU/LSACK来相互获取未知的LSA信息;同步本地的LSDB数据库;完善本地的数据库表:
[r2]display ospf Isdb
邻接关系间的数据库同步完成后,本地将基于数据库生成--》有向图---》最短路径树---》计算本地到达所有未知网段的最短路径加载于本地的路由表中;
默认优先级为10,度量使用cost值;
Cost=开销值==参考带宽/接口带宽默认ospf 的参考带宽为100mOSPF优先cost值之和最小为最短路径
若接口带宽大于参考带宽,cost值为1;可能导致选路不佳,可以修改默认的参考带宽
[r1]ospf 1
[r1-ospf-1]bandwidth-reference ?
INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
[r1-ospf-1]bandwidth-reference 1000
切记:若修改参考带宽,整个网络所有运行ospf 协议的路由器均需一致;│
5)OSPF 的扩展配置
1、OSPF邻居关系成为邻接关系的条件
关注网络类型:
点到点:一个网段内只能存在两个节点
MA:多路访问一个网段的节点数量不做限制
在点到点网络中,邻居必然成为邻接关系;
在MA网段中,为了避免大量的重复更新,故将进行DR(指定路由器)/BDR(备份指定路由器)选举:非 DR/BDR间为邻居关系;
选举规则:;
- 先比较所有参选接口的优先级0-255大优默认为1
- 若参选接口优先级相同,比较参选设备的RID,数值大优
干涉选举:
[1]修改参选接口优先级 DR最大数值 BDR次大
[r1]interface GigabitEthermet 0/0/0
[r1-GigabitEthernetO/0/0]ospf dr-priority 3
切记:DR/BDR选举是非抢占的,故修改优先级后,依然维持原有的选举结果;
因此在修改优先级后,需要在短时间内对所有参选设备重启ospf进程
<r1>reset ospf process
Warning: The OSPF process will be reset. Continue? [Y/N]:y
[2]DR优先级最大,BDR 次大.其他设备优先级为0 0标识不参选.不用重启所有设备的ospf进程,直接选举完成
2、OSPF认证--两个邻居或者邻接关系间使用秘钥进行身份的核实、以及更新的加密在连接邻居的接口上配置
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernetO/0/0]ospf authentication-mode md5 1 cipher 123456
邻居间密码和模式、编号必须完全一致
3、OSPF的汇总和距离矢量如v_协议不同
不支持接口上汇总.支持区域之间,将A的路由汇总到B区域
在ABR上配置
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.255.252.0
在ABR 上,将区域0的路由汇总后,传递给ABR上的其他区域
4、沉默接口---不发出路由信息的接口,用于连接PC用户的接口,不得用于连接邻居的接口
[r3]ospf 1
[r3-ospf-1]silent-interface GigabitEthernet 0/0/1
5、加快收敛邻居间hello time10s dead time为 hello time的4倍
修改hello time可以适当提高协议的收敛速度、但同时会增加链路资源的占用
若hello time 为 10s时,不建议修改
修改本端的hello time,本端的dead time 将自动4倍关系匹配
邻居间hello time和 dead time必须一致、否则无法建立邻居关系
[r1]interface GigabitEthernet 0/0/0
[r1-GigabitEthernet0/0/0]ospf timer hello 10
6、缺省路由
在边界路由器(连接局域网和广播域之间的路由器)上配置缺省路由后、边界路由器将向内网发布一条缺省路由、边界路由器自己的缺省需要手工静态路由指向ISP
[r4]ospf 1[r4-ospf-1]def
[r4-ospf-1]default-route-advertise always