文章目录
- **OSPF简介**
- **OSPF和RIP的区别**
- **RIPV2和OSPFV2相同点**
- **不同点**
- OSPF基础概念
- OSPF区域
- OSPF路由类型
- 区域划分的要求
- **OSPF多区域**
- **Router ID**
- **Router ID选取规则**
- **度量值**
- OSPF数据包
- OSPF状态机
- 条件匹配
- OSPF的工作过程
- OSPF基本配置
- **OSPF的拓展配置**
OSPF简介
OSPF(Open Shortest Path First开放式最短路径优先)是一个IGP(Interior Gateway Protocol,内部网关协议),用于在单一自治系统(autonomous system,AS)内决策路由。OSPF有三个版本,分别是OSPFv1、OSPFv2和OSPFv3,其中OSPFv1在实验室阶段就已摒弃,而OSPFv3用于IPv6,所以我们这里只介绍OSPFv2。
(OSPF也有三个版本 — OSPFV1(实验室阶段夭折),
— OSPFV2 — IPV4
— OSPFV3— IPV6
)
OSPF和RIP的区别
RIP协议只适用于中小型网路环境中,而OSPF可以适用于中大型网路当中----结构化部署(区域划分)
区域划分的目的 — 区域内部传递拓扑信息,区域之间传递路由信息 — 链路状态型协议的距离矢量特征
RIPV2和OSPFV2相同点
1.RIPV2是无类别的路由协议,OSPFV2也是无类别的路由协议;
2.RIPV2是以组播的形式传递信息,OSPFV2也是以组播的形式传递信息;
RIPV2组播224.0.0.9
OSPFV2组播224.0.0.5/224.0.0.6
3.RIPV2和OSPFV2都支持等开销负载均衡
不同点
由于rip自身的劣势:只有一种包,选路不佳,收敛慢,导致rip只适用于中小型的网络环境中。而ospf有5种数据包,分工明确;通过spf算法保证选路无环;有触发更新,收敛块,加上ospf其他各种减少占用资源的措施使ospf可以应用于中大型的网络环境中。
OSPF基础概念
OSPF区域
- 为了适应大型的网路,OSPF在AS内划分多个区域
- 每个OSPF路由器只维护所在区域的完整链路状态信息
区域ID
为了方便对不同的区域进行管理,所以,给每个区域设置了一个区域ID : area
区分和标定不同的区域(32位二进制构成)
1.点分十进制.
2.十进制表达
骨干区域的区域ID为区域0
-
-
- 区域ID可以表示成一个十进制的数字
- 也可以表示成一个IP
-
骨干区域Area 0
负责区域间路由信息传播
非骨干区域
非晋干区域相互通信必须通过骨干区域
标准区域
末梢区域stub
完全末梢区域total stub
非纯末悄区域nssa
OSPF路由类型
区域之间路由器: ABR
自制系统边界路由器:ASBR
区域划分的要求
1.区域之间必须存在ABR设备
2.区域划分必须遵循星型拓扑结构划分(星型拓扑划分中中间区域被称为骨干区域)
OSPF多区域
如果网路规模不大,不需要进行OSPF的区域划分,则这样的网路我们称为单区域OSPF网络;如果需要进行区域划分,则这样2的网络称为多区域OSPF网络.
原因
- 改善网络的可扩展性
- 快速收敛
Router ID
OSPF区域内唯一标识路由器的IP地址
Router ID选取规则
- 选取路由器loopback接口上数值最高的IP地址
- 如果没有loopback接口,在物理端口中选取IP地址最高的
- 也可以使用router-id命令指定Router ID
- DR和BDR的选举方法
度量值
- OSPF度量值 cost(开销)=10OM/BW(端口带宽)
– 最短路径是基于接口指定的代(cost路径成本)计算的
- RIP是跳数
OSPF数据包
协议号为:89
OSPF包类型 | 描述 |
---|---|
Hello包 | 用于发现和维持邻居关系,选举DR和BDR |
DBD(数据库描述包) | 用于向邻居发送摘要信息以同步链路状态数据库 |
LSR(链路状态请求包) | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
LSU(链路状态更新包) | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含几个LSA |
LSACK(链路状态确认包) | 确认已经收到DBD/LSU,每个LSA需要被分别确认 |
详情:
hello包 — 周期发现,建立和保活邻居关系
hello时间 — 10s(在以太网中默认时间),30s(NBMA网络)
Dead time — 4倍的HELLO时间
RID – 用来区分和标定OSPF网络中不同路由器
1.全网唯一;
2.格式统一 — 所有RID的格式按照IP地址的格式配置 — 32位二进制构成 — 点分十进制表示
RID的生成方式
1.手工配置
2.自动生成— 1.先在环回接口的IP地址选择,选择环回接口中数值最大的IP地址作为RID使用;
2.如果没有环回接口,则在物理接口中选择数据最大的IP地址作为RID使用.
Hello包中会携带这个RID
DBD包 — 数据库描述报文 – 携带的是路径信息摘要
数据库 — LSDB — 链路状态数据库 — LSA — 链路状态通告
LSR包 — 链路状态请求报文 — 基于本地未知LSA信息进行请求
LSU包 — 链路状态更新报文 — 真正携带LSA信息的数据包
LSAck包 — 链路状态确定报文 — 确定包
OPSF也存在周期更新(30min)
OSPF状态机
Down状态 —启动OSPF,发送hello包进入到下一个状态
Init (初始化)状态—收到的hello包中包含本地的RID,才能进入到下一个状态;
Two-way(双向通讯)状态—标志着邻居关系的建立。
(条件匹配)条件匹配成功,则进入下一个状态,匹配失败,则将停留在邻居状态,仅使用hello包进行周期保活。
Exstart(预启动)状态—使用未携带数据的DBD包进行主从关系选举,RID大的为主,则可以优先进入到下一个状态
Exchange(准交换)状态—使用携带数据的DBD包来交换LSDB的摘要信息。
Loading(加载)状态—查看对端的DBD包与本端的LSDB信息进行对比,之后,基于未知的LSA信息发送LSR包进行请求,对方使用LSU包携带LSA信息进行回复,需要ACK确认。
FULL状态 — 标志着邻接关系的建立
状态机过程:
1.OSPF启动的第一个阶段是使用Hello报文建立双向通信的过程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N6ld38Zo-1688482661497)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230130005136046.png)]
Two -way—双向通讯—标志着邻居关系的建立
(条件匹配)—条件匹配成功,则将进入到下一个状态,如果条件
匹配失败,则将停留在邻居关系,仅依靠hello包进行周期保活。
2,OSPF启动的第二阶段是建立完成邻接关系
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AJ3tg9Vo-1688482661497)(C:\Users\Lin\AppData\Roaming\Typora\typora-user-images\image-20230130005214334.png)]
Exstart状态 —通过比较RID来进行主从关系的选举,RID大的为主,可以优先进入到下一个阶段。
这里使用DBD包来完成主从关系选举,主要是为了和之前的邻居关系进行区分。
FULL状态—标志着邻接关系的建立。
邻接关系—主要是和邻居关系进行区分,邻居关系只能通过周期性发送hello包进行保活,而邻接关系才可以真正的收发LSA的信息。
条件匹配
指定路由器 — DR —一个MA网络当中和所有其他路由之间建立邻接关系
备份指定路由器— BDR —一个MA网络当中和所有其他路由器直接按建立邻接关系
1,在一个MA网络当中,在DR和BDR都存在的情况下,至少需要4台设备才能看到邻居关系。
2,DR和BDR都是针对在同一个MA网络当中选的,所以,其实是接口的概念。
条件匹配 —在MA网络当中,若所有设备都为邻接状态,则将出现大量的重复更新的情况,所以,需要进行DR/BDR的选举;所有非DR/BDR设备(DROther)之间仅保持邻居关系即可
DR和BDR的选举规则:
1,先比较优先级,优先级最大的为DR,次大大为BDR
优先级默认情况下为1
[r1-GigabitEthernet0/0/0]ospf dr-priority ?
INTEGER<0-255> Router priority value
如果将一个接口的优先级调整为0,则代表该接口放弃DR/BDR选举
2,如果优先级相同,则将比较RID。RID大的路由器对应的接口为DR,次大的为BDR.
DR/BDR的选举是非抢占模式的 ---- 选举时间和死亡时间等同reset ospf 1 process 重启进程可以重新进行选举Waming: The OSPF process will be reset. Continue? [Y/N]:
- 一个MA网络中,在DR和BDR都存在的情况下,至少需要4台设备才能看到邻居关系。
- DR/BDR虽然名字叫做指定路由器/备份指定路由器,但一定注意,他其实是一个接口的概念。是路由器在该网段的接口参加选举。
- DR/BDR的选举是非抢占模式的,一旦DR和BDR选定,则将无法被替换,邻居间如果一台路由器宣称自己是DR,则该路由为DR。
- DR/BDR的选举时间为死亡时间(只是时间相同,并不是由同一个计时器计时,这个时间仅是选举的一个上限时间,选举可以在短时间内完成,只是完成后则将不能抢占),如果一台路由器自发送hello包至死亡时间,没有收到其他hello包,则认为自己是DR,如果邻居都认为自己是DR,则比较优先级和RID.
OSPF的工作过程
启动配置完成后,OSPF会向本地所有运行协议的接口以组播224.0.0.5的形式发送hello包;hello包中将携带自己本地的RID,以及本地已知的邻居的RID,之后,将收集到的邻居关系记录在一张表中—邻居表。
邻居表建立完成后,将进行条件匹配;失败则停留在邻居关系,仅使用Hello包进行周期保活。
成功则开始建立邻接关系,首先,使用未携带数据的DBD包进行主从关系选举。之后使用携带信息的DBD包来共享数据库目录。之后,本地使用LSR/LSU/LSACK来获取未知的LSA信息。完成本地数据库的建立,生成数据库表—LSDB。
最后,基于本地的链路状态数据库生成有向图,再通过SPF算法,将图形结构转换成最短路径树,之后,根据树形结构计算出到达未知网段的路由信息。之后将路由信息添加到路由表中。
收敛完成后,依然每10S(30S)使用Hello包进行周期保活,没30Min进行一次周期更新。
结构突变
1,突然新增一个网段—触发更新,直接将变更信息通过LSU包进行传递,需要ACK确认。
2,突然断开一个网段— 触发更新,直接将变更信息通过LSU包进行传递,需要ACK确认。
3,无法通信— dead time
OSPF基本配置
通用配置
启动OSPF进程
[R1]ospf 1 router-id 1.1.1.1 ###创建OSPF进程,配置路由ID
[R1-ospf-1]area 1 ###进入区域1,区域ID可以用数字表示,也可以用IP表示,若区域o则是骨干区域
宣告
1,激活接口---只有激活的接口才能收发OSPF数据包
2,发布路由 ---只有激活的接口对应的直连网段的信息才能发布出去
[R1-ospf-1-area-0.0.0.1]network 12.0.0.0 0.255.255.255 ## 宣告直连
[R1-ospf-1-area-0.0.0.1]network 1.1.1.1 0.0.0.0 ##宣告oSPF区域内的直连网段,使用反掩码
------------------------------------------------------------
<Huawei>reset ospf process ###重置oSPF进程
[r1]display ospf peer --- 查看邻居表
[r1]display ospf peer brief--- 查看邻居表简表
[r1]display ospf Isdb---查看数据库表
[r1]display ospf Isdb router 2.2.2.2 ---展开一条LSA信息
华为设备默认设置OSPF的优先级为10。
OSPF的开销值 — 带宽
COST=参考带宽/真实带宽—华为设备默认的参考带宽为100Mbps
(算出来的开销值如果是大于1的小数,则将直接取整数部分;如果是小于1的小数,则将直接取1。)
[r1-ospf-1]bandwidth-reference 1000
只要网络中有一台设备修改了参考带宽,则所有设备必须将参考带宽都改为一样的。
OSPF的拓展配置
简化
1,手工认证
[r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1cipher 123456
2,手工汇总---区域汇总
[r2-ospf-1-area-0.0.0.0Jabr-summary 192.168.0.0 255.255.254.0
3,沉默接口
只接受不发送路由信息
[r1-ospf-1]silent-interface GigabitEthernet 0/0/1
4,加快收敛 --- 减少计时器时间
[r1-GigabitEthernet0/0/0]ospf timer hello 5 --- 邻居之间Hello时间必须一致,否则将导致邻居关系断开
hello时间修改后,死亡时间将自动按照四倍关系进行匹配[r1-GigabitEthernet0/0/0]ospf timer dead?
INTEGER<1-235926000> Second(s)
5,缺省路由
[r3-ospf-1]default-route-advertise--- 下发缺省的前提是边界设备本身得具有缺省信息才行
[r3-ospf-1]default-route-advertise always --- 如果需要强制下发则可以使用这个命令
详细
1,手工认证 --- 认证就是在OSPF邻居间交互的所有数据包中,携带口令。口令相同,则身份合法。
AA
OSPF的认证方式分为3种:
1,接口认证 -- 在邻居通信的接口上配置
[r5-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
注意:两边配置的key id必须相同,否则邻居关系将认证失败。
2,区域认证 --- 其实质还是接口认证,相当于一次性将在某个区域激活的所有接口配置接口认证。
[r3-ospf-1-area-0.0.0.0]authentication-mode md5 1 cipher 123456
3虚链路认证 ---虚链路建立阶段增加认证。其本质也是接口认证。
[r4-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3 md5 1 cipher 123456
2加快收敛减少计时器时间
修改hello时间
[r5-GigabitEthernet0/0/0]ospf timer hello 5
注意:Hello时间修改,死亡时间将自动按照4倍关系进行匹配
[r1-GigabitEthernet0/0/0]ospf timer dead 20
注意:dead时间修改,Hello时间不会自动变化
Waiting time ---等待计时器---DR和BDR选举时的选举时间,时间长短等同于死亡时间,死亡时间一旦修改,等待时间会同步变更。
POLL ---轮询时间 --- 120S---与状态为down的邻居关系发送hello包的间隔时间。在NBMA网络环境下,如果一方指定了邻居关系,
则将会将邻居的状态改为过度状态,期间会按照默认30S一次发送Hello包,但是,如果对方一直没有指定,经过一个等待时间(120S等同于死亡时间),
将会将邻居的状态置为down状态。之后,将按照120S的间隔发送hello包。
[r5-GigabitEthernet0/0/0]ospf timer poll ?
INTEGER<1-3600> Second(s)
Retransmit --- 重传时间 --- 默认5s--- 发送信息需要进行确认如果重传时间内没有收到对方的确认,则将重传。
[r5-GigabitEthernet0/0/0Jospf timer retransmit ?
INTEGER<1-3600> Second(s)
Transmit Delay --- 传输延时 --- 1s ---这个时间是附加在LSA老化时间上的,因为LSA在传输过程中,时间不会发生变化,所以,需要通过这个时间来补偿传输过程中消耗的时间。
[r5-GigabitEthernet0/0/0]ospf trans-delay 2
3,沉默接口 --- 将一个接口配置成为沉默接口,则这个接口将只接受不发送ospf的数据包
[r5-ospf-1]silent-interface GigabitEthernet 0/0/2 --- 在ospf中,沉默接口将针对单播和组播包生效。
4,缺省路由
3类缺省,5类缺省,7类缺省
3类缺省 --- 只能通过特殊区域来自动生成,普通末梢区域,完全末梢区域,完全的非完全末梢区域特点 --- 标记为ospf,默认优先级为10
5类缺省- 通过手工配置生成的缺省
[r2-ospf-1]default-route-advertise -相当于将本设备上通过其他方式学到的缺省路由重发布到OSPF网络当中
特点 --- 标记为O_ASE,默认优先级为150
[r2-ospf-1]default-route-advertise always --- 在设备上没有其他网络学来缺省信息时,可以强制下发一条5类缺省。
7类缺省 --- 可以通过配置特殊区域自动下发,也可以使用手工命令下发7类缺省
自动下发是在普通的NSSA区域中。
[r4-ospf-1-area-0.0.0.1]nssa default-route-advertise 手工下发一条7类的缺省信息。
5,路由过滤
指的是OSPF中针对3类,5类和7类LSA进行过滤。
[r1-ospf-1-area-0.0.0.2]abr-summary 192.168.0.0 255.255.252.0 not- advertise --- 过滤3类LSA
[r4-ospf-1]asbr-summary 172.16,0.0 255.255.252.0 not-advertise过滤5类/7类LSA