Post on 02-Jun-2020
Телеметрия и автоматизация на базе 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.