HCIP-18 MPLS LDP原理与配置

目录
  • LDP基本概念
    • LDP协议概述
    • LDP会话、LDP邻接体、LDP对等体
    • LSR ID与LDP ID
    • LDP消息
  • LDP工作原理
    • LDP会话建立
      • LDP会话状态机
      • LDP会话建立 - 发现阶段与TCP连接建立
      • LDP会话建立 - 会话建立与保持
      • LDP邻居状态
      • LDP会话状态
    • LDP标签分发
      • 标签的发布和管理
      • 上游与下游
      • 标签发布方式 - DU模式
      • 标签发布方式 - DoD模式
      • 标签分配控制方式 - 独立模式
      • 标签分配控制方式 - 有序模式
      • 标签保留 - 自由模式
      • 标签保留 - 保守模式
      • PHP特性
      • 隐式空标签与显式空标签 (1)
    • LDP工作过程详解
      • 组网介绍
      • 标签分发 - Egress LSR
      • 标签分发 - Transit LSR
      • 标签分发 - Ingress LSR
      • 标签转发 - Ingress LSR
      • 标签转发 - Transit LSR
      • 标签转发 - Egress LSR
    • 在MPLS中,运行LDP协议的LSR的操作小结
  • LDP基本配置
    • LDP基本配置命令
    • 配置案例
    • 检查配置 - 查看LSP

MPLS是一种根根据标签报文中携带的短而定长的标签来转发数据的技术。
MPLS的一个基本概念就是两台LSR必须对在它们之间转发的数据的标签使用上“达成共识”。LSR之间可以运行标签分发协议(Label Distribution Protocol,LDP)来告知其他LSR本设备上的标签绑定信息,从而实现标签报文的正确转发。
本文将介绍LDP基本工作原理与特性,以及LDP的基本配置。

LDP基本概念

LDP协议概述

LDP是MPLS的一种控制协议,相当于传统网络中的信令协议,负责FEC的分类、标签的分配以及LSP的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。
LDP的工作过程主要分为两部分:

  1. LSR之间建立LDP会话。
  2. LSR之间基于LDP会话动态交换标签与FEC的映射信息,并根据标签信息建立LSP。

LDP会话、LDP邻接体、LDP对等体

LSR之间交互标签绑定消息之前必须建立LDP会话。LDP会话可以分为:
本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的;
远程LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。
两台LSR之间交互Hello消息之后,即建立起邻接体(Adjacency)关系;
在建立邻接体关系的基础上,两台LSR之间交互LDP会话消息,建立起LDP会话,两台设备之间形成LDP对等体关系;

LSR ID与LDP ID

每一台运行了LDP的LSR除了必须配置LSR ID,还必须拥有LDP ID。
LDP ID的长度为48bit,由32bit的LSR ID与16bit的标签空间标识符(Label Space ID)构成。
LDP ID以“LSR ID : 标签空间标识”的形式呈现。例如2.2.2.2:0。
标签空间标识一般存在两种形态:
值为0:表示基于设备(或基于平台)的标签空间;
值非0:表示基于接口的标签空间。

LDP消息

运行LDP协议的LSR之间通过交换LDP消息来实现邻居发现、会话建立与维护以及标签管理等功能。

LDP工作原理

LDP会话建立

LDP会话状态机

LDP使用5种状态描述LDP会话状态机。

LDP会话建立 - 发现阶段与TCP连接建立


发现阶段
设备通过周期性地发送LDP链路Hello报文(LDPLink Hello),实现LDP基本发现机制。
LDP链路Hello报文使用UDP报文,目的地址是组播地址224.0.0.2。如果LSR在特定接口接收到LDP链路Hello报文,表明该接口存在LDP邻接体。
TCP连接建立阶段
Hello报文中携带传输地址,双方后续将使用传输地址建立LDP会话。
传输地址较大的一方作为主动方,主动发起建立TCP连接。
经过TCP三次握手之后,两者建立起TCP连接。

LDP会话建立 - 会话建立与保持


TCP连接建立成功后,主动方R2(传输地址大的一方)发送LDP初始化报文,协商建立LDP会话的相关参数。
LDP会话的相关参数包括LDP协议版本、标签分发方式、KeepAlive保持定时器的值、最大PDU长度和标签空间等。
被动方R1收到初始化报文后,若接受R2的相关参数,则回应KeepAlive报文作为确认,为了提高发送效率同时发送自己的初始化报文。
R2收到R1的初始化报文后,若接受相关参数,则回复KeepAlive报文给R1。
双方都收到对端的KeepAlive报文后,会话建立成功。后续通过周期性发送的KeepAlive报文

LDP邻居状态

<R1>display mpls ldp peer
LDP Peer Information in Public network
A '*' before a peer means the peer is being deleted.
------------------------------------------------------------------------------
PeerID TransportAddress DiscoverySource
------------------------------------------------------------------------------
2.2.2.2:0 2.2.2.2 GigabitEthernet0/0/0
------------------------------------------------------------------------------
TOTAL: 1 Peer(s) Found.

PeerID:LDP邻居的LDP ID;
2.2.2.2代表的是邻居节点的LSR ID;
0代表的是标签空间是基于平台的;
TransportAddress:LDP邻居的传输地址;
2.2.2.2代表邻居用来建立TCP连接的IP地址。

LDP会话状态

<R1>display mpls ldp session
LDP Session(s) in Public Network
Codes: LAM(Label Advertisement Mode), SsnAge Unit(DDDD:HH:MM)
A '*' before a session means the session is being deleted.
------------------------------------------------------------------------------
PeerID Status LAM SsnRole SsnAge KASent/Rcv
------------------------------------------------------------------------------
2.2.2.2:0 Operational DU Passive 0000:00:33 133/133
------------------------------------------------------------------------------
TOTAL: 1 session(s) Found.

Status:LDP会话的状态;
Operational表示LDP会话建立成功;
LAM:标签发布模式:
标签发布模式有DU和DoD两种模式(后文介绍);
此例中采用的是DU(下游自主)模式;
SsnRole:LSR在LDP会话中的角色;
Active表示建立LDP会话的主动方;Passive表示建立LDP会话的被动方;

LDP标签分发

标签的发布和管理

在MPLS网络中,下游LSR决定标签和FEC的绑定关系,并将这种绑定关系发布给上游LSR。
LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系来建立LSP
标签的发布和管理由标签发布方式、标签分配控制方式和标签保持方式来决定。

上游与下游

MPLS根据数据的转发方向确定上、下游关系。标签报文从上游LSR发出,被下游LSR接收并处理。
如图所示,对于到达192.168.3.0/24的LSP而言,R3是R2的下游LSR,R1是R2的上游LSR。

标签发布方式 - DU模式

DU模式
对于一个特定的FEC,LSR无需从上游获得标签请求消息即进行标签分配与分发。
LSR会主动将自己为FEC捆绑的标签通告给上游邻居,无需邻居先发起请求再通告。

标签发布方式 - DoD模式

DoD模式
对于一个特定的FEC,LSR获得标签请求消息之后才进行标签分配与分发。
一般情况下,对特定FEC的访问需求会触发标签请求消息。

标签分配控制方式 - 独立模式

独立(Independent)模式
本地LSR可以自主地分配一个标签绑定到某个FEC,并通告给上游LSR,而无需等待下游的标签。

标签分配控制方式 - 有序模式

有序(Ordered)模式
对于LSR上某个FEC的标签映射,只有当该LSR已经具有此FEC下一跳的标签映射消息、或者该LSR就是此FEC的出节点时,该LSR才可以向上游发送此FEC的标签映射。

标签保留 - 自由模式

自由(Liberal)模式
LSR收到的标签映射可能来自下一跳,也可能来自非下一跳。
对于从邻居LSR收到的标签映射,无论邻居LSR是不是自己的下一跳都保留。

标签保留 - 保守模式

保守(Conservative)模式
对于从邻居LSR收到的标签映射,只有当邻居LSR是自己的下一跳时才保留。

PHP特性


PHP(Penultimate Hop Popping,次末跳弹出),如果激活了PHP特性,那么egress节点在为本地路由分配标签的时候,会分配一个特殊标签—3,该标签被称为隐式空标签(Implicit NULL Label)。当LSR转发一个标签报文时,如果发现对应的出标签值为3,则LSR会将栈顶标签弹出,并将里面所封装的数据转发给下游LSR。

隐式空标签与显式空标签 (1)

缺省情况下,Egress节点向倒数第二跳分配隐式空标签(implicit-null),即特殊标签3。
但在部署QoS的场景下,标签被弹出后,其中的优先级也会一并丢失。

显式空标签机制,Egress节点向倒数第二跳分配特殊标签0。
R3在转发标签报文时,若出标签封装为0,则不会将标签头部弹出,标签头部中的QoS信息得以保存。R4在收到带0标签的报文的时候,直接弹出标签,不用去查找ILM表项。
缺省情况下,Egress分配的是隐式空标签,通过label advertise explicit-null使能Egress节点向倒数第二跳分配显式空标签。

LDP工作过程详解

组网介绍

网络中已经部署OSPF路由协议且各设备之间能够正常学习到对方的路由信息。
已在各设备及相应接口上激活MPLS及LDP,且在相邻的设备之间已正常建立本地LDP会话。
所有LSR均采用DU + Independent +Liberal方式。

标签分发 - Egress LSR

R4直连网段192.168.4.0/24,R4将主动为到达该网段的路由分配标签,如1041,并主动通过LDP协议报文将标签映射通告给LDP对等体R2和R3。

标签分发 - Transit LSR

以R2为例,在其路由表中,192.168.4.0/24路由的下一跳为R4,当它从R4收到关于192.168.4.0/24的标签映射通告时,由于该通告来自下游LDP邻居,因此这将触发它自己为该路由分配标签1021,并将标签映射通告给LDP邻居(如R1)。R3同理。

标签分发 - Ingress LSR

R1收到LDP邻居R2及R3通告过来的关于192.168.4.0/24路由的标签映射后,将这两个标签都存储起来,但是由于在自己的路由表中,到达192.168.4.0/24的下一跳是R2,因此当前它只会使用R2所通告的标签1021。

标签转发 - Ingress LSR

R1作为Ingress LSR,需要对接收的IP报文执行Push操作压入标签,并进行标签转发。

标签转发 - Transit LSR

R2作为Transit LSR,需要对接收的IP报文执行Swap操作交换标签,并进行标签转发。

标签转发 - Egress LSR

R4作为Egress LSR,需要对接收的IP报文执行Pop操作交换标签,并进行IP转发。

在MPLS中,运行LDP协议的LSR的操作小结

LSR首先通过运行IGP协议(例如OSPF、IS-IS等)来构建路由表、FIB表;
LDP根据相应的模式,为路由表中的路由前缀(FEC)分配标签;
LDP根据相应的模式,将自己为路由前缀分配的标签,通过LDP标签映射报文通告给LDP邻居;
LSR将自己为路由前缀分配的标签,以及LDP邻居为该路由前缀通告的标签存储起来,并与出接口、下一跳地址等信息形成关联(标签转发表项);
当LSR转发到达目的网络的标签报文时,所使用的出站标签总是下游LDP邻居所通告的标签,此处所指的下游邻居,是设备的路由表中到达该目的网络的下一跳设备。

LDP基本配置

LDP基本配置命令

  1. 使能LDP
    [Huawei] mpls Idp
    mpls ldp命令用来使能本节点的LDP能力,并进入LDP视图。
    [Huawei-GigabitEthernet0/0/0] mpls Idp
    在接口视图下,使能当前接口的LDP功能。需先使能全局LDP能力后才能执行接口下的LDP使能命令。
  2. 配置LDP远端会话
    [Huawei] mpls Idp remote-peer remote-peer-name
    mpls ldp remote-peer命令用来创建远端对等体并进入远端对等体视图。
    [Huawei-mpls-Idp-remote-PeerName] remote-ip ip-address
    remote-ip命令用来配置LDP远端对等体的IP地址。
  3. 配置触发LSP的策略
    [Huawei-mpls] Isp-trigger { all | host | ip-prefix ip-prefix-name | none }
    Isp-trigger命令用来指定哪些静态路由及IGP路由会触发LDP LSP的建立,缺省情况下,根据32位地址的IP路由触发LDP建立LSP。
    all:所有静态路由和IGP路由项触发建立LSP。配置该命令后,所有静态路由及IGP路由会触发LDP建立LSP,会导致LSP数量庞大,占用过多的标签资源,以及整网LSP收敛速度变慢。故一般情况下不推荐配置此命令。
    host:32位地址的IP路由触发建立LSP。
    ip-prefix ip-prefix-name:根据IP地址前缀列表触发建立LSP。
    None:不触发建立LSP。
  4. 配置LDP标签发布模式
    [Huawei-GigabitEthernet0/0/0] mpls Idp advertisement { dod | du }
    缺省情况下,标签发布模式为下游自主标签分发(Downstream Unsolicited)。
    如果标签分配方式为DU,则标签保持模式为Liberal。
    如果标签分配方式为DOD,则标签保持模式为Conservative。
  5. 配置LDP标签分配控制方式
    [Huawei-mpls-Idp] label distribution control-mode { independent | ordered }
    缺省情况下,LDP标签分配控制方式为有序标签分配控制(Ordered)。
  6. 配置PHP特性
    [Huawei-mpls] label advertise { explicit-null | implicit-null | non-null }
    缺省情况下,出节点向倒数第二跳分配隐式空标签(implicit-null)。
    explicit-null:出节点向倒数第二跳分配显式空标签。
    implicit-null:出节点向倒数第二跳分配隐式空标签。
    non-null:出节点向倒数第二跳正常分配标签。

配置案例


背景:R1、R2、R3和R4之间运行了IGP协议,已经实现了IP层面的互联互通。
需求:通过配置MPLS以及LDP,使得192.168.1.0/24网段和192.168.4.0/24网段可以通过标签交换的方式实现互访。
使能设备上基础的MPLS和LDP功能,以R1为例:

[R1]mpls
[R1-mpls]quit
[R1]mpls ldp
[R1-mpls-ldp]quit
[R1]interface GigabitEthernet 0/0/0
[R1-GigabitEthernet0/0/0]mpls
[R1-GigabitEthernet0/0/0]mpls ldp
[R1-GigabitEthernet0/0/0]quit

由于192.168.1.0/24不是32位掩码的路由,所以要额外配置触发LSP建立:

[R1]ip ip-prefix ldp permit 192.168.1.0 24
[R1-mpls]lsp-trigger ip-prefix ldp

同理,R4也需要进行相应的配置

[R4]ip ip-prefix ldp permit 192.168.4.0 24
[R4-mpls]lsp-trigger ip-prefix ldp

检查配置 - 查看LSP

查看R1使用LDP创建的LSP相关信息

[R1]display mpls ldp lspLDP LSP Information
-------------------------------------------------------------------------------------------------------------------
DestAddress/Mask In/OutLabel UpstreamPeer NextHop OutInterface
-------------------------------------------------------------------------------------------------------------------
10.0.2.2/32 1024/3 10.0.2.2 10.0.12.2 GE0/0/0
10.0.3.3/32 1025/1025 10.0.2.2 10.0.12.2 GE0/0/0
192.168.1.0/24 3/NULL 10.0.2.2 192.168.1.254 GE0/0/1
*192.168.1.0/24 Liberal/1027 DS/10.0.2.2
192.168.4.0/24 1027/1028 10.0.2.2 10.0.12.2 GE0/0/0

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

centos7安装docker-ce

下载docker-ce repo curl https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo安装依赖 yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7.5/x86_64/stable/Packages/containerd.io-1.4.8-3.1.el7.x86_64.rpm安装…

虚拟机苹果系统IM群发,苹果iMessage群发软件,iMessage协议版自动群发完美实现

一、PC电脑版苹果系统(Mac OS)上实现imessage群发总结为以下几种方式: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些 “破解补丁” 工具欺骗macOS系统,让苹果系统…

docker-配置镜像服务

镜像加速器配置 默认情况下,Docker是从Dcoker Hub上下载镜像资源,但由于该站点在国外,因此下载速度很慢,可以通过配置国内镜像加速器来解决,本文以阿里云镜像加速器为例,讲解在CentOs7系统下如何给Docker配置阿里云镜像加速器。 Docker Hub官网:https://hub.docker.com …

天梯赛练习集 L2-049 鱼与熊掌 查找

好简单,一开始随便二分一下,没想到也能过,算了时间复杂度1e10 思路:存储每个人拥有物品,查询每一个人是否两个物品都有. #include<bits/stdc++.h> using namespace std; vector<set<int>>vc; int main() {int n,m,x,y,cot;cin>>n>>m;for(int…

开源 - Ideal库 - Excel帮助类,ExcelHelper实现(四)

实现ExcelHelper第二步,设计接口包括读写操作和两类转换,通过文件路径、文件流及后缀读取Excel到DataSet,涉及工作簿Sheet与DataTable相互转换,具体代码已上传至代码库。书接上回,前面章节已经实现Excel帮助类的第一步TableHeper的对象集合与DataTable相互转换功能,今天实…

攻防世界-OldDriver

一、题目二、解题 1、观察特征:低指数,多密文 使用低指数广播攻击2、中国剩余定理剩余定理求解代码: def crt(remainders, moduli):"""中国剩余定理实现:param remainders: 余数列表 [r1, r2, ...]:param moduli: 模数列表 [m1, m2, ...]:return: 满足所有条…

Cannot find a valid baseurl for repo: base/7/x86_64

001、yum报错(base) [root@PC1 yum.repos.d]# yum install httpd ## yum安装应用报错 。002、解决方法(base) [root@PC1 home]# cd /etc/yum.repos.d (base) [root@PC1 yum.repos.d]# ls CentOS-Base.repo CentOS-CR.repo CentOS-Debuginfo.repo CentOS-fasttrack.rep…

【Comsol 6.2软件下载与安装教程】

1、安装包 「COMSOL 6.2」: 下载地址 2、安装教程(建议关闭杀毒软件和系统防护) 1) 下载并解压下载的安装包,双击Setup.exe安装,弹窗安装对话框2) 选择简体中文,点击下一步3) 选择先安装6.24) 选择我接受,点击许可证格式-许可证文件-浏览 – C…

搭建eureka集群环境以及客户端配置

先来效果图 eureka集群节点一 eureka集群节点二 节点一显示的注册服务 节点二显示的注册服务 eureka服务端配置如下所示 现在将eureka服务端放到了测试环境 192.168.31.50 192.168.31.60 服务信息 最后给出全部的eureka代码 pom文件<?xml version="1.0" encodin…

【推荐算法】推荐系统的评估

这篇文章是笔者阅读《深度学习推荐系统》第五章推荐系统的评估的学习笔记,在原文的基础上增加了自己的理解以及内容的补充,在未来的日子里会不断完善这篇文章的相关工作。离线评估在离线环境中利用已有的数据划分训练集和测试集对模型进行评估划分数据集方法机器学习常用划分…

考研打卡(34)

开局(34) 开始时间 2024-12-03 22:36:03 结束时间 2024-12-03 23:17:57为什么昨天没写,因为昨天想死,但我jio得不能每天都想死吧,所以今天该写了数据结构如果一棵二叉树的先序序列是…a…b…,中序序列是…b…a…,则_______(北京师范大学 2015年) A 节点a和节点b分别在…

Educational Codeforces Round 172 (Rated for Div. 2)题解记录(A~D)

比赛链接:https://codeforces.com/contest/2042 这场爆了,卡死在C题了,QWQ.卡题得跳题啊!!! A.Greedy Monocarp 题面: 有 \(n\) 个箱子,第 \(i\) 个箱子最初包含 \(a_i\) 枚硬币。对于每个箱子,你可以选择任意非负数(0或更大)的硬币添加到该箱子中,有一个约束条件:…