OSPF概述
在现代计算机网络中,路由协议起着至关重要的作用。它们决定了数据包在网络中如何传输,从而影响网络的性能、可靠性和安全性。OSPF (open shortest-path first),形成路由的算法是Dijkstra algorithm(迪杰斯特拉最短路径算法)。它是一种广泛使用的内部网关协议(Interior Gateway Protocol,简称IGP),用于在自治系统(AS)内传播路由信息。
自治系统(AS)
自治系统(Autonomous System,简称AS)是互联网中的一个独立王国,由一组互联的IP地址集合组成,并由一个或多个自治系统号(ASN)标识。每个AS通常由一个或多个路由器和与之相连的子网组成,这些路由器共同遵循同一套路由协议,形成一个统一管理和控制的网络单元。AS内部采用相同的路由技术,实现统一的路由策略,不同的AS采用的路由技术和路由策略可以不同。
AS通过路由协议在全球范围内相互交换路由信息,实现互联网的全局互通。常见的路由协议包括边界网关协议(BGP)和开放最短路径优先(OSPF)等。AS根据特定的路由选择算法,将数据包转发到目标AS,实现跨自治系统的通信。
按照互联网号码分配机构(IANA)的规定,AS分为分类AS和私有AS。分类AS由IANA统一分配,而私有AS则用于特定内部网络,不会在全球范围内被路由器转发和识别。
此外,AS还可以根据其所使用的路由协议和运行环境进行分类。例如,AS可以是运行相同协议的路由器集合,也可以是运行不同路由协议但属于同一个组织机构的路由器集合。
总的来说,自治系统(AS)是互联网的重要组成部分,它确保了不同网络之间的互联互通,使得数据能够在全球范围内传输和共享。同时,通过不同的路由协议和策略,AS也实现了对网络资源的高效利用和管理。
内部网关协议(IGP)
内部网关协议(Interior Gateway Protocol,简称IGP)是一种用于在自治系统(如企业或组织内部网络)内部网关(如主机和路由器)之间交换路由信息的协议。IGP的主要功能是确保路由器之间的路由信息可拓扑化,通过定义一组数据包格式,每个数据包包含某个路由器可接受的路由数据,这些路由数据可能包括路由器的拓扑、网络地址、网关地址或里程值等。
IGP协议对于迅速路由和实现互联网的可用性至关重要,它可以实现网络的安全性,确保数据在家庭网络和企业网络之间安全地传输。
IGP主要分为两类:距离-矢量路由协议和连接状态路由协议。
距离-矢量路由协议,连接状态路由协议
距离-矢量路由协议和连接状态路由协议是两种主要的动态路由协议类型,它们各自包含多种具体的协议。
距离-矢量路由协议主要包括以下几种:
- RIP(路由信息协议):这是一种基于距离矢量算法的路由协议,利用跳数作为计量标准来选择路径。当某网络的跳数超过一定阈值(如15跳),RIP便无法提供到达该网络的路由。默认情况下,RIP每30秒通过广播或组播发送一次路由更新。
- IGRP(内部网关路由协议):这是Cisco开发的专有协议,曾经是EIGRP(增强型IGRP)的前身,现在已不再使用。
- EIGRP:这是Cisco专用的距离矢量路由协议,它结合了距离矢量和链路状态路由协议的特点,具有较快的收敛速度和较高的准确性。
此外,还有一些其他的距离-矢量路由协议,如Xerox网络系统的XNS RIP、Novell的IPX RIP、DEC的DNA阶段4、Apple Talk的路由选择表维护协议(RTMP)等。
连接状态路由协议则主要包括以下几种:
- OSPF(开放式最短路径优先):这是一种广泛使用的链路状态路由协议,它使用Dijkstra算法计算最佳路径。OSPF通过发送链路状态通告(LSA)来交换网络拓扑信息,并据此构建完整的网络拓扑图。
- IS-IS(中间系统到中间系统):这是另一种链路状态路由协议,主要用于ISP(互联网服务提供商)的网络中。IS-IS使用与OSPF类似的机制来交换链路状态信息并计算路由。
- NLSP(网络层服务协议):这是IPX网络使用的链路状态路由协议,与OSPF和IS-IS在功能上相似,但针对的是不同的网络协议。
总的来说,距离-矢量路由协议和连接状态路由协议各有其特点和适用场景。距离-矢量路由协议实现简单,但可能受到路由环路等问题的影响;而连接状态路由协议则具有更高的准确性和稳定性,但实现相对复杂。在实际应用中,需要根据网络的具体需求和特点来选择合适的路由协议。
OSPF工作原理
OSPF 的主要目标是通过计算最短路径来构建路由表,确保数据包能够以最快和最有效的方式到达目的地。它基于链路状态路由算法,与距离矢量路由协议相比,具有更高的准确性和更快的收敛速度。
OSPF 的工作原理基于以下几个关键概念:
1. 邻居关系:OSPF 路由器通过与相邻路由器建立邻居关系来交换链路状态信息。邻居关系的建立是通过发送和接收 Hello 数据包来完成的。
2. 链路状态通告(LSA):路由器通过发送 LSA 来描述其连接的网络和接口的状态。这些 LSA 包含了有关拓扑结构、接口度量值和其他重要信息。
3. 数据库同步:相邻路由器之间通过交换 LSA 来同步它们的链路状态数据库。通过比较数据库,路由器可以构建整个网络的拓扑视图。
4. SPF 算法:基于链路状态数据库,OSPF 使用 Dijkstra 最短路径优先算法来计算到达每个目的地的最短路径。这些最短路径被用于构建路由表。
报文类型
hello报文
发现邻居。
DBDs(database descriptor packets)
两个功能:
1. 选MASTER和SlAVE
2. 交换LSDB的摘要;
LSRs(link state request)
向对方申请缺失的记录(LSA)。
LSU(link state update)
更新信息。
LSACKs(link state ack)
响应。
路由器的种类
ABR:跨区域的路由器
IR:完全在区域内的路由器;
BR: 骨干区域路由器(area0);
ASBR:跨协议的路由。
区域类型
标准区域:
标准区域就像是网络中的一座大城市,它拥有完整的交通系统和各类设施。在这个区域内,路由器们能够自由地交换信息,了解彼此的位置和状态,从而能够高效地将数据包从一个地方传递到另一个地方。这就像城市中的公交系统,能够准确地根据地图找到前往目的地的最佳路线。
末梢区域:
末梢区域则可以想象成一个偏远的乡村地区。虽然这里也有道路,但由于地理位置偏远,它可能并不与所有的地方都直接相连。在末梢区域中,路由器们的信息交流可能相对有限,它们主要依靠与中心区域的一个或少数几个接口来进行通信。这就像乡村地区可能只有一条通往外界的主干道,所有进出的车辆都需要通过这条路。
非完全末梢区域:
非完全末梢区域则像是介于大城市和乡村之间的一个小镇。虽然它不如大城市那样繁华,但也并非完全偏远。在这个区域里,路由器们能够与其他一些区域进行通信,但可能并不具备与所有区域直接相连的能力。这就像小镇上可能有几条通往不同地方的路线,但并非四通八达。
通过这样的形象说明,我们可以更好地理解这三种区域在网络中的位置和特点。标准区域具备完善的通信能力,末梢区域则相对孤立,而非完全末梢区域则介于两者之间,具备一定的通信能力但并非完全开放。这样的划分有助于我们根据网络的实际需求来合理配置资源,确保数据的高效传输。
两个路由器之间的通信过程
发现彼此
down: 还没启动的时候;
init:有了邻居;
2-way:知道了彼此的存在,我知道了【你知道了我】。
7类LSA
7类LSA(Link State Advertisement)在OSPF(开放式最短路径优先)协议中各自具有独特的角色和功能。以下是对这七种LSA的形象说明:
- Router LSA(类型1):
- 形象说明:每台路由器都会制作一张自己的“名片”,上面详细列出了它的链路状态和开销。这张“名片”只在路由器所在的区域内传播,让其他路由器了解它的状态。
- Network LSA(类型2):
- 形象说明:在网络中,DR(指定路由器)就像是一个“信息汇总员”。它会收集并整理整个网段的链路状态信息,然后制作一张“网段地图”。这张地图同样只在区域内传播,帮助其他路由器了解整个网段的连接情况。
- Network Summary LSA(类型3):
- 形象说明:ABR(区域边界路由器)就像是一个“区域导游”。它会收集本区域的关键路由信息,并制作成“区域指南”。这份指南会被传播到其他区域,帮助其他区域的路由器了解如何到达本区域。
- ASBR Summary LSA(类型4):
- 形象说明:ABR除了是“区域导游”外,还兼任“外部信息中介”。它会将从ASBR(自治系统边界路由器)那里收集到的外部路由信息整理成“外部指南”,并传播给其他区域。
- AS-external-LSA(类型5):
- 形象说明:ASBR是连接自治系统与外部世界的“门户”。它会制作一张详细的“外部地图”,列出所有通往自治系统外部的路由信息,并将这张地图传播到整个自治系统内。
- NSSA LSA(类型7):
- 形象说明:在NSSA(非纯完全次末节)区域中,ASBR扮演着特殊的角色。由于该区域不接受某些类型的LSA,ASBR会制作一种特殊的“外部地图”(即NSSA LSA),只在本区域内传播,确保NSSA区域内的路由器能够了解如何到达自治系统外部。
这七种LSA就像是网络中的“信息使者”,它们各自负责收集和传播不同类型的网络拓扑和路由信息,确保网络中的每个路由器都能准确了解网络的状态和如何到达其他网络。通过这些LSA的协同工作,OSPF协议能够构建出准确、高效的路由表,为网络中的数据传输提供可靠的路径。