一、OSPF协议概述

1、含义

  • OSPF是一种链路状态路由协议。
    OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯彻(Dijkstra)算法被用来计算最短路径树。OSPF支持负载均衡和基于服务类型的选路,也支持多种路由形式,如特定主机路由和子网路由等。

过程
建立邻居关系——>建立邻接关系,交互LAS并且同步LSDB——>基于最短路径树得出路由表
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

2、自治系统

  • 自治系统(AS)由同一个技术管理结构使用统一选路策略的一些路由器的集合。
  1. 内部网关协议(IGP)运行在AS内部的路由协议,主要解决AS内部的选路问题,发现、计算路由。主要:RIP1/RIP2、OSPF、ISIS、EIGRP(思科私有协议)
  2. 外部网关协议(EGP)外部网关路由协议,运行在AS与AS之间的路由协议,他解决AS之间选路问题。BGP等

3、度量值

度量值为cost
cost=10^8/BW

最短路径是基于接口指定的代价cost
十兆=10
百兆=1
千兆=0.1
越小越好

二、分类

1、距离矢量路由协议

距离矢量路由协议: RIP1/2、BGP (路径矢量协议)、EIGRP ( 高级距离矢量协议)
路由器对全网拓扑不完全了解。是“传说的路由”,A发路由信息给B,B加上自己的度量值又发给C,路由表里的条目是听来的。

2、链路状态路由协议

链路状态路由协议: OSPF、ISIS
路由器对全网拓扑完全了解。是“传信的路由",A将信息放在一封信里发给B,B对其不做任何改变,拷贝下来,并将自己的信息放在另一封信里,两封信一起给C,这样,信息没有任何改变和丢失,最后所有路由器都收到相同的一堆信,这一堆信就是LSDB。 然后,每个路由器运用相同的SPF算法,以自己为根,计算出SPF Tree (即到达目的地的各个方案),选出最佳路径,放入路由表中。

3、OSPF和RIP区别

在这里插入图片描述

三、OSPF区域

1、区域

为了适应大型的网络, OSPF在AS内划分多个区域。
每个OSPF路由器只维护所在区域的完整链路状态信息。

2、区域ID

区域ID可以表示成一个十进制的数字。
也可以表示成一个IP。

3、区域分类

骨干区域Area 0
作为中央实体,其他区域与之相连,骨干区域编号为 0,在该区域中,各种类型的 LSA 均允许发布。
非骨干区域

  • 标准区域:除骨干区域外的默认的区域类型,在该类型区域中,各种类型的 LSA 均允许发布。
  • 末梢区域 :即 STUB 区域,该类型区域中不接受关于 AS外部的路由信息,即不接受类型 5 的AS外部LSA,需要路由到自治系统外部的网络时,路由器使用缺省路(0.0.0.0),末梢区域中不能包含有自治系统边界路由器 ASBR。
  • 完全末梢区域 :该类型区域中不接受关于 AS 外部的路由信息,同时也不接受来自 AS 中其他区域的汇总路由,即不接受类型 3、类型 4、类型 5 的 LSA,完全末梢区域也不能包换有自治系统边界路由器 ASBR。
  1. 虚链路
    指一 条通过一个非骨干区域连接到骨干区域的链路
    口虚链路的目的

通过一个非骨干区域连接一个区域到骨干区域
通过一个非骨干区域连接-一个分段的骨干区域两边的部分区域

四、OSPF的’1-7’

1、一个Router ID

  1. Router ID是OSPF区域内唯一标识路由器的IP地址
  2. Router ID选取规则

选取路由器loopback接口.上数值最高的IP地址。
如果没有loopback接口,在物理端口中选取IP地址最高的。
可以使用router-id命令指定Router ID。

  1. DR和BDR的选举方法
    ①自动选举DR和BDR
    网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR。
    ②手工选择DR和BDR

优先级范围是0~ 255,数值越大,优先级越高,默认为1。
如果优先级相同,则需要比较Router ID。
如果路由器的优先级被设置为0,它将不参与DR和DBR的选举。

2、两个组播地址

  • OSPF有两个组播地址

224.0.0.5是选举时,发送第一个Hello包和DRothers监控时所用地址。
224.0.06是DR和BDR监控时所用地址。
OSPF的特点

  1. 可适应大规模网络
  2. 路由变化收敛速度快
  3. 无路由环
  4. 支持变长子网掩码VLSM
  5. 支持区域划分
  6. 支持以组播地址发送协议报

3、三个关键表格

  1. OSPF 链路状态路由协议有三个关键的表

邻居列表
链路状态数据库
路由表

  1. 工作过程
    ①通过各个路由的传信过程建立邻接关系。
    ②再学习所有链路状态信息,这时所有路由对整个网络结构都了解清楚了。
    ③ 把全部的信息放入链路状态数据库。
    ④再通过SPF算法计算出最短路径树。
    ⑤最后生成路由表。
    在这里插入图片描述

4、四种网络类型

OSPF将网络划分为4种类型

  1. 点到点网络(Point-to-Point),自动发现邻居,不需DR/BDR、组播224.0.0.5。
  2. 广播多路访问网络(Broadcast MultiAccess, BMA),自动发现邻居、选DR/BDR、 组播224.0.0.5、 224.0.0.6。
  3. 非广播多路访问网络(None Broadcast MultiAccess, NBMA),手工指定邻居、选DR/BDR、 单播。
  4. 点到多点网络(Point-to-Multipoint),自动发现邻居,不需DR/BDR.组播224.0.0.5。

5、五个包类型

封装在IP数据包内,协议号89

类型功能
Hello包用于发现和维持邻居关系,选举DR和BDR
数据库描述包(DBD)用于向邻居发送摘要信息以同步链路状态数据库
链路状态请求包(LSR)在路由器收到包含新信息的DBD后发送,用于请求更详细的信息
链路状态更新包(LSU)收到LSR后发送链路状态通告(LSA) ,一个LSU数据包可能包含几个LSA
链路状态确认包(LSAck)确认已经收到DBD/ LSU,每个LSA需要被分别确认

6、六种LSA类型

OSPF6种LSA类型

类型代码描述用途
Type 1路由器LSA由区域内的路由器发出的,描述了路由器的的链路状态和花费,传递到整个区域内
Type 2网络LSA由区域内的DR发出的,描述了区域内变更信息,传递到整个区域内
Type 3网络汇总LSAABR发出的,其他区域的汇总链路通告,描述了其他区域内某一网段的路由,区域间传递
Type 4ASBR汇总LSAABR发出的,用于通告ASBR信息,确定ASBR的位置,不会出现在ASBR所属区域之内
Type 5AS外部LSAASBR发出的,用于通告外部路由,告诉相同AS的路由器通往外部AS的路径,在整个AS中进行泛洪
Type 7NSSA外部LSANSSA区域内的ASBR发出的,用于通告本区域连接的外部路由,与Type 5类似,仅在非纯末梢区域内进行泛洪,传递时会被ABR转换为LSA5
每一种区域中允许泛洪的LSA
区域类型1&23
骨干区域(区域0)允许允许
非骨干区域,非末梢区域允许允许
末梢区域允许允许
完全末梢区域允许不允许*
NSSA允许允许

7、七种状态

OSPF7种状态
邻居状态机:

  1. Down: 邻居状态机的初始状态,是指在过去的Dead-Interval时间内没有收到对方的Hello报文或OSPF没启动时。
  2. Init: 本状态表示经收到了邻居的Hello报文,但是该报文中列出的邻居中没有包含我的Router ID (对方并没有收到我发的HELLO报文)。
  3. 2-Way; 本状态表示双方互相收到了对端发送的Hello报文,建立邻居关系。在广播和NBMA类型的网络中,两个接口状态DROther的路由器之间将停留在此状态。
  4. ExStart:在此状态下,路由器和它的邻居之间通过互相交换DD报文(该报文并不包含实际的内容,只包含一些标志位)来决定发送时的主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。
  5. Exchange: 路由器将本地的LSDB用DD报文来描述,并发给邻居。
  6. Loading:路由器发送LSR报文向邻居请求对方的DD报文。
  7. Full: 在此状态下,邻居路由器的LSDB中所有的LSA本路由器全都有了。即本路由器和邻居建立了邻接(adjacency) 状态。

五、OSPF实验

1、OSPF小实验1

在这里插入图片描述
R1
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 1.1.1.1 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 12.0.0.1 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 2
[Huawei-ospf-1-area-0.0.0.2]network 1.1.1.1 0.0.0.0
[Huawei-ospf-1-area-0.0.0.2]network 12.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.2]q

R2
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 2.2.2.2 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 12.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 23.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 2
[Huawei-ospf-1-area-0.0.0.2]network 12.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.2]net
[Huawei-ospf-1-area-0.0.0.2]network 2.2.2.2 0.0.0.0
[Huawei-ospf-1-area-0.0.0.2]q
[Huawei]ospf
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]net
[Huawei-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255

R3
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 3.3.3.3 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 23.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 34.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0]network 23.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]q

R4
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 4.4.4.4 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 34.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 45.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 0
[Huawei-ospf-1-area-0.0.0.0]network 34.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0]q
[Huawei-]ospf
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]un network 45.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]q

R5
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop0
[Huawei-LoopBack0]ip add 5.5.5.5 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 45.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 56.0.0.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]q
[Huawei]ospf
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 5.5.5.5 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]network 45.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]network 56.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]q

R6
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int loop 0
[Huawei-LoopBack0]ip add 6.6.6.6 32
[Huawei-LoopBack0]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 56.0.0.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]q
[Huawei]ospf
[Huawei-ospf-1]area 1
[Huawei-ospf-1-area-0.0.0.1]network 6.6.6.6 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]network 56.0.0.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]q
在这里插入图片描述
在这里插入图片描述

2、OSPF小实验2

在这里插入图片描述

R1
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.10.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int loop0
[Huawei-LoopBack0]ip add 1.1.1.1 32
[Huawei-LoopBack0]q
ip route-static 0.0.0.0 0 192.168.10.1

R2
u tm
Error: File can’t be found
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.10.1 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.20.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int loop0
[Huawei-LoopBack0]ip add 2.2.2.2 32
[Huawei-LoopBack0]q
[Huawei]ospf
[Huawei-ospf-1]a 1
[Huawei-ospf-1-area-0.0.0.1]net 192.168.20.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]net 2.2.2.2 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]q
[Huawei-ospf-1]q
[Huawei]ip route-static 1.1.1.1 32 192.168.10.2
[Huawei]ospf
[Huawei-ospf-1]import-route static
[Huawei-ospf-1]import-route direct
[Huawei-ospf-1]dis th

R3
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.30.1 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.20.2 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int g0/0/2
[Huawei-GigabitEthernet0/0/2]ip add 192.168.40.1 24
[Huawei-GigabitEthernet0/0/2]un sh
Info: Interface GigabitEthernet0/0/2 is not shutdown.
[Huawei-GigabitEthernet0/0/2]int loop0
[Huawei-LoopBack0]ip add 3.3.3.3 32
[Huawei-LoopBack0]q
[Huawei]ospf
[Huawei-ospf-1]a 0
[Huawei-ospf-1-area-0.0.0.0]net 192.168.30.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]a 1
[Huawei-ospf-1-area-0.0.0.1]net 192.168.20.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.1]net 3.3.3.3 0.0.0.0
[Huawei-ospf-1-area-0.0.0.1]q
[Huawei-ospf-1]q
[Huawei]ip route-static 0.0.0.0 0 192.168.40.2
[Huawei]q
[Huawei]ospf
[Huawei-ospf-1]default-route-advertise always
[Huawei-ospf-1]import-route direct
[Huawei-ospf-1]q

R4
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.30.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int g0/0/1
[Huawei-GigabitEthernet0/0/1]ip add 192.168.50.1 24
[Huawei-GigabitEthernet0/0/1]un sh
Info: Interface GigabitEthernet0/0/1 is not shutdown.
[Huawei-GigabitEthernet0/0/1]int loop0
[Huawei-LoopBack0]ip add 4.4.4.4 32
[Huawei-LoopBack0]q
[Huawei]ospf
[Huawei-ospf-1]a 0
[Huawei-ospf-1-area-0.0.0.0]network 192.168.30.0 0.0.0.255
[Huawei-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
[Huawei-ospf-1-area-0.0.0.0]q
[Huawei-ospf-1]rip
[Huawei-rip-1]net 192.168.50.0
[Huawei-rip-1]version 2
[Huawei-rip-1]un summary ri
[Huawei-rip-1]q
[Huawei]rip
[Huawei-rip-1]import-route ospf 1 cost 2
[Huawei-rip-1]ospf 1
[Huawei-ospf-1]import-route rip 1 type 1 cost 1
[Huawei-rip-1]default-route originate
[Huawei-rip-1]q

R5
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.40.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int loop0
[Huawei-LoopBack0]ip add 5.5.5.5 32
[Huawei-LoopBack0]q
[Huawei]ip route-static 0.0.0.0 0 192.168.40.1

R6
u t m
Info: Current terminal monitor is off.
sy
Enter system view, return user view with Ctrl+Z.
[Huawei]user-interface console 0
[Huawei-ui-console0]idle-timeout 0 0
[Huawei-ui-console0]q
[Huawei]int g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 192.168.50.2 24
[Huawei-GigabitEthernet0/0/0]un sh
Info: Interface GigabitEthernet0/0/0 is not shutdown.
[Huawei-GigabitEthernet0/0/0]int loop0
[Huawei-LoopBack0]ip add 6.6.6.6 32
[Huawei-LoopBack0]q
[Huawei]rip
[Huawei-rip-1]network 192.168.50.0
[Huawei-rip-1]network 6.0.0.0
[Huawei-rip-1]version 2
[Huawei-rip-1]un summary
[Huawei-rip-1]q
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐