- 同一区域内的OSPF路由器拥有一致的 LSDB, 在区域内,OSPF 采用 SPF算法计算路由
- 一个区域太多路由器,硬件资源跟不上,所以多划分区域
OSPF 路由计算原理
1. 区域内路由计算
LSA
在OSPF中,每个路由器生成 LSA,用于告诉其他路由器它与哪些路由器相连、有哪些链路,成本是多少。从而算出比如 R1 到 R5 的最优路径
-
Type (类型):
- 这里的类型有
Router
和Network
。 Router
类型表示这是一个路由器的 LSA(链路状态通告)。Network
类型表示这是一个网络的 LSA,描述一个特定的网段及其连接的路由器。
- 这里的类型有
-
LinkState ID (链路状态 ID):
- 对于
Router
类型,链路状态 ID 通常是路由器的 Router ID,标识网络中的每个路由器。 - 对于
Network
类型,链路状态 ID 通常是该网段的 IP 地址。
- 对于
-
AdvRouter (广告路由器):
- 指发送此 LSA 的路由器的 Router ID。每个 LSA 都有一个发送者,AdvRouter 就是这个 LSA 的发布者。
-
Age (老化时间):
- 表示此 LSA 已经存在的时间,以秒为单位。当达到一定时间(通常为3600秒)后,这条 LSA 将被刷新。
-
Len (长度):
- LSA 的长度,表示该 LSA 消耗了多少字节的数据。
-
Sequence (序列号):
- LSA 的序列号,用于保证更新顺序。序列号较大的 LSA 表示更新版本,路由器会根据这个值来判断是否需要替换老旧的 LSA。
-
Metric (度量值):
- 代表路由的开销,度量值越小,表明这条路径更优。通常反映带宽、延迟等参数。
一类 Router LSA 描述了R2 都连接着谁,成本是多少
二类 Network LSA 描述了这个接口对应的广播域中的网段信息。
AdvRouter是谁,这个广播域的DR就是谁
Router 10.2.2.2 10.2.2.2 625 这一行是描述自己吗?Loopback 吗?
是的,这一行表示的是 R2 自己生成的一类 Router LSA。LinkState ID 和 AdvRouter 都为 10.2.2.2,这意味着这是由路由器 10.2.2.2(即 R2)自己发出的 Router LSA,描述自身的链路信息。
关于 Loopback 接口,通常情况下,在 OSPF 中,Loopback 接口会被视为一个直接连接的网络。它作为路由器的标识,其 Metric 通常为 1,因为 OSPF 中直接连接的接口默认为 Metric 值 1,即使是 Loopback。
Network LSA(2类LSA) :由DR产生,记录了该网段内所有与DR建立了邻接关系的OSPF路由器,同时携带了该网段的网络掩码。
在网络中,特别是在使用 OSPF(开放最短路径优先)协议的环境中,链路信息通常被用来描述网络拓扑结构。在您提供的表格中,定义了三种类型的链路链接:点对点(Point-to-Point,P2P)、传输网络(TransNet)和存根网络(StubNet)。以下是每种链路类型的详细解释和例子:
-
Point-to-Point (P2P):
- 描述:这种类型的链路链接描述了从一个路由器到另一个路由器之间的直接连接。这种连接通常用于在两台路由器之间建立直接通信。
- Link ID:邻居路由器的 Router ID,这是邻居路由器的唯一标识符。
- Link Data:宣告该 Router LSA的路由器接口的IP地址,这是用于两台路由器之间通信的IP地址。
例子:假设有两台路由器,Router A 和 Router B。它们之间有一条直接的物理连接。在这种情况下,Router A 会创建一个 Point-to-Point 链路到 Router B,使用 Router B 的 Router ID 和接口IP地址。
-
TransNet:
- 描述:这种类型的链路链接描述了从一个路由器到一个传输网络段的连接,如多访问网络(例如以太网或令牌环网)中的DR(指定路由器)。
- Link ID:DR的接口IP地址,这是在多访问网络中被选为DR的路由器的接口IP地址。
- Link Data:宣告该Router LSA的路由器接口的IP地址,这是DR用来和其他路由器交换链路信息的IP地址。
例子:在一个以太网中,假设Router C 被选为DR。Router A 和 Router B 会创建到Router C(DR)的TransNet链路,使用Router C接口的IP地址。
-
StubNet:
- 描述:这种类型的链路链接描述了从一个路由器到一个存根网络段的连接,如环回接口或叶网络。
- Link ID:宣告该Router LSA的路由器接口的网络IP地址,这是路由器用来标识存根网络的IP地址。
- Link Data:该Stub网络的网络掩码,这定义了存根网络的IP地址范围。
例子:Router D 可能有一个到存根网络 10.0.0.0/8 的链路。在这种情况下,Router D 宣告的StubNet链路会包括网络IP地址 10.0.0.0 和相应的网络掩码 /8。
1. Point-to-Point (P2P)
场景:假设有两个数据中心,每个数据中心都有自己的核心路由器。为了实现两个数据中心之间的直接通信,需要在两个核心路由器之间建立直接连接。
应用:在Router A 和 Router B 之间创建一个Point-to-Point链路。Router A 和 Router B 将使用彼此的Router ID来识别对方,并使用各自的接口IP地址来建立直接通信链路。
2. TransNet
场景:在一个分支机构中,有一个路由器(Router C)连接到一个以太网,该网络中有多个接入点(PC、服务器等)。
应用:Router C 将配置为DR,并宣告一个TransNet链路到以太网。链路宣告中将包括DR的接口IP地址,其他路由器将通过这个IP地址与以太网上的设备通信。
3. StubNet
场景:在企业网络中,有一个路由器(Router D)连接到一个小型的分支网络,该网络中只有几个设备,并且不需要与其他网络段通信。
应用:Router D 宣告一个StubNet链路到分支网络。链路宣告中包括Router D 接口的网络IP地址和网络掩码。由于这个网络是存根的,它不需要DR或额外的路由器参与,因此使用StubNet链路来减少路由表的大小和路由协议的开销。
项目实例
在一个大型企业网络中,总部有一个核心路由器(Router A),分支机构有一个路由器(Router B),分支机构内部有一个局域网(由Router C管理),并且有一个远程办公室(由Router D管理)。
-
总部到分支机构:在Router A 和 Router B 之间建立一个Point-to-Point链路,用于两个数据中心之间的直接通信。
-
分支机构内部网络:Router C 作为DR,宣告一个TransNet链路到分支机构的局域网,使得局域网内的设备可以与外部网络通信。
-
远程办公室:Router D 宣告一个StubNet链路到远程办公室的网络,因为该网络不需要与其他网络段通信,使用StubNet可以简化路由配置。
SPF算法
SPF(Shortest Path First)算法,也叫 Dijkstra 算法,是 OSPF 路由协议用来计算最优路径的核心算法。它的基本思想是从路由器自己出发,一步步“扩展”找到到达每个目标网络的最短路径。整个过程可以分为两个阶段:
阶段 1:构建 SPF 树
通俗解释:
- 构建树的根:首先,每台路由器把自己看作树根,开始构建这棵最短路径树(SPF 树)。
- 从连接关系开始扩展:路由器会根据自己收到的 Router-LSA 和 Network-LSA,了解整个网络拓扑信息。这些 LSA 信息告诉它,哪些路由器和网络是相连的,以及每条链路的成本(Cost)。
- 从成本最小的路径开始:路由器会优先选择 成本最小 的路径,也就是带宽更高的链路。在每一步中,它会从已知的路由器或网络中挑出最便宜的那条路径,扩展树。
关键点:
- Router-LSA:描述一个路由器连接的链路情况。
- Network-LSA:描述广播网络中的路由器和它们之间的关系。
- DR的特殊性:在广播网络中,DR(指定路由器)会生成 Network-LSA,且它和其他路由器之间的成本为 0,因为它代表整个网络。
项目举例:
假设你有五个路由器 R1、R2、R3、R4 和 R5,它们通过 OSPF 互联,R1 是你要计算的路由器。R1 会根据它收到的 LSA,了解到网络中的每个路由器以及它们之间的连接成本。比如,R1 发现到达 R2 的成本是 10,到达 R3 的成本是 5,那它会先把到 R3 的路径加入到 SPF 树中。
阶段 2:计算最优路由
通俗解释:
- 添加叶子节点:构建完基础的 SPF 树后,路由器会继续检查其他 LSA 信息,将每个网络(比如某个子网或广播网络)当作叶子节点,挂在相应的路由器上。
- 防止重复:如果一个路由信息已经被添加到树上,它就不会重复添加,这样可以防止在区域内部计算出环路。
关键点:
- SPF 树是一棵单向树:即从根到每个目的地的路径都是单向的,确保不会出现环路。
- 最优路由:树中的每条路径是到每个网络的最短路径,也就是 OSPF 所选择的最优路由。
项目举例:
回到上面的例子,假设 R1 和 R2 都连接了一个子网 192.168.1.0/24
,R1 发现 R2 是到这个子网的最短路径,因此会把这个子网挂在 R2 下面。R1 同时发现它自己也直接连接了另一个子网 192.168.2.0/24
,于是把这个子网挂在自己(R1)下面。
通过这样一步步的扩展,R1 最终会构建出一棵完整的 SPF 树,每个节点都代表一个网络或者路由器,而路径上标注的成本就是最短路径的代价。然后 R1 会根据这棵树生成它的路由表,决定通过哪条路径去访问每个目的地。
总结:
- SPF算法的第一阶段 是构建一棵以自己为根的最短路径树,根据成本最小的路径扩展。
- SPF算法的第二阶段 是把网络的路由信息附加在路由器节点上,计算出最优路由。
- 通过 SPF 算法,OSPF 可以保证整个区域内的路由是无环且最优的。
LSA 是用来描述网络拓扑的小块数据,而 LSDB 是用来存放所有 LSA 的“大本营”。
DR 只会在 广播型网络(如以太网)和 多点接入的网络(如 Frame Relay、ATM)中出现。在这些类型的网络中,多个路由器可以直接相互通信。
DR 的作用是减少 OSPF 的协议消息流量。当网络中有多个路由器时,如果每个路由器都直接与其他路由器交换 LSA,会导致大量的链路状态更新数据,增加网络开销。因此,选出一个 DR 作为“中心点”,让所有路由器与 DR 交换信息,减少流量。
在点对点(P2P)和点到多点网络中,不会出现 DR 和二类 LSA
2. 区域间路由计算
为了防止环路
3类 LSA只会从一个区域传到另一个区域,不会倒流。
ABR 负责在区域之间传递 3 类 LSA,例如从非骨干区域到骨干区域,或者从骨干区域到非骨干区域。不会在非骨干区域中传播,下图Area 0 已经劈开了
如何解决上图中骨干区域断开的问题呢?出了配置冗余的骨干链路,还可以通过OSPF 虚拟链路(Virtual Link)来解决骨干区域不连通的问题。
Virtual Link应该始终作为一种临时的技术手段来解决非骨干区域没有与Area0直接相连的情况。
3.外部路由计算
5类 LSA 是 OSPF 中的一种特殊类型的 LSA,称为 External LSA(外部路由通告)。它用于在 OSPF 内部通告来自外部自治系统(比如 BGP 或者静态路由)的路由信息。
5类 LSA 解决了什么问题?
在实际项目中,你可能需要让 OSPF 路由器了解一些外部的路由信息。这些外部路由不在 OSPF 网络中,而是来自另一个路由协议或静态配置。5类 LSA 就解决了这个问题:它帮助 OSPF 网络中的路由器了解和转发来自外部网络的路由。
举个简单的例子:
假设你在公司内部有一个 OSPF 网络,但你需要和一个外部的云服务(比如 AWS 或者另一个远程站点)通信。而这个外部网络的路由不是通过 OSPF 学到的,而是通过 BGP 或者手动静态路由配置好的。
项目场景:
-
网络拓扑:
- R1 路由器:内部 OSPF 路由器。
- R2 路由器:边界路由器,连接公司内部 OSPF 网络和外部 BGP 网络。
- BGP 网络:连接外部供应商(例如 AWS 云)。
-
问题:
OSPF 内部路由器(R1)如何知道去往外部 BGP 网络的路由信息?这个外部网络可能有多个子网,比如172.16.0.0/16
。 -
解决方案:
在边界路由器 R2 上,我们通过 BGP 学到外部网络的路由信息,比如172.16.0.0/16
。为了让 OSPF 内部的路由器(比如 R1)知道如何到达这个外部网络,R2 会生成一条 5类 LSA,并将172.16.0.0/16
的路由信息通告给 OSPF 网络。通过这种方式,R1 就能知道如何转发流量到
172.16.0.0/16
,即使这个网络不是 OSPF 内部的路由。
4类 LSA:通告 ASBR 的信息,让其他路由器知道如何到达 ASBR。
ASBR将外部路由引入OSPF后,使用5类LSA描述它们,与ASBR同属一个区域的路由器能够根据5类LSA以及区域内的1类、2类LSA完成外部路由计算;与ASBR不在同一个区域的路由器还需借助4类LSA才能完成外部路由计算。
OSPF将外部路由引入OSPF后,可以设置路由的度量值类型:Metric-Type-1或Metric-Type-2,不同度量值类型的外部路由,其开销的计算方式不同,其路由的优先级也不相同,Metric-Type-1路由的优先级高于Metric-Type-2路由。
度量值
Metric-Type-1
当外部路由的开销与自治系统内部的路由开销相当,并且和OSPF自身路由的开销具有可比性时,可以认为这类路由的可信程度较高,将其配置成Metric-Type-1。
通俗易懂的解释:想象一下,如果你的公司网络(自治系统AS)内部的路由开销和外部网络路由开销差不多,那么外部网络路由就像是公司内部的一部分一样可靠。所以,OSPF会认为这些路由是可信的,并将它们配置成Metric-Type-1。这意味着外部路由的开销包括两部分:从路由器到ASBR(自治系统边界路由器)的开销,加上从ASBR到外部网络的开销。
项目实例:假设有一个公司网络,它通过一个ASBR连接到互联网。如果公司内部网络到ASBR的路由开销和ASBR到互联网的路由开销差不多,那么公司网络会将互联网路由配置成Metric-Type-1,因为它们是可比的,并且互联网路由看起来和公司内部路由一样可信。
Metric-Type-2
当ASBR到AS之外的开销远远大于在AS之内到达ASBR的开销时,可以认为这类路由的可信程度较低,将其配置成Metric-Type-2。
通俗易懂的解释:如果从ASBR到外部网络的路由开销比ASBR到AS内部的开销大很多,那么这些外部路由就不如内部路由可信。在这种情况下,OSPF会将这些路由配置成Metric-Type-2,因为它们看起来不太可靠,或者至少不如内部路由可信。
项目实例:继续上面的公司网络例子,如果ASBR到互联网的路由开销比ASBR到公司内部网络的开销大很多,那么公司网络会将互联网路由配置成Metric-Type-2。这表明公司网络更信任内部路由,而对外部互联网路由持保留态度,因为外部路由的开销更高,可能意味着路径更长或更不稳定。
在实际应用中,这些设置帮助网络管理员决定哪些路由更可信,哪些路由在路由决策中应该优先考虑。通过调整Metric-Type,可以优化网络流量的路径选择,提高网络性能和可靠性。
一 OSPF
- OSPF采用 SPF算法完成路由计算
- type links ID AdvR 三者有一不同,就是另一条LSA
options: 功能字段表明 这台设备具备的功能
TransNet 广播型网络
Data是掩码的就是路由
描述了我怎么去,和有什么样的路由
通过LSA获得链路信息,然后动态计算出最优路,通过什么算?通过 LSA 的交互信息
LS type: Router 是一类LSA, 二类是 Network
二类LSA是伪节点产生的。用来描述广播型网络的路由和拓扑信息
所有人先到伪节点,再到目标。这里广播域里的伪节点就是DR。也就是AR1, 下图的LSW1 是虚构出来的
伪节点到实节点没有开销,星星是伪节点
一类LSA 可以看出我自身的路由,和下一跳是谁
二类可以看出包含了哪些路由,连接了哪些节点
transNet 都是伪节点
P2P开销大,是cost=48
路径开销,还有路由开销
一类LSA说明它连接了几个伪节点,通过伪节点看出它连接了几个实体节点
DR设备撤销
AR3原来是DR,后来线断了,要不等待3600s后老化,要不AR3重新接进来更新。下图就是撤销LSDB 中老的,换上新的
Sum-Net就是三类 LSA
ABR可以直接将area 4转到 area 3,不需要经过 area 0
ppp链路默认开销是48,路由开销也是48。
链路开销:设备A到设备B的开销是5,设备B到设备C的开销是7,设备C到设备D的开销是6。P2P
路由开销:【老师解释,接口(Serial x/x/x)SubNet 路由默认开销就是48,加上链路开销的48就是96】就是从设备A到设备D的整个路径的总开销,等于5 + 7 + 6 = 18。
一、OSPF 为啥出现?工作流程
1. 为什么需要OSPF?
早期的RIP(Routing Information Protocol)使用的是距离矢量算法,这种算法简单易实现,但在大型网络中有以下缺点:
- 网络规模有限:RIP最多只能支持15跳,超过15跳的路由器将被视为不可到达,无法扩展到大规模网络。
- 收敛速度慢:收敛指的是网络所有设备都得知最新路由信息的过程。在RIP中,当网络发生变化时,更新路由信息的过程比较慢,可能导致路由错误。
- 不支持VLSM:RIP不支持可变长子网掩码(VLSM),限制了网络的灵活性和资源利用效率。
为了解决这些问题,OSPF被设计出来,用于更大规模和更复杂的网络,能够快速、准确地发现和更新路由信息。
2. OSPF是什么?
OSPF是一个链路状态协议,它的主要特点包括:
- 基于链路状态的路由算法:每个路由器都会了解整个网络拓扑,计算出最佳路径。
- 快速收敛:OSPF能够迅速感知网络变化,并快速更新路由表。
- 无跳数限制:不像RIP有15跳的限制,OSPF没有跳数限制,适用于大型网络。
- 区域划分:OSPF可以将大型网络分成多个区域,减少路由信息的传播,提升网络效率。
3. OSPF的工作流程:
OSPF的工作流程可以分为以下几个关键步骤:
1. 邻居发现与建立邻接关系:
- OSPF路由器通过发送Hello报文来发现邻居路由器。当两个路由器发现彼此时,它们会建立一种称为邻接关系的关系。这个步骤可以理解为路由器在“打招呼”并确认彼此的存在。
2. 链路状态广告(LSA)传播:
- 建立邻居关系后,OSPF路由器会交换链路状态信息。链路状态信息包含网络拓扑的详细信息,如路由器之间的连接状态和链路开销。每个路由器都会生成自己的链路状态广告(LSA),并通过网络传播。
3. 生成链路状态数据库(LSDB):
- 当OSPF路由器收到LSA时,它们会将这些信息存储在一个**链路状态数据库(LSDB)**中。每个路由器都保存整个网络的拓扑结构,通过这些信息,路由器能够了解整个网络中的每一条路径。这就好比所有路由器都有一张完整的地图。
4. 最短路径计算(SPF算法):
- OSPF使用Dijkstra算法(也叫SPF算法,Shortest Path First)来计算从自己到每个网络目的地的最短路径。路由器会根据链路状态数据库中的信息,生成一棵最短路径树(SPT),这棵树表示从路由器到网络中所有目的地的最佳路径。
5. 更新路由表:
- 根据SPF算法计算的结果,路由器将把最佳路径写入自己的路由表。路由表决定了数据包应该通过哪个接口发送,以到达目标网络。
6. 动态更新:
- 当网络拓扑发生变化(如链路中断或新设备加入)时,OSPF会重新生成LSA并传播到网络中的其他路由器。路由器根据这些新的LSA重新计算最短路径并更新路由表,确保数据能通过最佳路径传输。
4. OSPF的区域和层次结构:
- 为了管理大型网络,OSPF可以将网络划分为多个区域。最重要的是核心区域(Area 0),称为骨干区域。所有其他区域必须与骨干区域直接或间接相连。通过这种划分,OSPF可以限制链路状态信息的传播范围,减少不必要的更新,提高网络性能。
二、PPP是什么?为啥出现?整个工作流程是什么?
1. PPP协议的设计使其适合在电话拨号、专线和广域网(如ADSL)等场景中使用,确保了数据能够可靠地在两点之间传输。
2. PPP是什么?
PPP是一种面向广域网的链路层协议,它的主要特点和功能包括:
- 支持多种网络协议:PPP不仅可以传输IP数据包,还支持其他网络层协议(如IPX、AppleTalk等)。
- 提供错误检测和纠错:PPP内置错误检测机制,确保数据在传输中保持完整性。
- 支持动态配置:PPP协议支持自动协商IP地址,用户无需手动配置,适合动态IP地址分配的场景。
- 支持身份验证:PPP提供两种身份验证机制:PAP(Password Authentication Protocol)和CHAP(Challenge Handshake Authentication Protocol),用于在建立连接前验证用户身份。
- 支持压缩和多链路传输:PPP还支持数据压缩和将多个物理链路捆绑在一起以提高带宽。
3. PPP的工作流程:
PPP的工作可以分为以下几个关键步骤,具体的工作流程主要分为链路建立、身份验证(可选)、网络层协议协商和数据传输四个阶段:
1. 链路建立阶段:
- 在这一阶段,PPP会建立物理链路并协商链路参数。使用**LCP(链路控制协议)**进行协商,确认链路参数(如最大传输单元MTU、链路速度等)。这个阶段类似于你和对方开始“打招呼”,确认两边的传输条件。
2. 身份验证阶段(可选):
- 这是一个可选阶段,PPP可以通过PAP或CHAP进行用户身份验证。如果需要验证用户身份,这个阶段会在链路建立后立即进行。
- PAP(Password Authentication Protocol):通过明文传输用户名和密码,安全性较低。
- CHAP(Challenge Handshake Authentication Protocol):使用挑战-握手方式传输凭证,安全性较高。
如果身份验证失败,连接会被中断。如果验证成功,进入下一阶段。
3. 网络层协议协商阶段:
- 通过NCP(网络控制协议),PPP协议可以协商和配置用于数据传输的网络层协议。例如,PPP可以协商使用IP协议或者其他网络协议(如IPX等)。这一阶段类似于商量好用哪种语言来交流。
4. 数据传输阶段:
- 当链路已经建立、身份验证通过(如果需要),并且网络层协议协商完毕,PPP进入数据传输阶段。此时,数据通过PPP链路传输。PPP可以处理和传输多个不同的网络层协议的数据包。这个阶段就是正式开始传输数据。
5. 链路终止阶段:
- 当通信结束或者网络链路断开时,PPP使用LCP协议来关闭链路,释放资源,终止连接。就像电话挂断通话一样,这一阶段标志着数据传输的结束。
三、OSPF和PPP之间的关系是
**OSPF(Open Shortest Path First)和PPP(Point-to-Point Protocol)**都是网络通信中的重要协议,但它们分别属于不同的层次,解决不同的问题。要理解它们的联系,我们可以先明确各自的作用和工作层次:
- OSPF是一个路由协议,用于在网络中的路由器之间交换路由信息,帮助路由器计算和选择最佳的路径来传输数据。它工作在网络层(OSI模型的第3层)。
- PPP是一个数据链路层协议,用于在两个节点之间建立点对点的连接,传输数据。它工作在数据链路层(OSI模型的第2层)。
OSPF和PPP的联系:
PPP协议可以为OSPF提供一条物理链路来进行数据传输。也就是说,PPP负责建立和维护一条两点之间的物理连接,而OSPF负责在该链路上传输路由信息,计算和更新路由表。这两者的工作层次虽然不同,但PPP提供了OSPF运行所需的底层传输链路。
举例说明:
假设你有两个位于不同城市的办公地点,各自有一台路由器A和路由器B。你想让这两个路由器通过一条专线进行通信,并且希望它们能够使用OSPF协议来动态选择最佳路径。
-
PPP的作用:
- 你需要在两个路由器之间建立一条物理链路,可能是通过电话线、光纤等方式。在这种情况下,你可以使用PPP协议在这两个路由器之间创建一个可靠的点对点连接。PPP负责链路的建立、身份验证、数据传输以及链路的维护。这样,A和B之间就有了一个稳定的通信渠道。
- PPP确保这条链路是连通的、稳定的,同时可以处理低层的错误检测和纠正等问题。
-
OSPF的作用:
- 当PPP链路建立之后,OSPF协议就可以在这条链路上传输路由信息。路由器A和路由器B通过OSPF来交换各自网络的拓扑信息。OSPF通过PPP链路定期发送Hello包,以检测链路状态,同时发布和接收链路状态信息(LSA),并根据收到的信息更新路由表,确保数据包能够通过最佳路径传输到目的地。
- OSPF利用PPP提供的稳定链路,来实现动态的路由计算和信息交换。
四、广播型网络和OSPF还有PPP之间的关系
1. 广播型网络是什么?
典型的广播型网络包括以太网(Ethernet),其中设备共享同一个网络介质(如网线或无线信道),数据可以广播给所有连接到这个网络的设备。
2. 广播型网络的工作流程
在广播型网络中,数据包的发送和接收流程通常如下:
-
节点发送数据包:
- 当某个设备需要发送数据,它会将数据包发送到网络,并将目标地址设置为广播地址(例如以太网中是
FF:FF:FF:FF:FF:FF
)。
- 当某个设备需要发送数据,它会将数据包发送到网络,并将目标地址设置为广播地址(例如以太网中是
-
广播到所有节点:
- 由于网络是广播型,数据包会在网络中传播,并被所有连接在网络上的设备接收到。
-
设备处理广播数据包:
- 网络中的每个设备都会检查这个广播数据包。如果数据包中的内容与该设备有关(例如特定的IP地址、MAC地址等),该设备就会处理这个数据包。如果无关,设备会忽略它。
-
反馈机制:
- 一些协议允许设备对广播数据包进行响应,例如在ARP(地址解析协议)中,当一个设备发送ARP请求广播时,目标设备会发送单播回应。
3. 广播型网络和OSPF、P2P的关系
要理解广播型网络与OSPF和**P2P(Point-to-Point,点对点)**的关系,我们可以从这两种协议如何使用广播网络来讲解。
OSPF与广播型网络的关系:
-
OSPF在广播型网络中的工作机制:
- OSPF是一种链路状态路由协议,用于在网络中动态选择路由。OSPF在广播型网络中工作时,利用网络的广播特性,让多个路由器之间能够高效地交换路由信息。
- 邻居发现:OSPF在广播网络上发送Hello报文,这些报文会通过广播传输,所有接收到的OSPF路由器都会收到该信息,进而发现其他路由器并建立邻居关系。
- 设计ated Router (DR) 和 Backup Designated Router (BDR):在广播型网络中,OSPF会选举一个**DR(设计ated Router)和一个BDR(Backup Designated Router)**来减少广播流量,优化路由信息交换。这样,网络中的其他路由器只需要与DR和BDR交换路由信息,而不需要与所有其他路由器单独通信。
- 路由信息传播:OSPF利用广播型网络发送链路状态更新(LSA),所有OSPF路由器可以快速接收到更新,并更新自己的路由表。
-
OSPF选择适合的网络类型:
- 在广播型网络中(如以太网),OSPF会将网络类型设为broadcast,并进行上述操作。
- 在非广播网络(如帧中继网络)或者点对点网络中,OSPF的工作机制会有所不同,但核心流程(如Hello、LSA传播等)相同。
P2P(Point-to-Point)与广播型网络的关系:
-
P2P网络和广播型网络的区别:
- P2P网络是指两个节点之间的直接连接,不经过其他中间设备的点对点链路。这与广播型网络不同,广播型网络通常有多个设备共享同一条链路,数据会被广播给所有设备,而P2P网络中的通信是直接的,只有这两个设备参与通信。
-
P2P网络和OSPF的关系:
- OSPF不仅可以在广播型网络中工作,还可以在P2P网络中工作。例如,当两台路由器通过PPP链路相连时,它们使用P2P网络进行通信。在这种情况下,OSPF会将网络类型设置为point-to-point,不需要选举DR和BDR,因为只有两个路由器直接通信,节省了选举开销。
- 在P2P网络上,OSPF的Hello报文和路由信息直接在两个节点之间传输,不涉及广播机制。
这三者的核心区别在于网络架构的不同:广播型网络是多个设备共享的网络,P2P是两点之间的直接连接,而OSPF则是适应这两种不同网络结构的动态路由协议。
五、ARP
1. ARP的工作流程:
ARP的工作流程可以分为以下几个步骤:
-
发送ARP请求(广播方式):
- 当一台设备(例如计算机A)要与另一台设备(例如计算机B)通信时,如果它只有目标设备的IP地址,不知道其MAC地址,它就会发送一个ARP请求。这个请求是广播包,目标MAC地址为广播地址
FF:FF:FF:FF:FF:FF
,表示网络上的所有设备都能收到这个请求。 - ARP请求包含的内容是“谁拥有IP地址 X.X.X.X?”。
- 当一台设备(例如计算机A)要与另一台设备(例如计算机B)通信时,如果它只有目标设备的IP地址,不知道其MAC地址,它就会发送一个ARP请求。这个请求是广播包,目标MAC地址为广播地址
-
网络中的设备接收ARP请求:
- 网络中的所有设备都会接收到这个广播的ARP请求,并检查它们的IP地址。
- 如果某个设备(例如计算机B)的IP地址与ARP请求中的目标IP地址匹配,它就会生成一个ARP响应包。
-
发送ARP响应(单播方式):
- 目标设备(计算机B)生成一个ARP响应包,将其MAC地址包含在响应中,并发送给发起请求的设备(计算机A)。这时,ARP响应是一个单播包,直接发回给请求者。
-
建立ARP缓存表:
- 计算机A收到ARP响应后,会将目标设备的IP地址和MAC地址映射记录在本地的ARP缓存表中。这样,下次再与这个IP地址通信时,计算机A可以直接使用缓存中的MAC地址,而不需要再次发送ARP请求。
** 总结:**
- ARP(地址解析协议):用于将IP地址解析为MAC地址,确保在链路层进行正确的数据传输。它依赖广播型网络来发送请求。
- 广播型网络:为ARP提供了发送广播包的机制。ARP请求通过广播发送,让网络中所有设备接收。
- ARP与OSPF的关系:ARP和OSPF工作在不同层次,OSPF使用IP地址进行路由计算,而ARP帮助设备将IP地址转换为MAC地址,确保在链路层传输。
- ARP与P2P网络的关系:在点对点网络中,ARP的广播机制不常用,因为两个设备之间是直接连接的,不需要通过广播查找对方的MAC地址。
六、一类和二类LSA
具体案例:
假设你有一个包含两个区域的网络结构:
- **区域1(Area 1)**包含三个路由器R1、R2、R3,R1、R2、R3通过一个交换机连接,形成一个广播型网络。
- **区域2(Area 0,骨干区域)**有两个路由器R4、R5,它们是区域边界路由器(ABR),连接两个区域。
在区域1中:
- R1是选举出来的DR,它会生成一个二类LSA,通告“网络192.168.1.0/24连接了R1、R2、R3”。
- R1、R2、R3也会生成各自的一类LSA,通告它们各自的链路状态和连接信息。
在**区域2(骨干区域)**中:
- R4、R5作为ABR,会汇总区域1和区域2的路由信息,跨区域传输这些信息。二类LSA不会跨区域传输,但一类LSA会由ABR进行汇总和传输。
通俗总结:
- 一类LSA是每个路由器“自我介绍”,告诉其他路由器“我连接了哪些设备或网络”。
- 二类LSA是广播型网络中的代表(DR)代替所有路由器发声,告诉其他人“在这个网络中有这些设备在一起连接”。
- 它们都在OSPF区域内部用于网络的链路状态传播,但它们负责的信息内容不同,应用场景也不同。
通过这种机制,OSPF能够高效地管理网络拓扑信息,减少不必要的重复数据,让路由器之间更好地协作。
七、
1. 什么是Router ID(路由器ID)?
Router ID(路由器ID)是OSPF(Open Shortest Path First)协议中每个路由器的唯一标识符,用于在OSPF网络中识别和区分不同的路由器。它是一个32位的数值,通常以IPv4地址的形式表示。
Router ID的作用和解决的问题:
-
作用:Router ID在OSPF网络中用于唯一标识每个路由器。当OSPF路由器生成链路状态信息(如LSA)时,它会使用自己的Router ID作为信息的发送者标识。Router ID也在选举DR(设计ated Router)和BDR(备份设计ated Router)时使用。
-
解决的问题:Router ID解决了路由器唯一标识的问题。在一个大型网络中,可能会有很多路由器,它们之间需要进行通信和协调。每个路由器通过Router ID可以区分彼此,避免混淆。
-
如何选定Router ID:
- 手动配置:可以手动配置Router ID为特定的IP地址。
- 自动选择:如果没有手动配置,OSPF会自动选择路由器上最高的物理接口IP地址作为Router ID。如果有环回接口,OSPF优先选择最高的环回接口IP地址。
2. SPF(Shortest Path First)算法是什么?
SPF(Shortest Path First),也叫做Dijkstra算法,是OSPF协议中用于计算最短路径的核心算法。SPF算法帮助OSPF路由器从链路状态数据库(LSDB)中构建整个网络的拓扑图,然后计算出从自身到所有其他目的地的最短路径。SPF算法是OSPF最核心的部分,帮助路由器高效选择最优路径。
SPF与防环路的关系:
SPF算法并不是专门设计用来防止环路的,它的主要目的是计算最短路径。然而,由于OSPF是基于链路状态的路由协议,路由器会拥有整个网络的完整拓扑结构,SPF算法通过计算完整的网络拓扑,能够选择唯一的最短路径,从而避免网络中的路由环路。
在OSPF中,路由器通过定期交换链路状态信息(LSA),确保每个路由器都拥有一致的网络视图,并使用SPF算法计算最短路径树。这种机制天然地防止了环路的发生,因为每个路由器都能根据整个网络的拓扑信息进行全局路径计算,而不是通过逐跳的路径选择,这有效地避免了网络环路。
3. SPF算法的工作流程:
SPF算法的流程可以分为以下几个步骤:
1. 构建链路状态数据库(LSDB):
- 每个OSPF路由器都会通过**LSA(链路状态广告)**与邻居路由器交换链路状态信息。
- 每个路由器根据收到的LSA构建自己的链路状态数据库(LSDB),这个数据库包含整个网络的拓扑结构。
2. 初始化最短路径树(SPT):
- 路由器将自己视为最短路径树的根节点,最初SPT只包含路由器自身。
3. 逐步计算最短路径:
- 使用Dijkstra算法,从根节点开始,计算与它直接相连的路由器的最短路径。通过计算每个路由器到其他所有路由器的距离,并选择成本最低的路径。
- 每次找到一个到其他路由器的最短路径,就将该路由器加入到最短路径树中,并继续寻找新的最短路径。
4. 更新路由表:
- 当SPF算法完成最短路径树的构建后,路由器会根据计算结果更新自己的路由表。路由表中记录了每个目的地的最优路径和下一跳(next hop)。
5. 处理网络变化:
- 当网络中的拓扑发生变化(例如链路中断或新链路加入),OSPF会重新生成LSA并更新LSDB。路由器会再次运行SPF算法,重新计算最短路径并更新路由表。