Network MPLS LDP 基本功能实验

实验拓扑

R1配置

1、各接口及环回接口IP配置

2、配置IGP (OSPF)发布各节点接口所连网段和LSR ID的主机路由

3、在各LSR上使能全局的MPLS和MPLS LDP能力

4、在各LSR的接口上使能MPLS和MPLS LDP能力

5、验证配置结果

R1配置

sysname R1

mpls lsr-id 10.0.1.1 // LSR ID用来在网络中唯一标识一个LSR
mpls //开启全局MPLS

mpls ldp //开启全局MPLS LDP

ospf 1 router-id 10.0.1.1
area 0.0.0.0
network 10.0.1.1 0.0.0.0
network 10.0.12.0 0.0.0.255

interface GigabitEthernet0/0/0
ip address 10.0.12.1 255.255.255.0
mpls
mpls ldp

interface LoopBack0
ip address 10.0.1.1 255.255.255.255

R2 配置

sysname R2

mpls lsr-id 10.0.2.2
mpls

mpls ldp

ospf 1 router-id 10.0.2.2
area 0.0.0.0
network 10.0.2.2 0.0.0.0
network 10.0.12.0 0.0.0.255
network 10.0.23.0 0.0.0.255

interface GigabitEthernet0/0/0
ip address 10.0.12.2 255.255.255.0
mpls
mpls ldp

interface GigabitEthernet0/0/1
ip address 10.0.23.2 255.255.255.0
mpls
mpls ldp

interface LoopBack0
ip address 10.0.2.2 255.255.255.255

R3配置

sysname R3

mpls lsr-id 10.0.3.3
mpls

mpls ldp

ospf 1 router-id 10.0.3.3
area 0.0.0.0
network 10.0.3.3 0.0.0.0
network 10.0.23.0 0.0.0.255

interface GigabitEthernet0/0/1
ip address 10.0.23.3 255.255.255.0
mpls
mpls ldp

interface LoopBack0
ip address 10.0.3.3 255.255.255.255

验证

查看启用了LDP 的接口

查看LDP 会话 会话状态为Operational 表示会话成功建立。

查看MPLS LSP 通道

查看R1去往10.0.3.3的MPLS 报文

可以看到R1 出发被打标签是1025 、到达 R2时被替换为3(PHP特殊标签)

查看R3去往10.0.1.1的MPLS报文

可以看出R3 出发被赋予标签1024、到达R2时被替换为3

思考 为什么标签转发比IP转发的效率更高?

转发知乎

路由器对IP包的转发使用的CPU处理,那么CPU处理每一个IP包就会使用最长掩码匹配原则,举个栗子,如果路由器收到了一个目的IP为192.168.1.1的数据包,此时在路由表中有192.168.0.0/16,192.168.1.0/24,192.168.1.1/32三条路由,那么路由器要经过三次查找,找到最精确的匹配192.168.1.1/32,才能将数据包转发出去。

首先MPLS将路由器的控制层面与转发层面进行了分离。在控制层面中,路由协议生成路由表,标签协议生成标签信息库(LIB)。在标签信息库中会为每一类路由条目分配一个标签,例如前例,对192.168.0.0/16,192.168.1.0/24,192.168.1.1/32三条路由只需要分配一个标签,例如标签20,这就叫转发等价类(FEC),而所有的FEC就构成了路由器的转发平面,我们叫做标签转发表(LIB)。这时路由器来说,原来是收到目的IP是192.168.1.1的数据包,要进行三次查路由表再转发;而现在是收到标签为20的标签包,所以路由器不会查路由表,而是一次查找标签转发表(LIB),找到其他路由器为192.168.0.0分配的标签,直接交换出去。加快了路由器的转发效率。

MPLS 的意义:

意义在于在于标签的加入将IP包这种无连接的转发方式变成了面向连接的转发方式,就是标签转发路径(LSP)的形成。那么一旦面向连接的转发形成以后,我们可以很方便的将MPLS扩展出多种应用,例如VPN,TE,VPLS,等等技术。

Network MPLS LDP配置任务概览

配置MPLS LDP 基本功能

前置任务

在配置MPLS LDP基本功能之前,需完成以下任务:

  • 配置静态路由或IGP协议,使各节点间的IP路由可达

一、配置LSR ID

背景信息

LSR ID用来在网络中唯一标识一个LSR。LSR没有缺省的LSR ID,必须手工配置。为了提高网络的可靠性,推荐使用LSR某个Loopback接口的地址作为LSR ID。

请在MPLS域的所有节点上进行以下配置。

  1. 执行命令mpls lsr-id lsr-id,配置本节点的LSR ID。缺省情况下,没有配置LSR ID。
  2. 如果要修改已经配置的LSR ID,必须先在系统视图下执行undo mpls命令。undo mpls 会删除MPLS 的所有配置,所以要事先规划好lsr ID.

二、开启MPLS 全局功能

执行命令mpls,使能全局MPLS功能,并进入MPLS视图

二、开启MPLS LDP 全局功能

执行命令mpls ldp,使能全局的LDP功能,并进入MPLS-LDP视图。

(可选)执行命令lsr-idlsr-id,配置LDP实例的LSR ID。

缺省情况下,LDP实例的LSR ID等于节点的LSR ID。推荐采用缺省值。

在某些使用VPN实例的组网方案中(例如BGP/MPLS IP VPN),如果VPN私网地址与LSR ID重叠,则需要为LDP另外配置LSR ID,以保证TCP连接能够正常建立。

三、配置LDP 会话

分为 本地LDP 会话和远端LDP 会话

本地LDP 会话通常是直连相信的LSR 之间,远端LDP会话是不相邻的LSR建立。

  • 配置本地LDP会话请在两台相邻的LSR上进行以下配置。
    1. 执行命令system-view,进入系统视图。
    2. 执行命令interface interface-type interface-number,进入需要建立LDP会话的接口视图。
    3. 执行命令mpls,使能接口的MPLS能力。缺省情况下,接口的MPLS能力处于未使能状态。
    4. 执行命令mpls ldp,使能接口的MPLS LDP能力。缺省情况下,接口的MPLS LDP能力处于未使能状态。
  • 配置远端LDP会话请在远端LDP会话两端的LSR上进行以下配置。
    1. 执行命令system-view,进入系统视图。
    2. 执行命令mpls ldp remote-peer remote-peer-name,创建MPLS LDP远端对等体,并进入MPLS LDP远端对等体视图。
    3. 执行命令remote-ip ip-address,配置MPLS LDP远端对等体的IP地址。缺省情况下,没有配置LDP远端对等体的IP地址。配置的远端对等体的IP地址必须是远端对等体的LSR ID。LDP实例的LSR ID和节点的LSR ID不一致时,要使用LDP实例的LSR ID

Network MPLS LDP

定义

标签分发协议LDP(Label Distribution Protocol)是多协议标签交换MPLS的一种控制协议,相当于传统网络中的信令协议,负责转发等价类FEC(Forwarding Equivalence Class)的分类、标签的分配以及标签交换路径LSP(Label Switched Path)的建立和维护等操作。LDP规定了标签分发过程中的各种消息以及相关处理过程。

目的

MPLS支持多层标签,并且转发平面面向连接,故具有良好的扩展性,使在统一的MPLS/IP基础网络架构上为客户提供各类服务成为可能。通过LDP协议,标签交换路由器LSR(Label Switched Router)可以把网络层的路由信息直接映射到数据链路层的交换路径上,动态建立起网络层的LSP

目前,LDP广泛地应用在VPN服务上,具有组网、配置简单、支持基于路由动态建立LSP、支持大容量LSP等优点。

LDP基本概念

LDP邻接体

当一台LSR接收到对端发送过来的Hello消息后LDP邻接体建立。LDP邻接体存在两种类型:

  • 本地邻接体(Local Adjacency):以组播形式发送Hello消息(即链路Hello消息)发现的邻接体叫做本地邻接体。
  • 远端邻接体(Remote Adjacency):以单播形式发送Hello消息(即目标Hello消息)发现的邻接体叫做远端邻接体。

LDP通过邻接体来维护对等体的存在,对等体的类型取决于维护它的邻接体的类型。一个对等体可以由多个邻接体来维护,如果由本地邻接体和远端邻接体两者来维护,则对等体类型为本远共存对等体。

LDP会话

LDP会话用于LSR之间交换标签映射、释放等消息。只有存在对等体才能建立LDP会话,LDP会话分为两种类型:

  • 本地LDP会话(Local LDP Session):建立会话的两个LSR之间是直连的。
  • 远端LDP会话(Remote LDP Session):建立会话的两个LSR之间可以是直连的,也可以是非直连的。

本地LDP会话和远端LDP会话可以共存。

LSP 工作机制

Ldp会话的建立

通过LDP发现机制发现LDP对等体用来建立LDP会话。只有建立了LDP会话后,才能建立LDP LSP来承载业务。

Ldp Lsp的建立

LDP通过发送标签请求和标签映射消息,在LDP对等体之间通告FEC和标签的绑定关系来建立LSP,而标签的发布和管理由标签发布方式、标签分配控制方式和标签保持方式来决定。

LDP 扩展

1、Ldp 跨域扩展

LDP跨域扩展通过使能LDP按最长匹配原则查找路由,使LDP能够依据聚合后的路由建立起跨越多个IGP区域的LDP LSP。

产生原因:当网络规模比较大时,通常需要部署多个IGP区域来达到灵活部署和快速收敛的目的。在这种情况下,IGP区域间进行路由通告时,为了避免路由数量多而引起的对资源的过多占用,区域边界路由器(ABR)需要将区域内路由聚合,再通告给相邻的IGP区域。然而,LDP在建立LSP的时候,会在路由表中查找与收到的标签映射消息中携带的FEC精确匹配的路由,对于聚合路由,LDP只能建立Liberal LSP,无法建立跨越IGP区域的LDP LSP。因此,引入LDP跨域扩展来解决这个问题。

2、LDP为BGP路由分标签

3、LDP over GRE/mGRE

LDP 可靠性

从控制层面和数据转发层面保障用户业务的可靠。

技术分类说明包含特性
故障检测技术对MPLS网络中的路径进行快速检测,故障时确保快速触发保护技术生效。BFD for LDP LSP
流量保护技术MPLS网络端到端路径故障时,确保流量切换到备份路径,尽可能地避免流量的丢失。LDP与静态路由联动
LDP与IGP联动
LDP FRR
本远端LDP会话共存
MPLS网中的节点控制层面故障时,保证转发层面不中断,从而确保流量转发不中断。LDP GR

LSP 建立的缺点

它基于IP路由表构建LSP,从而使MPLS网络在功能上自动等同于纯IP网络。

Network BGP 基础配置

  1. [Huawei] bgp 65009                                                //配置BGP编号
  2. [Huawei]-bgp] router-id 2.2.2.2                               //配置BGP的router id
  3. [Huawei]-bgp] peer 172.16.1.2 as-number 65009     //指定BGP的对等体
  4. [Huawei-bgp] ipv4-family unicast                            //进入BGP-IPv4单播地址族视图
  5. [Huawei-bgp-af-ipv4] network 10.0.0.0 255.0.0.0     //发布10.0.0.0网段的路由
  6. [Huawei-bgp-af-ipv4] quit

BGP 对等体的概念

运行 BGP 协议的 Router称为 BGP Speaker,建立了 BGP 会话连接(BGP Session)的 BGP Speakers 之间被称作对等体(BGP Peers)。 

BGP Speaker之间建立对等体的模式有两种:IBGP(Internal BGP)和EBGP(External BGP)。IBGP 是指在相同 AS内建立的 BGP 连接,EBGP是指在不同 AS 之间建立的 BGP连接。二者的作用简而言之就是:EBGP 是完成不同 AS 之间路由信息的交换,IBGP是完成路由信息在本 AS内的传递。

BGP 应用场景

组建BGP网络是为了实现网络中不同AS之间的通信。配置BGP的基本功能是组建BGP网络最基本的配置过程,主要包括三部分:

  • 1、创建BGP进程:只有先创建BGP进程,才能开始配置BGP的所有特性。
  • 2、建立BGP对等体关系:只有成功建立了BGP对等体关系,设备之间才能交换BGP消息。
  • 3、引入路由:BGP协议本身不发现路由,只有引入其他协议的路由才能产生BGP路由

查看BGP 对等体

两台 BGP 路由器需要首先建立对等体关系,然后才能够正常交互 BGP 路由。在 BGP中, 2台设备的 BGP 等体需要网络管理员通过命令手工指定,也就是说 BGP 无法自动发现其他对等体

查看BGP 路由表

  1. BGP 路由表中,可用的 BGP路由在行首会有星号”*”标记,相反,不可用的路由则没有该标记。
  2. 最优路由在行首会拥有尖括号”>”标记
  3. 从 IBGP 对等体学习到的路由会标记 “i” (i 意为 intemal 。注意该标记的位置,是在行首部,而不是尾部),如果该路由学习自 EBGP 对等体,则没有该标记。
  4. “0饵”显示的是 Origin性值,如果此处显示 “i” ,则表示该路由是被 BGP network 命令发布的,也就是 Origin 为IGP ,另外,如果此处显示”?”,则表示 Origin 为Incomplete

将路由发布到BGP

可以使用network 或者 import 命令 或 aggregate 将路由发布到BGP

使用 network 命令将其路由表中的直连路由 静态路由或通过 IGP 协议学习到的路由发布到 BGP。

和IGP OSPF 使用network 命令存在根本性差异,OSPF 中使用network 时会在相应端口激活ospf 并发送和侦听hello报文。

与OSPF 不同,在 BGP 配置视图中执行的 network 命令并不用于在指定网段(接口)上激活 BGP ,而是用于向 BGP 发布路由,而且 BGP network 命令不仅仅能用于将直连路由发布到 BGP ,实际上,该设备路由表中的直连路由、静态路由以及通过 IGP 协议学习到的动态路由都能使用 network 命令发布到 BGP

BGP 中的 import-route 命令与 IGP 协议中的该条命令功能相同。
Import-route 命令可以将设备路由表中的直连路由、静态路由或通过 IGP 协议学习到的动态路由引入 BGP。

关于 BGP 中的 network import-route 命令,还存在另一个差异。在 BGP 的众多路径属性中,有一个属性是所有 BGP 路由都必须携带的,那就是 Origin 属性,该属性用于描述一条路由是如何被发布到 BGP 的(路由的来源),使用以上两个命令将路由发布到 BGP 时,路由的 Origin 属性是不同的

BGP 配置视图中,使用 aggregate 命令,可执行 BGP 路由手工汇总。该命令生效的前提是,设备已经通过BGP 学习到了明细路由,之后再使用该命令,则可使设备向 BGP 发布指定的汇总路由。