Cisco Connect€¦ · • Основные функции базовой ОС: • Прямая...

Post on 04-Jul-2020

14 views 0 download

Transcript of Cisco Connect€¦ · • Основные функции базовой ОС: • Прямая...

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.