6.0.0 MPLS基础、静态标签分配

一、MPLS基本概念

MPLS(Multi-Protocol Label Swithing,多协议标签交换)
MPLS位于TCP/IP协议栈中的数据链路层网络层之间,可以向网络层提供服务,也称2.5层。

MPLS专业名词

  • MPLS域
    • 指由一系列连续运行MPLS的网络设备所组成的一个集合,该域中所有设备都运行着MPLS功能。
  • LSR标签交换路由
    • Ingress LSR,入站LSR。指在数据报文进入MPLS网络内首次接触的设备,入站LSR会将进入MPLS网络的报文打上MPLS标签,继续在MPLS网络中转发。
    • Transit LSR,中转LSR。作为MPLS网络中的中间设备,主要起到对已经打上标签的报文进行中转操作。
    • Egress LSR,出站LSR。作为MPLS网络中标签报文的终点,会对即将离开MPLS网络的标签报文进行剥离。

6.0.0 MPLS基础、静态标签分配_第1张图片

  • FEC转发等价类
    • FEC(Forwarding Equivalence Class,转发等价类)
    • 一组具有某些共性的数据流的集合,这些数据流在转发过程中被网络节点以相同方式处理(打上相同的标签后进行转发)。

6.0.0 MPLS基础、静态标签分配_第2张图片

  • LSP 标签交换路径
    • LSP(Label Switched Path)
    • 指标签报文穿越MPLS网络到达目的地所走的路径。
  • RIB与FIB、LIB与LFIB。
    • RIB 路由表中的路由信息根据各种因素进行选择,选出的最佳路由复制到 FIB 中,供数据包的实际转发使用。
    • 设备通过LDP协议交换标签信息组成LIB标签信息表。
    • LFIB与FIB类似,LIB 中的标签信息根据 MPLS 路由协议进行学习和分发,选出的最佳标签转发路由复制到 LFIB 中,供数据包的实际转发使用。

6.0.0 MPLS基础、静态标签分配_第3张图片

关于MPLS的疑惑

1、为什么说MPLS标签转发表比路由表查询更快速?

  • 如果在大型的网络中,路由表的条目可达十多万条目。

    路由表查询路由的时候都是按照从上往下匹配路由条目查询的效率随着路由表的条目增加而效率降低。

  • 而MPLS中的标签转发表,优势在于多条路由条目可能会共用一个标签进行转发。

    同时以标签方式作为匹配方式,也能在一定程度上提高匹配速度。

2、

二、MPLS转发过程

MPLS转发动作包括标签压入(Push)、标签交换(Swap)和标签弹出(Pop),它们是标签转发的基本动作。

  • Push:当IP报文进入MPLS域时,MPLS边界设备在报文二层首部和IP首部之间插入一个新标签;或者MPLS中间设备根据需要,在标签栈顶增加一个新的标签(即标签嵌套封装)。
  • Swap:当报文在MPLS域内转发时,根据标签转发表,用下一跳分配的标签,替换MPLS报文的栈顶标签。
  • Pop:当报文离开MPLS域时,将MPLS报文的标签剥掉。

在最后一跳节点,标签已经没有使用价值。

这种情况下,可以利用倒数第二跳弹出特性PHP(Penultimate Hop Popping),在倒数第二跳节点处将标签弹出,减少最后一跳的负担。最后一跳节点直接进行IP转发或者下一层标签转发。

默认情况下,设备支持PHP特性,支持PHP的Egress节点分配倒数第二跳节点标签值为3

栈顶,把栈理解成一座金字塔,最顶端即为栈顶,标签亦是如此封装。

每次压入标签,即向栈顶添加一层标签;

标签弹出即将栈顶的标签拿掉,而不是拿多字塔中间的标签;

交换则是替换,同样是替换栈顶的标签。

三、配置MPLS功能

6.0.0 MPLS基础、静态标签分配_第4张图片

  • 1、设置设备的LSR
  • LSR ID用来在网络中唯一标识一个LSR。LSR没有缺省的LSR ID,必须手工配置。为了提高网络的可靠性,推荐使用LSR某个Loopback接口的地址作为LSR ID。
# 配置AR1
[AR1]int loopback0
[AR1-LoopBack0]ip add 1.1.1.1 32
[AR1-LoopBack0]quit
[AR1]mpls lsr 1.1.1.1

# 配置AR2
[AR2]int loopback0
[AR2-LoopBack0]ip add 2.2.2.2 32
[AR2-LoopBack0]quit
[AR2]mpls lsr 2.2.2.2
  • 2、启用MPLS,全局启用,接口启用。
# 配置AR1
[AR1]mpls
[AR1-mpls]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 10.1.0.1 24
[AR1-GigabitEthernet0/0/0]mpls

# 配置AR2
[AR2]mpls
[AR2-mpls]int g0/0/0
[AR2-GigabitEthernet0/0/0]ip add 10.1.0.2 24
[AR2-GigabitEthernet0/0/0]mpls
  • 3、查看启用了MPLS的接口
[AR1]dis mpls interface 
Interface             Status    TE Attr   LSP Count  CRLSP Count Effective MTU
GE0/0/0               Up        Dis       0          0           1500      

[AR2]dis mpls interface 
Interface             Status    TE Attr   LSP Count  CRLSP Count Effective MTU
GE0/0/0               Up        Dis       0          0           1500      
  • 4、查看MPLS标签信息,并看不到任何的标签信息。
[AR1]dis mpls lsp

[AR2]dis mpls lsp
  • 主要原因是MPLS设备并没有给路由分配标签,它需要借助手动静态分配或者LDP协议动态分配标签,才能够在标签信息表中看到标签。

四、静态标签分配

MPLS标签转发方式

在进行配置静态标签分配前,先了解数据是怎么以MPLS方式进行数据转发。

1、入站LSR收到一个数据包,检查其DIP,如果是该DIP在FIB表中,Tunnel ID非0x0,则在NHLFE中查询对应的Tunnel ID表项决定该数据包需要打上的标签与后继转发操作。

6.0.0 MPLS基础、静态标签分配_第5张图片

2、中转LSR收到带有标签的MPLS数据包之后,基于接收到的MPLS标签的接口与其标签,查询本地的**ILM表( Incoming Label Map 入标签映射表)**得出其对应的Tunnel ID表项,然后到NHLFE中查看该Tunnel ID对应的信息,决定该数据包的后继转发操作。

6.0.0 MPLS基础、静态标签分配_第6张图片

3、经过多个中转LSR最终将MPLS发送到出站LSR,出站LSR对接收到的指定MPLS标签的路由进行剥离操作,然后进行正常的路由转发操作。

6.0.0 MPLS基础、静态标签分配_第7张图片

4、数据转发全流程图

6.0.0 MPLS基础、静态标签分配_第8张图片

FIB、NHLFE、ILM三表项的关联

  • FIB(转发表)在入站LSR中决定了访问相应目的路由时是否通过MPLS隧道发送。
  • ILM(入标签映射表)表只在中转与出站LSR路由设备上面应用,ILM
  • NHLFE(下一跳标签信息转发表)中记录了MPLS的Tunnel ID对应条目内容,决定了MPLS标签的详细信息记录通过该隧道转发的路由打上什么MPLS标签,以及了携带MPLS标签的路由转发还是剥离

静态标签分配操作命令

Ingress设备

  • 做报文的进入封装操作,设置MPLS路由入其的下一跳、出标签。
static-lsp ingrees 名称 destination 目的路由 掩码 nexthop 下一跳 out-label 出标签

Transit设备

  • 做标签报文的交换,设置入接口入标签及下一跳、出标签。
static-lsp transit 名称 incoming-interface 入接口 in-label 入标签 nexthop 下一跳 out-label 出标签

Egress设备

  • 做标签报文的剥离,设置剥离的入接口入标签。
static-lsp egress 名称 incoming-interface 入接口 in-label 入标签

静态标签分配案例

需求:

  • AR1与AR4、AR3与AR5使用直连地址直接建立IBGP邻居并发布各自的业务路由。
  • AR1、AR2、AR3建立OSPF邻居关系,AR1与AR3通过环回口建立EBGP邻居同步各自的BGP路由。
  • 要求实现AR4业务路由与AR5业务路由互通。

6.0.0 MPLS基础、静态标签分配_第9张图片

操作命令参考

1、省略设备IP地址、OSPF、BGP配置,自由发挥能实现互相学习到对方业务路由即可。

注意两个坑位:

1、EBGP使用环回口建立时,需要配置EBGP最大跳数,以及指定连接接口。以AR1为例:

peer 3.3.3.3 as-number 200
peer 3.3.3.3 ebgp-max-hop 10
peer 3.3.3.3 connect-interface LoopBack0

2、EBGP路由传递给IBGP时,下一跳不会改变需要进行调整。以AR1为例:

AR4收到AR1传来的EBGP路由,下一跳为3.3.3.3,由于下一跳未知,故AR4不会将路由加入路由表。

所以需要在AR1上配置:peer 10.1.14.4 next-hop-local

配置完成之后, 检查各自设备的路由情况,能够学习到对方业务路由为正确。

# AR4学习到AR5业务路由
[AR4]display ip routing-table protocol bgp 
Destination/Mask    Proto   Pre  Cost  Flags NextHop Interface

192.168.50.0/24  IBGP    255  0  RD   10.1.14.1    GigabitEthernet0/0/0

# AR5学习到AR4业务路由
[AR5]display ip routing-table protocol bgp 
Destination/Mask    Proto   Pre  Cost  Flags NextHop Interface

192.168.40.0/24  IBGP    255  0  RD   10.1.35.3    GigabitEthernet0/0/0

2、解决AR2路由黑洞问题。

简写:

由于AR2缺少AR4、AR5的业务路由条目,

故当AR4访问AR5业务路由时,AR2不知道AR5业务路由如何转发。

因此目前情况下无法实现业务互通。

MPLS标签除了能够实现标签数据转发效率加快,还能够解决路由黑洞的问题。

无法互通的原因是AR2在转发AR1/AR3发来的数据报文时需要检查路由表判断报文中的目的路由下一步该如何走。

但AR2并没有AR4、AR5路由,故发来的数据报文将在AR2上丢弃。

6.0.0 MPLS基础、静态标签分配_第10张图片

只要解决AR1到AR3之间畅通无阻即可实现互通。MPLS标签转发可以实现!

6.0.0 MPLS基础、静态标签分配_第11张图片

3、配置AR1、AR2、AR3的静态MPLS标签分配。

# 先配置MPLS功能
[AR1]mpls lsr 1.1.1.1
[AR1]mpls
[AR1-mpls]int g0/0/1
[AR1-GigabitEthernet0/0/1]mpls
[AR1-GigabitEthernet0/0/1]

[AR2]mpls lsr 2.2.2.2
[AR2]mpls
[AR2-mpls]int g0/0/0
[AR2-GigabitEthernet0/0/0]mpls
[AR2-GigabitEthernet0/0/0]int g0/0/1
[AR2-GigabitEthernet0/0/1]mpls

[AR3]mpls lsr 3.3.3.3
[AR3]mpls
[AR3-mpls]int g0/0/1
[AR3-GigabitEthernet0/0/1]mpls

标签空间,指标签的取值范围。标签空间划分如下:

  • 0~15:特殊标签。
  • 16~1023:静态LSP和静态CR-LSP(Constraint-based Routed Label Switched Path)共享的标签空间。
  • 1024及以上:LDP、RSVP-TE(Resource Reservation Protocol-Traffic Engineering)。

故目前使用16~1024内的标签进行静态分配,以下是规划图。

由于标签都是本地有效,故不需要担心标签分配冲突的问题。

6.0.0 MPLS基础、静态标签分配_第12张图片

# 配置Ingress设备(流量双向,故AR1、AR3均为Ingress)

# AR1--》AR3,打上50标签
[AR1]static-lsp ingress 3.3.3.3 destination 3.3.3.3 32 nexthop 10.1.12.2 out-label 33

# AR3--》AR1,的上40标签
[AR3]static-lsp ingress 1.1.1.1 destination 1.1.1.1 32 nexthop 10.1.23.2 out-label 111
# 配置Transit设备(只有AR2)

# 从AR1去往AR3业务路由的标签交换配置
[AR2]static-lsp transit 333 incoming-interface GigabitEthernet0/0/0 in-label 33 nexthop 10.1.23.3 out-label 33

# 从AR3去往AR1业务路由的标签交换配置
[AR2]static-lsp transit 111 incoming-interface GigabitEthernet0/0/1 in-label 111 nexthop 10.1.12.1 out-label 111

# 配置Egress设备(流量双向,故AR1、AR3均为Egress)

# 剥离AR3发来的标签路由
[AR1]static-lsp egress 111-e incoming-interface GigabitEthernet0/0/1 in-label 111

# 剥离AR1发来的标签路由
[AR3]static-lsp egress 33-e incoming-interface GigabitEthernet0/0/1 in-label 33

检查配置

1、查看MPLS LSP标签信息。

[AR1]display mpls static-lsp
TOTAL          :	2       STATIC LSP(S)
UP             :	2       STATIC LSP(S)
DOWN           :	0       STATIC LSP(S)
Name                FEC                I/O Label    I/O If                Status
3.3.3.3             3.3.3.3/32         NULL/33      -/GE0/0/1             Up    
111-e               -/-                111/NULL     GE0/0/1/-             Up 
[AR2]dis mpls static-lsp
TOTAL          :	2       STATIC LSP(S)
UP             :	2       STATIC LSP(S)
DOWN           :	0       STATIC LSP(S)
Name                FEC                I/O Label    I/O If                Status
333                 -/-                33/33        GE0/0/0/GE0/0/1       Up    
111                 -/-                111/111      GE0/0/1/GE0/0/0       Up 
[AR3]dis mpls static-lsp
TOTAL          :	2       STATIC LSP(S)
UP             :	2       STATIC LSP(S)
DOWN           :	0       STATIC LSP(S)
Name                FEC                I/O Label    I/O If                Status
1.1.1.1             1.1.1.1/32         NULL/111     -/GE0/0/1             Up    
33-e                -/-                33/NULL      GE0/0/1/-             Up  

2、查看FIB表项

[AR1]display fib
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
192.168.50.0/24    10.1.12.2       DGU   t[5605]       GE0/0/1        0x0
192.168.40.0/24    10.1.14.4       DGU   t[5605]       GE0/0/0        0x0

[AR3]display fib
Destination/Mask   Nexthop         Flag  TimeStamp     Interface      TunnelID
192.168.40.0/24    10.1.23.2       DGU   t[5632]       GE0/0/1        0x0
192.168.50.0/24    10.1.35.5       DGU   t[5632]       GE0/0/0        0x0

此时AR1去往AR3的业务路由,其Tunnel ID为0x0,表示不通过MPLS标签方式转发

3、Tunnel ID为0x0是什么原因?

因为缺省情况下,非标签公网BGP路由静态路由只能迭代到出接口和下一跳,不会迭代到隧道。

而目前的业务路由就属于没有标签的BGP路由。

此时需要添加一条命令:route recursive-lookup tunnel控制路由优先通过MPLS隧道转发

[AR1]route recursive-lookup tunnel 

[AR3]route recursive-lookup tunnel
此时再查看FIB表就会发现变化
[AR1]display fib
192.168.50.0/24    10.1.12.2       DGU   t[5920]       GE0/0/1        0x3

[AR3]display fib
192.168.40.0/24    10.1.23.2       DGU   t[5928]       GE0/0/1        0x2

4、检测连通性

[AR4]ping -a 192.168.40.254 192.168.50.254
  PING 192.168.50.254: 56  data bytes, press CTRL_C to break
    Reply from 192.168.50.254: bytes=56 Sequence=1 ttl=252 time=40 ms
    Reply from 192.168.50.254: bytes=56 Sequence=2 ttl=252 time=50 ms
    Reply from 192.168.50.254: bytes=56 Sequence=3 ttl=252 time=50 ms
    
[AR5]ping -a 192.168.50.254 192.168.40.254
  PING 192.168.40.254: 56  data bytes, press CTRL_C to break
    Reply from 192.168.40.254: bytes=56 Sequence=1 ttl=252 time=60 ms
    Reply from 192.168.40.254: bytes=56 Sequence=2 ttl=252 time=40 ms
    Reply from 192.168.40.254: bytes=56 Sequence=3 ttl=252 time=50 ms

扩展命令

为了方便进行MPLS静态标签分配排错定位故障位置,需要掌握相应的配置查看命令。

主要排错思路以MPLS标签转发方式为基础。

1、查看FIB表

2、查看NHLFE下一跳标签转发表(ENSP无调试命令)

由于AR2240设备的网页无权限观看,故只能参数AR300设备命令

display mpls nhlfe - display mpls nhlfe - AR300, AR700 V300R023 诊断和调试命令参考 - 华为 (huawei.com)

# 进入诊断视图
[Huawei] diagnose
[Huawei-diagnose] display mpls nhlfe 隧道值(5)
   出接口				隧道值	   操作	   下一跳          深度  标签号
OUTINTERFACE        TUNNELID   OPER     NEXTHOP         DEEP STACK
------------------------------------------------------------------------
Vlanif210           0x5        PUSH     178.10.20.1     1    3


Tunnel ID为0x1,其隧道值为1
Tunnel ID为0x5,其隧道值为5

3、查看IML入标签映射表(ENSP无调试命令)

display mpls ilm - display mpls nhlfe - display mpls nhlfe - AR300, AR700 V300R023 诊断和调试命令参考 - 华为 (huawei.com)

# 进入诊断视图
[Huawei] diagnose
[Huawei-diagnose] display mpls ilm 入标签号
ILM[1]:
  LSP type                  : LDP
  Label operation           : SWAP
  In interface              : GigabitEthernet1/0/10
  In Label                  : 1025
  Swap label                : 1026
  VPN index                 : 0
  6PE ilm flag              : IPv4
  Is Outgoing tunnel id     : no
  Load-balance count        : 1
  Tunnel id[0]              : 0x800010df
  Out interface[0]          : GigabitEthernet2/0/11
  Nexthop[0]                : 198.3.4.5
  .....省略一堆

4、查看总的标签信息

display mpls lsp 
-------------------------------------------------------------------------------
                 LSP Information: STATIC LSP
-------------------------------------------------------------------------------
FEC                In/Out Label  In/Out IF                      Vrf Name       
3.3.3.3/32         NULL/33       -/GE0/0/1                                     
-/-                111/NULL      GE0/0/1/-  

你可能感兴趣的:(HCIE相关知识,网络)