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

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
Строка 112: Строка 112:
Через этот LSP будет передаваться только клиентский трафик, но не служебный.
Через этот LSP будет передаваться только клиентский трафик, но не служебный.


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


  bob@H0> show route  
  H0> show route  
  2.2.2.2/32        *[OSPF/10] 00:00:03, metric 2
  2.2.2.2/32        *[OSPF/10] 00:00:03, metric 2
                     > to 10.7.7.3 via em1.0
                     > to 10.7.7.3 via em1.0


  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.313 ms  0.218 ms  0.178 ms
   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
   2  2.2.2.2 (2.2.2.2)  0.286 ms  0.272 ms  0.252 ms


  bob@H0> show configuration protocols ospf   
  H0> show configuration protocols ospf   
  '''traffic-engineering;'''
  '''traffic-engineering;'''
     area 0.0.0.0 {
     area 0.0.0.0 {
Строка 135: Строка 135:
  }
  }


  bob@H0> show route  
  H0> show route  
  2.2.2.2/32        *[OSPF/10] 00:00:01, metric 1
  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
                       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
  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.275 ms  0.219 ms  0.208 ms
   1  10.7.7.3 (10.7.7.3)  0.275 ms  0.219 ms  0.208 ms

Версия 15:00, 15 октября 2016

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

vlad@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
vlad@H0> show configuration protocols mpls 
traffic-engineering mpls-forwarding;

vlad@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 в равной стоимостью, то с помощью полиси можно назначить конкретный в кач-ве некст-хопа.

bob@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;
        }
    }
}
bob@H0> show configuration routing-options 
forwarding-table {
    export lsp_next-hop;
} 
bob@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
bob@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 уже установлен, то после применения команды, то к нему не применится команда.