построения SDN
23 мая, 2017
О чем будем сегодня говорить
Архитектура Segment Routing
Введение
Сценарии использования
Внедрение на сети оператора
IPv6 forwarding plane Сегмент = routing extension header (see 4.4 of RFC2460)
The state is no longer in the network but in the packet
Segment Routing - стандартизация
Strong commitment for standardization and
multi-vendor support
SPRING Working-Group (started Nov 2013)
All key documents are WG-status
Over 25 drafts maintained by SR team
• Over 50% are WG status
• Over 75% have a Cisco implementation
Several interop reports are available
First RFC document - RFC 7855 (May 2016)
Segment Routing Упрощая MPLS
Control Plane
Routing protocols with
Explicit path extensions SDN controller
(IS-IS,OSPF, BGP)
Data Plane
MPLS IPv6
(segment labels) (+SR header)
Идентификаторы IGP Segment
Prefix/Node SID Adjacency SID
65 65
9101 B C D
65 B C D
9105
65
A 9107 Z
A Z
N O P
N O P 9105
9103
M N O P
16078
ECMP
Трафик предназначенный для узла O и имеющий SID 16078 автоматически
разбалансируется по всем доступным ECMP путям
Не требует дополнительных настроек
Adjacency Segment (пример)
A B C D
На узле “C” пакет с меткой
Pop Z 65 9003 должен быть передан
9003
M N O P по каналу “C-O”
Pop 9003
A
Pop 9001
B 9001 передать через 1ый интерфейс
M N O P
Packet
65 to Z
65 65
Packet Packet
to Z to Z
Возможность совмещать TE и ECMP
• Эффективное использование A B
преимущества пакетных сетей (ecmp-
aware shortest-path) : PE2
PE1
node segment!
M N
A 9108 OAM
9105
9108
9102 N O
9104
draft-geib-spring-oam-usecase-06
Nanog57, Feb 2013
Anycast segment для Dual Core
• Используем Anycast-SID +
Node-SID [111, 65]
Передаем трафик до узла “Z”
используя ECMP только в одной
плоскости
ECMP-awareness!
Topology Independent LFA FRR
Пример TI-LFA – Zero-Segment
Segment Routing позволяет гарантировать
LFA FRR в любой топологии: A Z
Расчитаем LFA(s) R1 R2
prefix-SID(Z)
Packet to Z
R4 R3
Default metric:10
Topology Independent LFA FRR
Пример TI-LFA – Single-Segment
Segment Routing позволяет гарантировать
LFA FRR в любой топологии: A Z
Расчитаем P и Q области R1 R2
случае prefix-SID(R4) R5
prefix-SID(Z)
Расчитаем post-convergence SPT prefix-SID(Z)
Packet to Z
Packet to Z
convergence SPT
Q-space
R1 добавит prefix-SID R4 для создания
Default metric:10
backup path
Topology Independent LFA FRR
Пример TI-LFA – Double-Segment
Segment Routing позволяет гарантировать
LFA FRR в любой топологии: A Z
Расчитаем P и Q области R1 R2
• Service
• Context
• IGP-based forwarding construct
• BGP-based forwarding construct
• Locator
SR и управление внешней связностью
(Egress peering engineering)
http://tools.ietf.org/html/draft-filsfils-spring-segment-routing-central-epe-01
Cisco, Facebook, Yandex
D
Определяем точку A
AS2
выхода из AS на B
C Z
AS1 AS4
ingress router E
AS3
коммутаторе
SR и управление внешней
связностью AS до внешнего пира
AS1
PrefixSID(B) Payload
Payload B AS2 D
Лучший
BGP и IGP
ISIS/SR-based WAN AS4
путь
A 9.9.9.9/32
PrefixSID (C)
C E
TE Policy
installed by PeeringSID(E)
Controller
Payload
Engineered Path PeeringSID(E)
AS3
Payload
Payload
Engineered Path
Единая политика передачи трафика
App SR DC SR WAN BR
App
BR
Следующие
Определяем Верхний сегменты
Последний
flow и сегмент определяют
сегмент
присваиваем предоставляет WAN Policy:
выбирает
SR segment ECMP-маршрут к Cost vs Latency,
egress peer
list выбранному DCI Disjointness,
Select egress BR
Единая политика передачи трафика
SR DC SR WAN BR
BR
FIB
Segment Routing Global Block (SRGB)
SRGB
• Используйте единый SRGB на всех устройствах 16,000 Idx 0
…
1,048,575
Рекомендованная модель применения SRGB
1.1.1.1/32, Prefix Segment index 1
4 3 2 1
SRGB
SRGB
SRGB
16,001
… Idx 1 16,001
… Idx 1 16,001
… Idx 1
… … … … … …
23,999 Idx 7,999 23,999 Idx 7,999 23,999 Idx 7,999
24,000 24,000 24,000
… … …
… … …
1,048,575 1,048,575 1,048,575
35
Возможный сценарий с разными SRGB
1.1.1.1/32, Prefix Segment index 1
4 3 2 1
SRGB
SRGB
16,001
… Idx 1 … 16,001
… Idx 1
… … … …
23,999 Idx 7,999 23,999 Idx 7,999
24,000 … 24,000
… 533,334 …
533,335 Idx 0
SRGB 533,336 Idx 1
… …
541,334 Idx 7,999
541,335
… … …
1,048,575 1,048,575 1,048,575
36
Модели взаимодействия SR и LDP
SR to LDP
LDP to SR
SR over LDP
LDP over SR
LDP SR
От LDP к SR – простой путь
• Узел А хочет передать трафик на узел Z, но LDP SR
узел Z и часть промежуточных узлов не
является LDP capable.
• отсутствует LDP outgoing label A Z
• В этом случае LDP LSP подключается к prefix
B C D 16066
segment LSP
• Узел C инсталирует следущую запись LDP-to-
SR FIB:
• incoming label: label назначенный LDP для FEC Z Out Label (LDP), Input Label Out Label
Prefix
• outgoing label: prefix segment для достижения Interface (LDP) (SID), Interface
узла Z Z 16, 0 32 16066, 1
• outgoing interface: интерфейс в сторону узла D
ASR900
CSR1000v
XRV-9000 (NEXUS 7000)
FD.io
NEXUS 9000
1 3 1 3
5 5
4 7 16007 4 7
pkt
6 16003 16003
6
pkt pkt
8 9 8 9
Service Y
Service
w/ SLA
Configuration PCE
Latency
Request PCE to compute path to A9
with SLA X Get back SID-list Real Time
Topology feed via
Configuration of SR Policy Delegation to the
BGP-LS
to Node 1 with SLA Latency PCE for reopt.
segment-routing
traffic-eng 1 2 3 4 5 6 7 8 9
policy POL1
end-point 9.9.9.9 color 10 T1’
path 21 22 23
preference 100
dynamic mpls pce 11 12 13 14 15 16 17 18 19
metric
type TE
Приложение
• Централизация сбора данных о WAE
топологии
XTC
• Сбор данных о топологии с
“Северное” API
помощью стандартных
протоколов BGP-LS ISIS/OSPF Мультидоменная
Расчет
топология
• Программирование пути
стандартным протоколом PCEP
“Сбор данных “Программирование”
о топологии” PCEP
• Поддержка Segment Routing BGP-LS
ISIS / OSPF
• Мультивендорная поддержка
On-Demand SR Policy
• A service head-end automatically instantiates an SR Policy to a BGP
nhop when required (on-demand), automatically steering the BGP
traffic into this SR Policy
• Color community is used as SLA indicator
• Reminder: an SR policy is defined (endpoint, color)
VPN LIVE
Site 1 eBGP
PE1
VPN LIVE
Site 2
PE10
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
Real Time Topology Feed
XTC XTC - XR Transport Controller
PCE PCE – Path Computation Element
BGP-LS
eBGP
PE1
PE10
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
vrf LIVE
VPN provisioning address-family ipv4 unicast
import route-target 1:303
export route-target 1:303
VPN LIVE
Site 1 eBGP
PE1
VPN LIVE
Site 2
PE10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
BGP VPN routes distribution via Route
Reflector
route-policy ODN-LATENCY
Route Reflector pass
set community (100:777)
VPN v4 end-policy
VPN LIVE
Site 1 eBGP
PE1
PE10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PE1 process BGP VPNv4 172.10.2.0/24 nh
10.10.10.10
if community matches-every (100:666)
set mpls traffic-eng attributeset
then
ODN-IGP
elseif
community matches-every (100:777) then Route Reflector
set mpls traffic-eng attributeset ODN-LATENCY VPN v4
VPN LIVE
Site 1 eBGP
PE1
PE10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PE1 process BGP VPNv4 172.10.2.0/24 nh
10.10.10.10
if community matches-every (100:666)
set mpls traffic-eng attributeset
elseif
then
ODN-IGP
segment-routing
traffic-eng
attribute-set ODN-LATENCY
community matches-every (100:777) then pce
set mpls traffic-eng attributeset ODN-LATENCY Route Reflector
metric type te
VPN v4
VPN LIVE
Site 1 eBGP
PE1
PE10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PE1 ask PCE to resolve 10.10.10.10
with SLA low latencyXTC
PCEP Path request PCE
Source 1.1.1.1
Dest. 10.10.10.10
Path Selection metric TE
VPN LIVE
eBGP
Site 1
18010
18006 18008
10.10.10.10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PCE reply with the SID list
PCEP Path reply XTC
PCE
[16003, 24050,
18006,18010]
VPN LIVE
eBGP
Site 1
18010
18006 18008
10.10.10.10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PE1 install the SR Policy
and assign a Binding SID the SR policy
RP/0/0/CPU0:PE-1#show segment-routing traffic-eng policy |
incl “Name|Admin|Bind ”
Name: auto_sr_policy_1 End-Point: 10.10.10.10 Color: 20
Admin: up Operational: up for 00:00:50 (since Fri Feb 24
12:02:06 UTC 2017)
VPN LIVE
eBGP
Site 1 Binding SID: 24008
PE1 16003 18005 18007
1.1.1.1 24050
172.10.1.0/24 VPN LIVE
Site 2
18010
18006 18008
10.10.10.10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PE1 steer 172.10.2.0/24 vpn traffic on top of it
Recursion via label with Binding SID
sh cef vrf LIVE
RP/0/0/CPU0:PE-1#show segment-routing traffic-eng policy |
172.10.2.0/24
incl “Name|Admin|Bind” recursion-via-label
Name: auto_sr_policy_5 End-Point: 10.10.10.10 Color: 20
24008
Admin: up Operational: up for 00:00:50
next hop (since Fri Feb 24
sr_policy_5
VPN LIVE
12:02:06
Site 1 UTC 2017) eBGP
Binding
PE1
SID: 24008
16003 18005 18007
1.1.1.1 24050
172.10.1.0/24 VPN LIVE
Site 2
18010
18006 18008
10.10.10.10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
what if we change SLA? vrf LIVE
address-family ipv4 unicast
import route-target 1:303
export route-target 1:303
VPN provisioning
router bgp 64002
vrf LIVE
rd auto address-family ipv4 unicast
redistribute connected route-policy ODN-IGP
VPN LIVE
Site 1 eBGP
PE1
PE10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
BGP VPN routes distribution via Route
Reflector Route Reflector
VPN v4
route-policy ODN-IGP
pass
set community (100:666)
end-policy
VPN LIVE
Site 1 eBGP
PE1
PE10
10.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PE1 process BGP VPNv4 172.10.2.0/24 nh
10.10.10.10
if community matches-every (100:666)
Route Reflector
set mpls traffic-eng attributeset
then
ODN-IGP
segment-routing
traffic-eng
elseif VPN v4 attribute-set
pce
ODN-IGP
community matches-every (100:777) then
set mpls traffic-eng attributeset ODN-LATENCY metric type igp
VPN LIVE
Site 1 eBGP
PE1
PE10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
PCE reply with the SID list
XTC
PCE
PCEP Path reply
[16003, 24050, 18010]
VPN LIVE
eBGP
Site 1
18010
18006 18008
10.10.10.10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
XTC always optimize the path
in term of label stack and ECMP
Paths:
RP/0/0/CPU0:PE-1#show segment-routing traffic-eng
Preference policy
100 (dynamic pce)|
incl “Name|Admin” (active)
Name: auto_sr_policy_1 End-Point: 10.10.10.10
Prefix-SID: Color:
16003 30
[3.3.3.3]
Admin: up Operational: up for 00:00:50 (since
Adjacency-SID: 24050Fri Feb 24
[99.3.5.3
VPN LIVE
12:02:06
Site 1 UTC 2017) eBGP - 99.3.5.3]
PE1 16003 18005
Prefix-SID:
18007
18010 [10.10.10.10]
172.10.1.0/24
1.1.1.1 24050 Attributes:
VPN LIVE
Binding SID: 24020 Site 2
18010
18006 18008
10.10.10.10
172.10.2.0/24
eBGP
ISIS ISIS (level-2) ISIS (level-1)
AS 64001 AS64002 AS64002
Введение в SRv6
Рост IPv6-трафика
IoT services Micro-services
IP
Next-Gen Data Center
5G 4G
Metro/Core Legacy
Network DC
xDSL
5G
FTTH
5G Cable
Source
Address
IPv6
SRv6 – Segment Routing + IPv6
• Simplicity
• Protocol elimination
• SLA
• FRR and TE
SRv6 for anything else
• Overlay
IPv6 for reach
• NFV
• SDN
• SR is de-facto SDN architecture
• 5G Slicing
SR для всех возможных
задач
Сеть как компьютер
Сетевая инструкция
Locator Function(arg)
Function
Locator 3 Function 3
Locator 2 Function 2
Locator 1 Function 1
Locator 3 Function 3
Сетевая программа
Locator 1 Function 1
Locator2 Function2
Locator 1 Function 1
Locator 3 Function 3
Сетевая программа
Locator 1 Function 1
Locator 2 Function 2
Locator 2 Function 2
Locator 1 Function 1
Locator 3 Function 3
SR заголовок
Segments Left
Locator 1 Function 1
Locator 2 Function 2
Locator 3 Function 3
Metadata TLV
SRv6 для всех возможных задач
Segments Left
Locator 1 Function 1
Locator 2 Function 2
Locator 3 Function 3
Locator 1 Function 1
Optimized for HW processing
Locator 2 Function 2 e.g. Underlay & Tenant use-cases
Locator 3 Function 3
Metadata TLV
SR Header
SR-IPv6
• SR-IPv6: список сегментов хранящихся в новом (безопасном)
заголовке Routing Header
• Segment Routing Header (SRH)
• Существуют две опции использования Segment Routing в v6 сетях
• IPv6 control plane with a MPLS dataplane
• IPv6 control plane with a IPv6 dataplane
78
IPv6 Header
• Next Header (NH)
• Определяет последующие заголовки
NH = IPv6 41
NH = TCP 6
NH = Routing Extension 43
RFC 2460
• NH = 43, Type = 4
SR specific
SRH 43
• SRH contains
• the list of segments
• Segments left (SL) Active Segment
• Flags 4
• TLV
• Active segment is in the IPv6 DA Last Segment
• Next segment is at index SL-1
• The last segment is at index 0
• Reversed order
SRH Processing
Source Node
1 2 3 4
A1:: A2:: A3:: A4::
IPv6 Hdr
• Segments Left is set to 𝑛 − 1 Payload Length Next = 43 Hop Limit
Source Address = A1::
• First Segment is set to 𝑛 − 1 Destination Address = A2::
SR Hdr
• Packet is send according to the IP DA Segment List [ 0 ] = A4::
Segment List [ 1 ] = A3::
• Normal IPv6 forwarding Segment List [ 2 ] = A2::
Payload
Non-SR Transit Node
1 2 3 4
A1:: A2:: A3:: A4::
IPv6 Hdr
Payload Length Next = 43 Hop Limit
• Forward according to the new IP DA
Source Address = A1::
Destination Address = A3::
Next Header Len= 6 Type = 4 SL = 1
First = 2 Flags RESERVED
SR Hdr
Segment List [ 0 ] = A4::
Segment List [ 1 ] = A3::
Segment List [ 2 ] = A2::
Payload
SR Segment Endpoints 1 2 3 4
A1:: A2:: A3:: A4::
• SR Endpoints: SR-capable nodes
IPv6 Hdr SA = A1::, DA = A4::
whose address is in the IP DA SR Hdr ( A4::, A3::, A2:: ) SL=0
Payload
• SR Endpoints inspect the SRH and do:
• IF Segments Left > 0, THEN
• Decrement Segments Left ( -1 )
• Update DA with Segment List [ Segments Left ] Version Traffic Class FlowLabel
Flow Label
IPv6 Hdr
Payload Length Next = 43 Hop Limit
• Forward according to the new IP DA
Source Address = A1::
• ELSE (Segments Left = 0) Destination Address = A4::
• Remove the IP and SR header Next Header Len= 6 Type = 4 SL = 0
Standard IPv6 processing
First = 2 Flags RESERVED
• Process the payload:
SR Hdr
The final destination does
not have to be SR-capable. Segment List [ 0 ] = A4::
• Inner IP: Lookup DA and forward
Segment List [ 1 ] = A3::
• TCP / UDP: Send to socket Segment List [ 2 ] = A2::
• … Payload
SRv6 Use-Cases
Endpoint
• For simplicity
12
• Function 0 denotes 10
the most basic A1::0 2 4
function 1
7
13
• Shortest-path to
the Node 3 6 5
11 A5::0
14
DC WAN PEER
Endpoint then xconnect to neighbor
• For simplicity
12
• AK::CJ denotes 10 A1::C2
2 4
Shortest-path to the
1
Node K and then 7
13
x-connect (function C)
to the neighbor J 3 6 5
11 A5::C7
14
DC WAN PEER
A2::C4
TILFA
2 100
4
A5::0
1
• 50msec Protection upon
local link, node or SRLG failure
• Simple to operate and understand 6 5
A5::0 <50mec FRR
• automatically computed by the router’s IGP process A5::0
• 100% coverage across any topology
• predictable (backup = postconvergence) A5::/64
Pri → via 5
• Optimum backup path
FRR → insert A2::C4
• leverages the post-convergence path, planned to carry the traffic
• avoid any intermediate flap via alternate path
• Incremental deployment
V/64
Overlay with
T/64
Underlay Control IPv6 ( T::1, V::1 )
payload 3
V/64
T/64
IPv6 ( T::1, V::1 ) 3
Integrated NFV payload
• A3::A32 means 1
• App in Container 32
Server 3
• @ node A3::/64 IPv6 ( A1::0, A3::A32 )
3
App 32
Container
{ A3::A32, A4::0,
• Stateless SRH
A5::A76, A2::C4 }
• NSH creates per-chain state 4
IPv6 ( T::1, V::1 )
in the fabric Server 5
payload
• SR does not 5
App 76
VM
V/64
T/64
3
Integrated NFV
1
• Integrated with underlay SLA
Server 3
IPv6 ( A1::0, A4::0 )
3
App 32
Container
{ A3::A32, A4::0,
SRH
A5::A76, A2::C4 }
4
IPv6 ( T::1, V::1 )
Server 5
payload
5
App 76
VM
V/64
T/64
3
Integrated NFV
• A5::A76 means 1
– App in VM 76
Server 3
– @ node A5::/64 IPv6 ( A1::0, A5::A76 )
3
App 32
Container
• Stateless SRH
{ A3::A32, A4::0,
A5::A76, A2::C4 }
– NSH creates per-chain state 4
in the fabric IPv6 ( T::1, V::1 )
Server 5
– SR does not payload
5
App 76
VM
V/64
T/64
3
Integrated NFV
1
• Integrated with Overlay
Server 3
IPv6 ( A1::0, A2::C4 )
3
App 32
Container
{ A3::A32, A4::0,
SRH
A5::A76, A2::C4 }
4
IPv6 ( T::1, V::1 )
Server 5
payload
5
App 76
VM
2
IPv6 ( T::1, V::1 )
payload
V/64
SRv6 status
• Cisco HW
• ASR9k - XR
• ASR1k – XE
• Open-Source
• Linux 4.10
• FD.IO
Подводя итоги – нам уже 4 года!!!
Активная работа в IETF Orange, Bell Canada,
Работа в рамках SPRING Deutche Telecom,
WG British Telecom,
25 IETF drafts released Comcast, Google,
Over 50% are WG Facebook, Microsoft,
status Yandex, Alcatel-Lucent,
Over 75% have a Cisco Ericsson, Juniper
implementation
First RFC document - RFC
7855 (May 2016)
www.segment-routing.net
Полный перечень материалов
Вопросы?
Пишите ddementi@cisco.com