3. Что такое Segment routing?
Source Routing – возможность задать на источнике (Ingress PE) путь
прохождения пакетов по сети, с помощью последовательности
сегментов в заголовке самих пакетов
Сегмент = Инструкция (например, «доставить трафик до узла N
кратчайшим путем»)
MPLS forwarding plane Сегмент = Label
IPv6 forwarding plane Сегмент = extension header
ß Тема нашего разговора
The state is no longer in the network but in the packet
4. Идентификаторы IGP Segment
q Имеет глобальное значение внутри
домена SR
q Передача трафика c использованием
shortest-path tree
q Может быть задан как абсолютная
величина, так и как индекс
q Используется зарезервированный
блок меток (SR Global Block или SRGB)
q Имеет локальное значение внутри
node
q Передача трафика на основе
adjacency
q Задается как абсолютная величина
B C
N O
Z
D
P
A
9101
9105
9107
9103
9105
B C
N O
Z
D
P
A
65
65
65 65
Prefix/Node SID Adjacency SID
5. D
(php)
Segment Routing Forwarding Plane
A B
C D
E
103
103
Payload Payload
201
202
Payload
202
201
202
Payload
202
Payload Payload
C D
A B
E
202
202
201
102
202
Payload
A B
102
C D
E
202
Payload
202
Payload
C E C D EB C D
(php)
EB
Prefix/Node Path Adjacency Path Combined Path
6. Автоматическая балансировка трафика в случае
Node/Prefix SID
q ECMP
q Трафик предназначенный для узла O и имеющий SID 16078 автоматически
разбалансируется по всем доступным ECMP путям
q Не требует дополнительных настроек
A B C
M N O
Z
D
P
16078
7. Pop 9003
q 9001 передать через 1ый интерфейс
q 9002 передать через 2ой интерфейс
q 9003 балансировать по группе
интерфейсов
Pop 9001
Pop 9002
Pop 9003
Балансировка трафика для Adjacency Segment
(Anycast Adjacency segment)
A B
8. Anycast Node segment для Dual Core
§ Используем Node-SID [65]
Передаем трафик до узла “Z”
используя ECMP в обеих плоскостях
§ Используем Anycast-SID +
Node-SID [111, 65]
§ Передаем трафик до узла “Z”
используя ECMP только в
одной плоскости
ECMP-awareness!
9. Таблица LFIB с Segment Routing
q LFIB наполняется при помощи IGP
(ISIS / OSPF)
q Таблица коммутации постоянна
(Nodes + Adjacencies) вне
зависимости от числа возможных
путей
q Другие протоколы (LDP, RSVP, BGP)
по прежнему могут
программировать LFIB
PE
PE
PE
PE
PE
PE
PE
PE
P
In
Label
Out
Label
Out
Interface
L1 L1 Intf1
L2 L2 Intf1
… … …
L8 L8 Intf4
L9 Pop Intf2
L10 Pop Intf2
… … …
Ln Pop Intf5
идентификаторы
Node Segment
идентификаторы
Adjacency Segment
Таблица коммутации
остается неизменной
draft-previdi-isis-segment-routing-extensions
draft-psenak-ospf-segment-routing-extensions
10. Segment Routing и сервисы MPLS
Эффективное использование
приемущества пакетных сетей
(ecmp-aware shortest-path) :
q node segment!
Упрощение работы сети:
q одним работающим протоколом
меньше
q отсутствует LDP/ISIS
синхронизация
A B
M N
PE2PE1
Все сущестующие VPN
сервисы возможно
реализовать поверх node
segment для PE2
12. MPLS dataplane monitoring
B C
N O
A
9101
9105
9107
9104
9101
9105
9107
9108
9104
9105
Nanog57, Feb 2013
9108 9105
9108
9102
9108
9102
draft-geib-spring-oam-usecase-02
OAM
13. 1000
Topology Independent LFA FRR
Пример TI-LFA – Zero-Segment
q TI-LFA защита для линка R1R2 на R1
q Расчитаем LFA(s)
q Расчитаем post-convergence SPT
q Определим LFA узел для post-convergence
SPT
Packet to Z
Default metric:10
R5
R2R1
A Z
R3
Packet to Z
R4
R5
Packet to Z
prefix-SID(Z)
Segment Routing позволяет гарантировать
LFA FRR в любой топологии:
14. q TI-LFA защита для линка R1R2 на
R1
q Расчитаем P и Q области
q Они пересекаются в нашем
случае
q Расчитаем post-convergence SPT
q Определим PQ узел для post-
convergence SPT
q R1 добавит prefix-SID R4 для
создания backup path
Q-space
P-space
Packet to Z
prefix-SID(Z)
Packet to Z
Packet to Z
prefix-SID(Z)
prefix-SID(R4)
Default metric:10
R5
R2R1
A Z
R3
Packet to Z
R4
Segment Routing позволяет гарантировать
LFA FRR в любой топологии:
Topology Independent LFA FRR
Пример TI-LFA – Single-Segment
15. q TI-LFA защита для линка R1R2 на
R1
q Расчитаем P и Q области
q Расчитаем post-convergence SPT
q Определим Q узел и соседний с
ним P узел для post-convergence
SPT
q R1 добавит prefix-SID R4 и adj-SID
R3-R4 линка для создания backup
path
P-space Q-space
1000
Packet to Z
prefix-SID(Z)
Packet to Z
Packet to Z
prefix-SID(Z)
adj-SID(R4-R3)
prefix-SID(R4)
Packet to Z
prefix-SID(Z)
adj-SID(R4-R3)
Default metric:10
R5
R2R1
A Z
R3R4 R3R4
Packet to Z
Topology Independent LFA FRR
Пример TI-LFA – Double-Segment
Segment Routing позволяет гарантировать
LFA FRR в любой топологии:
16. Отказоустойчивость узлов сети
§ Несколько устройств
анонсируют одинаковый
Segment Identifier (anycast
segment) в дополнении к их
SID
§ Трафик передается к
ближайшему устройству на
основе IGP best path
A C
B O
Z
SN1
SN2
Packet sent
to SN1 or SN2
1001
SN2 : SID 102
SN1 or SN2:
Anycast SID 1001
SN1: SID 101
§ Если основное устройство
сломается, то трафик
перенаправится к другому
устройству с тем же anycast segment
§ Эффективный механизм
отказоустойчивости на транспортном
уровне, не требует дополнительных
технологий
Failure
17. Резервирование Dual-Homing включений
§ NID не требует поддержки SR
control plane
§ NID является частью SR domain
и имеет статический SR UNI
label (65)
§ Оба N1 и N2 анонсируют
одинаковый UNI label для NID в
рамках SR domain
A C
B O
NID
N1
N2
Packet sent
to N1 or N2
65
65
N1 advertises 65
for NID
N2 advertises 65
for NID
Failure
§ Трафик передается к ближайшему
устройству на основе IGP best path
(anycast concept)
§ Эффективный механизм
отказоустойчивости на
транспортном уровне, не требует
дополнительных технологий
18. Latency TE Service
«Данные» из Токио в Брюссель
§ IGP shortest-path через США, широкие и дешевые каналы
§ PrefixSID of Brussels
«Голос» из Токио в Брюссель
§ SRTE политика добавляет один дополнительный сегмент “Russia Anycast”
§ Low-latency path
Приемущества
§ ECMP
§ Отказойстойчивость при использовании anycast segment
§ Отсутствие hop-by-hop сигнализации load и delay
§ Отказ от midpoint state
Node segment to Brussels
Node segment to Russia
Brussels
pkt
Data
Brussels
pkt
Russia
Voice
19. Применение Segment Routing в SDN
Расчитанный путь - ABCOPZ.
Требуемая полоса принята во
внимание. Обходим перегрузки в
сети.
Перегрузка66
65
68
Для путь A-Z стек меток
{66, 68, 65}
Сеть проста, программируема и способна реагировать на
возникающие события
2Gb/s от A до Z плиз
BGP-LS, Netconf, SNMP
Нет per-tunnel state на mid-point à можно перейти к tunnel per-application
ECMP + Explicit routing à позволяет уменьшить количество TE tunnels
Не нужно программировать mid-point à проще контролировать сеть
20. Inter-domain Transport Architecture
BGP free option: SDN controlled – Without Redistribution
§ SR label stack: {local GW, remote GW, remote node} ß изолированные IGP домены, без
редистрибьюции, просто, масштабируемо
§ Внешний SDN controller может быть использован для назначения SR label stack
§ SDN controller изучает SR label stack при помощи BGP-LS, либо настроен заранее
§ BGP Free option: не нужно использовать Hierarchical transport LSP’s – RFC 3107
1
3
4
2
CE
Anycast SR
label: 5001
DC
Core
SDN
Controller
Anycast SR
label: 1001
CE1
Cloud edge
CE2
CE3
CPE
vCPE
Anycast SR
label: 2001
A
B
CE SDN
Controller
GW1
GW2
SR label stack
AàB: {GW1, GW2, B} =
{1001,2001,2}
SR Node
label: 1
SR Node
label: 2
IGP island IGP island
SDN controlled cross-domain
SR label stack:
[local GW,
remote GW,
remote node]
21. Еще один важный слайд
MPLS-метки лишены собственной семантики
Сегмент может выражать любую инструкцию
q Service
q Context
q IGP-based forwarding construct
q BGP-based forwarding construct
q Locator
22. SR и управление внешней связностью
(Egress peering engineering)
A
B
D
Z
AS1
AS2
AS3
AS4
E
C
http://tools.ietf.org/html/draft-filsfils-spring-segment-routing-central-epe-01
Cisco, Facebook, Yandex
q PeerNode SID - Передать пакет через заданный пирам
q PeerAdj SID- Передать пакет через заданный интерфейс
q PeerSet SID - Балансировать трафик по группе пиров
Определяем точку
выхода из AS на
ingress router
23. AS1
AS2
AS3
Прохождение трафика через несколько AS до
внешнего пира
AS4
B
C
D
E
Payload
9.9.9.9/32
Payload
PeeringSID(E)
PrefixSID (C)
Engineered Path
TE Policy
installed by
Controller
Payload
PrefixSID(B) Payload
Лучший
BGP и IGP
путь
Payload
PeeringSID(E)
Engineered Path
ISIS/SR-based WAN
A
24. SR-based MSDC
MPLS dataplane
BGP control-plane
§ Нет LDP, Нет RSVP-TE
§ Автоматический TI-FRR
— отсутствие ручной конфигурации
Eдиный SRGB на каждом коммутаторе
SRTE WAN Optimization Controller applicable to DC fabric
eBGP ipv4
labeled-unicast
eBGP ipv4 unicast
https://www.nanog.org/meetings/nanog55/presentations/Monday/Lapukhov.pdf
https://www.nanog.org/sites/default/files/wed.general.brainslug.lapukhov.20.pdf
25. BGP Prefix SID
Аналогичные приемущества
IGP Prefix SID
§ ECMP
§ Automated FRR (BGP PIC)
§ Необходимые элементы
для Traffic Engineering
26. Policy
Data center fabric
§ Цепочка сервисов задается стэком из
меток
§ Concept only
§ Требуется поддержка label/SR на каждом
сервисном узле
§ Возможности: расположение
сервисных узлов не привязано к IP
маршрутам и топологии
§ Проблема: где назначать стек меток?
§ На входе в сеть
§ На уровне сервисов (e.g. the FW or VIP
itself)
§ Используя комбинацию
Цепочка Сервисов
18002
Payload
18002
18001
Payload
18002
18001
Payload
Payload
27. Единая политика передачи трафика
vPEF
App
App
ToR Leaf Spine DCE BRLSR
BR
BR
Определяем
flow и
присваевыем
SR segment
list
SR DC SR WAN
Верхний
сегмент
предоставляет
ECMP-маршрут к
выбранному DCI
Следующие
сегменты
определяют
WAN Policy:
Cost vs Latency,
Disjointness,
Select egress BR
Последний
сегмент
выбирает
egress peer
28. Единая политика передачи трафика
Leaf Spine DCE BRLSR
BR
BR
SR DC SR WAN
Политика end-to-end для приложения:
• Два сервисных узла в DC
• Low-latency маршрут в WAN
• Точка выхода в Internet до потребителя
ToR
30. Модель применения – с чего начать?
Same SRGB [ 16,000 – 23,999 ] on all SR nodes
Настройка по умолчанию начиная с IOS XR 5.2.2
router isis 1
segment-routing global-block 18000 19999
address-family ipv4 unicast
segment-routing mpls
!
!
Configure a non-default SRGB
18,000 – 19,999
router ospf 1
segment-routing global-block 18000 19999
segment-routing forwarding mpls
segment-routing mpls
! Configure a non-default SRGB
18,000 – 19,999
31. router isis ABC
is-type level-2-only
net 49.0000.1720.1625.5001.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
!
interface Loopback0
passive
address-family ipv4 unicast
prefix-sid {absolute|index} {<SID value>|<SID index>}
!
interface TenGigE0/0/2/0
point-to-point
address-family ipv4 unicast
!
interface TenGigE0/0/3/0
point-to-point
address-family ipv4 unicast
Ipv4 Prefix-SID value for
loopback0
Wide metrics
enable SR on all ipv4 interfaces in
this IS-IS instance
Adjacency-SIDs will automatically
be allocated for all adjacencies
Пример конфигурации для IS-IS
Prefix-SID может быть задан как конкретное значение внутри
SRGB,либо как index (offset) от нижней границы SRGB.
32. RP/0/0/CPU0:iosxrv-2#show isis database verbose iosxrv-2.00-00
IS-IS 1 (Level-1) Link State Database
LSPID LSP Seq Num LSP Checksum LSP Holdtime ATT/P/OL
xrvr-2.00-00 0x00000007 0x3c0a 671 0/0/0
Area Address: 49.1111
NLPID: 0xcc
Hostname: xrvr-2
IP Address: 1.0.0.2
Router Cap: 1.0.0.2, D:0, S:0
Segment Routing: I:1 V:0, SRGB Base: 16000 Range: 8000
Metric: 10 IS-Extended xrvr-1.00
Interface IP Address: 10.0.128.6
Neighbor IP Address: 10.0.128.5
ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24000
Metric: 10 IS-Extended xrvr-3.00
Interface IP Address: 10.0.0.1
Neighbor IP Address: 10.0.0.2
ADJ-SID: F:0 B:0 V:1 L:1 S:0 weight:0 Adjacency-sid:24001
Metric: 0 IP-Extended 1.0.0.2/32
Prefix-SID Index: 2, R:0 N:0 P:0 E:0 V:0 L:0
Metric: 10 IP-Extended 10.0.0.0/30
Metric: 10 IP-Extended 10.0.128.4/30
Total Level-1 LSP count: 1 Local Level-1 LSP count: 0
SRGB
starts at 16,000 and ends at 23,999
I:1 ipv4
V:0 no ipv6
Adj SID 24,000
F:0 ipv4
V:1 value, not index
L:1 local significance
LSP ID
Prefix-SID index “2” for 1.0.0.2/32
R:0 not propagated
N:0 not a node SID
P:0 PHP on
E:0 no explicit-Null label
V:0 index
L:0 global significance
Проверка IS-IS Database
35. Segment Routing: взаимодействие с LDP
Приоритет использования меток (SR или же LDP) может быть явно задан при
конфигурации IS-IS
§ По умолчанию используем LDP
router isis 1
address-family ipv4 unicast
segment-routing mpls sr-prefer
36. RP/0/RSP0/CPU0:asr9000-p1#show mpls interfaces
Mon Oct 7 07:14:32.151 PDT
Interface LDP Tunnel Static Enabled
-------------------------- -------- -------- -------- --------
Loopback0 No No No Yes
TenGigE0/0/2/0 No No No Yes
TenGigE0/0/2/1 No No No Yes
GigabitEthernet0/0/0/0 No No No Yes
GigabitEthernet0/0/0/1 No No No Yes
RP/0/RSP0/CPU0:asr9000-p1#
Проверка интерфейсов для MPLS
Forwarding
Interfaces enabled for
MPLS forwarding
No interfaces
enabled for LDP or
RSVP-TE
38. От LDP к SR – простой путь
Узел А хочет передать трафик на узел Z, но
узел Z и часть промежуточных узлов не
является LDP capable.
§ отсутствует LDP outgoing label
В этом случае LDP LSP подключается к prefix
segment LSP
Узел C инсталирует следущую запись LDP-to-
SR FIB:
§ incoming label: label назначенный LDP для
FEC Z
§ outgoing label: prefix segment для
достижения узла Z
§ outgoing interface: интерфейс в сторону
узла D
A
CB D
Z
16066
LDP SR
Input Label
(LDP)
Out Label
(SID), Interface
32 16066, 1
Prefix
Out Label (LDP),
Interface
Z 16, 0
Связность двух различных доменов происходит автоматичеси
и не требует ручной настройки
39. От SR к LDP – требуется уточнение
Узлу А требуется передать трафик для
узла Z, но узел Z и часть промежуточных
узлов не поддерживают SR:
§ Отсутствует SR outgoing label, Z не
поддежривает SR, Z не может
объявить никакого prefix-SID
à Какой label следует использовать узлу
A для передачи трафика?
A
CB D
Z
16068
SR LDP
Input Label
(SID)
Out Label (LDP),
Interface
? 16, 1
Prefix
Out Label (SID),
Interface
Z ?, ?
В этом случае необходимо подключить
prefix segment LSP к LDP LSP вручную
Любой пограничный узел с поддержкой SR/
LDP должен создать запись SR-to-LDP FIB
40. Функционал Mapping Server используется
для объявления SID mappings для узлов
не поддерживающих SR
§ Например, узел С объявляет что узел Z
имеет SID 16068
Узлы A и B инсталируют нормальный SR
prefix segment 16068 для узла Z
C понимает что его next hop для SPT в
направлении Z не поддерживает SR,
поэтому C добаляет запись SR-to-LDP FIB
§ incoming label: prefix-SID bound to Z
(16068)
§ outgoing label: LDP binding from D for FEC
Z
Узел A посылает трафик для узла Z с
single label: 16068
A
CB D
ZZ(16068)
Input Label
(SID)
Out Label (LDP),
Interface
16068 16, 1
Prefix
Out Label (SID),
Interface
Z 16068, 0
От SR к LDP – функционал Mapping Server
SR LDP
41. router isis DEFAULT
net 49.0001.1720.1625.5001.00
address-family ipv4 unicast
metric-style wide
segment-routing mpls
segment-routing prefix-sid-map receive
segment-routing prefix-sid-map advertise-local
!
...
!
segment-routing
address-family ipv4
prefix-sid-map
172.16.255.1/32 4041 range 8
!
!
!
Конфигурация Mapping Server для
взаимодействия SR и LDP
Local prefix-to-SID mapping policy
172.16.255.1/32 – 4041
:
172.16.255.8/32 - 4048
Construct active mapping policy using remotely
learned and locally configured mappings (mapping
client)
Advertise local mapping policy (mapping server)
42. Взаимодействие SR и LDP
Payload Payload
LDP/SRout
*
LDP/SR LDP/SR
Payload
LDPlocal
Payload
LDPout
Payload
SRlocal
Payload
SRout
Homogenous
IP
LDP
SR
Payload Payload
LDPout
LDP/SR LDP
Payload
LDPlocal
Payload
LDPout
Payload
SRlocal
Payload
LDPout
to LDP
Payload Payload
SRout
LDP/SR SR
Payload
LDPlocal
Payload
SRout
Payload
SRlocal
Payload
SRout
to SR
LDP|SRlocal : local LDP|SR label
LDP|SRout : outgoing LDP|SR label
*В зависимости от
настроек preference
43. Сравнение SR от существующей модели MPLS
SR-based MPLS Classic MPLS
Базовый mpls транспорт IGP IGP + LDP
IGP/LDP синхронизация N/A Необходима настройка
50msec FRR IGP IGP + RSVP-TE
Extra TE states to support FRR No extra state Extra states to manage
Оптимальный backup маршрут Yes (IP post-convergence) No (SDH-alike)
ECMP-capability for TE Yes No
TE state only at headend Yes No (n^2 problem at
midpoint)
Engineered for SDN Yes No
44. Подводя итоги – нам уже 2 года!!! Orange, Deutche
Telecom, British
Telecom, Comcast,
Google, Facebook,
Yandex, Alcatel-Lucent,
Ericsson, Juniper
www.segment-routing.net
Полный перечень материалов
q Активная работа в IETF
q Работа в рамках SPRING WG
q 25 IETF drafts released