1.MPLS概述
(1)传统IP路由转发
(2)MPLS基本概念
⦁ MPLS起源于IPv4(Internet Protocol version 4),其核心技术可扩展到多种网络协议,包括IPv6(Internet Protocol version 6)、IPX(Internet Packet Exchange)、Appletalk、DECnet、CLNP(Connectionless Network Protocol)等。MPLS中的"Multiprotocol"指的就是支持多种网络协议。
⦁ MPLS以标签交换替代IP转发。标签是一个短而定长的、只具有本地意义的标识符。
2.MPLS术语
(1)MPLS术语介绍-LSR与MPLS域
(2)MPLS术语介绍-LSR分类
(3)MPLS术语介绍-FEC
⦁ 在传统的采用最长匹配算法的IP转发中,匹配到同一条路由的所有报文就是一个转发等价类。
⦁ 在MPLS中,关于FEC最常见的例子是:目的IP地址匹配同一条IP路由的报文被认为属于同一个FEC。
(4)MPLS术语介绍-LSP
⦁ 一条LSP包含一台入站LSR、一台出站LSR以及数量可变的中转LSR,因此LSP也可以看做是这些LSR的有序集合。
⦁ LSP需要在数据转发开始前建立完成,只有这样报文才能顺利穿越MPLS域。
⦁ LSP可通过静态和动态两种方式建立。
⦁ 需要注意的是,LSP是一个从"起点"到"终点"的单向路径,若需要双向数据互通,则需要在双方之间建立双向的LSP。
3.MPLS标签
(1)MPLS标签
⦁ EXP字段在早期的MPLS标准中被定义,意为试验性的字段,但实际上该字段主要被用于CoS。为了避免歧义,RFC5462重新定义了该字段,命名为流分类(Traffic Class)。
(2)MPLS标签栈
当上层为MPLS标签栈时,以太网头部中的Type字段为0x8847,PPP头部中的Protocol字段为0x8281
(3)MPLS标签的处理
只具有本地意义说明每一台LSR之间的标签空间是相互独立的,即每台路由器都可以使用完整的标签空间。
(4)MPLS标签的处理
4.MPLS转发
(1)MPLS转发概述
⦁ 同一个FEC,若进入MPLS域的Ingress LSR(入站LSR)不同,转发时的LSP也不相同。
⦁ 同一个FEC,LSR的处理方式相同,不论这个FEC来自哪里(进入设备的接口)。
⦁ LSR的转发动作决定了LSP,而标签转发表确定转发动作,所以建立标签转发表也可以理解为建立LSP。
⦁ 如图所示,因为有着相同的目的地,所以这三份数据属于同一个转发等价类FEC1。同时由于入站LSR不同,这些数据将分别在LSP1、LSP2和LSP3上被转发。因为标签仅具有本地意义,所以每台LSR上给同一FEC分配的标签,可以相同,也可以不同。
(2)MPLS体系结构
⦁ 控制平面:
⦁ 控制平面是无连接的,主要功能是负责产生和维护路由信息以及标签信息。
⦁ 控制平面包括:
⦁ 路由信息表RIB(Routing Information Base):由IP路由协议(IP Routing Protocol)、静态路由和直连路由共同生成,用于选择路由。
⦁ 标签信息表LIB(Label Information Base):用于管理标签信息,LIB中的表项可由标签交换协议(LDP、RSVP等协议)或静态配置生成。
⦁ 转发平面:
⦁ 转发平面也称为数据平面,是面向连接的, 主要功能是负责普通IP报文的转发以及带MPLS标签报文的转发。
⦁ 转发平面包括:
⦁ 转发信息表FIB(Forwarding Information Base):从RIB提取必要的路由信息生成,负责普通IP报文的转发。
⦁ 标签转发信息表LFIB(Label Forwarding Information Base):简称标签转发表,负责带MPLS标签报文的转发。
(3)控制平面与转发平面
(4)LSP建立原则
(5)LSP建立方式
⦁ 静态LSP:
⦁ 由于静态LSP各节点上不能相互感知到整个LSP的情况,因此静态LSP是一个本地的概念。
⦁ 动态LSP:
⦁ 其他标签分布协议:
⦁ RSVP-TE:Resource Reservation Protocol Traffic Engineering,它是对RSVP的扩展,用于建立基于约束的LSP。它拥有普通LDP LSP没有的功能,如发布带宽预留请求、带宽约束、链路颜色和显式路径等。
⦁ MP-BGP:Multiprotocol Border Gateway Protocol,MP-BGP是在BGP协议基础上扩展的协议。MP-BGP支持为MPLS VPN业务中私网路由和跨域VPN的标签路由分配标签。
(6)MPLS标签转发
⦁ Tunnel ID:为了给使用隧道的上层应用(如VPN、路由管理)提供统一的接口,系统自动为隧道分配了一个ID,也称为Tunnel ID。该Tunnel ID的长度为32比特,只是本地有效。在MPLS转发过程中,FIB、ILM和NHLFE表项是通过Tunnel ID关联的。
(7)Ingress LSR的处理
、
⦁ 在Ingress LSR,通过查询FIB表(得到FTN信息)和NHLFE表指导报文的转发。
⦁ 当IP报文进入MPLS域时,首先查看FIB表,检查目的IP地址对应的Tunnel ID值是否为0x0。
⦁ 如果Tunnel ID值为0x0,则进入正常的IP转发流程。
⦁ 如果Tunnel ID值不为0x0,则进入MPLS转发流程。
(8)Transit LSR的处理
⦁ 在Transit LSR,通过查询ILM表和NHLFE表指导MPLS报文的转发。
(9)Egress LSR的处理
⦁ 在Egress LSR,通过查询ILM表指导MPLS报文的转发。
(10)MPLS详细转发过程
5.静态LSP配置
(1)MPLS基本配置命令
(2)静态LSP配置命令(1)
⦁ out-label占用的是下游LSR的标签空间,而下游空间采用的标签分发方式不确定,所以out-label的标签空间为16~1048575。
⦁ in-label占用的是当前LSR的标签空间,采用静态LSP时,标签空间为16~1023。
(3)静态LSP配置命令(2)
(4)案例
案例介绍:R1、R2和R3 R4之间已经部署了IGP协议,故1.1.1.0/24与4.4.4.0/24网络之间已经能够互访。现要求通过配置静态LSP,使得这两个网络之间能基于MPLS进行互访,标签分配如图。
配置思路:在设备和接口上使能MPLS功能按照规划配置静态LSP
配置如下:
[czyAR1]mpls lsr-id 1.1.1.1
[czyAR1]inter g0/0/0
[czyAR1-GigabitEthernet0/0/0]mpls
[czyAR1]static-lsp ingress 1to4 destination 4.4.4.0 24 nexthop 10.0.12.2 out-lab
el 200
[czyAR2]mpls lsr-id 2.2.2.2
[czyAR2]mpls
[czyAR2]inter g0/0/0
[czyAR2-GigabitEthernet0/[czyAR3]mpls lsr-id 3.3.3.3
[czyAR3]mpls
[czyAR3]inter g0/0/0
[czyAR3-GigabitEthernet0/0/0]mpls
[czyAR2]static-lsp transit 1to4 incoming-interface g0/0/0 in-label 200 nexthop 1
0.0.23.3 out-label 300
[czyAR4]mpls lsr-id 4.4.4.4
[czyAR4]mpls
[czyAR4]inter g0/0/0
[czyAR4-GigabitEthernet0/0/0]mpls
[czyAR4]static-lsp egress 1to4 incoming-interface g0/0/0 in-label 400
查看配置
此时可以发现我们的AR1的链路状态是down的
当我们去traffic的时候显示我们的lsp不存在
那么是什么原因导致的呢?
因为OSPF协议默认会把环回口looback地址认为是主机地址/32,本质是因为默认情况下OSPF中loopback的OSPF网络类型为P2P,默认只为非物理接口主机路由建立LSP,确定loopback接口地址是否为32位。
你说是24位的但是我学到的是32位的,路由器认为这是不正常的所以down了
那么该如何解决呢
1.可以将ospf network-type改为broadcast
2.looback的地址改为32位的
以AR1为例子,其他路由器类似
[czyAR1]inter LoopBack 1
[czyAR1-LoopBack1]ospf network-type broadcast
改完之后立马发现状态为up
进行tracert测试
经过测试,1.1.1.0/24网段的主机到3.3.3.0/24主机的ping测试没有问题。
仅配置了1.1.1.0/24到3.3.3.0/24的单向静态LSP,为何可以实现双向通信呢
因为1.1.1.0/24网段的主机到3.3.3.0/24主机的报文基于MPLS标签转发。
3.3.3.0/24网段的主机到1.1.1.0/24主机的报文基于IP包头转发。
双向都通过MPLS标签进行通信
[czyAR1]static-lsp egress 4to1 incoming-interface g0/0/0 in-label 700
[czyAR2]static-lsp transit 4to1 incoming-interface g0/0/1 in-label 600 nexthop 1
0.0.12.1 out-label 700
[czyAR3]static-lsp transit 4to1 incoming-interface g0/0/1 in-label 500 nexthop 1
0.0.23.3 out-label 600
[czyAR4]static-lsp ingress 4to1 destination 1.1.1.0 24 nexthop 10.0.34.4 out-lab
el 500