初识OSPF(一)
前言
OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。
一、内部网关协议和外部网关协议
1、AS
自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
2、分类
1、按协议类型分类:
- 距离矢量路由协议
路由器对全网拓扑不安全了解,是“传说的路由”,例如:A发路由信息给B,B加上自己的度量值又发给C,路由表里的信息都是“听”来的。
主要包含:RIP、IGRP、EIGRP等 - 链路状态路由协议
路由器对拓扑完全了解,,是“传信的路由”,例如:A将消息放入信里发给B,B不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起发给C,这样,信息五任何改变和丢失,最后所有的路由都收到相同的一堆信,这一堆信就是LSDB(链路状态数据库)。然后每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree(即到达目的地的各个方案),选出最佳路径,放入路由表中。
主要包含:OSPF、IS-IS等
2、按自制系统分类:
-
局域网内IGP(内部网关路由协 议):
内部网关路由协议是运行在AS内部的路由协议,主要解决AS内部的选录问题,发现、计算路由。
包含:RIP、OSPF、IS-IS等。 -
互联网EGP(外部网关路由协议):
外部网关理由协议是运行在AS与AS之间的路由协议,解决AS之间的选路问题。
包含:BGP。
二、OSPF的工作过程
1、三张表
OSPF有三张表,分别是
- 邻居表
- 链路状态数据库(拓扑表)
- 路由表
2、形成路由
简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。
三、OSPF区域
1、概念
为了适应大型网络,OSPF在AS内划分了多个区域。每个OSPF路由器只维护所在区域的完整链路状态信息。
2、区域ID
区域ID的表示可以表示成一个十进制数字,也可以用IP表示。
3、区域分类
- 1、骨干区域area 0:
作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。 - 2、非骨干区域:
- 标准区域:除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
- 末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的 AS 外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路由(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
- 完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。
四、Router ID
1、概念
Routh ID是OSPF区域内唯一表示路由器的IP地址。
2、选举
Routh ID的选举规则:
- 选举路由器Loopback接口上数值最高的IP地址
- 如果没有Loopback接口,在物理端口中选取IP地址最高的
- 也可用routher-id任命指定的Routh ID
五、DR和BDR
1、概念
当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,通过在多路访问网段中选择出一个核心路由器,称为DR(Designated Router),网段中所有的OSPF路由器都和DR互换LSA,这样一来,DR就会拥有所有的LSA,并且将所有的LSA转发给每一台路由器。
DR就像是该网段的LSA中转站,所有的路由器都与该中转站互换LSA,如果DR失效后,那么就会造成LSA的丢失与不完整,所以在多路访问网络中除了选举出DR之外,还会选举出一台路由器作为DR的备份,称为BDR(Backup Designated Router),BDR在DR不可用时,代替DR的工作。
2、DR和BDR的选举
- 自动选举
网段上Routh ID最大的路由为DR,第二大的为BDR。 - 手工选举
- 优先级范围0~255,数值越大,优先级越高,默认为1
- 若优先级相同,则比较Routh ID
- 如果路由器的优先级被设置为0,它将不参与DR与BDR的选举
注:路由器优先级可以影响一个选举过程,但是不能强制更换已经形成的DR和BDR。
3、OSPF组播
OSPF有两个组播地址:
- 224.0.0.5
是选举时,发送第一个Hello包和DRothers监控时所用地址。 - 224.0.06
是DR和BDR监控时所用地址。
六、OSPF度量值
OSPF的度量值为Cost。
Cost值有计算方式,为Cost=10^8/BW
接口类型 | cost代价 |
---|---|
Fast Ethernet | 1 |
Ethernet | 10 |
56K | 1785 |
七、OSPF的数据包类型
1、概念
OSPF数据包是承载在IP数据包内,使用协议号是89.
2、OSPF的包类型
OSPF的包类型 | 描述 |
---|---|
Hello包 | 用于发现和维持邻居关系,选举DR和BDR |
数据库描述包(DBD) | 用于向邻居发送摘要信息以同步链路状态数据库 |
数据链路状态包(LSR) | 在路由器收到包含新信息的DBD后发送,用于请求更详细的信息 |
数据链路更新包(LSU) | 收到LSR后发送链路状态通告(LSA),一个LSU数据包可能包含多个LSA |
链路状态确认包(LSAck) | 确认已经收到DBD/LSU,每个LSA需要被分别确认 |
八、OSPF状态
路由器从启动OSPF进程,到根据链路状态数据库计算出路由表,同样需要经历一系列的启动过程,总共有7种可能的启动过程,但并不是一定会经历这7个过程,具体过程如下:
Down → Init → Two-way → Exstart → Exchange → Loading → Full
- Down
邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文或OSPF没有成功启动时。 - Init
本状态表示已经收到了邻居的Hello报文,但是该报文中列出的邻居中没有包含我的Router ID(对方没有收到我的Hello报文)。 - 2-way
本状态表示双方互相收到了对端发送的Hello报文,建立了邻居关系,在广播和NBMA类型的网络中,两个接口状态是DRother的路由器之间将停留在此状态。 - EXStart
在此状态下,路由器和他的邻居间通过互相交换DD报文(该报文并不包含实际内容,只包含一些标志位)来决定发送时的主/从关系,建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。 - EXchange
路由器将本地的LSDB用DD报文来描述,并发送给邻居。 - Louding
路由器发送LSR报文向邻居请求对法的DD报文。 - Full
在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了,即本路由器和邻居建立了邻接adjacency状态。
简单解释过程:
初始化 →收到第一个Hello包 →双向建立会话 →建立主从关系 →交换重要信息 →加载详细信息 →完全连接
九、4种网络划分类型
- 点到点网络
自动发现邻居,不需要DR/BDR,组播224.0.0.5 - 广播多路访问网络
自动发现邻居,选举DR/BDR,组播224.0.0.5、224.0.0.6 - 非广播多路访问网络
手工指定邻居,选举DR/BDR,单播 - 点到多点网络
自动发现邻居,不需要DR/BDR,组播224.0.0.5
十、OSPF的特点
- 可适应大规模网络
- 路由变化收敛速度快
- 无路由环
- 支持变长子掩网码VLSM
- 支持区域划分
- 支持以组播地址发送协议报文
十一、OSPF与RIP的对比
十二、简单配置命令
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 11.0.0.2 24
[Huawei-GigabitEthernet0/0/0]undo shutdown
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 12.0.0.1 24
[Huawei-GigabitEthernet0/0/1]undo shutdown
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int loopback 0
[Huawei-LoopBack0]ip add 1.1.1.1 32
[Huawei-LoopBack0]q
[Huawei]ospf 1 router-id 1.1.1.1 #创建OSPF进程,配置路由ID
[Huawei-ospf-1]area 0 #进入区域0,区域ID可以用数字表示,也可以用IP表示,若区域0则是骨干区域
[Huawei-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0 #宣告OSPF区域内的直连网段,使用反掩码
[Huawei-ospf-1-area-0.0.0.0]network 12.0.0.0 0.0.0.255
十三、总结
OSPF的简单说就是两个相邻的路由器通过发报文的形式成为邻居关系,邻居再相互发送链路状态信息形成邻接关系,之后各自根据最短路径算法算出路由,放在OSPF路由表,OSPF路由与其他路由比较后优的加入全局路由表。