segment routing: фундамент для построения sdn routing: фундамент...

46
Segment Routing: фундамент для построения сетей SDN Дмитрий Дементьев Системный инженер, SP Russia [email protected] 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.

Upload: vocong

Post on 18-Apr-2018

267 views

Category:

Documents


6 download

TRANSCRIPT

Segment Routing: фундамент для построения сетей SDN

Дмитрий Дементьев Системный инженер, SP Russia [email protected]

23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.

Содержание:

• Основы Segment Routing • Сценарии использования •  Конфигурация оборудования

23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved. 2

Что такое 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

Идентификаторы 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

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 E B C D (php)

E B

Prefix/Node Path Adjacency Path Combined Path

Автоматическая балансировка трафика в случае Node/Prefix SID

q  ECMP q  Трафик предназначенный для узла O и имеющий SID 16078 автоматически разбалансируется по всем доступным ECMP путям

q  Не требует дополнительных настроек

A B C

M N O

Z

D

P

16078

Pop 9003

q  9001 передать через 1ый интерфейс

q  9002 передать через 2ой интерфейс

q  9003 балансировать по группе интерфейсов

Pop 9001

Pop 9002

Pop 9003

Балансировка трафика для Adjacency Segment (Anycast Adjacency segment)

A B

Anycast Node segment для Dual Core

§ Используем Node-SID [65] Передаем трафик до узла “Z” используя ECMP в обеих плоскостях

§  Используем Anycast-SID + Node-SID [111, 65]

§ Передаем трафик до узла “Z” используя ECMP только в одной плоскости

ECMP-awareness!

Таблица 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

Segment Routing и сервисы MPLS

Эффективное использование приемущества пакетных сетей (ecmp-aware shortest-path) :

q  node segment!

Упрощение работы сети: q  одним работающим протоколом меньше

q  отсутствует LDP/ISIS синхронизация

A B

M N

PE2 PE1

Все сущестующие VPN сервисы возможно

реализовать поверх node segment для PE2

Сценарии использования технологии Segment Routing

23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved. 11

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

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

R2 R1

A Z

R3

Packet to Z

R4

R5

Packet to Z

prefix-SID(Z)

Segment Routing позволяет гарантировать LFA FRR в любой топологии:

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

R2 R1

A Z

R3

Packet to Z

R4

Segment Routing позволяет гарантировать LFA FRR в любой топологии:

Topology Independent LFA FRR Пример TI-LFA – Single-Segment

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

R2 R1

A Z

R3 R4 R3 R4

Packet to Z

Topology Independent LFA FRR Пример TI-LFA – Double-Segment

Segment Routing позволяет гарантировать LFA FRR в любой топологии:

Отказоустойчивость узлов сети § Несколько устройств анонсируют одинаковый 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

Резервирование 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)

§ Эффективный механизм отказоустойчивости на транспортном уровне, не требует дополнительных технологий

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

Применение 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 à проще контролировать сеть

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

13

42

CE

AnycastSRlabel:5001

DC

Core

SDNController

AnycastSRlabel:1001

CE1Cloudedge

1 34 2

134 2

CE2

CE3CPEvCPE

AnycastSRlabel:2001

AB

CE SDNController

GW1 GW2

SRlabelstack

AàB:{GW1,GW2,B}={1001,2001,2}

SRNodelabel:1

SRNodelabel:2

IGP island IGP island SDN controlled cross-domain

SRlabelstack:[localGW,remoteGW,remotenode]

Еще один важный слайд

MPLS-метки лишены собственной семантики Сегмент может выражать любую инструкцию

q Service q Context q  IGP-based forwarding construct q BGP-based forwarding construct q Locator

SR и управление внешней связностью (Egress peering engineering)

A

B

D

ZAS1

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

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

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

BGP Prefix SID Аналогичные приемущества IGP Prefix SID

§  ECMP §  Automated FRR (BGP PIC) §  Необходимые элементы для Traffic Engineering

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

Единая политика передачи трафика

vPEF

App

App

ToR Leaf Spine DCE BR LSR

BR

BR

Определяем flow и

присваевыем SR segment

list

SR DC SR WAN

Верхний сегмент

предоставляет ECMP-маршрут к выбранному DCI

Следующие сегменты определяют WAN Policy:

Cost vs Latency, Disjointness,

Select egress BR

Последний сегмент выбирает

egress peer

Единая политика передачи трафика

Leaf Spine DCE BR LSR

BR

BR

SR DC SR WAN

Политика end-to-end для приложения: •  Два сервисных узла в DC •  Low-latency маршрут в WAN •  Точка выхода в Internet до потребителя

ToR

Реализация Segment Routing на платформах IOS XR

23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved. 29

Модель применения – с чего начать? 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

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.

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

router isis DEFAULT net 49.0001.1720.1625.5001.00 address-family ipv4 unicast metric-style wide segment-routing mpls ! interface Loopback0 passive address-family ipv4 unicast prefix-sid absolute 16041 ! ! interface GigabitEthernet0/0/0/0 address-family ipv4 unicast fast-reroute per-prefix fast-reroute per-prefix ti-lfa ! ! !

Активация Topology Independent Fast Reroute для IPv4

33

Enable TI-LFA for IPv4 prefixes on interface GigabitEthernet0/0/0/0

Как програмируются метки?

RIB LSD

FIB

ISIS

LDP

Segment Routing: взаимодействие с LDP

Приоритет использования меток (SR или же LDP) может быть явно задан при конфигурации IS-IS

§  По умолчанию используем LDP

router isis 1 address-family ipv4 unicast segment-routing mpls sr-prefer

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

Модели взаимодействия SR и LDP

LDP over SR LDP SR

SR over LDP

SR to LDP

LDP to SR

От 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

C B D

Z

16066

LDP SR

Input Label (LDP)

Out Label (SID), Interface

32 16066, 1

Prefix Out Label (LDP), Interface

Z 16, 0

Связность двух различных доменов происходит автоматичеси и не требует ручной настройки

От SR к LDP – требуется уточнение Узлу А требуется передать трафик для узла Z, но узел Z и часть промежуточных узлов не поддерживают SR:

§  Отсутствует SR outgoing label, Z не поддежривает SR, Z не может объявить никакого prefix-SID

à Какой label следует использовать узлу A для передачи трафика?

A

C B 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

Функционал 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

C B D

Z Z(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

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)

Взаимодействие 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

Сравнение 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

Подводя итоги – нам уже 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

CiscoRu Cisco CiscoRussia

Ждем ваших сообщений с хештегом #CiscoConnectRu

CiscoRu

Пожалуйста заполните анкеты, Ваше мнение очень важно для нас и лично для меня ;-) Дмитрий Дементьев Системный инженер, SP Russia [email protected]

© 2015 Cisco and/or its affiliates. All rights reserved.

Спасибо за внимание