Телеметрия и базе IOS XR - Cisco · Комментарии о...

Preview:

Citation preview

Телеметрия и автоматизация на базе IOS XR

Виктор ОсипчукИнженер

Взгляд в прошлое

3© 2018 Cisco and/or its affiliates. All rights reserved.

DPDK Open NSLУровень абстракции

Программноеобеспечение

Управление услугами,Аналитика,Автоматизация

GEARD

Хранение Приложе-ния

Сервисы Front End

P4

2014 Сегодня

NMS

ISIS

OSPF

IOS XR сегодня

4© 2018 Cisco and/or its affiliates. All rights reserved.

Теле

мет

рия

Авто

мат

изац

ия

Уста

новк

а пр

илож

ений

Про

грам

мир

уем

ость

IOS-XR 6.X

Стакан наполовину полон

5© 2018 Cisco and/or its affiliates. All rights reserved.

Чтение Запись

Содержание

6© 2018 Cisco and/or its affiliates. All rights reserved.

Предпосылки к телеметрии

Новый подход

Телеметрия в деталях

Что еще нужно знать

С чего начать

Заключение

1

2

3

4

5

6

7© 2018 Cisco and/or its affiliates. All rights reserved.

Предпосылки к телеметрии

Понимание технологий в 2014

8© 2018 Cisco and/or its affiliates. All rights reserved.

syslogSNMP

CLI

Слишком медленно

Неполная информация

Есть зависимости

Сложно автоматизировать

Быстрее, выше, сильнее!

9© 2018 Cisco and/or its affiliates. All rights reserved.

7% 7% 8% 7% 14%

20%

0

10

20

30

1 2 3

Загрузка CPU

Количество получателей0

100

200

300

400

5 сек 10 сек 15 сек 20 сек

Тыся

чи

Счетчики

Телеметрия

SNMP0 5 10 15 20 25

Свободная память

Счетчики интерфейсов (In/Out pkts, In/Out Discards, In/Out Errors)

Время на сбор информации (NCS5516, 576х100GE)

Мы любим создавать протоколы!

10© 2018 Cisco and/or its affiliates. All rights reserved.

Уровень Control plane

УровеньData plane

По изменению <= 1 сек ~10-ки сек ~минуты-часы

CLI

XML

SNMPsyslog

traps

BMP

netFlow

ЗапрашиватьОтсылать

Определение MicroburstУправление потоками трафика

Планирование емкостиПоиск неисправностей

первая область для Телеметрии

sFlow

Direct ASIC stats

Мониторинг сети

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

Новый подход

Все что нужно – уже есть

12© 2018 Cisco and/or its affiliates. All rights reserved.

Маршрутизатор ЦОД

Телеметрия (от др.-греч. τῆλε «далеко» + μέτρεω — «измеряю») — получение информации о значениях измеряемых параметров контролируемых и управляемых объектов

https://ru.wikipedia.org/wiki/Телеметрия

Мониторинг и аналитика

BNG Peeringмаршрутизатор

Маршрутизатор ядра

Маршрутизатор ядра

Маршрутизаторядра

«Три кита» современной телеметрии

13© 2018 Cisco and/or its affiliates. All rights reserved.

Отсылать, не запрашивать

Формат для аналитики

В основе лежат модели YANG

Телеметрия в современных сетях

14© 2018 Cisco and/or its affiliates. All rights reserved.

https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45687.pdf

15© 2018 Cisco and/or its affiliates. All rights reserved.

Телеметрия в деталях

Телеметрия как модель “OSI”

16© 2018 Cisco and/or its affiliates. All rights reserved.

Уровень данныхДанные внутри таблиц маршрутизатора

Уровень моделейДанные баз маршрутизатора в моделях(YANG native, OpenConfig, и т.д.)

Уровень координацииОпределение интервалов отправки данных

Уровень отправкиКодирование данных и отправка получателю

Уровень аналитикиПолучение и обработка информации (напр., мониторинг, автоматизация, аналитика)

Шаг 1: что отсылать

Определитесь с моделью и что вы хотите от нее получить

17© 2018 Cisco and/or its affiliates. All rights reserved.

telemetry model-driven

sensor-group SGROUP1

sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-

statistics/interfaces/interface/latest/generic-counters

Модель YANG

что вы хотите отправить

YANG-модели

18© 2018 Cisco and/or its affiliates. All rights reserved.

Vendors OpenConfig IETF Other

Доступно в IOS-XR

“Native”

http://www.openconfig.net

https://github.com/openconfig/public

Где найти модели

19© 2018 Cisco and/or its affiliates. All rights reserved.

135

145

155

165

175

185

195

205

6.1.1 6.1.2 6.2.1 6.2.2 6.3.1 6.3.2

YANG Models

https://github.com/YangModels/yang/tree/master/vendor/cisco/xrДля телеметрии ищите операционные модели (* –oper.yang).Также доступны конфигурационные (*–cfg.yang) и модели действия (*–act.yang).

Как понять, что внутри

20

$pyang-ftreeCisco-IOS-XR-infra-statsd-oper.yang--tree-pathinfra-

statistics/interfaces/interface/latest/generic-counters

module:Cisco-IOS-XR-infra-statsd-oper+--ro infra-statistics+--ro interfaces+--ro interface*[interface-name]+--ro latest+--ro generic-counters+--ro packets-received?uint64+--ro bytes-received?uint64+--ro packets-sent?uint64+--ro bytes-sent?uint64+--ro multicast-packets-received?uint64…

https://github.com/mbj4668/pyanghttps://github.com/CiscoDevNet/yang-explorer

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

Шаг 2: куда и как отсылать

21© 2018 Cisco and/or its affiliates. All rights reserved.

telemetry model-driven

destination-group DGROUP

address family ipv4 192.168.1.1 port 2104

---- and/or ----

address family ipv6 2001:db8::1 port 2104

encoding self-describing-gpb

protocol tcp

Получатель

Кодировка

Транспорт

Зачем нужна кодировка

22© 2018 Cisco and/or its affiliates. All rights reserved.

Кодировка (или “сериализация”) трансформирует данные (объекты) вопределенный формат, который может быть передан средствами связи. Приполучении информации, получатель раскодирует данные («де-сериализация») иобрабатывает исходные данные.

данныеданные

“Раскодировать”

“Закодировать”

Поддерживаемые кодировки на IOS XR

• Compact GPB• Key-Value GPB• JSON (6.3.1)

Два подтипа кодировки GPB

23© 2018 Cisco and/or its affiliates. All rights reserved.

data_gpb {row {

timestamp: 1485794640469keys: "\n\026GigabitEthernet0/0/0/0"content:

"\220\003\010\230\003\001\240\003\002\250\003\000\260\003\000\270\003\000\300\003\000\310\003\000\320\003\300\204=\330\003\000\340\003\000\350\003\000\360\003\377\001"}

2Х быстрееНужны .proto-файлы с описанием, чтобы правильно декодировать

data_gpbkv {timestamp: 1485793813389fields {name: "keys"fields { name: "interface-name" string_value:

"GigabitEthernet0/0/0/0" }}fields {name: "content"fields { name: "input-data-rate" uint64_value: 8 }fields { name: "input-packet-rate" uint64_value: 1 }

<<< 9 lines are skipped >>> fields { name: "input-load" uint32_value: 0 }fields { name: "reliability" uint32_value: 255 }

}}...

3Х больше, но выгоднее XMLДостаточно иметь единый .proto-файл для заголовка.

GPB – “компактный” GPB – “с базовым описанием”

Пример .proto файла

24© 2018 Cisco and/or its affiliates. All rights reserved.

https://github.com/cisco/bigmuddy-network-telemetry-proto/blob/master/proto_archive/cisco_ios_xr_mpls_te_oper/mpls_te/auto_tunnel/mesh/summary/mpls_te_autotun_mesh_summary_info.proto

module: Cisco-IOS-XR-mpls-te-oper+--ro mpls-te

+--ro auto-tunnel+--ro mesh

+--ro summary+--ro auto-mesh-tunnels? uint32+--ro up-auto-mesh-tunnels? uint3+--ro down-auto-mesh-tunnels? uint32+--ro frr-auto-mesh-tunnels? uint32+--ro auto-mesh-groups? uint32+--ro auto-mesh-destinations? uint32

Транспортные протоколы

25© 2018 Cisco and/or its affiliates. All rights reserved.

Dial-Out

• TCP и gRPC (начиная с 6.1.1)• UDP (начиная с 6.2.1)

Dial-In

• Только для gRPC (начиная с 6.1.1)

Коллектор

Данные

SYNSYN-ACK

ACKКоллектор

Данные

SYNSYN-ACK

ACK

gRPC как REST, только лучше

Работает поверх HTTP/2• Оптимизирован для быстрой работы• Поддерживает отправку данных с сервера• компрессия заголовка• Мультиплексирование• шифрование TLS• RFC 7540 (Май 2015)• Сохранил синтаксис HTTP1.1• Бинарный

Определяет сервисы (“RPCs”)

26© 2018 Cisco and/or its affiliates. All rights reserved.

http://www.grpc.io/docs/#hello-grpc

Шаг 3: соединяем все вместе

27© 2018 Cisco and/or its affiliates. All rights reserved.

telemetry model-driven

subscription Sub1

sensor-group-id SGROUP1 sample-interval 10000

destination-id DGROUP1

10 секундШаг 1 (сделано)

Шаг 2 (сделано)

Внутренняя архитектура важна

28© 2018 Cisco and/or its affiliates. All rights reserved.

SNMP Engine

IF-MIB DLL

Statsd_manager

RP

LC1 LC2 LC3 LCX

SNMPd

MIBd_interface Кэш (30с)

Внутренняя система доставки

statsd

feature

statsd

feature

statsd

feature

statsd

feature

SNMP POLL запрос

MDT main thread

MDT back thread

Statsd_manager

RP

LC1 LC2 LC3 LCX

EMSd

statsd

feature

statsd

feature

statsd

feature

statsd

feature

MDT PUSH

Encoder

Внутренняя система доставки

Кеширование полезно маршрутизаторамно не вам

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

Измерение скорости

интерфейсов через SNMP

Измерение скорости

интерфейсов через телеметрию

30© 2018 Cisco and/or its affiliates. All rights reserved.

Что еще нужно знать

Телеметрия бывает разной

31© 2018 Cisco and/or its affiliates. All rights reserved.

Потоковая телеметрия Телеметрия по событию

Маршрутизатор

100 интерфейсов UP / 0 интерфейсов DOWN

интерфейс X статус DOWNВре

мя

Вре

мя

Маршрутизатор

t0

t1

t1

t0

t1

t1

t0t0

100 интерфейсов UP / 0 интерфейсов DOWN

100 интерфейсов UP / 0 интерфейсов DOWN

100 интерфейсов UP / 0 интерфейсов DOWN

99 интерфейсов UP / 1 интерфейс DOWN

99 интерфейсов UP / 1 интерфейс DOWN

99 интерфейсов UP / 1 интерфейс DOWN

Постоянное улучшение

32© 2018 Cisco and/or its affiliates. All rights reserved.

https://xrdocs.github.io/telemetry/blogs/2017-08-07-multithreading-in-mdt/

Готовность инфраструктуры

33© 2018 Cisco and/or its affiliates. All rights reserved.

Информация Кол-во gRPC/KVGPB полоса (мбит/с)

gRPC/GPBполоса (мбит/с)

UDP/JSONполоса (мбит/с)

Состояние интерфейсов* 2160 по изменению по изменению по изменению

Скорость интерфейсов 2160 1.7155632 0.3023296 2.0160128Статистикаинтерфейсов 576 0.477302222 0.065839378 0.483407289

Данные оптики 1 0.0002816 0.0002288 0.0005968Время работы 18 0.335916 0.053052 0.3043256Загрузка CPU 18 0.004036 0.0011584 0.0055872Память 538 0.061503111 0.019817778 0.0832968Данные по процессам 574 0.185312 0.0703288 0.2401824LLDP 650,022 по изменению по изменению по изменениюIPv4 RIB * 14876 по изменению по изменению по изменениюIPv6 RIB * 650,000 0.0004744 0.0002424 0.000632Маршруты BGP IPv4 12800 0.000472 0.00024 0.0006272

Маршруты BGP IPv6 2 0.0390272 0.0054728 0.0391232

BGP IPv4 соседи 1003 0.004604 0.0005632 0.004692

MPLS-TE туннели 5 0.0015352 0.0004256 0.001972RSVP интерфейсы 96 1.59755976 0.255440227 1.726576827Счетчики NPU (NCS5500) 96 0.2052016 0.0378816 0.2130816

Суммарно ~ 4,6 мбит/с ~ 0,8 мбит/с ~ 5,1 мбит/с

Комментарии о тестировании:

• Интервал в 10 сек для почти всех счетчиков.

• Отправка IPv4/IPv6 RIB счетчиков на каждый маршрут занимает много полосы -> используйте телеметрию по событию

• Нагрузка на CPU была постоянна и около ~7%, независимо от количества получателей.

• Эффективность кодирования: GPB<<KVGPB<JSON.

• Эффективность транспорта: UDP < TCP ≅ gRPC.

34© 2018 Cisco and/or its affiliates. All rights reserved.

С чего начать

Проверьте вашу версию IOS XR

ASR9k (32b XR) ASR9k (64b XR) NCS5500 NCS6k/CRSПоддержка телеметрии 6.1.1 6.1.1 6.1.1 6.1.3

Модели YANG (native, OC)

YANG (native, OC)

YANG (native, OC)

YANG (native, OC)

Транспортные протоколы

TCP (dial-out), UDP (dial-out)*

gRPC (dial-in, dial-out), TCP (dial-out), UDP (dial-out)*

gRPC (dial-in, dial-out), TCP (dial-out), UDP (dial-out)*

gRPC (dial-in, dial-out), TCP (dial-out), UDP (dial-out)*

Кодирование GPB / GPB-KV / JSON**

GPB / GPB-KV / JSON**

GPB / GPB-KV / JSON**

GPB / GPB-KV / JSON**

Коллекторы Pipeline*** Pipeline*** Pipeline*** Pipeline***

35© 2018 Cisco and/or its affiliates. All rights reserved.

* UDP поддерживается с IOS XR 6.2.1** JSON поддерживается с IOS XR 6.3.1*** Коллектор можно скачать здесь: https://github.com/cisco/bigmuddy-network-telemetry-pipeline

Общий вид платформы для аналитики

36© 2018 Cisco and/or its affiliates. All rights reserved.

Приложения

Хранение

Преобразование Сбор, агрегация, нормализацияИндексирование, хранение, поискВизуализация, оповещения, автоматизация

Маршрутизатор ЦОД Маршрутизатор

ядра

BNGPeering

маршрутизатор

Маршрутизатор ядра

Протестируйте телеметрию уже сегодня

37© 2018 Cisco and/or its affiliates. All rights reserved.

BNG

Pipeline: https://github.com/cisco/bigmuddy-network-telemetry-pipelineInfluxDB: https://github.com/influxdata/influxdbPrometheus: https://github.com/prometheus/prometheusKafka: https://github.com/apache/kafkaGrafana: https://github.com/grafana/grafanaВсе о Pipeline: https://xrdocs.github.io/telemetry/tutorials/2018-03-01-everything-you-need-to-know-about-pipeline

Pipeline

Маршрутизатор ЦОД

Маршрутизатор ядра

Peeringмаршрутизатор

Маршрутизатор ядра

Начините с мониторинга

38© 2018 Cisco and/or its affiliates. All rights reserved.

BGP карта в реальном времени

Балансировка и общий трафик в реальном времени

RIB/FIB проверка на целостность

Переходите на автоматизацию

39© 2018 Cisco and/or its affiliates. All rights reserved.

Модуль автоматизации

Настройка, управление

Segment Routing Traffic Engineering

TT

T

T

T

T

4

3

2

1

T

Коллектор данных

Low Latency Avoidance Disjointness

Сетевые приложения

Пара реализованных примеров:

1. Проверка настройки L3VPN: Использование NSOдля конфигурации. Генерация пробного трафика для проверки сервиса с помощью Netround. Использование InfluxDB для хранения данных с Телеметрии и отсылка триггеров событий наKapacitor. Moog используется поверх для обработки триггеров и корреляции действий Netround и NSO.

2. Автоматизация IP-пула для BNG: Мониторинг границ потребления адресов внутри пула BNG. При пересечении заданной границы, система автоматически добавляет новый пул адресов на BNG либо с помощью NSO, либо с помощью YDK.

Переходите на автоматизацию

40© 2018 Cisco and/or its affiliates. All rights reserved.

L3VPN сервис

Автоматизация LAG

Автоматизация BNG Pool

Телеметрия как основа для аналитики

41© 2018 Cisco and/or its affiliates. All rights reserved.

Разные источники информации … ... любое приложение для аналитики...

Приложения и сервисы

разработанные в экосистеме

PNDA

Приложения и сервисы на

заказ

Приложения от комьюнити

Инфраструктура, сервисы, данные

заказчиковЛюбой тип данных

Разные доменыМультивендорность

PNDAPlugins

ODL

Logstash

OpenBPM

pmacct

XR Telemetry

Real-timeD

ata Distribution

FileStore

Platform Services: Installation, Mgmt, Security, Data Privacy

App Packaging and Mgmt

Stream

Batch

Processing

SQL Query

OLAP Cube

Search/Lucene

NoSQL TimeSeries

DataExploration

Metric Visualisation

Event Visualisation PNDA

Mnged App

PNDA Mnged App

UnmngedApp

UnmngedApp

Query Visualisationand Exploration

PNDA Applications

Bulk

42© 2018 Cisco and/or its affiliates. All rights reserved.

Заключение

Телеметрия – это уже не будущее

43© 2018 Cisco and/or its affiliates. All rights reserved.

• Внедрение происходит во многих компаниях• Новые NPU будут иметь нативную поддержку телеметрии• Начните тестировать телеметрию сегодня

Что посмотреть по теме

• Документация, Блоги, Видео по запросу:• https://xrdocs.github.io/telemetry/• http://blogs.cisco.com/sp/the-limits-of-snmp• http://blogs.cisco.com/sp/why-you-should-care-about-model-driven-telemetry• https://youtu.be/tIN8BjHwpNs (NANOG 67: 10 Lessons from Telemetry)• https://youtu.be/9ZE8qPkfqxE (NFD17: Telemetry Deep Dive)• https://github.com/cisco-ie/telemetry-staging-ansible (MDT lab)

• Информация про YANG и автоматизацию:• https://github.com/YangModels/yang/tree/master/vendor/cisco (Cisco YANG модели)• http://blogs.cisco.com/getyourbuildon/yang-opensource-tools-for-data-modeling-driven-management

(YANG open source tools)• https://developer.cisco.com/site/ydk/ (YDK intro)

• Коллекторы для телеметрии:• https://github.com/cisco/bigmuddy-network-telemetry-pipeline• https://github.com/cisco/bigmuddy-network-telemetry-proto

44© 2018 Cisco and/or its affiliates. All rights reserved.

Оцените данную сессию в мобильном приложении конференции

• www.facebook.com/CiscoRu

• www.instagram.com/ciscoru

• www.youtube.com/user/CiscoRussiaMedia

• www.vk.com/cisco

45

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

Контакты:

Тел.: +7 495 9611410www.cisco.com

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

Популярные модели (1/2)

Информация МодельСостояние интерфейсов Cisco-IOS-XR-pfi-im-cmd-oper:interfaces/interface-xr/interface

Скорость интерфейсов Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/data-rate

Статистика интерфейсов Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters

Данные оптики Cisco-IOS-XR-controller-optics-oper:optics-oper/optics-ports/optics-port/optics-Info

Время работы Cisco-IOS-XR-shellutil-oper:system-time/uptime

Загрузка CPU (NCS5500) Cisco-IOS-XR-wdsysmon-fd-oper:system-monitoring/cpu-utilization

Память Cisco-IOS-XR-nto-misc-oper:memory-summary/nodes/node/summary

Данные по процессам Cisco-IOS-XR-procmem-oper:processes-memory/nodes

Счетчики NPU (NCS5500) Cisco-IOS-XR-fretta-bcm-dpa-npu-stats-oper:dpa/stats/nodes/node

Ресурсы NPU (NCS5500) Cisco-IOS-XR-fretta-bcm-dpa-hw-resources-oper:dpa/stats/nodes/node/hw-resources-datas/hw-resources-data

46© 2018 Cisco and/or its affiliates. All rights reserved.

Популярные модели (2/2)

Информация МодельLLDP Cisco-IOS-XR-ethernet-lldp-oper:lldp/nodes/node/neighbors/summaries/summary

IPv4 RIB Cisco-IOS-XR-ip-rib-ipv4-oper:rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table-names/ip-rib-route-table-name/routes/route

IPv6 RIB Cisco-IOS-XR-ip-rib-ipv6-oper:ipv6-rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table-names/ip-rib-route-table-name/routes/route

Маршруты BGP IPv4 Cisco-IOS-XR-ip-rib-ipv4-oper:rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table-names/ip-rib-route-table-name/protocol/bgp/as/information

Маршруты BGP IPv6 Cisco-IOS-XR-ip-rib-ipv6-oper:ipv6-rib/vrfs/vrf/afs/af/safs/saf/ip-rib-route-table-names/ip-rib-route-table-name/protocol/bgp/as/information

BGP IPv4 соседи Cisco-IOS-XR-ipv4-bgp-oper:bgp/instances/instance/instance-active/default-vrf/neighbors/neighbor

Туннели MPLS-TE Cisco-IOS-XR-mpls-te-oper:mpls-te/tunnels/summary

RSVP интерфейсы Cisco-IOS-XR-ip-rsvp-oper:rsvp/interface-briefs/interface-brief

47© 2018 Cisco and/or its affiliates. All rights reserved.

Recommended