Словарик

Содержание

MPLS

  • Label – метка – значение от 0 до 1 048 575. На основе метки роутер определяет что с пакетом делать.
  • Label Stack – стек меток (MPLS Bottom Of Label Stack). 1 – ниже больше нет mpls заголовка; 0 – ниже mpls заголовок есть. Обычно самая нижняя метка эта сервисная (принадлежность к какому-то VPN сервису), а верхняя транспортная.
  • Push Label – добавление mpls метки к пакету. Выполняет Ingress LSR (Label Switch Router).
  • Swap Label – процесс замены mpls метки. Выполняется промежуточными роутерами в MPLS домене (Intermediate LSR).
  • Pop Label – процесс удаления mpls метки (верхней). Выполняется Egress LSR (последним роутером в MPLS домене)
  • PHP (Penultimate Hop Popping) – процесс удаления метки (верхней) предпоследним LSR’ом. То есть последнему LSR’у придет уже чистый (если это был не стек меток) ip пакет, без mpls заголовка.
    Для этого выделена фиктивная метка – 3. Предпоследний LSR выполняет операцию POP.
  • FEC Forwarding Equivalence Class – это класс трафика. Очень грубо это ip – адрес назначения (лупбек Egress LSR в mpls домене). Например, потоки трафика от разных клиентов и разных приложений идут на один адрес (Egress роутер в домене) и оба потока принадлежат одному классу – одному FEC т.е. используют один LSP. Но помимо одного адреса назначения, FEC может учитывать и, например, метки QoS, идентификатора VPN или тип приложений, тогда уже FEC, даже до одного и того же Egress, может отличатся.
  • LIBLabel Information Base – таблица меток (eq Control Plane) – таблица хранит все префиксы и метки, полученные от соседей:
IOS/IOS-XE:

Y-P2#show mpls ldp bindings 
  lib entry: 2.4.4.0/24, rev 15
        no local binding
        remote binding: lsr: 4.0.0.4:0, label: imp-null
  lib entry: 4.0.0.1/32, rev 2
        local binding:  label: 16
        remote binding: lsr: 4.0.0.4:0, label: 16
        remote binding: lsr: 4.0.0.3:0, label: 24002
  lib entry: 4.0.0.2/32, rev 4
        local binding:  label: imp-null
        remote binding: lsr: 4.0.0.4:0, label: 17
        remote binding: lsr: 4.0.0.3:0, label: 24001
  IOS-XR:

RP/0/0/CPU0:Y-PE3#show mpls ldp bindings 
Wed Mar  9 18:50:31.754 UTC

4.0.0.1/32, rev 14
        Local binding: label: 24002
        Remote bindings: (2 peers)
            Peer                Label    
            -----------------   ---------
            4.0.0.1:0           ImpNull 
            4.0.0.2:0           16      
4.0.0.2/32, rev 13
        Local binding: label: 24001
        Remote bindings: (2 peers)
            Peer                Label    
            -----------------   ---------
            4.0.0.1:0           16      
            4.0.0.2:0           ImpNull 
  • LFIB Label Forwarding Information Base – “база” меток к которой обращается сетевой процессор (data plane). т.е. Таблица которая используется для передачи (форвординга), содержит входящие/исходящие метки для лучших префиксов (for a prefix best path(s)). Выглядит след. образом:
IOS/IOS-XE:

Y-P2#show mpls forwarding-table 
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop    
Label      Label      or Tunnel Id     Switched      interface              
16         24002      4.0.0.1/32       9672          Gi4        4.2.3.3     
17         Pop Label  4.0.0.4/32       0             Gi5        4.2.4.4     
18         Pop Label  4.1.3.0/24       0             Gi4        4.2.3.3     
19         24004      4.1.4.0/24       0             Gi4        4.2.3.3     
20         Pop Label  4.0.0.3/32       10091         Gi4        4.2.3.3 

IOS-XR:

RP/0/0/CPU0:Y-PE3#show mpls forwarding 
Wed Mar  9 18:49:40.837 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes       
Label  Label       or ID              Interface                    Switched    
------ ----------- ------------------ ------------ --------------- ----------
24000  17          4.0.0.4/32         Gi0/0/0/0    4.1.3.1         17671       
       17          4.0.0.4/32         Gi0/0/0/1    4.2.3.2         0           
24001  Pop         4.0.0.2/32         Gi0/0/0/1    4.2.3.2         18024       
24002  Pop         4.0.0.1/32         Gi0/0/0/0    4.1.3.1         25846       
24003  Pop         4.2.4.0/24         Gi0/0/0/1    4.2.3.2         0           
24004  Pop         4.1.4.0/24         Gi0/0/0/0    4.1.3.1         0           
24005  Aggregate   SQUARE: Per-VRF Aggr[V]   \
                                      SQUARE                       0           
24006  Unlabelled  172.0.0.11/32[V]   Gi0/0/0/2    172.3.11.11     500         
24007  Unlabelled  172.4.11.0/24[V]   Gi0/0/0/2    172.3.11.11     0           
24008  Aggregate   SQUARE: Per-VRF Aggr[V]   \
                                      SQUARE                       0           
24009  Unlabelled  2001:db8:172::11/128[V]   \
                                      Gi0/0/0/2    fe80::5200:ff:fe08:2   \
                                                                   0           
24010  Unlabelled  2001:db8:172:411::/64[V]   \
                                      Gi0/0/0/2    fe80::5200:ff:fe08:2   \
                                                                   0       

Как ориентироваться в выхлопах команд LFIB и LIB на ISO XE и IOS XR:
отталкиваемся от схемы ниже

Топология

В LIB мы видим метки:

  • Которые локальный роутер (где мы смотрим эту команду) назначил для каждого FEC и, соответственно, просигнализировал их своим соседям;
  • Которые локальный роутер получил от соседей;
IOS XR:

RP/0/0/CPU0:B-ASBR1# show mpls ldp bindings 
Mon Mar 14 16:01:59.093 UTC

11.11.11.11/32, rev 2
        Local binding: label: ImpNull
        Remote bindings: (1 peers)
            Peer                Label    
            -----------------   ---------
            22.22.22.22:0       24001   
22.22.22.22/32, rev 10
        Local binding: label: 24000
        Remote bindings: (1 peers)
            Peer                Label    
            -----------------   ---------
            22.22.22.22:0       ImpNull 
33.33.33.33/32, rev 15
        Local binding: label: 24003
        Remote bindings: (1 peers)
            Peer                Label    
            -----------------   ---------
            22.22.22.22:0       24002   
44.44.44.44/32, rev 16
        Local binding: label: 24004
        Remote bindings: (1 peers)
            Peer                Label    
            -----------------   ---------
            22.22.22.22:0       24000   
=============================================================

IOS XE:

Y-ASBR1#show mpls ld bin
  lib entry: 1.1.1.1/32, rev 2
        local binding:  label: imp-null
        remote binding: lsr: 2.2.2.2:0, label: 16
  lib entry: 2.2.2.2/32, rev 8
        local binding:  label: 16
        remote binding: lsr: 2.2.2.2:0, label: imp-null
  lib entry: 3.3.3.3/32, rev 16
        local binding:  label: 20
        remote binding: lsr: 2.2.2.2:0, label: 18
  lib entry: 4.4.4.4/32, rev 14
        local binding:  label: 19
        remote binding: lsr: 2.2.2.2:0, label: 17
  lib entry: 100.2.1.0/24, rev 6
        local binding:  label: imp-null
        remote binding: lsr: 2.2.2.2:0, label: imp-null
  lib entry: 100.2.3.0/24, rev 12
        local binding:  label: 18
        remote binding: lsr: 2.2.2.2:0, label: imp-null
  lib entry: 100.2.4.0/24, rev 10
        local binding:  label: 17
        remote binding: lsr: 2.2.2.2:0, label: imp-null
  lib entry: 100.200.1.0/24, rev 4
        local binding:  label: imp-null

ISO XE / IOS XR:
В примере выше Local binding это метка, которая была назначена локальным роутером и просигнализирована соседям.
Под каждым FEC есть список соседей и их метки – Remote binding, которые они назначили и просигнализировали остальным роутерам (включая локальный).

Сказать проще, в циске это:

  • Local Label – Просигналили соседям и ожидаем трафик с этой меткой
  • Remote Binding – Мы получили эту метку от соседей и с этой меткой будем форвардить трафик дальше

Выхлоп команд с P ротуров (по несколько ldp соседей):

ISO XR:

RP/0/0/CPU0:B-P2#show mpls ldp  bindings 
Mon Mar 14 16:32:07.059 UTC

11.11.11.11/32, rev 13
        Local binding: label: 24001
        Remote bindings: (3 peers)
            Peer                Label    
            -----------------   ---------
            11.11.11.11:0       ImpNull 
            33.33.33.33:0       24003   
            44.44.44.44:0       24003   
22.22.22.22/32, rev 2
        Local binding: label: ImpNull
        Remote bindings: (3 peers)
            Peer                Label    
            -----------------   ---------
            11.11.11.11:0       24000   
            33.33.33.33:0       24000   
            44.44.44.44:0       24000   
=============================================================

IOS XE:

Y-P2#show mpls ld bi
  lib entry: 1.1.1.1/32, rev 10
        local binding:  label: 16
        remote binding: lsr: 1.1.1.1:0, label: imp-null
        remote binding: lsr: 4.4.4.4:0, label: 17
        remote binding: lsr: 3.3.3.3:0, label: 18
  lib entry: 2.2.2.2/32, rev 2
        local binding:  label: imp-null
        remote binding: lsr: 1.1.1.1:0, label: 16
        remote binding: lsr: 4.4.4.4:0, label: 16
        remote binding: lsr: 3.3.3.3:0, label: 17

Сверим метки с FIB и LFIB:

LIB на IOS XR:

RP/0/0/CPU0:B-P2#show mpls ldp bindings  | i "rev|Local"
Mon Mar 14 16:53:08.432 UTC
11.11.11.11/32, rev 13
        Local binding: label: 24001

22.22.22.22/32, rev 2
        Local binding: label: ImpNull
33.33.33.33/32, rev 14
        Local binding: label: 24002

44.44.44.44/32, rev 12
        Local binding: label: 24000
И теперь смотрим в LFIB 

RP/0/0/CPU0:B-P2#show mpls forwarding 
Mon Mar 14 16:53:11.922 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop               
Label  Label       or ID              Interface                        
------ ----------- ------------------ ------------ --------------- 
24000  Pop         44.44.44.44/32     Gi0/0/0/1    200.2.4.4       
24001  Pop         11.11.11.11/32     Gi0/0/0/2    200.2.1.1               
24002  Pop         33.33.33.33/32     Gi0/0/0/3    200.2.3.3       

Видим что метка из Local binding (LIB) сопоставима с меткой в Local Label (LFBI) т.е. именно эта метка и отдается соседям. В случае если эта метка пришла на локальный роутер (от куда выхлоп выше), то с ней будет выполнено действие из Outgoing Label.
FEC, у которого Local Binding был ImpNull (imp-null) нет в выхлопе LFIB, т.к. ImpNull говорит соседям, чтоб они при форвардинге на локальный роутер, удаляли mpls метку.

На локальном роутере, мы можем посмотреть конкретную метку, сгенерированную этим же роутером – Local Label. Так и ту, которую мы получили от соседей Remote Binding

Командой show mpls forwarding-table labels <label> мы сможем посмотреть только локальные метки (мы их генерим)


Тут стоит поправить себя, что во всем выхлопе команды мы увидим outgoing (remote) метку, но вот вбить команду так, чтобы она нам показала конкретно remote метку не получится. Только local lable


Командой show mpls ldp bindings можем увидеть и local и remote

  • show mpls ldp bindings local-label <label>local
Y-ASBR1#show mpls ldp bindings local-label 18
  lib entry: 100.2.3.0/24, rev 12
        local binding:  label: 18
  • show mpls ldp bindings remote-label <label> remote
Y-ASBR1#show mpls ldp bindings remote-label 18
  lib entry: 3.3.3.3/32, rev 16
        remote binding: lsr: 2.2.2.2:0, label: 18

Источники

Добавить комментарий

Ваш адрес email не будет опубликован.