●开放式最短路径优先OSPF ( Open Shortest Path First )协议是IETF定义的一种基于链路状态的内部网关路由协议。
●RIP是一 种基于距离矢量算法的路由协议,存在着收敛慢、易产生路由环路、可扩展性差等问题,目前已逐渐被OSPF取代。
OSPF路由协议是用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。适用于IPv4的OSPFv2协议定义于RFC 2328,RFC 5340定义了适用于IPv6的OSPFv3。
开放式最短路径优先(Open Shortest Path First,OSPF)是目前广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。
OSPF协议是一种链路状态协议。每个路由器负责发现、维护与邻居的关系,并将已知的邻居列表和链路费用LSU(Link State Update)报文描述,通过可靠的泛洪与自治系统AS(Autonomous System)内的其他路由器周期性交互,学习到整个自治系统的网络拓扑结构;并通过自治系统边界的路由器注入其他AS的路由信息,从而得到整个Internet的路由信息。每隔一个特定时间或当链路状态发生变化时,重新生成LSA,路由器通过泛洪机制将新LSA通告出去,以便实现路由的实时更新。
在区域内部跑的进程协议
●OSPF要求每台运行OSPF的路由器都了解整个网络的链路状态信息,这样才能计算出到达目的地的最优路径。OSPF的收敛过程由链路状态公告LSA ( Link State Advertisement )泛洪开始, LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB ( Link State Database ) , 并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。
如图,A通过建立邻接关系,学习到所有的链路状态信息,即所有的网段信息。
A将学习到的链路状态信息存储在自己的链路状态数据库中
A的链路状态数据库通过 Dijkstra算法 算出A到达每一个地点的最短路径,形成最短路径树。最终生成路由表
为了适应大型的网络,OSPF在AS内划分多个区域,其中必须有个骨干区域,且骨干区域有且仅有一个。
每个OSPF路由器只维护所在区域的完整链路状态信息
区域ID可以表示层一个十进制的数字。即area 0(0-9)
也可以表示成一个IP
骨干区域负责区域间路由信息传播。
另,其他区域必须经过骨干区域转发,所有区域必须和骨干区域直接连接!
OSPF区域内唯一标识路由器的IP地址。(公网,32位,可以节省IP地址)
1.选取路由器loopback接口,上数值最高的IP地址
2.如果没有loopback接口, 在物理端口中选取IP地址最高的
3.也可以使用router-id命令指定Router ID
DR ,BDR 和其他路由中
1 DR: 区域当中的主路由,有且仅有一个
2 BDR:区域当中的备份路由,有且仅有一个
3 除了DR 和 BDR 都是其他路由
其他路由器只和 DR 和 BDR 形成邻接关系。主路由负责通告信息,备份路由负责准备顶替 DR
其他路由器发送信息只能到达DR 和BDR(一个组播) ,DR再发送通告信息(第二个组播)。其中存在两个组播信息。
自动选举DR和BDR
●网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
手工选择DR和BDR
●优先级范围是0~ 255,数值越大,优先级越高,默认为1
●如果优先级相同,则需要比较Router ID
●如果路由器的优先级被设置为0,它将不参与DR和DBR的选举
路由优先级也被称为路由的“管理距离”,是一个正整数,范围0~255,它用于指定路由协议的优先级。
常见的OSPF路由优先级为10。
路由器的优先级可以影响一个选举过程,但是他不能强制更换已经存在的DR或BDR路由器。
即,我们第一个启动的OSPF路由器就会变成DR。第二个启动的OSPF的路由器会变成BDR。而第三个和以后开启的路由器即使路径再短,也无法更改现有的DR 和 BDR。
224.0.0.5 DR/BDR发出的
COST=10^8/BW BW(带宽) COST 数制越小越好,说明带宽越高
COST越低,带宽越高,路径越短。
●OSPF直接运行在IP协议之上,使用IP协议号89.
●OSPF有五种报文类型,每种报文都使用相同的OSPF报文头。
1.Hello报文:最常用的一种报文,用于发现、维护邻居关系。并在广播和NBMA ( None-
Broadcast Multi- Access )类型的网络中选举指定路由器DR ( Designated Router )和
备份指定路由器BDR ( Backup Designated Router )。
2.DD报文:两台路由器进行LSDB数据库同步时,用DD报文来描述自己的LSDB。DD报文
的内容包括LSDB中每一条LSA的头部 ( LSA的头部可以唯一标识一条LSA)。 LSA头部只
占-条LSA的整 个数据量的一小部分,所以,这样就可以减少路由器之间的协议报文流量。
3.LSR报文:两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地
LSDB所缺少的,这时需要发送L SR报文向对方请求缺少的LSA , LSR只包含了所需要的
LSA的摘要信息。
4.LSU报文:用来向对端路由器发送所需要的LSA。
5.LSACK报文:用来对接收到的LSU报文进行确认。
DR和BDR的选举的改变
ENSP软件
三台路由器
一台交换机
R1:配置IP地址,使能OSPF进程,同时可以用于配置Router ID。宣告网络。
R2:配置IP地址,使能OSPF进程,同时可以用于配置Router ID。宣告网络。
R3:配置IP地址,使能OSPF进程,同时可以用于配置Router ID。宣告网络。
R1:
[Huawei]sysn R1
[R1]int loo 0
[R1-LoopBack0]ip add 1.1.1.1 32
[R1-LoopBack0]int g0/0/0
[R1-GigabitEthernet0/0/0]ip add 13.0.0.1 24
[R1-GigabitEthernet0/0/0]q
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]net 13.0.0.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]net 1.1.1.1 0.0.0.0
R2
[Huawei]sysn R2
[R2]int loo 0
[R2-LoopBack0]ip add 2.2.2.2 32
[R2-LoopBack0]int g0/0/0
[R2-GigabitEthernet0/0/0]ip add 13.0.0.2 24
[R2-GigabitEthernet0/0/0]q
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]net 13.0.0.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]net 2.2.2.2 0.0.0.0
R3
[Huawei]sysn R3
[R3]int loo 0
[R3-LoopBack0]ip add 3.3.3.3 32
[R3-LoopBack0]int g0/0/0
[R3-GigabitEthernet0/0/0]ip add 13.0.0.3 24
[R3-GigabitEthernet0/0/0]q
[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]ar 0
[R3-ospf-1-area-0.0.0.0]net 13.0.0.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]net 3.3.3.3 0.0.0.0
1.注意IP地址不要搞错
2.配置Router ID 命令:
OSPF 1 router-id 1.1.1.1
3.配置OSPF命令
area 0.0.0.0 (区域)
network 13.0.0.0 0.0.0.255 (宣告直连网段,反掩码)
network 1.1.1.1 0.0.0.0
4.
●在配置OSPF时,需要首先使能OSPF进程。
●命令ospf [process id]用来使能OSPF ,在该命令中可以配置进程ID。如果没有配置进程ID ,则使用1作为缺省进程ID.
●命令ospf [process id] [router-id ]既可以使能OSPF进程,还同时可以用于配置Router ID。在该命令中, router-id代表路由器的ID。
●命令network用于指定运行OSPF协议的接口,在该命令中需要指定一个反掩码。 反掩码中,”0”表示此位必须严格匹配,"1” 表示该地址可以为任意值。