Глава 5. MPLS Features: различия между версиями

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
м
 
(не показано 19 промежуточных версий этого же участника)
Строка 1: Строка 1:
{{#description2:Дополнительные функции MPLS. Install option. Forwarding adjacency. Кратко о Traffic engineering. Automatic bandwidth provisioning. MPLS TTL. LSP в качестве next-hop. Информация для подготовки к экзаменам Juniper.}}
{{JNCIS_content}}
= Install option =
= Install option =
Функция нужна для того, чтобы:


Функция нужна для того, чтобы например:
при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в LSP,
при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в lsp,
но и трафик, предназначенный для самого egress router'а тоже заворачивался в LSP.
но и трафик, предназначенный для egress router'а тоже заворачивался в LSP.
 
== Поведение по умолчанию ==


==Поведение без install option==
  H0> show configuration protocols mpls  
  H0> show configuration protocols mpls  
  label-switched-path h0-h2 {
  label-switched-path h0-h2 {
Строка 12: Строка 15:
     primary via_h3 {
     primary via_h3 {
         standby;
         standby;
    }
  path via_h3 {
  path via_h3 {
     3.3.3.3 loose;
     3.3.3.3 loose;
}


  H0> show route 64.25.1.1 extensive  
  H0> show route 64.25.1.1 extensive  
Строка 48: Строка 49:
   2  10.7.5.2 (10.7.5.2)  0.329 ms  0.297 ms  0.280 ms
   2  10.7.5.2 (10.7.5.2)  0.329 ms  0.297 ms  0.280 ms


== Вставляем install ==
== Добавляем install ==
 
При этом активный маршрут до protocol next-hop идет по ospf, НО также появляется запись о нем в inet.3.
При этом активный маршрут до protocol nexp-hop идет по ospf, но также появляется запись о нем в inet.3.


  H0> show configuration protocols mpls  
  H0> show configuration protocols mpls  
Строка 58: Строка 58:
     primary via_h3 {
     primary via_h3 {
         standby;
         standby;
    }
  path via_h3 {
  path via_h3 {
     3.3.3.3 loose;
     3.3.3.3 loose;
}


  H0> show route 2.2.2.2     
  H0> show route 2.2.2.2     
Строка 73: Строка 71:
                     > to 10.7.7.3 via em1.0, label-switched-path h0-h2
                     > to 10.7.7.3 via em1.0, label-switched-path h0-h2


== Активируем ==
== Активируем install ==


При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным.
При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным.
Строка 82: Строка 80:
  primary via_h3 {
  primary via_h3 {
     standby;
     standby;
}
  secondary via_h1 {
  secondary via_h1 {
     standby;
     standby;
}


  H0> show route 2.2.2.2                                             
  H0> show route 2.2.2.2                                             
Строка 108: Строка 104:


= Forwarding adjacency =
= Forwarding adjacency =
Можно LSP проанонсировать в OSPF как p2p-link.
Эта LSP будет учавствовать в SPF алгоритме выбора лучшего пути.


Можно LSP проанонсировать в OSPF как p-to-p link. Этот LSP будет учавствовать в SFP алгоритме выбора лучшего пути.
Через этот LSP будет передаваться только клиентский трафик, но не служебный.
Через этот LSP будет передаваться только клиентский трафик, но не служебный.


Чтобы работало, нужно включить rsvp на нужных интерфейсах, прокинуть LSP, добавить LSP в OSPF.
Чтобы работало, нужно включить RSVP на нужных интерфейсах, создать LSP, добавить LSP в OSPF.


  H0> show route  
  H0> show route  
Строка 129: Строка 127:
     interface em3.0 {
     interface em3.0 {
         passive;
         passive;
    }
     '''label-switched-path h0-h2 {
     '''label-switched-path h0-h2 {
         metric 1;'''
         metric 1;'''
    }
}


  H0> show route  
  H0> show route  
Строка 192: Строка 187:
                     > to 10.7.7.3 via em1.0, label-switched-path h0-h2
                     > to 10.7.7.3 via em1.0, label-switched-path h0-h2


= Selecting an LSP Next Hop =
= LSP в качестве Next Hop =
 
Если до префикса есть две LSP с равной стоимостью, то с помощью policy можно назначить конкретную в качестве next-hop.
Если до префикса есть 2 LSP в равной стоимостью, то с помощью полиси можно назначить конкретный в кач-ве некст-хопа.


  bob@H0> show configuration policy-options  
  H0> show configuration policy-options  
  policy-statement lsp_next-hop {
  policy-statement lsp_next-hop {
     term loop {
     term loop {
         from {
         from {
             route-filter 2.2.2.2/32 exact;
             route-filter 2.2.2.2/32 exact;
        }
         then {
         then {
             install-nexthop lsp [ h0-h2 down ];
             install-nexthop lsp [ h0-h2 down ];
             accept;
             accept;
        }
    }
}


  bob@H0> show configuration routing-options  
  H0> show configuration routing-options  
  forwarding-table {
  forwarding-table {
     export lsp_next-hop;
     export lsp_next-hop;
}


  bob@H0> show route 2.2.2.2  
  H0> show route 2.2.2.2  
  inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden)
  inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden)
  + = Active Route, - = Last Active, * = Both
  + = Active Route, - = Last Active, * = Both
Строка 228: Строка 217:
                     > to 10.7.7.3 via em1.0, label-switched-path down
                     > to 10.7.7.3 via em1.0, label-switched-path down


  bob@H0> traceroute 2.2.2.2  
  H0> traceroute 2.2.2.2  
  traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
  traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
   1  10.7.7.3 (10.7.7.3)  0.341 ms  0.270 ms  0.206 ms
   1  10.7.7.3 (10.7.7.3)  0.341 ms  0.270 ms  0.206 ms
       MPLS Label=300176 CoS=0 TTL=1 S=1
       MPLS Label=300176 CoS=0 TTL=1 S=1
   2  2.2.2.2 (2.2.2.2)  0.290 ms  0.291 ms  0.271 ms
   2  2.2.2.2 (2.2.2.2)  0.290 ms  0.291 ms  0.271 ms


= Automatic bandwidth provisioning =
= Automatic bandwidth provisioning =
Позволяет маршрутизатору мониторить актуальный трафик, проходящий по LSP и изменять конфигурацию этого LSP для поддержания нужного кол-ва трафика.


Позволяет маршрутизатору мониторить актуальный трафик, проходящий по LSP и изменять конфигурацию этого LSP для поддержания нужного кол-ва трафика.
Роутер мониторит пики загрузки за определенный период времени (24 часа по дефолту).
Роутер мониторит пики загрузки за определенный период времени (24 часа по дефолту).
По истечению данного времени LSP резервирует нужную полосу. Используется make-before-brake и SE-style.


= TTL =
По истечению данного времени LSP резервирует нужную полосу.


== Default ==
Используется make-before-brake и SE-style.


*По дефолту на каждом хопе (и внутри lsp тоже) значение ttl -1.
= MPLS TTL =
*При этом не ingerss роутере IP TTL копируется в MPLS TTL, при прохождении через LSP -1, IP TTL остается неизменным. На egress роутере значение TTL копируется обратно из MPLS в IP.
'''Default'''
*По дефолту на каждом хопе (и внутри LSP тоже) значение TTL уменьшается на 1.
*При этом на ingress-роутере IP TTL копируется в MPLS TTL, и при прохождении через LSP уменьшается на 1, IP TTL остается неизменным.  


== no-decrement-ttl ==
На egress-роутере значение TTL копируется обратно из MPLS в IP.


*Только для Juniper.
'''no-decrement-ttl'''
*Только на ingress роутере.
*Только для Juniper [проприетарная фича]
*Настраивается на ingress-роутере. [но так как должна работать на всей сети, то настраивается на всех роутерах]
*Можно применять в разные иерархии (глобально mpls, lsp, path)
*Можно применять в разные иерархии (глобально mpls, lsp, path)
*IP TTL уменьшается только на egress роутере.
*IP TTL уменьшается только на egress-роутере.
*MPLS TTL устанавливается в 255, значение MPLS TTL не перезаписывается в IP TTL.
*MPLS TTL устанавливается в 255, значение MPLS TTL не перезаписывается в IP TTL.


== no-propogate-ttl ==
'''no-propogate-ttl'''
 
*Мультивендорная фича.
*Мультивендорная фича.
*Должна быть сконфигурирована на всех LSR.
*Должна быть сконфигурирована на всех PE (LSR).
*Применяется только глобально в protocol mpls иерархии.
*Применяется только глобально в protocol mpls иерархии.
*Если LSP уже установлен, то после применения команды, то к нему не применится команда.
*Если LSP уже установлена, то после применения команды, к нему не применится команда.
 
=Дополнительная информация=
*[[Отказоустойчивость и оптимизация в MPLS]]
*[[Traffic engineering]]
*[[Реализация MPLS в ядре сети]]

Текущая версия на 17:40, 15 июля 2021

Exclamation point.png JNCIS content
Статья покрывает только курс JNCIS. Возможно, тема представлена детальнее в других разделах.
А для JNCIS и этого достаточно.
¯\_(ツ)_/¯


Install option

Функция нужна для того, чтобы:

при построении LSP, не только трафик, для которого egress router является next-hop заворачивался в LSP, но и трафик, предназначенный для самого egress router'а тоже заворачивался в LSP.

Поведение без install option

H0> show configuration protocols mpls 
label-switched-path h0-h2 {
   to 2.2.2.2;
   primary via_h3 {
       standby;
path via_h3 {
   3.3.3.3 loose;
H0> show route 64.25.1.1 extensive 
inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden) 
64.25.1.1/32 (1 entry, 1 announced) 
KRT in-kernel 64.25.1.1/32 -> {indirect(131070)}
   Nexthop: Self
   AS path: [500] 200 I
   Communities:
Path 64.25.1.1 from 2.2.2.2 Vector len 4.  Val: 0
       *BGP    Preference: 170/-101
               Next hop type: Indirect
...
               Indirect next hops: 1
                       Protocol next hop: 2.2.2.2 Metric: 2
            	 		2.2.2.2/32 Originating RIB: inet.3
H0> show route 2.2.2.2    
inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[OSPF/10] 00:59:11, metric 2
                    > to 10.7.7.3 via em1.0
H0> traceroute 2.2.2.2    
traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
 1  10.7.7.3 (10.7.7.3)  0.334 ms  0.237 ms  0.192 ms
 2  2.2.2.2 (2.2.2.2)  0.313 ms  0.300 ms  0.251 ms
H0> traceroute 64.25.1.1  
traceroute to 64.25.1.1 (64.25.1.1), 30 hops max, 40 byte packets
 1  10.7.7.3 (10.7.7.3)  0.332 ms  0.228 ms  0.231 ms
     MPLS Label=299840 CoS=0 TTL=1 S=1
 2  10.7.5.2 (10.7.5.2)  0.329 ms  0.297 ms  0.280 ms

Добавляем install

При этом активный маршрут до protocol next-hop идет по ospf, НО также появляется запись о нем в inet.3.

H0> show configuration protocols mpls 
label-switched-path h0-h2 {
   to 2.2.2.2;
   install 2.2.2.2/32;
   primary via_h3 {
       standby;
path via_h3 {
   3.3.3.3 loose;
H0> show route 2.2.2.2    
inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[OSPF/10] 00:59:55, metric 2
                    > to 10.7.7.3 via em1.0
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[RSVP/7/1] 00:00:04, metric 2
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2

Активируем install

При этом маршрут до protocol next-hop вставляется из inet.3 в inet.0 и становится активным.

H0> show configuration protocols mpls label-switched-path h0-h2 
to 2.2.2.2;
install 2.2.2.2/32 active;
primary via_h3 {
    standby;
secondary via_h1 {
    standby;
H0> show route 2.2.2.2                                             
inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
 2.2.2.2/32         *[RSVP/7/1] 00:00:31, metric 2
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2
                       to 10.7.7.3 via em1.0, label-switched-path h0-h2
                       [OSPF/10] 01:02:23, metric 2
                    > to 10.7.7.3 via em1.0
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[RSVP/7/1] 00:02:32, metric 2
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2
                       to 10.7.7.3 via em1.0, label-switched-path h0-h2
H0> traceroute 2.2.2.2 
traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
 1  10.7.7.3 (10.7.7.3)  0.259 ms  0.215 ms  0.215 ms
     MPLS Label=299840 CoS=0 TTL=1 S=1
 2  2.2.2.2 (2.2.2.2)  0.324 ms  0.283 ms  0.280 ms

Forwarding adjacency

Можно LSP проанонсировать в OSPF как p2p-link.

Эта LSP будет учавствовать в SPF алгоритме выбора лучшего пути.

Через этот LSP будет передаваться только клиентский трафик, но не служебный.

Чтобы работало, нужно включить RSVP на нужных интерфейсах, создать LSP, добавить LSP в OSPF.

H0> show route 
2.2.2.2/32         *[OSPF/10] 00:00:03, metric 2
                    > to 10.7.7.3 via em1.0
H0> traceroute 2.2.2.2 
traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
 1  10.7.7.3 (10.7.7.3)  0.313 ms  0.218 ms  0.178 ms
 2  2.2.2.2 (2.2.2.2)  0.286 ms  0.272 ms  0.252 ms
H0> show configuration protocols ospf   
traffic-engineering;
    area 0.0.0.0 {
    interface em1.0;
    interface em3.0 {
        passive;
    label-switched-path h0-h2 {
        metric 1;
H0> show route 
2.2.2.2/32         *[OSPF/10] 00:00:01, metric 1
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2
                      to 10.7.7.3 via em1.0, label-switched-path h0-h2
H0> traceroute 2.2.2.2 
traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
 1  10.7.7.3 (10.7.7.3)  0.275 ms  0.219 ms  0.208 ms
     MPLS Label=299952 CoS=0 TTL=1 S=1
 2  2.2.2.2 (2.2.2.2)  0.286 ms  0.270 ms  0.278 ms

Traffic engineering

При включенном traffic engineering маршруты из inet.3 перемещаются в inet.0

H0> show route 
inet.0: 24 destinations, 24 routes (24 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
1.1.1.1/32         *[OSPF/10] 01:26:59, metric 2
                    > to 10.7.7.3 via em1.0
2.2.2.2/32         *[OSPF/10] 01:26:59, metric 2
                    > to 10.7.7.3 via em1.0
3.3.3.3/32         *[OSPF/10] 01:26:59, metric 1
                    > to 10.7.7.3 via em1.0
4.4.4.4/32         *[OSPF/10] 01:26:59, metric 3
                    > to 10.7.7.3 via em1.0
10.7.1.0/24        *[OSPF/10] 01:26:59, metric 3
                    > to 10.7.7.3 via em1.0
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[RSVP/7/1] 00:27:08, metric 2
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2
                      to 10.7.7.3 via em1.0, label-switched-path h0-h2
H0> show configuration protocols mpls 
traffic-engineering mpls-forwarding;

H0> show route    
inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden) 
@ = Routing Use Only, # = Forwarding Use Only
+ = Active Route, - = Last Active, * = Both
1.1.1.1/32         *[OSPF/10] 00:00:06, metric 2
                    > to 10.7.7.3 via em1.0
2.2.2.2/32         @[OSPF/10] 00:00:06, metric 2
                    > to 10.7.7.3 via em1.0
                   #[RSVP/7/1] 00:00:02, metric 2
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2
3.3.3.3/32         *[OSPF/10] 00:00:06, metric 1
                    > to 10.7.7.3 via em1.0
4.4.4.4/32         *[OSPF/10] 00:00:06, metric 3
                    > to 10.7.7.3 via em1.0
10.7.1.0/24        *[OSPF/10] 00:00:06, metric 3
                    > to 10.7.7.3 via em1.0
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[RSVP/7/1] 00:00:02, metric 2
                    > to 10.7.7.3 via em1.0, label-switched-path h0-h2

LSP в качестве Next Hop

Если до префикса есть две LSP с равной стоимостью, то с помощью policy можно назначить конкретную в качестве next-hop.

H0> show configuration policy-options 
policy-statement lsp_next-hop {
    term loop {
        from {
            route-filter 2.2.2.2/32 exact;
        then {
            install-nexthop lsp [ h0-h2 down ];
            accept;
H0> show configuration routing-options 
forwarding-table {
    export lsp_next-hop;
H0> show route 2.2.2.2 
inet.0: 24 destinations, 25 routes (24 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[RSVP/7/1] 00:01:12, metric 2
                      to 10.7.7.3 via em1.0, label-switched-path up
                    > to 10.7.7.3 via em1.0, label-switched-path down
                    [OSPF/10] 00:03:36, metric 2
                    > to 10.7.7.3 via em1.0
inet.3: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
2.2.2.2/32         *[RSVP/7/1] 00:01:12, metric 2
                      to 10.7.7.3 via em1.0, label-switched-path up
                    > to 10.7.7.3 via em1.0, label-switched-path down
H0> traceroute 2.2.2.2 
traceroute to 2.2.2.2 (2.2.2.2), 30 hops max, 40 byte packets
 1  10.7.7.3 (10.7.7.3)  0.341 ms  0.270 ms  0.206 ms
     MPLS Label=300176 CoS=0 TTL=1 S=1
 2  2.2.2.2 (2.2.2.2)  0.290 ms  0.291 ms  0.271 ms

Automatic bandwidth provisioning

Позволяет маршрутизатору мониторить актуальный трафик, проходящий по LSP и изменять конфигурацию этого LSP для поддержания нужного кол-ва трафика.

Роутер мониторит пики загрузки за определенный период времени (24 часа по дефолту).

По истечению данного времени LSP резервирует нужную полосу.

Используется make-before-brake и SE-style.

MPLS TTL

Default

  • По дефолту на каждом хопе (и внутри LSP тоже) значение TTL уменьшается на 1.
  • При этом на ingress-роутере IP TTL копируется в MPLS TTL, и при прохождении через LSP уменьшается на 1, IP TTL остается неизменным.

На egress-роутере значение TTL копируется обратно из MPLS в IP.

no-decrement-ttl

  • Только для Juniper [проприетарная фича]
  • Настраивается на ingress-роутере. [но так как должна работать на всей сети, то настраивается на всех роутерах]
  • Можно применять в разные иерархии (глобально mpls, lsp, path)
  • IP TTL уменьшается только на egress-роутере.
  • MPLS TTL устанавливается в 255, значение MPLS TTL не перезаписывается в IP TTL.

no-propogate-ttl

  • Мультивендорная фича.
  • Должна быть сконфигурирована на всех PE (LSR).
  • Применяется только глобально в protocol mpls иерархии.
  • Если LSP уже установлена, то после применения команды, к нему не применится команда.

Дополнительная информация