Глава 5. MPLS Features

Материал из Juniper Exam Wiki
Перейти к навигации Перейти к поиску
Версия для печати больше не поддерживается и может содержать ошибки обработки. Обновите закладки браузера и используйте вместо этого функцию печати браузера по умолчанию.
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 уже установлена, то после применения команды, к нему не применится команда.

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