一、OSPF
1.概念
开放式最短路径优先OSPF 是一种动态的高度可靠和高度可扩展的路由协议,用于构建大型网络中的动态路由系统。
使用范围:IGP
协议算法特点: 链路状态型路由协议,SPF算法
协议是否传递网络掩码:传递网络掩码
协议封装:基于IP协议封装,协议号为 89
2.特点:
1.OSPF 是一种典型的链路状态型路由协议
2.传递的信息称作LSA,LSA 链路状态通告,其包含路由信息(描述本路由器上接口的路由信息)和拓扑信息(描述路由器之间的连接状态)
3.更新方式: 触发更新+30分钟的链路状态刷新
网络结构发生变化触发更新,否则不触发更新
4.更新地址: 组播和单播更新,组播地址: 224.0.0.5(ALL SPFrouter) 224.0.0.6 (ALL DR router)
5.支持区域划分
6.支持路由认证
7.支持手工汇总
8.OSPF 比较消耗设备资源
二、OSPF区域
1.区域划分的意义:
1.减少LSA的数量
2.减少LSA的传播范围
2.区域划分
1.区域的标记:
十进制,例如区域 0、1等
32个二进制,例如区域 0.0.0.0 、0.0.0.1等
区域的分类:
骨干区域: 区域标记为0或0.0.0.0
非骨干区域:区域标记不等于0或0.0.0.0
2.区域设计原则:(类似于向日葵型网络结构)
OSPF网络中必须存在并唯一的骨干区域(单区域除外)
若存在非骨干区域,非骨干区域必须与骨干区域直接相连
3.OSPF中路由器的角色:
骨干路由器:路由器的所有接口都属于骨干区域
非骨干路由器:路由器的所有接口都属于非骨干区域
ABR:区域边界路由器,能够产生3类LSA的路由器(骨干和非骨干之间)
ASBR:自治系统边界路由器,能够产生5类或7类LSA的路由器(ospf与非ospf之间的路由器,同时该路由器能够将非ospf的路由信息引入ospf区域中)
三、OSPF消息数据包
1.Hello包
周期性发送,周期时间10s或30s(根据不同的网络类型默认10s或30s)
目的:建立并维持OSPF 邻居关系(邻居关系建立之后充当保活包功能)
2.DBD包
数据库描述数据包,会进行主从选举:比较双方的router-id ,router-id大的一方为主 (master ),小的一方为从 (slave)其主要用于控制LSA的交互。
Interface MTU:接口最大传输单元,主从接口MTU必须保持一致
R:保留位。
I:初始化位。第一个发送的包显示为1,其余为0。
M:更多位。最后一个包显示为0,其余为1。
MS:主从位。如果为主的话为1(第一次发送都为1)。
DD Sequence:序列号。用于确认(后续从把序列号设置和主一致)。
携带LSA头部信息的DBD:
3.LSR包
链路状态请求,按照DBD中报文的对未知LSA头部进行请求。
4.LSU包
链路状态更新,携带LSA信息。(据对方的请求信息,更新LSA给对方)
5.LSACK包
链路状态确认(收到对方的更新LSA信息后,进行确认)
四、OSPF邻居状态机制
Down、 init 、 attempt(尝试过渡) 、 two-way 、 exstart 、 exchange 、loading 、full(其中Down和attempt状态一般很难捕捉到)
1.init
初始化状态,一旦开始发送hello报文,进入初始化状态。
2.two-way
双向通信状态(邻居状态),接收到包含自己router-id 的对方hello报文。
1.邻居关系建立条件(前五条必须):
1.router-id 必须不同
2.area ID 必须相同
3.认证类型 (不认证=0 明文认证=1 MD5=2) 和认证数据必须一致
4.hello时间,dead时间必须一致
5.特殊区域标识(E(外部路由位)=1、N(NSSA外部路由位)=0、P=0)必须一致
6.MA网络中,网络掩码相同
7.必须同时使用单播或组播更新
8.更新源检测(双方的IP地址必须在同一网段)
2.DR与BDR的选举
邻居状态下(two-way):MA的网络中会选举DR(指定路由器) BDR(备份指定路由器)
DR选举:
1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优)
2.比较各自的router-id,越大越优
注意:
DR抢占是关闭的
DR是一个接口概念
优先级范围 0-255,数字为0代表不参与选举
先选举BDR ,再升级为DR
3.exstart
预启动状态,一旦开始发送主从DBD,则进入预启动状态。
主从选举:发生在exstart状态, 通过双方的router-id进行比较, router-id大的一方为主。发送的主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令激活传递MTU值的功能,若双方的MTU值不相同则卡在exstart 状态)。
4.exchange
预交换,主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送LSR数据包。(但是没有LSU)。
5.loading
加载状态,发送LSR对未知LSA头部信息进行请求通过LSU进行大量LSA的学习,并通过LSACK进行确认。
6.full
邻接状态。请求列表和学习列表空了之后,双方LSA同步(双方LSA全部学习)。
2.邻居关系建立条件(前五条必须):
1.router-id 必须不同
2.area ID 必须相同
3.认证类型 (不认证=0 明文认证=1 MD5=2) 和认证数据必须一致
4.hello时间,dead时间必须一致
5.特殊区域标识(E(外部路由位)=1、N(NSSA外部路由位)=0、P=0)必须一致
6.MA网络中,网络掩码相同
7.必须同时使用单播或组播更新
8.更新源检测(双方的IP地址必须在同一网段)
五、OSPF基本配置
[R1]ospf 1 router-id 1.1.1.1 //进入OSPF的进程(协议视图),手工配置 router-id
Router-id : 路由器标识符,用于标识本路由器在OSPF网络中的唯一性。
OSPF router-id 选举规则:(主从选举)
1.手工指定最优先
2.选举所有逻辑中IP地址最大的
3.选举所有物理接口IP地址最大的
华为中: 若以上三点都不满足,则可以创建router-id 为0.0.0.0 ;在使用逻辑或物理接口IP地址时,接口可以是关闭状态;若一台路由器启用了多个OSPF进程,不同进程可以使用相同的router-id(不推荐);
思科中:若以上三点都不满足,则无法启用OSPF;在使用逻辑或物理接口时,接口必须双 up ,该接口可以不通告进入OSPF中;同一路由器上多个OSPF进程必须router-id必须不同;
全局模式下可以选择针对所有的OSPF进程修改router-id ;(若同时在接口部署时,接口优先生效)
常用的 OSPF 配置命令:
修改 Hello 包发送间隔:ospf timer hello 10 ,其中“10”为间隔时间(单位为秒)。
修改 Hello 包超时间隔:ospf timer dead 40 。
显示 OSPF 接口信息:display ospf interface g0/0/0 。
修改 OSPF 接口优先级:ospf dr-priority 100 。
修改开销(cost):ospf cost 10 ,取值范围为 1 至 65535,缺省为 1。
调整带宽参考值:bandwidth-reference 100 ,默认为 100Mbps,需在整个 OSPF 网络中统一调整。
重启 OSPF 进程:reset ospf process 。
OSPF查看三张表:
邻居表(Neighbor Table):display ospf peer brief
LSDB表(链路状态数据库):display ospf lsdb
OSPF路由表(Routing Table):display ip routing-table protocol ospf