| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> MPLS专题 -> 正文阅读 |
|
[网络协议]MPLS专题 |
IP路由的概念回顾 背景 MPLS最初是为了提高路由器的转发速度而提出的。与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,节约了处理时间 随着专用集成电路ASIC技术的发展,路由查找速度已经不是阻碍网络发展的瓶颈。这使得MPLS在提高转发速度方面不再具备明显的优势。但是MPLS支持多层标签和转发平面面向连接的特性,使其在VPN、流量工程、QoS等方面得到广泛应用
MPLS中的Multi-Protocol指的是支持多种网络协议,MPLS起源于IPv4,其核心技术可扩展到多种网络协议,包括IPv6,IPX和CLNP等 MPLS并不是一种业务或者应用,它实际是一种隧道技术,这种技术不仅支持多种高层协议与业务,而且在一定程度上可以保证信息传输的安全性
MPLS协议中的基本术语 LSR:Label Switch Router,标签交换路由器,支持MPLS的路由器,实际上也指支持MPLS的交换机或者其他网络设备,该设备能够根据报文的MPLS的标签头部对其进行转发,如上图中的R1、R2及R3 MPLS域:MPLS Domain,一系列连续的LSR构成了一个MPLS域 LER:Label Edge Router,位于MPLS域边缘、连接其他网络的LSR,包括Ingress LSR及Egress LSR,如上图中的R1和R3 LSP:Label Switched Path,标签交换路径,是标签报文穿越MPLS网络到达目的地所走的路径。LSP实际上是一种类似于Tunnel的概念,LSP的建立过程实际上也是报文转发路径中,沿途设备关于特定FEC的标签确定的过程。LSP可以通过手工的方式建立,即静态LSP;或者通过变迁分发协议自动建立,即动态LSP。LSP是单向的,如上图所示 Ingress LSR:入站LSR,LSP的入口LSR被称为Ingress LSR,如上图中的R1 Transit LSR:中转LSR,位于LSP中间的LSR被称为Transit LSR,如上图中的R2 Egress LSR:出站LSR,LSP的出口LSR被称为Egress LSR,如上图中的R3 一条LSP可以有0个、1个或多个Transit LSR,但是有且只有一个Ingress LSR和一个Egress LSR FEC:Forwarding Equivalence Class,转发等价类,是在转发过程中具有相同处理待遇的数据流,可通过IP地址、隧道、CoS等方式来标识一个FEC,例如,在传统的采用最长匹配算法的IP转发中,到同一条路由的所有报文就是一个转发等价类。通常在一台设备上,对于一个FEC分配相同的标签。术语一个FEC的流量具有相同的转发方式、转发路径和转发待遇。但是并不是所有拥有相同标签的报文都术语一个FEC,因为这些报文的EXP值可能不相同,执行方式可能不同。决定报文术语哪一个FEC的设备是Ingress LSR,因为是它对报文进行分类和压入标签的操作 MPLS初体验
MPLS架构 控制平面: 数据平面 MPLS标签结构 标签空间 MPLS标签的处理 标签的操作类型包括标签压入(Push或Insert)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作,是标签转发信息表的组成部分 标签压入:Push,指当IP报文进入MPLS域时,MPLS边界设备在报文二层头部和IP头部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装) 标签交换:Swap,当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文中的栈顶标签 标签弹出:Pop,当报文离开MPLS域时,将MLPS报文的标签去掉 PHP:Penultimate Hop Popping,倒数第二跳弹出,在最后一跳LSR中,标签已经没有使用价值。在这种情况下,可以利用PHP特性,在倒数第二跳LSR处将标签弹出,减少最后一跳的负担。最后一跳LSR直接进行IP转发或者下一层标签转发。PHP在Egress LSR上配置,支持PHP特性的Egress LSR分配给倒数第二跳LSR的标签值为3 LSP的分类和建立 MPLS需要为报文事先分配好标签,建立一条LSP,才能进行报文转发。LSP分为静态LSP和动态LSP两种 静态LSP的建立: 由于静态LSP各节点上不能相互感知到整个LSP的情况,因此静态LSP是一个本地的概念。 静态LSP不使用标签分发协议,不需要交互控制报文,因此消耗资源比较小,适用于拓扑简单并且稳定的小型网络。 但通过静态方式分配标签建立的LSP不能根据网络拓扑变化动态调整,需要管理员干预。 动态LSP的建立: LDP:LDP是专为标签发布而制定的协议,LDP根据IGP、BGP路由信息通过逐跳的方式建立LSP RSVP-TE:RSVP-TE是对RSVP的扩展,用于建立基于约束的LSP,它拥有普通LDP LSP没有的功能,如发布带宽预留请求、带宽约束、链路颜色和显式路径等 MP-BGP:MP-BGP是在BGP协议的基础上扩展而来的协议,MP-BGP支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签 静态LSP的建立和配置
MPLS详细转发过程 NHLFE:Next Hop Label Forwarding Entry,下一跳标签转发表项,用于指导MPLS报文的转发 FTN:FEC-to-NHLFE,FEC到一组NHLFE的映射 ILM:Incoming Label Map,入标签到一组下一跳标签转发表项的映射 ILM包括Tunnel ID、入标签、入接口和标签操作类型等信息 ILM在Transit LSR的作用是将标签和NHLFE绑定。通过标签索引ILM表,就相当于使用目的IP地址查询FIB,能够得到所有的标签转发信息 Tunnel ID:为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,称为Tunnel ID。Tunnel ID长度为32bit,本地有效,设备为各种隧道所分配的一个ID。在MPLS中,Tunnel ID还用于将FIB、ILM及NHLFE进行关联 在报文转发过程中:
LDP协议概述 LDP(Label Distribution Protocol,标签分发协议)时一种标签分发协议,广泛应用于MPLS网络,具有配置简单,可提供路由拓扑驱动建立LSP、支持大容量LSP等优点。LDP是MPLS的一种控制协议。LDP通过Hello报文发现邻居,并基于TCP建立邻居之间的会话。LDP能够动态地为FEC分配标签,并建立LSP LDP对等体及LDP会话 LDP对等体:LDP对等体是指相互之间存在LDP会话、使用LDP来交换标签映射信息的两个LSR。LDP对等体通过它们之间的LDP会话获得对方的标签映射。LDP对等体也成为LDP邻居 LDP会话: 本地LDP会话(Local LDP Session),建立会话的两个LSR之间是直连的 LDP报文类型 LDP协议主要使用四类报文 发现报文:用于通告和维护网络中LSR的存在,如Hello报文 会话报文:用于建立、维护和终止LDP对等体之间的会话,如Initialization报文、Keepalive报文 通告报文:用于创建、改变和删除FEC的标签映射 通知报文:用于提供建设性的报文和差错通知 为保证LDP报文的可靠发送,除发现报文使用UDP传输外,LDP的会话报文、通告报文和通知报文都使用TCP传输 LDP协议中的一些概念 LSR ID: LDP ID 传输地址:TA,Transport Address 互为邻居的LSR需要基于双方的传输地址建立TCP连接 在LDP的Hello报文中,包含设备的传输地址,LSR通过Hello报文知晓邻居的传输地址 在使用Hello报文发现邻居并知道了对方的传输地址后,邻居之间就会开始尝试TCP的三次握手(基于传输地址),并交互LDP的初始化报文、标签映射报文等,这些报文都使用双方的传输地址作为源、目的IP地址 由于传输地址会被用来与邻居建立TCP连接,因此LSR必须拥有到达邻居的传输地址的路由 缺省情况下,公网的LDP传输地址等于设备的LSR ID,私网的传输地址等于接口的主IP地址 在接口视图下,使用mpls ldp transport-address命令,可以修改传输地址
LSR的缺省行为 在华为设备上激活了MPLS和LDP后,缺省情况下
在MPLS中,运行LDP协议的LSR的操作小结 LSR首先通过运行IGP(如OSPF、ISIS等)来构建路由表、FIB表 LDP根据相应的模式,为路由表中的路由前缀(FEC)分配标签 LDP根据相应的模式,将自己为路由前缀分配的标签,通过LDP标签映射报文通告给LDP邻居 LSR将自己为路由前缀分配的额标签,以及LDP邻居为该路由前缀通告的标签存储起来,并形成关联 当LSR转发到达目的网络的标签报文时,所使用的出站标签总是下游LDP邻居所通告的标签,此处所指的下游邻居,时设备的路由表中到达该目的网络的下一跳设备
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:44:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |