计算机网络 —— 路由协议:RIP、OSPF、BGP、MPLS

news2024/12/23 9:01:21

路由协议

    • 1. 定义
    • 2. IGP
      • 2.1 RIP
      • 2.2 OSPF
    • 3. BGP
    • 4. MPLS

1. 定义

互联网中需要通过路由将数据发送至目标主机。

路由器根据路由控制表(RoutingTable)转发数据包,它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。

(1)静态路由与动态路由

静态路由是指事先设置好路由器和主机中并将路由信息固定的一种方法,通常是由使用者手工操作完成的。

而动态路由是指让路由协议在运行过程中自动地设置路由控制信息的一种方法。动态路中,路由器根据设置的路由协议给相邻路由器发送自己已知的网络连接信息,而这些信息又像接力一样依次传递给其他路由器,直至整个网络都了解时,路由控制表也就制作完成了。

(2)路由控制范围

根据路由控制的范围,由协议大致分为两大类:

  • 外部网关协议EGP,Exterior Gateway Protocol
  • 内部网关协议IGP,Interior Gateway Protocol)

(3)路由算法

路由控制有各种各样的算法,其中最具代表性的有两种是:

  • 距离向量(Distance-Vector)算法
  • 链路状态(Link-State)算法

距离向量算法(DV)是指根据距离(代价)和方向决定目标网络或目标主机位置的一种方法。该方法中,每个路由器掌握的信息都不相同。

在这里插入图片描述
链路状态算法是路由器在了解网络整体连接状态的基础上生成路由控制表的一种方法。该方法中,每个路由器必须保持同样的信息才能进行正确的路由选择。

在这里插入图片描述
(4)主要协议

路由协议名下一层协议方式适用范围循环检测
RIPUDP距离向量域内不可以
OSFPIP链路状态域内可以
BGPTCP路径向量对外连接可以

2. IGP

2.1 RIP

(1)定义

路由信息协议(RIP,Routing Information Protocol)是一种较为简单的内部网关协议(IGP,Interior Gateway Protocol),包括RIP-1和RIP-2两个版本。

RIP是一种基于距离矢量(DV)算法的协议,它使用跳数Hop Count)作为度量来衡量到达目的网络的距离。通过UDP报文进行路由信息的交换,使用的端口号为520

RIP主要应用于规模较小的网络中,例如校园网以及结构较简单的地区性网络。

(2)工作原理

广播路由控制信息
在这里插入图片描述
根据距离向量确定路由信息
在这里插入图片描述

2.2 OSPF

(1)定义

开放式最短路径优先OSPF,Open Shortest Path First)是IETF根据中间系统到中间系统的路由选择协议(IS-IS,Intermediate System to Intermediate System Intra- Domain routing information exchange protocol)开发的一个基于链路状态内部网关协议(Interior Gateway Protocol)。

目前针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。

(2)工作原理

OSPF网络中,每台路由器根据自己周围的网络拓扑结构生成链路状态通告LSA,Link State Advertisement),并通过更新报文将LSA发送给网络中的其它路由器。

每台路由器都通过链路状态数据库LSDB,Link State DataBase)掌握全网的拓扑结构。

每台路由器都会收集其它路由器发来的LSA,所有的LSA放在一起便组成了链路状态数据库LSDB。LSA是对路由器周围网络拓扑结构的描述,LSDB则是对整个自治系统的网络拓扑结构的描述。路由器将LSDB转换成一张带权的有向图,这张图便是对整个网络拓扑结构的真实反映。在网络拓扑稳定的情况下,各个路由器得到的有向图是完全相同的。

在这里插入图片描述
(3)报文类型

类型报文名称功 能
1问候(HELLO)确认相邻路由器、确定指定路由器
2数据库描述(Database Description)链路状态数据库的摘要信息
3链路状态请求(LinkState Request )请求从数据库中获取链路状态信息
4链路状态更新(Link State Update)更新链路状态数据库中的链路状态信息
5链路状态确认应答(Link State Acknowledgement )链路状态信息更新的确认应答

(4)工作机制

OSPF的运行机制包括以下5个步骤:

  • 通过交互Hello报文形成邻居关系

路由器运行OSPF协议后,会从所有启动OSPF协议的接口上发送Hello报文。如果两台路由器共享一条公共数据链路,并且能够成功协商各自Hello报文中所指定的某些参数,就能形成邻居关系。
图1 通过交互Hello报文形成邻居关系

  • 通过泛洪LSA通告链路状态信息

形成邻居关系的路由器之间进一步交互LSA形成邻接关系。每台路由器根据自己周围的网络拓扑结构生成LSA,LSA描述了路由器所有的链路、接口、邻居及链路状态等信息,路由器通过交互这些链路信息来了解整个网络的拓扑信息。
在这里插入图片描述

  • 通过组建LSDB形成带权有向图

通过LSA的泛洪,路由器会把收到的LSA汇总记录在LSDB中。最终,所有路由器都会形成同样的LSDB,如图3所示。LSA是对路由器周围网络拓扑结构的描述,而LSDB则是对整个自治系统的网络拓扑结构的描述,LSDB是LSA的汇总。

在这里插入图片描述

  • 通过SPF算法计算并形成路由

当LSDB同步完成之后,每一台路由器都将以其自身为根,使用SPF算法来计算一个无环路的拓扑图来描述它所知道的到达每一个目的地的最短路径(最小的路径代价)。这个拓扑图就是最短路径树,有了这棵树,路由器就能知道到达自治系统中各个节点的最优路径。
图4 通过SPF算法计算并形成路由

  • 维护和更新路由表

根据SPF算法得出最短路径树后,每台路由器将计算得出的最短路径加载到OSPF路由表形成指导数据转发的路由表项,并且实时更新。同时,邻居之间交互Hello报文进行保活,维持邻居关系或邻接关系,并且周期性地重传LSA。

在这里插入图片描述

3. BGP

(1)定义

边界网关协议BGP,Border Gateway Protocol)是一种用来在路由选择域之间交换网络层可达性信息(NLRI,Network Layer Reachability Information)的路由选择协议,当前使用的版本是BGP-4。

Internet是一个由多个自治系统AS,Autonomous System)相互连接构成的大网络,BGP作为事实上的Internet外部路由协议标准,被广泛应用于ISP(Internet Service Provider)之间,连接不同组织机构(自治系统)。

(2)AS

自治系统AS,Autonomous System)指的是一组在统一行政管理下且遵循特定路由策略的互联网协议(IP)前缀集合。

简单来说,AS是一个大型网络或网络组,它们之间遵循着统一的路由策略,自治系统又被称为路由选择域(routing domain)。

互联网是由一个又一个的自治系统AS组成,每个接入互联网的计算机或设备都归属于某个AS。

AS必须具有一个公开且正式登记的自治系统编号ASN),ASN由互联网地址分派机构IANA, Internet Assigned Numbers Authority)统一管理。
在这里插入图片描述

ASN分为16位和32位两种类型:2007年以前,所有的ASN均为16位,范围从1至65,535。随着数量的耗尽——类似于IPv4地址——引入了32位的ASN,其范围从65,536扩展到4,294,967,295。

截止目前,全球一共分配了191626个as自治系统号,中国到目前有3,236多个自治系统。

在这里插入图片描述

全球的自治系统编号由互联网编号分配局(IANA)进行管理,并由五个地区互联网注册处负责分配。

  • 非洲网络信息中心(AFRINIC):非洲
  • 亚太网络信息中心(APNIC):亚洲和太平洋地区
  • 北美互联网注册处(ARIN):加拿大、美国及部分加勒比海岛屿
  • 拉丁美洲和加勒比网络信息中心(LACNIC):拉丁美洲和加勒比地区
  • 欧洲IP网络协调中心(RIPE NCC):欧洲、中东和中亚

(3)BGP报文中的角色

  • Speaker:发送BGP报文的路由设备称为BGP发言者(Speaker),它接收或产生新的路由信息,并发布(Advertise)给其它BGP Speaker。当BGP Speaker收到来自其它AS的新路由时,如果该路由比当前已知路由更优、或者当前还没有该路由,它就把这条路由发布给所有其他BGP Speaker(发布该路由的BGP Speaker除外)。
  • Peer:相互交换报文的BGP Speaker之间互称对等体(Peer)。

BGP扬声器为了在 AS之间交换 BGP信息,必须与所有AS建立对等的BGP连接。BGP则基于AS之间的合约进行数据包的转发。BGP一般选择AS 数最少的路径,不过仍然要遵循各个AS之间签约的细节进行更细粒度的路由选择。

BGP中数据包送达目标网络时,会生成一个中途经过所有AS的编号列表,叫做AS路径信息访问列表(ASPathList)。ASPathList不仅包含转发方向和距离,还涵盖了途径所有AS的编号。BGP这种根据所要经过的路径信息访问列表进行路由控制的协议属于路径向量(PathVector)型协议。

(4)BGP的报文

BGP的运行是通过报文驱动的,共有Open、Update、Notification、Keepalive和Route-refresh五种报文类型。

  • Open报文:是TCP连接建立后发送的第一个报文,用于建立BGP对等体之间的连接关系。对等体在接收到Open报文并协商成功后,将发送Keepalive报文确认并保持连接的有效性。确认后,对等体间可以进行Update、Notification、Keepalive和Route-refresh报文的交换。
  • Update报文:用于在对等体之间交换路由信息。Update报文可以发布多条属性相同的可达路由信息,也可以撤销多条不可达路由信息。
  • Notification报文:当BGP检测到错误状态时,就向对等体发出Notification报文,之后BGP连接会立即中断。
  • Keepalive报文:BGP会周期性地向对等体发出Keepalive报文,用来保持连接的有效性。
  • Route-refresh报文:Route-refresh报文用来请求对等体重新发送所有的可达路由信息。

(5)BGP处理过程

BGP的传输层协议是TCP协议,所以在BGP对等体建立之前,对等体之间首先进行TCP连接。BGP邻居间会通过Open报文协商相关参数,建立起BGP对等体关系。

建立连接后,BGP邻居之间交换整个BGP路由表。BGP会发送Keepalive报文来维持邻居间的BGP连接,BGP协议不会定期更新路由表,但当BGP路由发生变化时,会通过Update报文增量地更新路由表。当BGP检测到网络中的错误状态时(例如收到错误报文时),BGP会发送Notification报文进行报错,BGP连接会随即中断。

在这里插入图片描述
(6)BGP有限状态机

BGP有限状态机共有六种状态,分别是IdleConnectActiveOpen-SentOpen-ConfirmEstablished

在BGP对等体建立的过程中,通常可见的三个状态是:Idle、Active、Established。

  • Idle状态下,BGP拒绝任何进入的连接请求,是BGP初始状态。
  • Connect状态下,BGP等待TCP连接的建立完成后再决定后续操作。
  • Active状态下,BGP将尝试进行TCP连接的建立,是BGP的中间状态。
  • Open-Sent状态下,BGP等待对等体的Open报文。
  • Open-Confirm状态下,BGP等待一个Notification报文或Keepalive报文。
  • Established状态下,BGP对等体间可以交换Update报文、Route-refresh报文、Keepalive报文和Notification报文。

BGP对等体双方的状态必须都为Established,BGP邻居关系才能成立,双方通过Update报文交换路由信息。

在这里插入图片描述

4. MPLS

(1)定义

多协议标签交换(MPLS,Multi-Protocol Label Switching)是由IETF 提出的一种在IP骨干网上利用标签来指导数据报文高速转发的协议。

MPLS位于TCP/IP协议栈中的链路层和网络层之间,用于向IP层提供连接服务,同时又从链路层得到服务。相对于传统的IP路由方式,MPLS提供了一种新的网络交换方式,它将IP地址映射为简短且长度固定、只具有本地意义的标签以标签交换替代IP查表,从而显著提升转发效率。

MPLS的标签转发本质上是一种隧道技术,可以在IP网络中构筑一条逻辑上的隧道,而且MPLS兼容不同的网络层和链路层协议,因此,MPLS可以很好的为各种L2VPN、L3VPN以及EVPN业务提供公网隧道服务。

在这里插入图片描述
(2)工作原理

MPLS的实现原理是指:转发等价类FEC,Forwarding Equivalence Class)分配标签来建立标签交换路径LSP,Label Switched Path

MPLS是一种分类转发技术,它将具有相同转发处理方式的数据分组归为一类,称为转发等价类FEC,Forwarding Equivalence Class)。MPLS对相同FEC的数据分组采取完全相同的处理方式。

FEC的划分方式非常灵活,可以是源地址、目的地址、源端口、目的端口、协议种类、业务类型等要素的任意组合。例如,在采用最长匹配算法的IP路由转发中,去往同一个目的地址的所有报文就是一个FEC。

标签交换路径LSP,Label Switched Path)是指属于同一FEC的报文(即封装了MPLS标签的报文)在MPLS域内转发所经过的路径。

在这里插入图片描述
(3)MPLS标签

MPLS标签是一个短而定长的、只具有本地意义的标识符,用于唯一标识一个分组所属的FEC。

在这里插入图片描述
标签共有4个域:

  • Label:20bit,标签值域。
  • Exp:3bit,用于扩展。现在通常用做CoS(Class of Service),其作用与Ethernet802.1p的作用类似。
  • BoS:1bit,栈底标识。MPLS支持多层标签,即标签嵌套。S值为1时表明为最底层标签。
  • TTL:8bit,和IP分组中的TTL(Time To Live)意义相同。

MPLS标签的基本操作包括:

  • Push(标签压入):指当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
  • Swap(标签交换):当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
  • Pop(标签弹出):当报文离开MPLS域时,将MPLS报文的标签去掉;或者MPLS倒数第二跳的节点处去掉栈顶标签,减少标签栈中的标签数目。

在这里插入图片描述

(4)MPLS网络主要包含以下要素:

MPLS网络主要包含以下要素:

  • 支持MPLS功能的网络设备称为标签交换路由器LSR,Label Switching Router),它是MPLS网络的基本组成单元。由一系列连续的LSR构成的网络区域称为MPLS域。
  • MPLS域内部的LSR称为Core LSR,如果一个LSR的相邻节点都运行MPLS,则该LSR就是Core LSR。
  • 位于MPLS域边缘、连接其它网络的LSR称为标签边缘路由器(LER,Label Edge Router),如果一个LSR有一个或多个不运行MPLS的相邻节点,那么该LSR就是LER。

在这里插入图片描述
在MPLS网络中,任何两个LER之间都可以建立LSP,用来转发进入MPLS域的报文,中间可途径若干个Core LSR。因此,一条LSP的Ingress和Egress都是LER,而Transit是Core LSR。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1885199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NARF(法线对齐的径向特征)

NARF 全称 normal aligned radial feature(法线对齐的径向特征) ,是一种为从深度图像中识别物体而提出的3D关键点检测和描述的算法,该算法由Bastian Steder和 Radu Bogdan Rusu等人于2010年在他们的文章《Point Feature Extraction on 3D Range Scans Ta…

Transformers 介绍和详细说明

Transformers 介绍和详细说明 一、引言 Transformers是一种基于注意力机制的深度学习模型架构,由谷歌团队在2017年的论文《Attention is All You Need》中首次提出。这一模型架构在自然语言处理(NLP)领域取得了显著成就,并迅速扩…

【高性能服务器】多进程并发模型

🔥博客主页: 我要成为C领域大神🎥系列专栏:【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞👍收藏⭐评论✍️ 本博客致力于知识分享,与更多的人进行学习交流 对于常见的C/S模型…

恶意域名检测研究与应用综述

域名攻击发展 使用 DGA 的优势在于模糊了控制服务器的节点位置,该方法的灵活性还让网络安全管理员无法阻止所有可能的域名,并且注册一些域名对攻击者来说成本很低。利用 DGA 域名实施的攻击是网络安全中重要的攻击形式。因此,捕获由恶意软件生…

【CentOS7.6】yum 报错:Could not retrieve mirrorlist http://mirrorlist.centos.org

一、报错 1.报错内容如下 在使用 yum makecache 命令时报错,在 yum install -y xxx 的时候报错等等 [roothcss-ecs-a901 yum.repos.d]# yum makecache Loaded plugins: fastestmirror Determining fastest mirrors Could not retrieve mirrorlist http://mirrorl…

第十一章 Nest 创建动态模块

在 NestJS 中,动态模块允许在运行时动态添加和删除模块。这对于创建可扩展的和灵活的应用程序非常有用。 新建一个项目: nest new dynamic-module -p npm创建一个crud的模块: nest g resource test启动项目 浏览器访问 可以发现模块生效了 …

哪些品牌的充电宝牌子比较好用?性价比无线磁吸充电宝推荐

经常外出的朋友,不管是旅行聚会,或是商务出差,一旦手机电量告急,总会令人心生焦虑。共享充电宝不仅充电速度迟缓,而且价格高昂,有线充电宝又显得沉重,线缆还杂乱无章。现在随着科技的发展&#…

将exe文件添加到注册表中,实现开机时自动运行

目录 一、前言 二、代码 三、使用步骤 1.编译生成exe文件、 2.以管理员身份运行代码 3.打开注册表,验证结果 一、前言 在Windows操作系统中,将exe文件的路径添加到注册表下,主要用于实现程序的开机自动运行功能。 注册表路径为&#xf…

6.The hardest part about learing hard things(学一件难的事,难在哪里)

I’ve been recording a lot of podcast interviews for my upcoming book, Ultralearning.One of the reurring themes I’ve noticed in our conversations is that how people feel about learning is the overwhelming cause of the results they experience. 我为我的新书…

2024年6月总结及随笔之打卡网红点

1. 回头看 日更坚持了547天。 读《人工智能时代与人类未来》更新完成读《AI未来进行式》开更并更新完成读《AI新生:破解人机共存密码》开更并持续更新 2023年至2024年6月底累计码字1267912字,累计日均码字2317字。 2024年6月码字90659字,…

Git学习(常用的一些命令)

🍎个人博客:个人主页 🏆个人专栏:日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 配置相关: 创建与克隆仓库: 基本操作: 分支操作: 远程仓库操作&#xff1a…

mac 安装nvm的教程

在macOS上切换Node.js版本,可以使用nvm(Node Version Manager)。以下是安装nvm和切换Node.js版本的步骤: 安装nvm 下载方式 终端复制输入: curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.…

第一后裔掉宝奖励有什么 怎么领取第一后裔掉宝奖励

第一后裔在今天就要正式上线了,虽然是一款刚刚上线的新游戏,但是其实很早就测试过了,而且测试过很多次,所以有很多已经体验过的小伙伴,这款游戏的玩法还是比较有意思的,第三人称刷宝射击加上MMORPG的玩法&a…

深入分析差分驱动器,4种情形帮您看透~

差分驱动器可以由单端或差分信号驱动,今天我们就利用无端接或端接信号源来分析这两种情况。 01 差分输入、无端接信号源 图1显示一个差分驱动器由一个平衡的无端接信号源驱动。这种情况通常是针对低阻抗信号源,信号源与驱动器之间的连接距离非常短。 图…

充电宝买哪个牌子好?2024年十大口碑最好充电宝推荐

在如今快节奏的生活中,充电宝已然成为我们出行必备的物品之一。然而,面对市场上琳琅满目的充电宝品牌和型号,我们常常陷入选择的困境:充电宝买哪个牌子好?2024 年,充电宝技术不断革新,新品牌层出…

重生之算法刷题之路之链表初探(三)

算法刷题之路之链表初探(三) 今天来学习的算法题是leecode2链表相加,是一道简单的入门题,但是原子在做的时候其实是有些抓耳挠腮,看了官解之后才恍然大悟! 条件 项目解释 有题目可以知道,我们需…

论文题目:SpringBoot种草好物app13151

摘要 随着电子商务的快速发展和智能手机的普及,越来越多的用户选择通过移动应用程序进行商品浏览、购买和分享体验。种草好物App作为一个专注于商品推荐和购物体验的平台,具有广泛的应用前景和商业价值。本研究旨在构建一个功能丰富、性能稳定的种草好物…

第一后裔快速领取掉宝奖励礼包教程

7月2日第一后裔在steam正式上线,全新刷宝射击mmo玩法,角色的招式非常新颖 ,画面冲击感十足,而且游戏人物的自定义功能非常丰富,超级细节真实的人物建模,加上超带感的服装自定义系统,让你能玩一整…

AI太火,今年更缺人了 (含实习)

AI太火了!眼睛一睁一闭,一大堆新鲜出炉的前沿科技进展已经塞满未读列表。 许多公司更是开出了高薪, 读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用 对于0基础小白入门: 如果你是零基础…

leetcode-21-回溯-全排列及其去重

一、[46]全排列 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3]输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] 其中,不需要使用startIndex used数组,其实就是记录此时path里都有哪些元素…