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

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
Строка 104: Строка 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  

Версия 20:53, 28 июня 2020

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


Install option

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

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

Поведение по умолчанию

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

Активируем

При этом маршрут до 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

Selecting an LSP Next Hop

Если до префикса есть 2 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.

TTL

Default

  • По дефолту на каждом хопе (и внутри lsp тоже) значение ttl -1.
  • При этом на ingerss роутере 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

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