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

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

Версия 12:22, 28 июня 2020

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 nexp-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 как p-to-p link. Этот LSP будет учавствовать в SFP алгоритме выбора лучшего пути. Через этот 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 уже установлен, то после применения команды, то к нему не применится команда.