Отказоустойчивость и оптимизация в MPLS
Link Protection
Защищает от падения линка между роутерами, участвующими в RSVP LSP. Когда сконфигурирован link protection, каждый роутер пытается найти обходной путь до следующего в LSP роутера. Такой обходной путь называется next-hop bypass LSP. Каждый обходной путь устанавливается только после того, как будет построена LSP. Когда линк падает, то переход на альтернативный путь инициирует роутер, который зафиксировал падение линка и который является ближайшим к ingress роутеру. Такой роутер-инициатор называют PLR - point of local repair. После того, как трафик пройдет по обходному пути, он вернется на путь изначального LSP. Когда PLR переключает трафик на bypass LSP, он сигнализирует об этом ingress роутеру. Ingress пытается найти и установить другой primary path для LSP.
Что происходит с метками: в случае падения линка, на PLR производится swap метки (согласно LSP), но сверху добавляется еще одна метка (push 30880 (top)) и пакет отправляется на egress интерфейс для bypass пути. Также bypass LSP использует PHP, поэтому на предпоследнем хопе верхняя метка будет снята и дальше пакет будет следовать меткам первоначального LSP.
Плюсы:
- Быстро отрабатывает
- Масштабируемость: для резервировании большого кол-ва LSP можно обойтись несколькими обходными next-hop bypass LSP.
Минусы:
- Для работы link protection требуется включение этой функции на всех роутерах, внутри протокола rsvp, которые будут участвовать в построении LSP.
Configuration
[edit protocols mpls] label-switched-path dalwhinnie-to-oban { to 10.200.86.3; link-protection; } [edit protocols rsvp] interface all { link-protection; }
Смотрим что происходит с метками для обходного пути на PLR роутере.
glenlivet> show mpls lsp transit Transit LSP: 1 session To From State Rt Style Labelin Labelout LSPname 10.200.86.3 10.200.86.5 Up 0 1 SE 300544 300624 dalwhinnie-to-oban
glenlivet> show route label 300544 detail mpls.0: 17 destinations, 17 routes (17 active, 0 holddown, 0 hidden) 300544 (1 entry, 1 announced) *RSVP Preference: 7/1 Next hop type: Router, Next hop index: 262147 Address: 0x9440488 Next-hop reference count: 2 Next hop: 192.168.86.9 via ge-0/0/0.60 weight 0x1, selected Label-switched-path dalwhinnie-to-oban Label operation: Swap 300624 Next hop: 192.168.86.45 via ge-0/0/0.40 weight 0x8001 Label-switched-path Bypass->192.168.86.9 Label operation: Swap 300624, Push 300320(top) Label TTL action: prop-ttl, prop-ttl(top) State: <Active Int> Local AS: 1111 Age: 6:06 Metric: 1 Task: RSVP Announcement bits (1): 0-KRT AS path: I
На следующем роутере (в нашем случае предпоследнем на обходном пути): смотрим ту запись в таблице mpls.0, которая подписана как 300320(S=0). Эту запись смотрим, когда количество меток в пришедшем пакете >= 2. Если количество меток = 1, то смотрим запись без обозначения S=0.
mortlach> show route label 300320 detail mpls.0: 21 destinations, 21 routes (21 active, 0 holddown, 0 hidden) 300320 (1 entry, 1 announced) *RSVP Preference: 7/1 Next hop type: Router, Next hop index: 585 Address: 0x934cfd0 Next-hop reference count: 3 Next hop: 192.168.86.50 via ge-0/0/0.80 weight 0x1, selected Label-switched-path Bypass->192.168.86.9 Label operation: Pop State: <Active Int AckRequest> Age: 13:38 Metric: 1 Task: RSVP Announcement bits (1): 0-KRT AS path: I 300320(S=0) (1 entry, 1 announced) *RSVP Preference: 7/1 Next hop type: Router, Next hop index: 587 Address: 0x934cf40 Next-hop reference count: 2 Next hop: 192.168.86.50 via ge-0/0/0.80 weight 0x1, selected Label-switched-path Bypass->192.168.86.9 Label operation: Pop State: <Active Int AckRequest> Age: 13:38 Metric: 1 Task: RSVP Announcement bits (1): 0-KRT AS path: I
Node-link Protection
Fast Reroute
На каждом промежуточном LSR создается LSP для обхода линка до следующей ноды и самой следующей ноды. Это проприетарный механизм Juniper.
Отличия от node-link-protection:
- При работе механизма frr лейбл не добавляется в стек к пакету. Вместо этого PLR производит swap на другой лейбл.
- Каждый detour защищает только свою конкретную LSP
Secondary path
Конфигурация:
[edit protocols mpls] R1# show label-switched-path R1-to-R4 { to 10.0.0.3; primary via-R2; secondary via-R3 { standby; } } path via-tormore { 10.200.86.9 loose; } path via-blair { 192.168.10.15 strict; 192.168.10.4 strict; 192.168.10.55 strict; }
Primary path считается основным path. Если один из линков или роутеров на основном пути упадет, трафик пойдет по secondary. Но как только primary path станет доступным, трафик вернется обратно на primary. Чтобы избежать возвращения трафика на primary path, можно настроить два или более secondary путей, не настраивая ни одного primary.
Loop-Free Alternates in IGPs
Подробно не рассматривается в книге. Этот метод может сделать привлекательным использование LDP для сети, которой нужны MPLS-службы (L2VPN, L3VPN, VPLS), но нет необходимости в Traffic Engineering. Конфигурируется добавлением опций «link-protection» или «node-link protection» в настройку интерфейса в протоколе ospf или IS-IS. Добавлением же опции «no-eligible-backup» можно предотвратить интерфейс от обслуживания бэкапного трафика.
© Наталия Бобкова 2014—2022