目录
[一. IP数据报交付](#一. IP数据报交付)
[二. IP路由](#二. IP路由)
[三. 路由协议](#三. 路由协议)
[四. RIP协议](#四. RIP协议)
[五. OSPF协议](#五. OSPF协议)
[6. BGP协议](#6. BGP协议)
前言
在当今数字化时代,网络已经成为了现代社会和商业活动的核心。随着互联网的普及和数字化转型的加速推进,人们对于网络的依赖程度也越来越高。而IP路由技术作为网络通信的基石,扮演着连接世界、传递信息的关键角色。IP路由不仅仅是数据在网络中传输的手段,更是实现网络可靠性、高效性和安全性的重要保障。
一. IP数据报交付
在互联网中,数据是通过IP数据报的形式传输的。IP数据报交付是一个复杂的过程,它涉及到将数据从源主机传送到目的主机。这个过程需要网络层的协作,确保数据报能够找到最佳路径到达目的地。
IP数据报交付过程主要包括路由选择、转发和目的地主机处理三个阶段。
-
路由选择:在发送IP数据报之前,源主机首先需要确定数据报要经过的路径。它通过查找路由表或使用路由选择协议(如RIP、OSPF、BGP等)来确定下一跳路由器。路由选择的目标是找到一条最佳路径,即具有最小延迟、最高带宽和最低成本的路径。
-
转发:一旦确定了下一跳路由器,源主机将数据报发送到它。在每个路由器上,数据报到达后,路由器根据自己的路由表选择下一个最佳的出口接口,并将数据报转发到下一个路由器。这个过程称为数据包的转发。路由器的转发决策是基于目的IP地址和路由表中的路由条目进行的。
-
目的地主机处理:最终,数据报到达目的地主机。目的主机会检查数据报的目的IP地址,如果该地址与主机的IP地址匹配,主机将接受该数据报并将其传递到上层协议进行处理,否则将丢弃该数据报。
二. IP路由
IP路由是网络层的核心功能之一,它负责确定数据报从源到目的地的路径。
1.IP路由器
IP 路由器是网络架构中的关键组件,负责在网络之间转发和路由 IP 数据包。它们在互联网络(例如互联网)中发挥着重要作用,确保数据包有效地从源到达目的地。以下是 IP 路由器的关键角色和功能:
-
数据包转发:IP 路由器的主要功能是转发 IP 数据包。当路由器接收到数据包时,它会检查数据包的目的地 IP 地址,并与路由表中的条目进行比较。路由表包含网络或子网的地址以及到达它们的下一跳信息。根据路由表中的信息,路由器确定将数据包转发到哪个接口或下一跳路由器。
-
路由表维护:IP 路由器维护和更新路由表,其中包含有关网络可达性的信息。路由表可以通过多种方式填充,包括手动配置静态路由或使用动态路由协议(例如 OSPF、BGP 等)。动态路由协议允许路由器交换路由信息,动态发现和更新最佳路径。
-
最佳路径选择:IP 路由器使用各种算法来确定到达目的地的最佳路径。这些算法考虑诸如跳数(经过的路由器数量)、带宽、延迟、负载等因素。常见的路由算法包括最短路径优先 (SPF)、链路状态路由和距离矢量路由。最佳路径的选择确保数据包高效地通过网络,同时最大限度地减少延迟和资源利用。
-
网络分割:IP 路由器可以将大型网络划分为多个较小的子网或网络。这有助于控制网络流量,改善性能并增强安全性。通过将网络划分为更小的部分,路由器可以限制广播风暴的影响范围并提高网络效率。
-
网络地址转换 (NAT):IP 路由器通常在网络地址转换 (NAT) 中发挥关键作用。 NAT 涉及将私有 IP 地址转换为公共 IP 地址,反之亦然。这允许多个设备共享一个公共 IP 地址,从而节省公共 IP 地址空间并提供一定程度的网络安全性。
-
防火墙和安全性:IP 路由器通常提供基本的防火墙功能,例如过滤传入和传出数据包,以保护网络免受潜在威胁的影响。它们可以实施访问控制列表 (ACL),根据源和目标 IP 地址、端口或协议允许或阻止流量。
2.IP路由表
IP路由表是路由器中的一个重要组成部分,它包含了多条路由信息,指导路由器如何处理各种目的地的数据报。路由表的内容通常包括以下几个关键字段:
-
目的网络地址(Destination Network Address):指示数据报的目的网络地址或目的主机地址。路由器根据数据报的目的地址来查找路由表中的匹配项,并确定数据报应该转发到哪个接口或下一跳路由器。
-
子网掩码(Subnet Mask):用于确定目的地址所属的网络范围。路由器使用目的地址与路由表中的目的网络地址进行按位与运算,以确定目的地址属于哪个网络。
-
下一跳路由器(Next Hop Router):指示数据报应该转发到的下一个路由器的IP地址。当目的地址不在本地网络范围内时,路由器将数据报转发到下一跳路由器,由它负责进一步转发。
-
出接口(Outgoing Interface):指示数据报应该从哪个接口发送出去。路由器根据目的地址在路由表中找到匹配项后,根据该项的出接口信息将数据报转发到相应的接口。
-
跃点数(Hop Count):表示到达目的网络所需经过的路由器数量。在路由选择协议中,跃点数通常用于衡量路径的长度,路由器根据跃点数选择最佳路径。
3.特定主机路由与默认路由
-
特定主机路由:
-
定义:特定主机路由是指专门用于到达单个目的地的路由。它指定从路由器到特定网络或主机的确切路径。
-
路由表条目:特定主机路由在路由表中被定义为具有特定目的 IP 地址和相应的下一跳地址或接口的条目。
-
示例:假设您的网络中有一个 IP 地址为 192.168.1.10 的计算机,并且您希望通过路由器直接与其通信。您可以配置一个特定主机路由,指定到达该主机的确切路径。
-
使用情况:特定主机路由通常用于需要确保数据包通过特定路径到达特定目的地的情况。这可能包括需要特殊处理或安全要求的敏感设备或服务。
-
-
默认路由:
-
定义:默认路由,也称为标准路由或缺省路由,是当路由表中没有特定目的地的匹配项时使用的路由。它充当所有未知目的地的"默认"或"后备"路由。
-
路由表条目:默认路由通常定义为具有 0.0.0.0/0 网络地址和相应的下一跳地址或接口的路由表条目。
-
示例:如果路由器收到一个目的 IP 地址为 172.16.32.56 的数据包,而路由表中没有匹配的条目,则路由器将使用默认路由并将数据包转发到指定的下一跳。
-
使用情况:默认路由在网络中非常常见,因为它提供了一种处理未知目的地的简单方法。它确保即使路由表中没有特定的路由,数据包仍然可以继续前进,并可能最终到达其目的地。
-
4.路由解析
路由解析是 IP 路由器决定如何转发数据包的关键过程。它涉及对路由表中存储的信息进行分析,以确定到达目的地的最佳路径。以下是路由解析过程的概述:
-
接收数据包:当 IP 路由器接收到一个数据包时,它会检查数据包的目的地 IP 地址。
-
查找路由表:路由器随后会查阅其路由表,以寻找与目的地 IP 地址匹配的路由表条目。路由表包含一系列路由,每个路由指定了到达特定网络或主机的路径。
-
最长前缀匹配:路由器执行最长前缀匹配算法来确定最具体的匹配。这意味着它将比较数据包的目的地 IP 地址与路由表中每个路由的网络地址掩码。最长的匹配前缀(即最匹配的网络地址)将确定要使用的路由。
-
选择最佳路径:如果找到多个匹配的路由,路由器将应用路由选择算法来确定最佳路径。常见的路由选择算法包括最短路径优先 (SPF)、链路状态路由或距离矢量路由。这些算法考虑诸如跳数、带宽、延迟、负载等因素,以选择最优路径。
-
确定下一跳:一旦确定最佳路由,路由器就会获取下一跳信息。下一跳可以是另一个路由器的 IP 地址或与目标网络直接连接的本地接口。
-
转发数据包:根据路由解析的结果,路由器将数据包转发到下一跳。这可能涉及将数据包发送到特定接口或通过网络发送给另一个路由器。
-
更新路由表(如果适用):如果路由器使用动态路由协议,它可能会定期更新其路由表。这可以通过与其他路由器交换路由信息来实现,从而动态发现和更新最佳路径。
-
重复以上过程:对于每个收到的数据包,路由器都会重复上述过程,确保每个数据包都通过最佳路径转发。
5.路由选择过程
路由选择过程是指路由器在多条可能的路径中选择一条最佳路径的过程。在进行路由选择时,路由器通常会考虑以下几个因素:
-
目的地址匹配:路由器首先检查数据报的目的地址,并在路由表中查找与目的地址最匹配的路由条目。路由表中的每一条路由条目都包含了目的网络地址、子网掩码、下一跳路由器和出接口等信息。
-
路由条目优先级:每个路由条目可能会被分配一个优先级或者权重值,用于指示路由器选择最佳路径的优先顺序。通常情况下,路由器会优先选择具有更高优先级的路由条目。
-
跳数或距离:某些路由选择协议(如RIP)使用跳数或距离作为衡量路径长度的标准。路由器可能会选择距离最短或者跳数最少的路径作为最佳路径。
-
带宽和延迟:其他路由选择协议(如OSPF、BGP)可能会考虑路径的带宽和延迟等因素。路由器会倾向于选择具有更高带宽或者更低延迟的路径作为最佳路径。
-
动态路由协议:在动态路由协议中,路由器会周期性地交换路由信息,学习到网络拓扑和路由信息的变化。路由器根据收到的路由更新信息,更新自己的路由表,并选择最佳路径进行数据转发。
-
策略路由:有时候,路由器可能会根据特定的策略或者规则来选择路径。例如,可以基于源地址、服务类型或者数据包的其他属性来选择路径。
三. 路由协议
路由协议定义了路由器如何交换路由信息,以及如何计算到达网络中每个部分的最佳路径。
1.静态路由与动态路由
静态路由是由网络管理员手动配置的路由信息,它们不会自动学习和更新。管理员需要显式地指定目的网络地址、子网掩码、下一跳路由器和出接口等路由信息,并将其添加到路由器的路由表中。静态路由的优点是配置简单、稳定可靠,适用于较小规模的网络或者需要精确控制路由路径的场景。
动态路由是通过路由协议自动学习和更新的路由信息。路由器使用动态路由协议(如RIP、OSPF、BGP等)与相邻路由器交换路由信息,学习到网络拓扑和路由信息的变化。通过动态路由协议,路由器可以自动发现网络中的其他路由器和可达路径,并根据网络的变化动态更新路由表。动态路由的优点是自动化管理、适应性强,能够快速适应网络拓扑变化和路由策略调整。
两者之间的选择取决于网络规模、复杂度和管理需求。在小型网络或者需要精确控制路由路径的情况下,静态路由可能更为适用;而在大型企业网络或者动态变化的互联网环境中,动态路由更常见,因为它能够提供自动化管理和快速适应性。在实际网络设计中,通常会根据具体情况综合考虑使用静态路由和动态路由的组合,以达到最佳的网络性能和管理效率。
2.内部网关协议与外部网关协议
内部网关协议 (IGP) 和外部网关协议 (EGP) 是两种不同的路由协议,用于在网络中交换路由信息并确定最佳路径:
-
内部网关协议 (IGP):
-
定义:内部网关协议 (IGP) 是一类路由协议,用于在单一自治系统 (AS) 内交换路由信息。自治系统是指在公共互联网中具有单一管理或控制的一组路由器。
-
示例:常见的 IGP 包括:
- OSPF(开放最短路径优先):一种基于链路状态的协议,它使用最短路径优先算法来确定最佳路径。 OSPF 具有分层设计,非常适合大型网络。
- RIP(路由信息协议):一种距离矢量协议,它使用跳数作为路由选择的度量。 RIP 易于配置,通常用于较小的网络。
- IGRP(内部网关路由协议):一种 Cisco 开发的距离矢量协议,它提供灵活的路由度量和可自定义的路由度量。
-
特征:
- 单一自治系统:IGP 仅在单个自治系统内工作,用于内部路由。
- 路由信息交换:IGP 路由器交换路由信息,例如网络可达性、距离或成本。
- 路由选择:IGP 使用各种算法(例如 SPF 或距离矢量)来确定最佳路径。
-
-
外部网关协议 (EGP):
-
定义:外部网关协议 (EGP) 是一类路由协议,用于在不同自治系统之间交换路由信息。它允许自治系统之间相互连接并交换路由信息。
-
示例:
- BGP(边界网关协议):BGP 是互联网上最常用的 EGP。它允许自治系统之间进行互连并交换路由信息。 BGP 支持复杂的路由策略和决策,使其非常适合大规模互联网络。
-
特征:
- 跨自治系统:EGP 跨多个自治系统工作,促进自治系统之间的互连。
- 策略和路由选择:EGP 允许自治系统实施策略并控制路由信息的传播。
- 路由聚合:EGP 支持路由聚合,这减少了需要交换的路由数量。
- 路径属性:EGP 通常携带有关路由的其他信息,例如自治系统路径或路由策略。
-
3.距离向量路由协议和链路状态路由协议
距离向量路由协议(如RIP)和链路状态路由协议(如OSPF)是两种常见的动态路由协议,它们在路由选择机制和路径计算方式上有所不同。
-
距离向量路由协议(Distance Vector Routing Protocol,如RIP):
- 路径选择机制:距离向量路由协议基于每个路由器维护的距离向量表来进行路径选择。距离向量是从当前路由器到目的网络的估计距离,通常以跳数(hops)为单位。路由器通过周期性地交换距离向量信息,学习到网络中其他路由器到达目的网络的距离信息,并根据距离向量计算最短路径。
- 路径计算方式:路由器根据收到的距离向量信息,更新自己的距离向量表,并选择到达目的网络的最短路径。通常情况下,路由器选择距离向量表中距离最短的路径作为最佳路径进行数据转发。
-
链路状态路由协议(Link State Routing Protocol,如OSPF):
- 路径选择机制:链路状态路由协议通过每个路由器维护的链路状态数据库来进行路径选择。每个路由器会向周围的邻居路由器发送链路状态更新信息,描述自己所连接的链路的状态。通过收集到的链路状态信息,每个路由器都可以构建出整个网络的拓扑图,并计算出最佳路径。
- 路径计算方式:路由器根据收集到的链路状态信息,使用Dijkstra算法等最短路径算法计算出到达目的网络的最短路径。路由器选择链路状态数据库中距离最短的路径作为最佳路径进行数据转发。
四. RIP协议
RIP协议是一种距离向量路由协议,它使用跳数作为度量标准,限制在15跳内。
1.概述
RIP(Routing Information Protocol)是一种简单的内部网关协议,广泛用于小型网络。它是一种基于距离向量的动态路由协议,旨在实现路由器之间的路由信息交换,以便确定最佳路径并实现数据包的转发。
RIP最初由Xerox公司开发,后来成为了互联网工程任务组(IETF)制定的标准之一。其最早版本为RIP v1,后来又发展出了RIP v2,增加了一些额外的特性和改进。
RIP的特点如下:
-
简单易用:RIP设计简单,实现容易,适用于小型网络环境。管理员可以轻松地配置和管理RIP路由器,无需复杂的设置和调整。
-
基于距离向量:RIP使用距离向量算法来选择最佳路径。每个路由器维护一个距离向量表,记录到达其他网络的距离,并周期性地与邻居路由器交换更新信息。
-
适用于小型网络:由于其简单性和易用性,RIP广泛应用于小型网络环境,如家庭网络、办公室网络和小型企业网络等。
-
适度的可扩展性:尽管RIP在大型网络中的可扩展性较差,但对于小型网络来说,它的性能和效率都是可以接受的。
尽管RIP在现代大型网络中逐渐被更为复杂和高效的路由协议所取代,但在一些简单的网络场景中,RIP仍然是一种有效的选择。它为小型网络提供了一种简单而可靠的路由解决方案,使网络管理员能够轻松地构建和管理网络。
2.工作原理
路由信息协议 (RIP) 是一种距离矢量路由协议,用于在网络中交换路由信息。以下是 RIP 协议的工作原理及其关键功能的概述:
-
距离矢量协议:RIP 是一种距离矢量协议,这意味着它根据跳数(即数据包必须经过的路由器数量)来确定最佳路径。在 RIP 中,每个路由器维护一个路由表,其中包含有关网络可达性的信息以及到达每个网络所需的跳数。
-
路由表初始化:当 RIP 启用时,路由器初始化其路由表并将其直接连接的网络添加到表中。对于每个直接连接的网络,路由器将跳数设置为 1。
-
定期更新:RIP 路由器定期向其相邻路由器广播其完整的路由表。默认情况下,这些更新每 30 秒发送一次。这些更新包含每个路由器的路由表条目,包括网络地址、下一跳地址和跳数。
-
接收更新:当 RIP 路由器接收到来自相邻路由器的更新时,它会检查每个路由表条目,并根据以下规则进行处理:
- 如果网络已在路由表中且跳数相同,则忽略该条目。
- 如果网络已在路由表中且跳数更小,则更新该条目以反映更小的跳数。
- 如果网络不在路由表中,或者跳数大于 16(最大跳数),则忽略该条目。
- 如果网络不在路由表中且跳数小于或等于 16,则添加或更新该条目。
-
毒逆转:RIP 引入了"毒逆转"机制,以处理网络拓扑变化。如果路由器收到某个网络的更新,并且该网络的跳数大于 16,则该网络将被标记为不可达。如果另一个路由器随后报告该网络的较小跳数,则发生"毒逆转",该网络将被重新引入路由表。
-
触发更新:除了定期更新之外,RIP 还支持触发更新。当路由器检测到网络拓扑发生变化时(例如链路断开),它会立即发送触发更新,通知相邻路由器该网络已不可达。
-
计时器:RIP 使用各种计时器来管理路由表和更新过程。这些计时器包括更新计时器(控制定期更新之间的时间)、过期计时器(控制路由条目被删除之前保持不可达状态的时间)等。
3.报文格式
RIP(Routing Information Protocol)报文是在RIP路由器之间交换路由信息的载体,其格式通常包括以下字段:
-
命令(Command):指示RIP报文的类型,常见的命令包括请求(Request)和响应(Response)两种。请求报文用于向邻居路由器请求路由信息,而响应报文则包含路由器本身的路由信息。
-
版本号(Version):指示RIP协议的版本号,用于标识报文所使用的RIP协议版本。RIP最常见的版本是RIP v1和RIP v2。
-
地址族标识符(Address Family Identifier):用于指示RIP报文中所包含的路由信息的地址族类型,如IPv4或IPv6。
-
路由条目(Route Entries):包含了路由器所知道的目的网络的路由信息。每个路由条目通常包括目的网络地址、下一跳路由器、距离等信息。
-
路由标识符(Route Tag):用于标识路由条目的特定属性或来源,通常用于路由策略的控制和过滤。
-
子网掩码(Subnet Mask):指示目的网络地址的子网掩码,用于确定网络地址的范围。
-
距离(Metric):指示到达目的网络的距离或成本,通常以跳数(hops)为单位。
RIP报文的具体格式可以根据协议版本和具体实现而有所不同。通常情况下,RIP报文以UDP数据报的形式进行传输,源端口号和目的端口号分别为520,使用IP协议进行封装和传输。
五. OSPF协议
OSPF是一个内部网关协议,它使用链路状态信息来构建一个完整的网络拓扑图。
1.区域划分与路由聚合
OSPF(Open Shortest Path First)允许将网络划分为多个区域,以减少路由信息的数量。这种区域划分和路由聚合的方式有助于提高网络的可扩展性、降低路由器负载,并减少路由信息的传播和处理开销。
在OSPF中,网络可以被划分为多个区域(Area),每个区域内部的路由器都拥有相同的区域标识符(Area ID),但不同区域之间的路由器则具有不同的区域标识符。每个区域都有一个Area Border Router(ABR)作为边界路由器,负责与其他区域进行路由信息交换。
区域划分和路由聚合的主要优点包括:
-
减少路由器负载:将网络划分为多个区域后,每个区域内部的路由器只需处理和维护本区域内的路由信息,从而减轻了路由器的负载压力。
-
降低路由信息的数量:通过区域之间的路由聚合,将本地区域的路由信息聚合成一个摘要,从而减少了网络中的路由信息数量。这有助于减少路由器之间的路由信息交换量和路由表的大小,提高路由信息的传输效率和处理效率。
-
提高网络的可扩展性:区域划分和路由聚合使得网络的拓扑结构更加简单清晰,减少了整个网络中路由器之间的连接数量和路由信息的传播范围,从而提高了网络的可扩展性和稳定性。
-
优化路由路径:通过将路由信息聚合到边界路由器上,可以更好地优化路由路径,使得数据流量能够更快速地达到目的地,并降低网络的延迟和拥塞风险。
2.路由计算
OSPF(开放式最短路径优先)是一种基于链路状态的路由协议,它使用 Dijkstra 算法来计算自治系统内的最短路径树。以下是 OSPF 路由计算过程的概述:
-
链路状态广告:在 OSPF 中,每个路由器维护一个链路状态数据库 (LSDB),其中包含有关网络拓扑的信息。每个路由器通过向其相邻路由器发送链路状态广告 (LSA) 来共享其链路状态信息。 LSA 包含有关路由器接口、连接的网络、接口成本等信息。
-
数据库同步:当 OSPF 邻居关系建立时,路由器交换其 LSDB 中的 LSA,以同步其链路状态信息。此过程确保所有路由器都有完整的网络拓扑视图。
-
Dijkstra 算法:一旦 LSDB 同步,每个路由器独立地运行 Dijkstra 算法来计算最短路径树。 Dijkstra 算法使用以下步骤:
- 每个路由器将自己设置为根节点,并初始化其距离为 0。
- 路由器选择尚未处理的具有最小距离的节点。
- 对于所选节点,路由器检查与其相邻节点的距离。
- 如果通过相邻节点到达该节点的距离小于当前距离,则更新距离并记录下一跳路由器。
- 重复此过程,直到处理所有节点。
-
计算最短路径树:通过 Dijkstra 算法,每个路由器计算到达所有其他路由器的最短路径。这些最短路径形成最短路径树,其中根节点是计算过程开始的路由器。
-
选择下一跳:根据最短路径树,每个路由器确定到达每个目的地的下一跳路由器。此信息存储在路由表中。
-
流量转发:当路由器收到数据包时,它会检查目的地并转发数据包到路由表中指定的下一跳路由器。此过程重复进行,直到数据包到达其目的地。
-
收敛和更新:如果网络拓扑发生变化,路由器将检测到这些变化并触发 LSA 更新。这些更新传播到其他路由器,导致它们重新运行 Dijkstra 算法并重新计算最短路径树。此过程称为收敛,确保所有路由器都具有网络的最新视图。
3.网络类型与指定路由器
OSPF(Open Shortest Path First)根据网络类型(如广播、非广播)来选择相应的操作方式。在OSPF中,网络类型定义了路由器在特定类型网络上运行OSPF时的行为和要求。
-
广播网络(Broadcast Network):
- 在广播网络中,路由器之间可以通过广播方式互相通信,如以太网等。
- 在这种网络类型下,OSPF使用Hello消息进行邻居发现和建立邻居关系。路由器周期性地发送Hello消息,并等待其他路由器的响应,从而建立邻居关系。
- 当邻居关系建立后,路由器之间交换链路状态信息(LSA),并使用Dijkstra算法计算出最短路径。
-
点对点网络(Point-to-Point Network):
- 在点对点网络中,只有两个路由器直接相连,通常通过点对点链路(如串行连接)进行连接。
- 在这种网络类型下,OSPF也使用Hello消息进行邻居发现和建立邻居关系,但不需要进行选举过程,因为只有一个邻居。
-
非广播网络(Non-Broadcast Network):
- 在非广播网络中,路由器之间无法直接通过广播方式通信,如Frame Relay、ATM等。
- 在这种网络类型下,OSPF使用多播或单播方式发送Hello消息,并需要手动配置邻居路由器的地址。
- 由于无法直接通过广播方式选举DR(Designated Router)和BDR(Backup Designated Router),因此需要手动指定DR和BDR路由器。
-
点到多点网络(Point-to-Multipoint Network):
- 在点到多点网络中,一个路由器与多个路由器相连,但它们之间并不全互相连通,如虚拟专用网(VPN)等。
- 在这种网络类型下,OSPF需要手动配置邻居路由器的地址,因为无法使用Hello消息进行自动邻居发现。
4.OSPF数据包.LSA
OSPF(Open Shortest Path First)通过LSA(Link State Advertisement)来交换链路状态信息。LSA是一种用于描述路由器所知道的网络拓扑信息的数据包,它包含了路由器所连接的链路状态以及与之相关的路由信息。
LSA主要用于在OSPF网络中路由器之间传递链路状态信息,以便构建网络拓扑图并计算最短路径。在OSPF中,每个路由器都维护着一个链路状态数据库(LSDB),用于存储邻居路由器发送的LSA信息。
下面是一些常见的LSA类型及其功能:
-
Type 1 LSA(Router LSA):
- 描述了发送路由器的连接到的所有网络,以及这些网络的状态信息,包括路由器接口的IP地址、链路状态、成本等。
- 每个路由器都会定期生成并发送Type 1 LSA,用于向其他路由器报告自己的链路状态。
-
Type 2 LSA(Network LSA):
- 描述了多点网络中的所有路由器和连接到该网络上的子网的状态信息。
- 由DR(Designated Router)负责生成并发送到该网络的所有路由器。
-
Type 3 LSA(Summary LSA):
- 描述了到达其他区域的路由信息的摘要,用于区域之间的路由信息交换。
- 由ABR(Area Border Router)负责生成并发送。
-
Type 4 LSA(ASBR Summary LSA):
- 描述了其他区域中的ASBR(Autonomous System Boundary Router)的路由信息。
- 由ABR负责生成并发送。
-
Type 5 LSA(External LSA):
- 描述了AS外部路由的信息,即来自其他自治系统的路由信息。
- 由ASBR生成并发送到OSPF域内的所有路由器。
-
Type 7 LSA(NSSA External LSA):
- 类似于Type 5 LSA,但只在NSSA(Not So Stubby Area)中使用,用于在NSSA区域内传递外部路由信息。
- 由NSSA ASBR生成并发送。
6. BGP协议
BGP是一个外部网关协议,它用于在不同自治系统之间进行路由决策。
1.工作原理
边界网关协议 (BGP) 是一种强大的外部网关协议,用于在自治系统 (AS) 之间交换路由信息。以下是 BGP 协议的工作原理及其关键功能的概述:
-
自治系统 (AS):BGP 用于在自治系统之间路由流量。自治系统是一组在公共互联网中具有单一管理或控制的一组路由器和网络。每个自治系统都有一个唯一的编号,称为自治系统编号 (ASN)。
-
对等体和会话:BGP 路由器之间建立对等关系,称为对等体。对等体交换路由信息并根据策略和规则做出路由决策。对等体之间建立 TCP 连接(通常在端口 179 上),并通过 BGP 会话交换路由信息。
-
路由广告:BGP 对等体通过发送 BGP 更新消息来交换路由信息。这些更新包含对等体愿意通过其网络到达的网络前缀列表。每个网络前缀通常由 IP 地址前缀和网络掩码组成。
-
路径属性:BGP 更新还包括与每个网络前缀关联的路径属性。这些属性提供有关路由的附加信息,例如自治系统路径、本地首选项、多出口歧视等。这些属性帮助做出路由决策并影响最佳路径选择。
-
路由选择过程:BGP 使用一系列标准和属性来选择最佳路径。这些标准包括:
- 局部首选项:由自治系统管理员设置的值,用于影响路径选择。
- AS 路径长度:到达目的地的自治系统数。
- 起源 AS:最初广告网络的前缀的自治系统。
- IGP 成本:到达网络前缀的内部网关协议 (IGP) 成本。
- 路由器 ID:发出 BGP 更新的路由器的 ID。
-
最佳路径选择:BGP 对等体根据上述标准评估所有可用路径并选择最佳路径。最佳路径通常是指到达目的地的首选路径。
-
路由表维护:每个 BGP 对等体维护其自己的 BGP 路由表,其中包含通过 BGP 学习的路由。这些路由表与 IGP 路由表不同,BGP 路由表用于跨自治系统做出路由决策。
-
转发数据包:当 BGP 路由器接收到数据包时,它会检查目的地并根据 BGP 路由表中的信息转发数据包。
2.路径属性
BGP(Border Gateway Protocol)使用一系列路径属性来影响路由选择。这些路径属性描述了路由器所知道的路由信息的特征和属性,对于BGP路由选择过程至关重要。以下是一些常见的BGP路径属性及其影响:
-
AS路径(AS Path):
- AS路径是一系列经过的自治系统(AS)编号,描述了数据包从源网络到目的网络的路径。BGP路由器使用AS路径来避免环路,并且通常选择AS路径最短的路径作为最佳路径。
-
NEXT_HOP:
- NEXT_HOP属性指定了数据包到达目的网络的下一跳路由器的IP地址。BGP路由器使用NEXT_HOP属性来确定数据包的下一跳,并且仅选择NEXT_HOP可达的路径。
-
网络前缀(Network Prefix):
- 网络前缀指定了目的网络的IP地址和子网掩码。BGP路由器根据网络前缀来确定目的网络,并选择最具体的匹配项作为最佳路径。
-
AS路径长度(AS Path Length):
- AS路径长度指示了到达目的网络所经过的AS数量。通常情况下,BGP路由器倾向于选择AS路径长度较短的路径作为最佳路径。
-
前缀长度(Prefix Length):
- 前缀长度指定了网络前缀的子网掩码长度。BGP路由器会选择具有最长前缀长度的路径作为最佳路径,以确保最精确的匹配。
-
本地优先级(Local Preference):
- 本地优先级是由BGP路由器本地配置的路径属性,用于指定从该路由器发出的路由的优先级。其他路由器在选择最佳路径时会考虑本地优先级,通常选择具有较高本地优先级的路径。
-
路由起源(Route Origin):
- 路由起源属性指示了路由信息的来源,可以是IGP(Interior Gateway Protocol)内部生成的,EGP(Exterior Gateway Protocol)外部学习的,或是手动配置的。BGP路由器通常倾向于选择来源于IGP的路由作为最佳路径。
-
MED(Multi-Exit Discriminator):
- MED属性用于在同一AS内部选择最佳路径。它指示了从AS边界出口到达目的网络的成本,通常由AS边界路由器设置。较低的MED值表示较优的路径。
3.报文格式
BGP(边界网关协议)使用一系列消息类型来在对等体之间交换路由信息并维护 BGP 会话。以下是 BGP 报文格式及其关键消息类型的概述:
-
BGP 报文格式:
-
消息头:BGP 报文以消息头开头,其中包含以下字段:
- 消息类型:指示消息类型(开放、更新、通知等)。
- 长度:表示报文的总长度(以字节为单位)。
- 自治系统:发送方自治系统编号。
- BGP ID:发送方路由器的 BGP 标识符。
-
消息内容:消息头后面是消息内容,其格式因消息类型而异。
-
-
开放消息:
- 用途:建立 BGP 对等关系并交换初始参数。
- 内容:
- 自治系统:发送方自治系统编号。
- BGP ID:发送方路由器的 BGP 标识符。
- 保持时间:BGP 会话保持时间(以秒为单位)。
- BGP 参数:其他 BGP 参数,例如可接受的路由类型。
-
更新消息:
- 用途:交换网络可达性信息和路由属性。
- 内容:
- 无路由(WITHDRAW):用于撤回先前广告的网络前缀。
- 网络前缀列表:包含网络前缀、网络掩码和相关路径属性的列表。
- 路径属性:与每个网络前缀关联的属性,例如 AS 路径、本地首选项等。
-
通知消息:
- 用途:指示错误或异常情况。
- 内容:
- 错误代码:指示错误类型(例如,打开确认、更新错误等)。
- 错误子代码:提供有关错误的更多详细信息。
-
保持消息:
- 用途:确认 BGP 会话并防止超时。
- 内容:
- 消息类型:仅指示"保持"。
- 长度:通常为 19 字节。
- 其他字段:与开放消息中的相同。
-
路由刷新消息:
- 用途:请求对等体发送其完整的路由表。
- 内容:
- 消息类型:指示"路由刷新"。
- 长度:通常为 19 字节。
- 其他字段:与开放消息中的相同。
总结
IP路由技术是网络通信的核心,是实现互联网连接的基石。通过深入学习和理解IP路由的原理和技术,我们能够更好地构建和管理网络,提升网络的性能、安全性和可靠性。随着技术的不断发展和网络的不断演进,我们相信IP路由技术将继续发挥着重要的作用,在连接世界、传递信息的道路上不断前行。