cisco connect€¦ · • Основные функции базовой ОС: • Прямая...
TRANSCRIPT
CiscoConnectМосква, 2017
Цифровизация: здесь и сейчас
Новые возможностиIOS-XR 6контейнеры, программируемость и телеметрия
Илгар Гасымовсистемный архитектор по работе с операторами связи
© 2017 Cisco and/or its affiliates. All rights reserved.
Cisco Connect 2017 3
• Введение
• Обзор Программной Архитектуры
• Гибкое Пакетирование
• Хостинг Приложений
• Конфигурация, Мониторинг и Отладка
• Заключение
Содержание
© 2017 Cisco and/or its affiliates. All rights reserved.
Введение
Cisco Connect 2017 4© 2017 Cisco and/or its affiliates. All rights reserved.
Трансформация сети необходима
ВИРТУАЛИЗИРОВАТЬУПРОСТИТЬ АВТОМАТИЗИРОВАТЬ
Увеличить скорость
Больше сервисов
Повысить эффектив-ность
Снизить риски
ТРАНСФОРМАЦИЯ
Cisco Connect 2017 5© 2017 Cisco and/or its affiliates. All rights reserved.
Автоматизация настройки
6
ЦЕНТР УПРАВЛЕНИЯ СЕТЬЮ
Day 0
INSTALL
Day 1
CONFIGURE
Day 2
CLI Script
Обновляем ОС(вручную)
Подключаем новое устройство
Настройка нового устройства
удаленно (вручную)
Устройство готово
Стендовые испытания
от 4 часов до 3 дней
Подключаем новоеустройство
Устройство готово
Авто-настройка
10 – 15 минут
Автоматическая загрузка
• Ручное добавление
устройств
• Длительные процедуры
инсталляции и настройки
Эксплуатация Традиционной сети
Эксплуатация Облачной сети
• Сокращенное время на
инсталляцию и настройку
• Быстрое восстановление
• Автоматизированное
добавление нового устройства
OperatingSystem
OperatingSystem
Configuration
Эксплуатация Облачной сети
Эксплуатация Традиционной сети
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Трансформация операционной модели управления сетью
7
* Источник: Google
Новая SP/Облачная МодельЭксплуатации сети
Модульное и
расширяемое ПО
Автомати-зация
Видимость и контроль
Day 1
CONFIGURE
Day 2
MANAGE& OPTIMIZE
Day 0
INSTALL
Эксплуатация Традиционной сети
Негибкое ПО
Ручная настройка
Ограниченное видение
топологии и Сложная
Маршрути-зация
DevOps
• Автоматизированные сервисы
• Простое масштабирование
• Гибкая разработка (Agile), открытое ПО
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Простой доступ к данным
Модульное и расширяемое ПО
Гибкая модернизация
Открытая платформа
Инновации в Cisco IOS XR 6
8
Разработаны с учетом трансформации операционной модели
Маршрутизация управляемая из
приложения
Ан
али
тика
Ко
нтр
ол
ь
Телеметрия
Автоматизация
Автоматизированная загрузка и авто-настройка
API для Моделей Данных
Поддержка Сторонних
Агентов
Хостинг Приложений
Docker Linux
Контейнеры
Рас
ши
ряе
мо
сть
Асинхронное обновление
Мо
дул
ьно
сть
Гранулярные пакеты
Операционная гибкость
Аналитика и контроль
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Контроль качества услуг
IOS-XR 6 на различных платформах
9
Q4 CY15 Q4 CY16 CY17
NCS5508
NCS5001
NCS5002NCS5502
NCS5011
ASR9000 64-bit
NCS1002 w/ macsec
NCS 6000NCS5501
Поставляется
В разработке
NCS1002
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Обзор программной архитектуры
Cisco Connect 2017 10© 2017 Cisco and/or its affiliates. All rights reserved.
IOS-XR 6.X: Новая архитектура ПО
• На базе 64-bit OpenEmbedded Linux
• Поддерживаются контейнеры
• Стандартный инструментарийLinux
• Хостинг сторонних приложений
• NCS5500, NCS5000 и NCS1002 работают с 64-bit Linux версией XR 6
• ASR 9000 поддерживает 64-bit Linux режим с XR 6.1.1
• 32-bit QNX реализация продолжает поддерживаться
11
X86 Hardware
64 bit Linux
Control Admin
NPU
SystemAdmin
System
Control
Classic XR XR 6.X
32 bit QNX
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Виртуализация
12
• C XR 6, Admin plane и Control Plane
работают в изолированных окружениях
• ASR9000 использует виртуальные
машины (VM)
• NCS5000 и NCS5500 используют
контейнеры (LXC)
• Не отличаются по функциональности
• Используют один и тот же инструмент
(libvirsh) для виртуализации сервисов
• LXC ”легче” но не поддерживают ISSU
• VM “тяжелее” но поддерживают ISSU
X86 Hardware
Hypervisor
ASR9000
App
Lib
OS
…App
Lib
OS
Operating System
…App
Lib
App
Lib
X86 Hardware
Operating System
NCS5000-5500
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Зачем нужна виртуализация?
• LXC контейнеры и VM-ы обеспечивают абстракцию аппаратных ресурсов. Каждая копия (instance) имеет собственные
• сетевые интерфейсы
- могут быть bridged, routed...
• Файловую систему
- например: RedHat может хостить Debian контейнер или Ubuntu VM
• LXC контейнеры и VM-ы обеспечивают изоляцию между виртуальными копиями
• Безопасность
- Два контейнера или VM-а не могут навредить (даже видеть) друг друга
• Использование ресурсов
- Soft & Hard квоты для RAM, CPU, I/O могут использоваться для Контейнеров или VM
13Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
IOS-XR 6: Базовая ОС (Host OS)
• Выбран проект Yocto based 64-bit Open Embedded Linux kernel
• Дистрибутив от Windriver 7
• Основные функции базовой ОС:
• Прямая работа с аппартым уровнем
• Обеспечить функции ядра для LXC/VM
• Обеспечить библиотеки, инструменты и утилиты запуска, мониторинга и обслуживания контейнеров
• Обеспечить сетевую инфраструктуру для коммуникации контейнеров между собой
14
Routing Processor
64-bit Host OS
ControlPlane
Admin Plane
ThirdParty
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Контейнерная архитектура (NCS 5500 / 5000)
15
Routing Processor
64-bit Host OS
ControlPlane
Разработанные Cisco пакеты для сетевых
функций (BGP, MPLS и др.)
Yocto пакетыстандартных Linux
инструментов и библиотек
(bash, python, tcpdumpи др.)
Admin Plane
Выполняет процессы отвечающие за
системную диагностику, мониторинг переменных enviroment и управление
аппаратными компонентами.
Admin контейнер первым запускается
Host OS, он отвечает за запуск и управление
Control Plane LXC
ThirdParty
Выполняет любой 64-bit Linux дистрибутив.
Запускается из XR LXC контейнера используя
virsh и libvirtd.
Сетевой интерфейсдоступен в Global VRF Network Name Space.
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
Разработанные Cisco пакеты длясетевых функций(BGP, MPLS и др.)
Yocto пакетыстандартных Linux
инструментов и библиотек
(bash, python, tcpdump и др.)
ControlPlane
VM
Контейнерная архитектура (ASR9000)
16
Routing Processor
64-bit Host OS
Hypervisor
Выполняет любой 64-bit Linux
дистрибутив.Запускается из XR LXC
используя virsh иlibvirtd.
Сетевой интерфейсдоступен в Global VRF Network Name Space.
ThirdParty
LXC Выполняет процессы отвечающие за системную диагностику, мониторинг переменных enviroment и управление аппаратными
компонентами.
Admin VM первой запускается Гипервизором,
она отвечает за запуск и упр-е Control Plane VM
Admin Plane
VM
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
IOS-XR 6.X Boot Process - iPXE
• На всех NCS маршрутизаторах установлен UEFI 64-bit Firmware (BIOS)
• Поддерживается загрузка с USB или iPXE
17
• iPXE это open source загрузчик (boot firmware)
• Обратно совместим с PXE и включает ряд расширений:• загрузка с web сервера по HTTP
• управление процессом загрузки с помощью скрипта и меню
• поддержка DNS
• Процесс iPXE поддерживается на интерфейсах управления
• Поддерживает IPv4 и IPv6
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
IOS-XR 6.X Формат образа и процесс загрузки
• IOS-XR 6.X поставляется в виде загружаемого ISO образа
• Так же, как Linux дистрибутивы
• IOS-XR 6.X поддерживает Zero Touch Provisioning (ZTP) процесс
• Выполняется сразу после загрузки control-plane
• Выполняется в среде Shell (bash)
• Может использовать любой сетевой интерфейс IOS-XR
• Может выполнить скрипт или применить статическую конфигурацию
18Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved.
IOS-XR загрузка с iPXE
19© 2017 Cisco and/or its affiliates. All rights reserved.
HTTP SERVER
IP addressNext-server
Filename=http://<http-srv>/image-new.ISO
DHCP SERVER
Image-new.ISO
IP addressNext-server
Filename=http://<http-srv>/script-SN.shor
Filename=http://<http-srv>/config-SN.txt
script-SN.sh
config-SN.txt
Apply configuration
AdditionalScripts
Packages, etc…
XR Boot
AutoProvisionexecution
iPXEboot
XR Install
N
iPXE
Y
1
2
3
GET script-SN.sh or config-SN.txt4
GET addon scripts/packages/configuration5
Cisco Connect 2017
Execute script
Пример конфигурации наDHCP сервере
20© 2017 Cisco and/or its affiliates. All rights reserved.
host NCS5500-rp0 {
hardware ethernet e4:c7:22:be:10:ba;
fixed-address 192.168.0.10;
If exists user-class and option user-class = "iPXE" {
# Image request, provide ISO
filename "http://192.168.0.10/images/ncs5500-mini-x.iso-r6.1.1";
} elsif exists user-class and option user-class = "exr-config" {
# Auto-provision request, provide script or configuration
filename "http://192.168.0.10/scripts/ncs5500-rp0.sh";
}
}
DHCP option 77
DHCP option 67
DHCP option 77
DHCP option 67
Cisco Connect 2017
Гибкое пакетирование
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 21
Новый подход к инсталляции ПО
• Процесс установки ПО ”как на серверы”
• Разбитый на модули
• Обновление, Модернизация, Удаление
(update, upgrade, delete)
• Контроль зависимостей
(dependency management)
• Безопасность
• Поддержка репозитария
• Установка сторонних приложений
© 2017 Cisco and/or its affiliates. All rights reserved. 22
• RPM – RPM Package Manager
• YUM – Yellowdog Updater Modified
• Новые команды инсталляции
RPM: IOS-XR новый формат пакетов
• RPM Package Manager это новый формат пакетов начиная с IOS-XR 6.0.
• Пакеты помещаются в репозитарий (хранилище) и доступны поFTP/SFTP/SCP/TFTP или HTTP или выложены на box
• Пакеты сторонних производителей инсталлируются через RPM или YUM из Shell
• IOS-XR пакеты инсталлируются используя “install update/upgrade”
• “Install” команды вызывают YUM для поддержки много-архивности
• И YUM и “install” команды обеспечивают верификацию/разрешение зависимостей
© 2017 Cisco and/or its affiliates. All rights reserved. 23
Анатомия RPM Пакетов
24© 2017 Cisco and/or its affiliates. All rights reserved.
Archive
MetaData
Scriptlet
RPM
Описывают содержимое пакетаИнсталляциюЗависимости
Pre и Post инсталляционные инструкции
CPIO бинарный архив
/var/lib/rpm
База данных установленных пакетов
Принципы именования XR пакетов
25© 2017 Cisco and/or its affiliates. All rights reserved.
<name>-<version>-<release>.<architecture>.rpm
ncs5500-mgbl-1.0.0.0-r600.x86_64.rpm
SMU <name>-<version>-<release>.<defect>.<architecture>.rpm
ncs5500-mgbl-1.0.0.1-r600.CSCab12345.x86_64.rpm
Package
Major.Minor.Build.SMU
Platform
Release
XR Software
Репозитарий пакетов XR 6
26© 2017 Cisco and/or its affiliates. All rights reserved.
XR SMUs
Mini ISO+
Pkgs
Mini ISO+
k9 pkg+
Pkgs
Svc Pak
DDTS SMU
DDTS SMUs
ncs-5500-mpls-te-rsvp-2.2.0.0-r612.x86_64.rpm
ncs-5500-isis-1.1.0.0-r612.x86_64.rpm
ncs-5500-mcast-2.0.0.0-r612.x86_64.rpm
ncs-5500-k9sec-1.0.0.0-r612.x86_64.rpm
ncs-5500-mgbl-3.0.0.0-r612.x86_64.rpm
ncs-5500-mpls-2.1.0.0-r612.x86_64.rpm
ncs-5500-ospf-1.1.0.0-r612.x86_64.rpm
6.1.2
<REPO_ROOT>
ncs-5500-mini-x.iso-6.1.2
www.cisco.com Local Repository
ncs-5500-mgbl-3.0.0.1-r612.CSCab12345.x86_64.rpm
Full K9 ISO
Full ISOTAR
Модификация ISO: Golden ISO
27© 2017 Cisco and/or its affiliates. All rights reserved.
Boot ISO
Install PKG/SMUs
Reboot
Apply Configuration
Open ISO
Install PKG/SMUs
Apply Configuration
gisobuild.py
Golden ISO
iPXEUSBSystem Upgrade
Обновление XR Пакетовinstall update
28© 2017 Cisco and/or its affiliates. All rights reserved.
CLI команда Действие
install update source <repository> Если без параметров, то будут инсталлированыпоследние SMU для всех пакетов в системе
install update source <repository> ncs5500-mpls Если указано имя пакета, он будет установлен, включая все последние SMUдля него (с проверкой зависимостей)
install update source <repository> ncs5500-mpls-1.0.0.1-r611.CSCab12345.x86_64.rpm
Инсталляция SMU: указанный SMU будет загружен и установлен (включая зависимые SMU).
install update source <repository> ncs5500-mpls-1.0.2.0-r621.x86_64.rpm
Асинхронное обновление пакетов, только указанный пакет будет установлен из новой версии (включая зависимые SMU).Поддерживается начиная с XR 6.1.1
Модернизация XR Пакетовinstall upgrade
29© 2017 Cisco and/or its affiliates. All rights reserved.
CLI команда Действие
install upgrade source <repository> version 6.1.3 Модернизация базового пакета XR OS до указанной версии. Все установленные пакеты будут модернизированы до той же версии, что и базовый пакет
install upgrade source <repository> version 6.1.3 ncs5500-mpls-1.0.2.0-r611.x86_64.rpm
Выполнить install upgrade и install update для специфичного пакета одной командой
Асинхронное обновление
30© 2017 Cisco and/or its affiliates. All rights reserved.
• Устанавливает функциональные пакеты (т.к. BGP) независимо от версии XR
• Инсталлятор проверяет зависимости
Release 6.1.2 Base
BGP 6.1.2
OSPF 1.1.0.0
Release 6.1.2 Base
BGP 6.1.2
OSPF 1.2.0.0
OSPF 6.1.3 RPM
Release 6.1.2 Base
BGP 1.1.0.0
OSPF 1.2.0.0
BGP 6.1.3 RPM
BGP 1.1.0.0 RPM
OSPF 1.2.0.0 RPM
Release 6.1.2 Base
BGP 6.1.2
OSPF 6.1.1 RPM
OSPF 1.1.0.0 RPM Install
• Нет управления зависимостями
• Офлайн процесс копирования пакетов
• Требуется несколько операций
• install add
• install activate
• install commit
• Cisco Software Manager (CSM) для управления пакетами
• Управляет зависимостями
• Онлайн процесс с защищенным транспортом
• Единая операция
• install update или install upgrade
• On-box / Off-box инспекция пакетов, используя rpm tool
• Описание
• Зависимости
• Контент
PIE Install RPM Install
31© 2017 Cisco and/or its affiliates. All rights reserved.
Инсталляция и Обновление Пакетов Сторонних производителей
• Традиционные Linux инструменты доступные из Shell
• Сетевые: lighttpd ,openssh, wget, curl и др.
• Программирования: python, ruby, perl и др.
• Утилиты: sed, gawk, tar, gzip, vi и др.
• Дополнительные пакеты от внешних поставщиков (поддержка от поставщиков)
• Chef
• Puppet
• Инсталлируются используя yum или rpm
© 2017 Cisco and/or its affiliates. All rights reserved. 32
yum-config-manager --add-repo=http://192.168.0.254/XR/6.X.0yum install chef –y
Ansible, Puppet и Chef
33© 2017 Cisco and/or its affiliates. All rights reserved.
• Open Source инструменты с коммерческой поддержкой и расширениями
• Системы управления конфигурациями
• Поддерживают многократную реитерацию операции (idempotent)
• Описывают инфраструктуру как код
• Могут управляться с системами контроля версий (VCS), такими как git
• Изменения проверяются, распространяются, применяются и “откатываются”
гораздо проще, чем традиционными подходами
• Использует агент
• Использует для конфигурации Ruby based DSL скрипт
• Без агента
• Использует Python 2.7
• Соединяется по SSH
• Использует агент
• Использует для конфигурации подмножество Ruby
Хостинг приложений
Cisco Connect 2017 © 2017 Cisco and/or its affiliates. All rights reserved. 34
Хостинг приложений
35© 2017 Cisco and/or its affiliates. All rights reserved.
• Видны все XR процессы
• Видны все XR ресурсы
• Работает вместе с XR процессами• Нет изоляции
• Должны быть созданы дляWRL7 дистрибутива
• Нет прямой видимости XR процессов
• Нет прямой видимости XR ресурсов
• Работает в своем namespace• Изоляция
• Должны быть созданы дляLXC дистрибутива
Внутри Control Plane В отдельном Third Party LXC
ThirdParty
LXC
ThirdParty
ControlPlane
LXCVM/LXC
Global VRF Сетевой Name Space
36© 2017 Cisco and/or its affiliates. All rights reserved.
• Обеспечивает видимость интерфейсов подключенных к фабрике за пределами XR CLI
• Доступен для процессов внутри Control Plane илиThird Party контейнеров
• Требуется, чтобы интерфейсы были в состоянии ”up”
• Маршрутизацияобеспечивается XR Routing Processor
Control Plane Admin Plane Third Party App
Global-VRF
64-bit Host OSGlobal-VRF
Mgmt
Gig
TenGig
HunGig
Mgmt
Gig
TenGig
HunGig
Internal
IPC Interfaces
Global-VRF
Установка приложения в Third Party контейнер
37© 2017 Cisco and/or its affiliates. All rights reserved.
• Создаем контейнерный tar архив на Linux сервере
• Копируем полученный файл на маршрутизатор в /misc/app_host
• Распаковываем в директориюrootfs
• Создаем XML файл с параметрами LXC контейнера
• Запускаем команду virsh:Routing Processor
64-bit Host OS
ControlPlane
Admin Plane
ThirdParty
virsh create <XML File>
Deploy2 Launch3
TAR
1 Create
Server
Пример XML файла для LXC
38© 2017 Cisco and/or its affiliates. All rights reserved.
<domain type='lxc' xmlns:lxc='http://libvirt.org/schemas/domain/lxc/1.0'>
<name>xr-lxc-app</name>
<memory>327680</memory>
<os>
<type>exe</type>
<init>/sbin/init</init>
</os>
<lxc:namespace>
<sharenet type='netns' value='global-vrf'/>
</lxc:namespace>
<vcpu>1</vcpu>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/lib64/libvirt/libvirt_lxc</emulator>
<filesystem type='mount'>
<source dir='/misc/app_host/xr-lxc-app/'/>
<target dir='/'/>
</filesystem>
<console type='pty'/>
</devices>
</domain>
Пример
39© 2017 Cisco and/or its affiliates. All rights reserved.
rtr1
iPerf Session
• RTR1 и Linux хост используют Vagrant и Virtual Box• LXC контейнер установлен на RTR1 с Linux хоста• На RTR1 выполняется Ubuntu внутри LXC контейнера• iPerf выполняется внутри контейнера и создает сессию с Linux хостом
3rd Party LXC
ControlPlane
Admin Plane
https://xrdocs.github.io/application-hosting/tutorials/2016-07-09-pathchecker-iperf-netconf-for-ospf-path-failover/
Конфигурация, Мониторинг и Отладка
Cisco Connect 2017 40© 2017 Cisco and/or its affiliates. All rights reserved.
Encoding XML JSON GPB
Protocol NETCONF gRPCRESTCONF
Программный стек ориентированный на Модели Данных (Model-Driven)
41© 2017 Cisco and/or its affiliates. All rights reserved.
Models
APIs
Apps
Model-Driven APIsYANG Development Kit (YDK)
YANG Models(native, open)
App1 App2 App3
SSH HTTPTransport
Модель-ДанныхЗапроса
Модель с данными
Телеметрии
HTTP/2
Программная настройка используя Модели Данных (Data Models)
42© 2017 Cisco and/or its affiliates. All rights reserved.
• YANG: Язык описания Модели Данных
• Явно и детально описывает структуру, синтаксис и семантику данных…
• …это исключительно наглядно
• Консистентно и полно
• NETCONF, RESTCONF, GRPC: Протоколы
• Обеспечивают примитивы для чтения и изменения данных
• Кодирование данных в соответствии с моделью данных
Модели
Данных
Запрос
с Моделью
Данных
Протокол
Преимущества программируемости с Моделями Данных
• Модели и структуры удобны для компьютерной обработки
• Различные типы моделей (native, OpenConfig, IETF и др.)
• Модели независимы от транспорта, протокола и кодирования
• Выбор транспорта, протокола и кодирования
• API позволяет упростить работу и использовать абстракции
• Широкая поддержка стандартов, в тоже время с открытым кодом
© 2017 Cisco and/or its affiliates. All rights reserved. 43
Снижение операционных затрат
Введение в YANG
44© 2017 Cisco and/or its affiliates. All rights reserved.
Язык моделирования(изначально для NETCONF)
Основные типы узлов
Leaf – узел с именем и значением определенного типа (без вложений)
Leaf list – список Leaf-ов
Container – группа узлов, не имеет значения
List – Список с ключевым Leaf-ом
Leaf
Узел без значения
Узел имеющий значение
Leaf list
Container(grouping)
Container(presence)
List
key
Пример Модели Данных на YANG
45© 2017 Cisco and/or its affiliates. All rights reserved.
container community-sets {description “Container for community sets";list community-set {
key community-set-name;description "Definitions for community sets";leaf community-set-name {
type string;description "name of the community set";
}leaf-list community-member {
type string {pattern '([0-9]+:[0-9]+)';
}description "members of the community set";
}}
}
community-set CSET165172:1,65172:2,65172:3
end-set!community-set CSET1065172:10,65172:20,65172:30
end-set!
YANG CLI
Пример Модели Данных на JSON
46© 2017 Cisco and/or its affiliates. All rights reserved.
community-set CSET165172:1,65172:2,65172:3
end-set!community-set CSET1065172:10,65172:20,65172:30
end-set!
{ "community-sets": {"community-set": [
{ "community-set-name": "CSET1","community-member": [
"65172:1","65172:2","65172:3" ]
},{ "community-set-name": "CSET10",
"community-member": ["65172:10","65172:20","65172:30" ]
}]
}}
JSON CLI
YANG Модели для IOS-XR (Github)
47© 2017 Cisco and/or its affiliates. All rights reserved.
IOS XR ModelsXR models per release
XML
NETCONF
Протокол NETCONF
48© 2017 Cisco and/or its affiliates. All rights reserved.
• Богатая функциональность для управлениями конфигурациями и операционными данными
• Операции определены как RPC (request / reply) на XML
• Клиент/приложение инициирует запрос на Сервер/устройство
• Поддерживает running, candidate и startup конфигурации
• Согласовывает возможности (capability) в начале сессии YANG
SSH
Network Configuration Protocol (NETCONF)
49© 2017 Cisco and/or its affiliates. All rights reserved.
SSH Клиент
SSH
RPC вызовы разбиты на 4 группы методов: Retrieve, Configure, Copy и Delete.Могут быть реализованы дополнительные методы
Сетевое устройство
• NETCONF обеспечивает механизмы для инсталляции, изменения и удаления конфигурации устройства
• Использует XML для кодирование конфигурационных данных и сообщений самого протокола NETCONF
• Операции NETCONF протокола реализованы в виде RPC вызовов поверх SSH
Retrieve, Configure, Copy, and Delete
API работы с Моделями Данных
50© 2017 Cisco and/or its affiliates. All rights reserved.
• Упрощает разработку приложений
• Абстрагирует транспорт и кодирование
• API сгенерировано с YANGмоделей
• “Один к одному” соответствие между моделью и иерархией классов
• Мульти-язычное (Python, C++, Ruby, Go и др)
YANG ModelClass Hierarchy
(Python, C++, Ruby, Go)
Генерация API используяYANG Development Kit (YDK)
51© 2017 Cisco and/or its affiliates. All rights reserved.
YANGYANG
YANG
Data Models (YANG)
APIGenerator
DocsPython
C++
: :
Ruby
go
Docs
Docs
Docs
C♯ Docs
YDK-gen
YDK-PyYDK
YDK-CPP
Программный интерфейсна примере Netconf/YANG сценария
52© 2017 Cisco and/or its affiliates. All rights reserved.
SSHdXR
Programmatic Interface
SSHProxyServer
NETCONFAgent
YANGFramework SysDB
ClientLibrary
SysDB
BackendApps
ConfigurationManager
Защищенный транспорт
Ориентированный на соединения
Коммуникационная модель на RPC
Согласовывает возможности
Cisco gRPC
CLIJSON
YANG
HTTP/2
Обзор gRPC на Cisco IOS XR
53© 2017 Cisco and/or its affiliates. All rights reserved.
• Google RPC предоставляет общий (open source) RPC framework
• Определение интерфейса в Cisco IOS XR специфицирует работу устройства
• Функционально подмножествоNETCONF
• Простая разработка клиентов
• Высокопроизводительный
Традиционная модель мониторинга
54© 2017 Cisco and/or its affiliates. All rights reserved.
Более не подходит для масштабируемых Облачных инфраструктур
Доступ иизмерение
Где данные создаются Где данные нужны
syslog
SNMP
CLIХранение и аналитика
Большая нагрузка на бэк-офис
Нормализация форматов данных, кодирования, моделей данных,
меток времени
Streaming Telemetry Concepts
55© 2017 Cisco and/or its affiliates. All rights reserved.
Лучше подходит для масштабируемых Облачных инфраструктур
Доступ иизмерение
Хранение и аналитика
Объем: Большие массивы данныхСкорость: Анализ поточных данныхВариативность: Различные источники и форматы данных
Поточная Телеметрия
Push парадигма
Унифицированный метод доступа к статистике, операционным данным, событиям на всех уровнях
Производительность: 10 sec
Multiple encodings & Transport
Где данные создаются Где данные нужны
Поточная Телеметрия
56© 2017 Cisco and/or its affiliates. All rights reserved.
Подход к дизайну
• Получить от устройства максимум данных, как можно быстрееПроизводительность
• Предоставляет доступ ко всей операционной статистике на устройстве*Охват
• Гибко формирует поток данных, в удобном для приложений клиента видеАвтоматизация
*Зависит от уровня privilege присвоенного пользователю
Телеметрия
• Язык описания обобщенных моделей
• Описывает структуру и атрибуты собираемых данных
• Цель использовать YANG (6.1.1)
• 6.0.0 и 6.0.1 использовали экспериментальный SysDB name space
• Push модель
• Поточно передавать данные с инкрементальными обновлениями по подписке
• Передача данных
• JSON (compressed) inside TCP
• Google Protocol Buffer inside UDP
• Google Protocol Buffer inside gRPC (6.1.1)
• Отслеживать состояния сети через временные метки поточно передаваемых данных
© 2017 Cisco and/or its affiliates. All rights reserved. 57
Модель поточной Телеметрии
• Настройка Телеметрии• Определяем одну или несколько групп
подписки (subscription group)
• Каждая группа подписки содержит частоту (rate) и указатель на одну или несколькоYANG моделей
• Задаем кодирование, транспорт и получателя для каждой группы подписки
• Агент Телеметрии• Это XR процесс который работает
автоматически и выполняет зарегистрированные сенсоры
© 2017 Cisco and/or its affiliates. All rights reserved. 58
XR Control Plane
Host OS
TelemetryAgent
YANGSysDB
TelemetryReceiver
TelemetryConfiguration
Policy-based Telemetry
Model-driven Telemetry (MDT)
Пример настройки Телеметрии с Моделями Данных
telemetry model-drivendestination-group DGroup1address family ipv4 10.60.19.8 port 2104encoding self-describing-gpbprotocol tcp
!sensor-group SGroup1sensor-path Cisco-IOS-XR-infra-statsd-oper:infra-statistics/interfaces/interface/latest/generic-counters
!subscription Sub1sensor-group-id SGroup1 sample-interval 10000destination-id DGroup1
© 2017 Cisco and/or its affiliates. All rights reserved. 59
Куда и как отправить
Какие Данные собирать
Как часто
Используем gRPC сGPB кодированием
YANG Модель
Заключение
Cisco Connect 2017 60© 2017 Cisco and/or its affiliates. All rights reserved.
Краткий итог
• Никаких изменений в CLI с переходом на IOS-XR 6.X
• 6.X доступен на NCS5500, NCS5000 и NCS1000 платформах
• С 6.1.1 поддерживается ASR9000 (традиционная 32-bit QNX версия XR
продолжает поддерживаться)
• Операционные расширения для автоматизации управления
• Операционная система включает Open Source инструменты
© 2017 Cisco and/or its affiliates. All rights reserved. 61
Полезные ссылки
62© 2017 Cisco and/or its affiliates. All rights reserved.
IOS-XR Documentation, Blogs, Tutorials and more : https://xrdocs.github.io/
IOS-XR YANG Models: https://git.io/vg7fk YANG Developer Kit: http://ydk.cisco.com/py/docs/
Getting Started With OpenConfig in Cisco IOS XR: https://git.io/vg7vF
Getting Started With gRPC in Cisco IOS XR: https://git.io/vg7vP
IOS-XR Ansible: https://github.com/ios-xr/iosxr-ansible
IOS-XR Puppet: https://docs.puppet.com/pe/latest/install_iosxr.html
IOS-XR Chef: https://downloads.chef.io/chef-client/iosxr/
• Cisco IOS XR 6.0 Software Management Lab v1: https://dcloud-cms.cisco.com/demo/cisco-ios-xr-software-management-lab-v1
• Cisco IOS XR 6.0 Application Hosting Lab v1: https://dcloud-cms.cisco.com/demo/cisco-ios-xr-6-0-application-hosting-lab-v1
• Cisco IOS XR 6.0 End-to-End Automation Lab v1: https://dcloud-cms.cisco.com/demo/cisco-ios-xr-6-0-end-to-end-automation-lab-v1
Q & AВопросы и ответы…
Cisco Connect 2017 63© 2017 Cisco and/or its affiliates. All rights reserved.
#CiscoConnectRu#CiscoConnectRu
Спасибо за внимание!Оцените данную сессию в мобильном приложении конференции
Контакты:
Тел.: +7 495 9611410www.cisco.com
www.facebook.com/CiscoRu
www.vk.com/cisco
www.instagram.com/ciscoru
www.youtube.com/user/CiscoRussiaMedia
© 2017 Cisco and/or its affiliates. All rights reserved.