FortiGate OSPF动态路由协议配置

1.目的

本文档针对 FortiGate 的 OSPF 动态路由协议说明。OSPF 路由协议是一种 典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由 域是指一个自治系统,即 AS,它是指一组通过统一的路由政策或路由协议互相交 换路由信息的网络。在这个 AS 中,所有的 OSPF 路由器都维护一个相同的描述 这个 AS 结构的数据库 , 该数据库中存放的是路由域中相应链路的状态信 息,OSPF 路由器正是通过这个数据库计算出其 OSPF 路由表的。作为一种链路 状态的路由协议,OSPF 将链路状态广播数据 LSA(Link State Advertisement)传 送给在某一区域内的所有路由器。

2.环境介绍

本文使用 4 台 FortiGate 进行说明 , 本文使用的系统版本为 FortiOS v4.0MR2 Patch8。

3.OSPF 介绍

3.1 DR 与 BDR 选举

DR--指定路由器,BDR--备份指定路由器。在动态路由协议中,配置在同一区 域内的路由器之间要互相学习链路状态信息,当所有同一区域内的设备都具有相 同的数据链路信息后就可以计算出正确的路由。如果每两台设备之间互相学习, 工作量非常大。为了减少工作量,在这个网络上的设备中选出一个作为 DR,所有 其他设备都只需要和这台这设备交互信息即可完成链路状态的学习。

DR,BDR 选举规则:

1.当选举 DR/BDR 的时候要比较 hello 包中的优先级,优先级最高的为 DR, 次高的为 BDR.

2.如果 OSPF 路由器的优先级,全部都是默认值 1,路由器默认通过 Router-ID, 选举 DR/BDR,如果 Router-ID 最大的成为 DR,次大的成为 BDR。其余的统统都 是 DR-other。如果路由 ID 未设置,则使用接口最大地址。

3.将优先级改为 0 的设备将永远不参与 DR 选举。

FortiGate 的优先级需要在命令行下配置

bash 复制代码
config router ospf
	set abr-type standard
	config ospf-interface 
		edit "ex"
		#配置 OSPF 接口
		#编辑 OSPF 接口名称
		set interface "port5"
		set ip 192.168.118.233
		set priority 10                       #设置优先级
	end
end

3.2 OSPF 邻居建立过程

1.Down:此状态还没有与其他路由器交换信息。首先从其 ospf 接口向外发送 hello 分组,还并不知道 DR(若为广播网络)和任何其他路由器。发送 hello 分组使 用组播地址 224.0.0.5。

2.Attempt: 只适于 NBMA 网络,在 NBMA 网络中邻居是手动指定的,在该状 态下,路由器将使用 HelloInterval 取代 PollInterval 来发送 Hello 包.

3.Init: 表明在 DeadInterval 里收到了 Hello 包,但是 2-Way 通信仍然没有建 立起来.

4.two-way: 双向会话建立,而 RID 彼此出现在对方的邻居列表中。(若为广 播网络:例如:以太网。在这个时候应该选举 DR,BDR)

5.ExStart: 信息交换初始状态 ,在这个状态下 ,本地路由器和邻居将建立 Master/Slave 关系,并确定 DD Sequence Number,路由器 ID 大的的成为 Master.

6.Exchange: 信息交换状态,本地路由器和邻居交换一个或多个 DBD 分组 (也叫 DDP) 。DBD 包含有关 LSDB 中 LSA 条目的摘要信息)。

7.Loading: 信息加载状态:收到 DBD 后,将收到的信息同 LSDB 中的信息 进行比较。如果 DBD 中有更新的链路状态条目,则向对方发送一个 LSR,用于请 求新的 LSA 。

8.Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状 态请求列表为空且邻居状态为 Loading 判断。

3.3 LSA 的类型

LSA(链路状态广播)是链接状态协议使用的一个分组,它包括有关邻居和通 道成本的信息。 LSAs 被接收路由器用于维护它们的路由选择表。 LSA: Link-State Advertisement。LSA 常用类型分为以下几种:

类型 1:Router LSA:每个路由器都将产生 Router LSA,这种 LSA 只在本区域 内传播,描述了路由器所有的链路和接口,状态和开销.

类型 2:Network LSA:在每个多路访问网络中,DR 都会产生 Network LSA,它 只在产生这条 Network LSA 的区域泛洪描述了所有和它相连的路由器。

类型 3:Network Summary LSA:由 ABR 路由器始发,用于通告该区域外部的 目的地址.当其他的路由器收到来自 ABR 的 Network Summary LSA 以后,它不会 运行 SPF 算法,它只简单的加上到达该 ABR 的开销和 Network Summary LSA 中包含的开销,通过 ABR,至目标地址的路由和开销一起被加进路由表里。

类型 4:ASBR Summary LSA:由 ABR 发出,ASBR 汇总 LSA 除了所通告的目 的地是一个 ASBR 而不是一个网络外,其他同 Network Summary LSA.

类型 5:AS External LSA:发自 ASBR 路由器,用来通告到达 OSPF 自治系统 外部的目的地,或者 OSPF 自治系统那个外部的缺省路由的 LSA.这种 LSA 将在 全 AS 内泛洪(4 个特殊区域除外)

类型 7:NSSA External LSA:来自非完全 Stub 区域(not-so-stubby area)内 ASBR 路由器始发的 LSA 通告它只在 NSSA 区域内泛洪,这是与 LSA-Type5 的 区别.

3.4 OSPF 的区域

主干区(backbone area):主干区是 OSPF 的主区域,每个 AS 内必须有主干区, 所有其他区域连接至主干区,2 个区域之间需要传递路由信息,也将经过主干区域。 主干区拥有 AS 内部及外部路由。主干区域以 IP 地址 0.0.0.0 标识,即 area 0

常规区(regular area):连接至主干区域,不转发其他区域路由,仅拥有 AS 内部 路由。

末梢区域(stub area):只有一个区域相连的非骨干区域,不接受自治系统外部 的 LSA(类型 5),仅拥有本区域路由,使用默认路由访问其他区域及 AS 外部。

非完全末梢区域(NSSA):允许外部路由通告到 ospf 自治系统内部,而同时保 留自治系统其余部分的末梢区域部分,并将从 NSSA 收到的 AS 外部路由 LSA 7 转通过 ABR 换为 LSA5 通告给 AS 内部,拥有本区及外部路由。

4.FortiGate OSPF 配置

4.1 GateA 配置

4.2 GateB 配置

4.3 GateC 配置

4.4 配置完成后各个 Gate 路由表

GateA OSPF 路由表

GateB OSPF 路由表

GateC OSPF 路由表

4.5 通过命令查看 OSPF 状态

查看 OSPF 邻居状态

bash 复制代码
GateA # get router info ospf neighbor OSPF process 0:
Neighbor   ID              Pri        State                              Dead   Time        Address
Interface				
0.0.0.8	1	Full/DROther	00:00:31	192.168.118.233 port1
0.0.0.9	1	Full/Backup	00:00:40	192.168.118.235 port1

GateA # get router    info ospf route
C    172.16.1.0/24 [10] is directly connected, port5, Area 0.0.0.1
IA 172.16.2.0/24 [20] via 192.168.118.235, port1, Area 0.0.0.0
IA 172.16.3.0/24 [20] via 192.168.118.233, port1, Area 0.0.0.0
C    192.168.118.0/24 [10] is directly connected, port1, Area 0.0.0.0

5.OSPF 路由重发布

路由重发布可将其他路由协议以外部路由方式引入到 OSPF 网络当中 ,如将 GateC 中的直连路由发布至 OSPF 网络。

重发布后的 GateA,B,C 路由表

GateA 路由表

GateB 路由表

GateC 路由表

6.Total stub 与 Total NSSA

Total Stub 与 NSSA 同普通 Stub,NSSA 区域的区别在于,Total stub,nssa 不 接收 LSA3,LSA4 的路由更新。可以通过命令行将其配置不接受汇总路由的更新。

bash 复制代码
Total stub  配置
config router ospf
	config area
		edit 0.0.0.2
			set stub-type no-summary                #关闭汇总路由更新
			set type stub next
end 
end
Total NSSA 配置
config router ospf 
	config area
		edit 0.0.0.3
		set stub-type no-summary              #关闭汇总路由更新
		set type nssa next
end 
end

7.OSPF 的 Troubleshooting

bash 复制代码
查看 OSPF 协议状态
get router info ospf status
查看 OSPF 邻居信息及状态  get router info ospf neighbor 查看 OSPF 接口状态信息
get router info ospf interface 查看 OSPF 路由表
get router info ospf route 重启 OSPF 进程
execute router clear ospf process
详尽的 debug 信息可通过以下命令开启。
GateA # diagnose ip routerospf all             all OSPF debug
events       OSPF Events
ifsm           OSPF Interface State Machine
level         debug level
lsa            OSPF Link State Advertisement
nfsm           OSPF Neighbor State Machine
nsm            OSPF NSM information
packet       OSPF Packets
route         OSPF route information
show          show status of ospf debugging
开启 events 事件,关闭 debug,可以输入 diagnose debug disable
GateA # diagnose ip routerospf    level info  GateA # diagnose ip routerospf    events en GateA # diagnose debug enable
GateA   #    id=36870    msg="OSPF:    LSA[0.0.0.0:Type3: 172.16.2.0:0.0.0.9]: Instance(0xbffffa64) created with Link State Update"
id=36870                msg="OSPF:                 LSA[0.0.0.0:Type1:0.0.0.8:0.0.0.8]: Instance(0xbffffa64) created with Link State Update
相关推荐
速盾cdn2 分钟前
速盾:CDN缓存的工作原理是什么?
网络·安全·web安全
网络安全-杰克1 小时前
网络安全概论
网络·web安全·php
怀澈1221 小时前
高性能服务器模型之Reactor(单线程版本)
linux·服务器·网络·c++
耗同学一米八1 小时前
2024 年河北省职业院校技能大赛网络建设与运维赛项样题二
运维·网络·mariadb
skywalk81632 小时前
树莓派2 安装raspberry os 并修改成固定ip
linux·服务器·网络·debian·树莓派·raspberry
C++忠实粉丝2 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
黑客Ela2 小时前
网络安全中常用浏览器插件、拓展
网络·安全·web安全·网络安全·php
qdprobot2 小时前
ESP32桌面天气摆件加文心一言AI大模型对话Mixly图形化编程STEAM创客教育
网络·人工智能·百度·文心一言·arduino
hakesashou4 小时前
Python中常用的函数介绍
java·网络·python
C++忠实粉丝4 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法