一、背景介绍

MPLS作为一种多协议标签交换技术常用于运营商的骨干网络中,它使用标签交换的技术,打通了同一客户不同站点之间的网络连接,整个运营商的MPLS域类似透明的,用户并不感知。下图中R4与R5模拟同一客户的2个站点出口路由,通过MPLS域R4和R5路由器之间可以直接ping通,这就像在运营商的网络中建立了一条隧道,直接将不同站点的网络对接,所以MPLS也是一种隧道技术,常被称为MPLS ***
假装网络工程师19——MPLS静态LSP介绍

二、网络设备的角色

网络设备根据所处的位置不同,在MPLS***中有以下3种角色:

  1. CE设备
    全称client edge,作为用户的网络边缘设备与运营商的设备之间直连,并将客户侧的路由信息发送给运营商设备,图中R4,R5都属于CE是设备
  2. PE设备
    全称provider edge,作为运营商网络的边缘设备,接收用户侧传来的路由信息,并与MPLS域内其他路由器建立LSP路径,图中的R1,R3都属于PE设备
  3. P设备
    全称provider设备,是运营商MPLS域内除了PE之外的其他网络设备,该设备上并不保存客户方路由信息(走标签转发),用于与MPLS域中的网络设备建立LSP路径,图中的R2就属于P设备

网络设备根据工作方式的不同,在MPLS***中也有3种模式:

  1. ingress
    该节点通常是数据报文进入MPLS域时经过的第一台路由器,他的作用是为要通信的FEC(转发等价类,大致可以任务是一个网段)压入标签,此节点通常是PE设备,该设备上需要学习到客户两端的路由条目
  2. egress
    该节点通常是流量出MPLS域时经过的最后一台路由器,他的作用是弹出数据报文中的标签,将纯IP报文发送给客户的CE设备,此节点通常是P设备,该设备上也需要学习客户两端的路由条目
  3. transit
    在MPLS域中除了上述两节点外的其他路由设备,由于标签值对于每台路由器来讲只是本地有效,且无需分发,所以该节点的作用是将上游路由器打上的标签替换为下游路由器的标签(每台路由器只能识别自己分配的标签),进行转发,此节点通常是P设备,该设备上不需要学习到客户两端的路由条目

三、实验介绍

本次实验拓扑如下图所示,每个路由器的lsr-id为x.x.x.x(x为路由器编号),只有mpls域中的路由器才启用mpls功能(R1/2/3),具体的配置步骤为:
假装网络工程师19——MPLS静态LSP介绍

  1. 启用R1/2/3的MPLS功能(仅演示R1上的配置)
    [R1]mpls lsr-id 1.1.1.1
    [R1]mpls
    Info: Mpls starting, please wait... OK!
    [R1]interface g0/0/0
    [R1-GigabitEthernet0/0/0]mpls 
  2. 在R1与R3路由上要配置去往目标网段的下一跳地址
    [R1]ip route-static 20.0.0.0 24 12.0.0.2
    [R3]ip route-static 10.0.0.0 24 23.0.0.2
  3. 配置从R1到R3的静态LSP(紫色)
    [R1]static-lsp ingress 1to3 destination 20.0.0.0 24 nexthop 12.0.0.2 out-label 200
    [R2]static-lsp transit 1to3 incoming-interface g0/0/0 in-label 200 nexthop 23.0.0.3 out-label 300
    [R3]static-lsp egress 1to3 incoming-interface g0/0/1 in-label 300 
  4. 配置从R3回R1的静态LSP(黄色)
    [R3]static-lsp ingress 3to1 destination 10.0.0.0 24 nexthop 23.0.0.2 out-label 201
    [R2]static-lsp transit 3to1 incoming-interface g0/0/1 in-label 201 nexthop 12.0.0.1 out-label 101
    [R1]static-lsp egress 3to1 incoming-interface g0/0/0 in-label 101 
  5. 至此,配置完成PC1与PC2之间能够正常通信,但此时R2路由器上并没有10.0.0.0/24与20.0.0.0/24网段的路由,证实了它并不是通过IP报文转发,而是标签进行转发
    假装网络工程师19——MPLS静态LSP介绍

    四、MPLS实现原理

    1. MPLS的工作位置

    MPLS是一种基于标签交换转发的协议,他在传统的数据包2、3层之间插入了MPLS报文,启用MPLS的路由器根据MPLS报文中的标签进行转发,根本不会去看IP报文中的路由条目,这样,即使MPLS路由器上没有去往目的网段的路由信息,一样可以将数据传达到目的端。MPLS的报文位于2层与3层之间,所有有时候也称为好比2.5层
    假装网络工程师19——MPLS静态LSP介绍
    其中MPLS Label一共有32位组成
    假装网络工程师19——MPLS静态LSP介绍

    2.MPLS中的名词介绍

  6. LSP(Label SwitchedPath):
    标签交换路径,即到达同一目的地址的报文在MPLS网络中经过的路径
  7. FEC(Forwarding Equivalent Class):
    一般指具有相同转发处理方式的报文。在MPLS网络中,到达同一目的地址的所有报文就是一个FEC
  8. 数据流量的上游与下游:
    手工分配标签需要遵循的原则是,上游节点出标签的值就是下游节点入标签的值。从一个源地址到达目的地址的途径路径就是从上游去往下游,即靠近目的地址的是下游

3.MPLS的工作过程

  1. 二层如何识别MPLS报文
    既然MPLS工作在二层,那么三层是如何识别的?之前介绍过,二层通过type值来告知三层,在MPLS中二层向三层传递的type值为8847(单播)与8848(组播),所以这要求路由器在二层能够识别MPLS报文
    假装网络工程师19——MPLS静态LSP介绍
  2. MPLS三层转发
    跟二层一样,当MPLS报文进入三层时,FEC是走IP报文转发还是送入MPLS隧道?这就需要根据FIB转发表来进行判断,当查看一个路由器的路由表时,他会告诉哪些路由条目已经下载到fib表中,路由表是为了我们方便查看生成的一张表
    假装网络工程师19——MPLS静态LSP介绍
    而路由器在转发时查看的是fib表,在fib表中的tunnel-id一项中,0x0代表的是IP转发,其余非0x0的值都代表要进入的隧道编号,这也是为什么MPLS也被称为一种隧道技术
    假装网络工程师19——MPLS静态LSP介绍
    再看隧道详细信息,能看到它里面走的就是lsp
    假装网络工程师19——MPLS静态LSP介绍