SlideShare a Scribd company logo
1 of 72
Download to read offline
Хаванкин Максим
cистемный архитектор, CCIE
mkhavank@cisco.com
Мастер-класс по использованию программных интерфейсов
для управления инфраструктурой ЦОД
Программные интерфейсы управления (API) архитектурой,
ориентированной на приложения (ACI)
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.
Содержание
•  Несколько слов об API
•  Объектная модель ACI
•  Использование REST API для управления APIC
•  Cobra SDK
•  Arya – генератор кода на Python
•  ACI toolkit
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.2
Что представляет собой ACI?
ACI фабрика
Неблокируемая фабрика на базе оверлеев
App DBWeb
Внешняя сеть
передачи данных
(Tenant VRF)
QoS
Filter
QoSQoS
Filter
Application Policy
Infrastructure
Controller
APIC
1. Профиль
приложения
2. Кластер
контроллеров
3. Cеть на базе
Nexus 9000
Service
Filter
ServiceСеть ЦОД на базе коммутаторов
Nexus 9000 с централизованным
управлением при помощи
контроллера на основе политик
Несколько слов об API
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.4
API на уровне устройства
•  NETCONF
•  REST
•  JSON-RPC
Высокоуровневые абстракции и DevOps
•  Puppet
•  Chef
•  Openstack
Новые инструменты для настройки сетевых устройств
REST использует знакомую модель
HTTP GET
HTML
Описывает как
данные
отображаются
пользователю
HTTP GET
JSON/XML
Описывают данные в
формате, который
понятен приложению
{"ids":[303776224, 19449911, 607032789,
86544242, 2506725913, 17631389],
"next_cursor":0, "next_cursor_str":"0",
"previous_cursor":0,
"previous_cursor_str":"0"}
Web серфинг REST API Twitter: IDs of last five followers
JSON-RPC: выглядит как REST, но немного по другому
Одинаково: оба пересылают/принимают JSON поверх HTTP
REST (CSR 1000v) JSON-RPC (N9K NX-API)
REST: много ресурсов
•  https://172.6.1.118/api/v1…
…/global/banner
…/global/hostname
…/global/reload
…/interfaces/…
…/routing-svc/…
…/nat-svc/…
…/acl/…
…
JSON-RPC: мало ресурсов
•  https://10.10.10.8/ins
Разное: Ресурсы (URI)
CSR1kV N9K
REST: стандартные HTTP
методы
•  GET: Retrieve/List
•  PUT: Replace
•  POST: Create New Entry
•  DELETE: Delete
JSON-RPC: POST + body method
Разное: методы
Объектная модель ACI
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.11
Объектная модель ACI
•  В модели находятся все объекты о
которых знает APIC контроллер
§  Network, Compute, Application, и т.д.
•  Management Information Tree (MIT):
объекты сгруппированы в виде
дерева
•  MIT имеет разные ветки (distinct
branches) для разных
функциональных областей
•  Каждый узел (node) это
управляемый объект:
§  имеет class & distinguished name
12
topRoot
polUni compUni
Конфигурация сети как набор объектов
Конфигурация представляет собой
упорядоченный набор объектов
… которые имеют ссылки друг на друга
Root
Policy
Universe
Tenants
Application
s
Infra
VLANs
Fabric
Nodes
Virtual
Network
Hypervisors
13
Tenant
VRF VRF
Bridge
Domain 1
10.1.0.1/24
Bridge
Domain 2
10.2.0.1/24
Bridge
Domain 1
Уникальное имя (distinguished name = dn)
•  DN используется как глобальный уникальный идентификатор для каждого объекта
в дереве MIT
•  Представляет собой relative name (RN) к которому приставляется слева
родительское RN (parent RN)
•  Правила именования RN зависят от объекта управления
§  детали в документации
14
topRoot
polUni fvTenant
fvAp fvAEPg
vzFilter vzEntry
vzBrCP vzSubj
fabricTopology fabricPod
fabricPathEpCont fabricPathEp
fabricNode
vmmProvP vmmDomP vmmCtrlrP
Пример:
uni/tn-tenant/ap-app1/epg-epg1
Пример:
topology/pod-1/paths-101/pathep-[eth1/1]
Программные интерфейсы ACI
•  Northbound API дают возможность
управлять контроллером из
внешних систем
•  Northbound API
§  Native REST API
§  Python SDK (“Cobra”)
•  Southbound API применяются для
управления устройствами
подключаемыми к фабрике
•  Southbound API
§  L4-7 Device Packages
§  OpFlex
15
Системы
управления
Скрипты
APIC
REST
МСЭ Коммутатор
OpFlex
APIC
Dev Pkg
REST – единственный интерфейс
16
GUI
CLI
Web
браузер
API Tools
Object
Browser
(visore)
APIC кластер +
Leaves & Spines
R
E
S
T
Python
SDK
Использование REST API для управления APIC
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.17
REST API: поддерживаемые методы
•  Поддерживаются стандартные
методы
•  Stateless
§  No state for requests or
sessions
•  HTTP1.1 / HTTPS (default)
•  Обрабатываются любым
APIC в кластере
•  Доступ к коммутаторам
через APIC
18
Метод Действие
GET Read
POST Create / Update
DELETE Delete
•  Формат XML или JSON
–  определяется расширением в URI
–  Content-Type и Accept header игнорируются
REST API: операции чтения
19
/api
API
Operator
/{mo|class}
Определение
объекта или
класса
/{dn|classname}
Distinguished
name или
Object Class
.{xml|json}
Тип ответа xml
или json
?[options]
Фильтры,
селекторы или
модификаторы
запроса
host:port
APIC хост
и порт
http(s)://
http или
https
Получение информации об объекте по его имени (DN)
•  Чтение свойств EPG
20
<imdata totalCount="1">
<fvAEPg childAction="" configIssues="" configSt="applied" descr=""
dn="uni/tn-Cisco/ap-Software/epg-Download" lcOwn="local"
matchT="AtleastOne" modTs="2015-05-23T22:19:21.173+00:00" monPolDn="uni/
tn-common/monepg-default" name="Download" pcTag="49189"
prio="unspecified" scope="2293760" status="" triggerSt="triggerable"
uid="0"/>
</imdata>
http://apic/api/mo/uni/tn-Cisco/ap-Software/epg-Download.xml
Поиск информации по имени класса
•  Получение L1 свойств всех физических интерфейсов
21
<imdata totalCount="1134">
<l1PhysIf adminSt="up" autoNeg="on" bw="0" childAction="" delay="1" descr=""
dn="topology/pod-1/node-102/sys/phys-[eth1/32]" dot1qEtherType="0x8100"
ethpmCfgFailedBmp="" ethpmCfgFailedTs="00:00:00:00.000" ethpmCfgState="0"
id="eth1/32" inhBw="unspecified" layer="Layer2" lcOwn="local" linkDebounce="100"
linkLog="default" mdix="auto" medium="broadcast"
modTs="2015-06-03T22:07:10.513+00:00" mode="trunk" monPolDn="uni/infra/moninfra-
default" mtu="9000" name="" portT="leaf" routerMac="not-applicable"
snmpTrapSt="enable" spanMode="not-a-span-dest" speed="10G" status=""
switchingSt="disabled" trunkLog="default" usage="discovery"/>
…
</imdata>
http://apic/api/class/l1PhysIf.xml?query-target-filter=eq(l1PhysIf.speed,"10G")
Получение всех свойств объекта
•  Чтение всех свойств объекта (subtree=агдд)
22
<imdata totalCount="1">
<compVm cfgdOs="Ubuntu Linux (32-bit)" childAction="" descr="" dn="comp/prov-
VMware/ctrlr-[vc-1]-vCenter_1/vm-vm-1001" guid="5024a300-1fde-aa80-72d4-7c33ef63a688"
id="0" lcOwn="local" modTs="2015-06-05T17:04:04.471+00:00" monPolDn=""
name="32bit_Ubuntu" oid="vm-1001" os="" state="poweredOn" status="" type="virt">
<compVNic adapterType="Vmxnet3" addressType="assigned" childAction="" descr=""
guid="" id="0" ip="0.0.0.0" lcOwn="local" mac="00:50:56:A4:D0:D0"
modTs="2015-06-05T17:04:04.471+00:00" monPolDn="" name="Network adapter 1" oid="4000"
operSt="up" rn="vnic-00:50:56:A4:D0:D0" status="" type="virt"/>
<compRsHv childAction="" forceResolve="no" lcOwn="local"
modTs="2015-06-04T22:39:08.435+00:00" rType="mo" rn="rshv-[comp/prov-VMware/ctrlr-
[vc-1]-vCenter_1/hv-host-12]" state="formed" stateQual="none" status="" tCl="compHv"
tDn="comp/prov-VMware/ctrlr-[vc-1]-vCenter_1/hv-host-12" tType="mo"/>
</compVm>
</imdata>
http://apic/api/mo/comp/prov-VMware/ctrlr-[vc-1]-vCenter_1/vm-vm-1001.xml?rsp-subtree=full
Атрибут subtree query установлен в значение
"full" для получения всех связанных объектов
target Dn содержит ссылку на другой объект –
в этом примере – гипервизор чтобы получить
больше информации об объекте
REST API: операции Create/Update
/api /mo /dn .{xml|json} ?[options]host:porthttp(s)://
<fvTenant name="NewTenant">
<fvAp name="NewApplication">
<fvAEPg name="WebTier">
<fvRsPathAtt encap="vlan-1" mode="regular"
tDn="topology/pod-1/paths-17/pathep-[eth1/1]"/>
</fvAEPg>
</fvAp>
</fvTenant>
В теле запроса (payload) в виде XML/JSON на APIС передается команда
23
Object Browser: Visore
•  Встроенный в APIC браузер для
поиска объектов и проверки их
состояния и свойств
•  Ссылка на Visore: http://<apic>/
visore.html
•  Поиск объекта по его dn
(fvTenant, topSystem, topology/
pod-1/node-101)
24
Sniffer: API Inspector
•  API вызовы, которые
выполняются при действиях в
GUI мониторятся
§  GET, POST
•  Команды навигации и GET-
вызовы которые выполняются в
фоновом режиме
•  При изменении конфигурации
можно увидеть POST вызовы
которые выполняются в
фоновом режиме
25
Результат работы API инспектора
26
POST
url: http://172.23.3.215/api/node/mo/uni/tn-Cisco.json
{
"fvTenant": {
"attributes": {
"name": "Cisco",
"status": "created"
},
"children": []
}
}
Cobra SDK
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.27
SDK и документация
•  Доступен на APIC*:
§  https://<apic>/cobra
•  Доступен на DevNet
§  https://developer.cisco.com/site/apic-
dc/
§  Downloads -> Python Egg Files
•  Потребуется использовать
Management Information Model
§  https://developer.cisco.com/media/
mim-ref/ или https://<apic>/doc/html
•  Python SDK документация
§  https://developer.cisco.com/site/apic-
dc/documents/pythonapi or
§  https://<apic>/cobra
•  APIC REST API User Guide
§  http://www.cisco.com/c/en/us/td/docs/
switches/datacenter/aci/apic/sw/1-x/
api/rest/
b_APIC_RESTful_API_User_Guide.ht
ml
28
*http://cs.co/9006xDw6
Установка сессии
•  REST
•  Login с использованием username
и password в payload
§  POST /api/mo/aaaLogin.xml
§  <aaaUser name='admin' pwd='insieme'/>
•  В заголовке ответа находится
“APIC-cookie”
§  Сохранить и использовать в
последующих запросах
Cobra
import cobra.mit.access
import cobra.mit.session
ls = cobra.mit.session.LoginSession(
'https://apic', 'admin', 'insieme')
md = cobra.mit.access.MoDirectory(ls)
md.login()
md содержит ссылку на сессию на
APIC контроллер
29
Примеры простых запросов
REST
Запрос информации обо всех endpoint
(подключенные к фабрике физические
и виртуальные сущности)
GET /api/class/fvCEp.xml
<?xml?><imdata><fvCEp dn="uni/tn-Cisco/ap-
Blog/epg-MySQL/cep-00:50:56:82:D2:FE"
encap="vlan-501" id="0" ip="0.0.0.0"
lcC="vmm" lcOwn="local"
mac="00:50:56:82:D2:FE" mcastAddr="not-
applicable" name="00:50:56:82:D2:FE” uid="0"/
></imdata>
Парсинг результата в виде XML и
последующая обработка
Cobra
Использование метода “lookupByClass”
для поиска всех endpoints (fvCEp)
endpoints = md.lookupByClass('fvCEp')
print([str(ep.dn) for ep in endpoints])
['uni/tn-Cisco/ap-Blog/epg-MySQL/
cep-00:50:56:82:D2:FE', 'uni/tn-Cisco/ap-Blog/
epg-MySQL/cep-00:50:56:82:C3:D0']
30
Tip: To inspect http requests use debuglevel on
httplib:
import httplib
httplib.HTTPConnection.debuglevel = 1
Query Filters in Cobra
Built in helpers .lookupByClass and .lookupByDn use .query under the covers
For advanced queries, you can use .query directly
In this example, we recursively print a full subtree for all endpoints
def printtree(mos, indent=0):
for mo in mos:
print ' ' * indent, str(mo.meta.className)
printtree(mo.children, indent=indent+2)
cq = cobra.mit.access.ClassQuery('fvCEp')
cq.subtree = 'full'
endpoints = md.query(cq)
printtree(endpoints)
>>> printtree(endpoints)
cobra.model.fv.CEp
cobra.model.fv.RsNic
cobra.model.fv.RsVm
cobra.model.fv.RsCEpToPathEp
cobra.model.fv.RsHyper
cobra.model.fv.ReportingNode
31
Фильтры для запросов
32
•  Более эффективно, возвращается меньшее число объектов
•  Фильтрация ответа, по определенным критериям condition(s):
§  Синтаксис: http://URI?condition[&condition[&...]]	
Тип фильтра Синтаксис Cobra Query Property Описание
query-target {self | children | subtree} AbstractQuery.queryTarget Define the scope of query
target-subtree-class <class name> AbstractQuery.classFilter Respond only elements including specified class
query-target-filter <filter expressions> AbstractQuery.propFilter Respond only elements matching conditions
rsp-subtree {no | children | full} AbstractQuery.subtree specifies child object level included in the response
rsp-subtree-class <class name> AbstractQuery.subtreeClassFilter Respond only specified classes
rsp-subtree-filter <filter expressions> AbstractQuery.subtreePropFilter (>1.0.2m) Respond only classes matching conditions
rsp-subtree-include {faults	|	health	:stats	:	…} AbstractQuery.subtreeInclude Request additional objects
order-by <classname.property>| {asc | desc} NotImplemented Sort the response based on the property values
Подтверждение изменений в конфигурации
REST
Создание нового тенанта
POST /api/mo/uni.xml
<fvTenant name="Cisco"/>
Cobra
Создать объект и подтвердить
внесение изменений
33
Совет: To get the configured XML body for the object
you've created/modified, add the rsp-include query
parameter:
POST /api/mo/uni.xml?rsp-subtree=modified
topMo = cobra.model.pol.Uni('')
fvTenant = cobra.model.fv.Tenant(topMo, name='Cisco')
c = cobra.mit.request.ConfigRequest()
c.addMo(fvTenant)
md.commit(c)
Еще один совет: Disable the annoying Requests Insecure
Warning. Put this at the top of your script:
import requests.packages.urllib3
requests.packages.urllib3.disable_warnings()
Arya – генератор кода на Python
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.34
APIC REST to Python Adapter: arya.py
•  GUI генерирует REST
•  API Inspector отображает
REST
•  arya.py создает код из
REST
•  Автоматическая
генерация кода
•  Доступно
§  http://github.com/datacenter/
arya
XML/
JSON
arya.py
Python
code
{"fvTenant":{"attributes":{"dn":"uni/tn-
Cisco","name":"Cisco","rn":"tn-
Cisco","status":"created"},"children":[{"fvBD":
{"attributes":{"dn":"uni/tn-Cisco/BD-
CiscoBd","mac":"00:22:BD:F8:19:FF","name":"CiscoBd","rn":"
BD-CiscoBd","status":"created"},"children":[{"fvRsCtx":
{"attributes":
{"tnFvCtxName":"CiscoNetwork","status":"created,modified"}
,"children":[]}},{"fvSubnet":{"attributes":{"dn":"uni/tn-
Cisco/BD-CiscoBd/subnet-
[10.0.0.1/8]","ip":"10.0.0.1/8","rn":"subnet-
[10.0.0.1/8]","status":"created"},"children":[]}}]}},
{"fvCtx":{"attributes":{"dn":"uni/tn-Cisco/ctx-
CiscoNetwork","name":"CiscoNetwork","rn":"ctx-
CiscoNetwork","status":"created"},"children":[]}}]}}
fvTenant = cobra.model.fv.Tenant(topMo, name='Cisco')
fvCtx = cobra.model.fv.Ctx(fvTenant, name='CiscoNetwork')
fvBD = cobra.model.fv.BD(fvTenant,
mac='00:22:BD:F8:19:FF', name='CiscoBd')
fvRsCtx = cobra.model.fv.RsCtx(fvBD,
tnFvCtxName=fvCtx.name)
fvSubnet = cobra.model.fv.Subnet(fvBD, ip='10.0.0.1/8')
35
Использование arya (1/2)
Получение конфигурации,
которую нужно превратить в
код
1.  Right-click –> save XML
2.  Использовать API
inspector
3.  Запрос конфигурации из
APIC при помощи REST
36
Выберите "only configuration" и
"subtree"
Использование arya (2/2)
# arya.py -f accportprof-vm-vpc10.xml
37
#!/usr/bin/env python
'''
Autogenerated code using arya.py
Original Object Document Input:
<?xml version="1.0" encoding="UTF-8"?><imdata totalCount="1"><infraAccPortP descr="" dn="uni/infra/accportprof-vm-vpc10" name="vm-vpc10" ownerKey="" ownerTag=""><infraHPortS descr="" name="vm-vpc10" ownerKey=""
ownerTag="" type="range"><infraRsAccBaseGrp fexId="101" tDn="uni/infra/funcprof/accbundle-vm-vpc10"/><infraPortBlk descr="" fromCard="1" fromPort="10" name="block1" toCard="1" toPort="10"/></infraHPortS></
infraAccPortP></imdata>
'''
raise RuntimeError('Please review the auto generated code before ' +
'executing the output. Some placeholders will ' +
'need to be changed')
# list of packages that should be imported for this code to work
import cobra.mit.access
import cobra.mit.request
import cobra.mit.session
import cobra.model.infra
import cobra.model.pol
from cobra.internal.codec.xmlcodec import toXMLStr
# log into an APIC and create a directory object
ls = cobra.mit.session.LoginSession('https://1.1.1.1', 'admin', 'password')
md = cobra.mit.access.MoDirectory(ls)
md.login()
# the top level object on which operations will be made
polUni = cobra.model.pol.Uni('')
infraInfra = cobra.model.infra.Infra(polUni)
# build the request using cobra syntax
infraAccPortP = cobra.model.infra.AccPortP(infraInfra, ownerKey='', name='vm-vpc10', descr='', ownerTag='')
infraHPortS = cobra.model.infra.HPortS(infraAccPortP, ownerKey='', type='range', name='vm-vpc10', descr='', ownerTag='')
infraRsAccBaseGrp = cobra.model.infra.RsAccBaseGrp(infraHPortS, fexId='101', tDn='uni/infra/funcprof/accbundle-vm-vpc10')
infraPortBlk = cobra.model.infra.PortBlk(infraHPortS, name='block1', descr='', fromPort='10', fromCard='1', toPort='10', toCard='1')
# commit the generated code to APIC
print toXMLStr(infraInfra)
c = cobra.mit.request.ConfigRequest()
c.addMo(infraInfra)
md.commit(c)
Готовый Cobra script
для создания
профиля vPC
Остается добавить APIC IP и
credentials а так же удалить
предупреждение о том что
код без проверки запускать
нельзя
ACI toolkit
Программируемость и ACI
39
ACI предоставляет:
REST API
Полностью открытая модель объектов
Доступ при помощи JSON или XML
Python SDK для доступа к объектам
Но….
Существенные затраты на обучение
§  5000+ классов
§  Новые концепции
Почему появился ACI Toolkit?
41
Снижение входного барьера
Адресовать 80% сценариев использования
Дать примеры скриптов конечным
Заказчикам
Ускорить процесс перехода на ACI
Инфраструктура как код!
https://github.com/datacenter/acitoolkit
http://datacenter.github.io/acitoolkit/
Cisco ACI Toolkit
42
ACI Toolkit
CLI интерфейс: network, security, cloud, application
APIC
ACI Toolkit
NX-OS like
CLI
Custom
Python Scripts
•  Основан на открытых APIC API
•  Скрипты, написаны при помощи
Toolkit просто создавать и
редактировать
•  Пока нет полной функциональности,
наиболее часто используемые
операции
•  Фокус в основном на конфигурацию
Tenant
Context /
VRF
Subnet
Bridge
Domain
Outside
EPG
EPG
App. Profile
TabooContract
Filter Entry
L3 Interface
L2 InterfaceInterface
Node
Link
POD
1
**
1
* *1
1
* *
***
*
Provide /
Consume
1
* *
*
*
*
1 1
* *
1
*
Provide /
Consume
*
*
1
1
*
1
1
1
1
1
1
*
1
*
1
2
1
*
1
*
1
*
NetworkPhysical Policy
Jan/2015
ACI Toolkit
Модель политик
Скрипты
Очень просто начать процесс разработки
и отладки
Приложение «CLI»
Эмуляция NX-OS CLI полностью
написаная на Python
Использует возможности toolkit
Знакомый интерфейс для сетевого
инженера
Фокус на задачах поддержки
§  show epg
§  shutdown / no shutdown на interface
Приложение «Cable Plan»
47
Дает возможность импортировать
существующий кабельный план :
§  XML файла
§  APIC
Выполнить экспорт и сравнение
загруженных ранее кабельных
планов
Advanced use can build cable plan
XML file, query, and modify cable plan
Приложение «ACI Endpoint Tracker»
Отслеживает подключение и историю
перемещений оконечных
Сохраняет данные в open source MySQL
Database, давая возможность выполнять
собственные запросы
Основа для средств визуализации
Помогает ответить на следующие вопросв:
§  Какие Endpoint подключены к сети?
§  Куда подключен определенный
Endpoint?
§  Кто был подключен в прошлый
Четверг между 3:30am и 4:00am?
§  История перемещения
определенного Endpoint?
48
VMware vCenter Plugin View
49
VMware vCenter Plugin View
50
Создание профиля приложения
Hello_world J
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.51
Создание профиля приложения
Tenant - контейнер для хранения сетевых свойств приложений
Tenant: Hello_Connect
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.53
Пример создания объекта “Tenant”
Название
Создание профиля приложения
Логическая модель: private network, как набор изолированных сетевых сегментов, или VRF
Tenant: Hello_Connect
VRF: VRF_INSIDE
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.55
Пример создания объекта “VRF”
Добавляем VRF
Название VRF
Режим реализации
политик
Удобно переключиться в режим
«Unenforced» во время откладки
контрактов между EPG
Создание профиля приложения
Bridge Domain логическая конструкция обозначающая границы L2-сегмента
Bridge Domain: 10.0.0.1_255.255.255.0
Tenant: Hello_Connect
VRF: VRF_INSIDE
Новая концепция: Bridge Domain
Bridge Domain - логическая
конструкция
представляющая L2-сегмент
передачи данных внутри
фабрики
Один или несколько EPG
могут быть ассоциированы с
одним BD
Можно «превратить» в
аналог VLAN:
1.  Влючить flood для L2
unknown unicast
2.  Включить ARP Flooding
Название BD удобно сделать
«говорящим», например
использовать для этого адрес
и маску подсети
Создание профиля приложения
Знакомая концепция: подсети – primary/secondary IP адреса на SVI-интерфейсах
Bridge Domain: 10.0.0.1_255.255.255.0
Tenant: Hello_Connect
VRF: VRF_INSIDE
Secondary
10.1.1.x/24
Primary
10.0.0.x/24
interface vlan123
ip address 10.0.0.1 255.255.255.0
ip address 10.1.1.1 255.255.255.0 secondary
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.59
Настройка подсети
Адрес шлюза
по умолчанию
для подсети
Область
видимости
Новая концепция: профиль приложения
§  Сетевой профиль приложения представляет собой набор EPG и политик,
которые определяют правила взаимоотношений между группами
Inbound/Outbound политики
Сетевой Профиль Приложения
Inbound/Outbound политики
EPG A
Service A
Service A
Service A
Service A
Service B
Service B
Service B
Service B
EPG B
Service C
Service C
Service C
Service C
Service C Service C
EPG C
Service D
Service E
Service D
Service E
Создание профиля приложения
Сетевой профиль ANP содержит один или несколько EPG
Bridge Domain: 10.0.0.1_255.255.255.0
Tenant: Hello_Connect
VRF: VRF_INSIDE
vPC_to_UCS_a
vlan-10
vPC_to_UCS_b
vlan-10
EPG: db
Security Zone
vPC_to_UCS_a
vlan-20
vPC_to_UCS_b
vlan-20
EPG: app
Security Zone
ANP: Hello_world Нет контрактов = нет передачи данных
vPC_to_UCS_a
vlan-30
vPC_to_UCS_b
vlan-30
EPG: web
Security Zone
Secondary
10.1.1.x/24
Primary
10.0.0.x/24
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.62
Создание профиля приложения
Название
профиля
приложения
Мастер
создания EPG Мастер создания контрактов –
активируется после создания EPG
Новая концепция: EPG
63
Ø  Интерфейс, при помощи которого конечное
устройство подключается к сети
Ø  Имеет адрес (identity), местоположения, атрибуты
(version, patch level)
Ø  Может быть физическим или виртуальным
Примеры:
§  End Point Group (EPG) определяются при помощи:
—  Физический портов (leaf или FEX)
—  Логический порт (VM port group)
—  VLAN ID
—  VXLAN (VNID)
—  IP адрес (применимо ко внешним подключениям external/border leaf)
—  IP Prefix/Subnet (применимо ко внешним подключениям external/border leaf)
—  Атрибуты виртуальных машин (план)
Сервер
Виртуальные машины
или контейнеры
СХД
Клиенты
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.64
Создание EPG
Название EPG
Ассоциация с BD
(помещение EPG
в L2-сегмент)
Ассоциация c
VMM-доменом
(создание
портовых групп
на DVS)
Ассоциация c физическими
портами/Port-channel/vPC для
невиртуализированной
нагрузки
Золотое правило EPG
•  Если есть EPG, значит должен
быть и контракт!
•  Данные между EPG без контракта
который явно это разрешает не
передаются
•  Это касается
•  Трафика между EPG в одном
ANP
•  Трафика между EPG разных
ANP
•  L2 OUT EPG
•  L3 OUT EPG
•  и т.д. и т.п.
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.65
Новая концепция: контракт
Subject	-	это	комбинация	
следующих	действий	c	
трафиком	-	фильтрация,	
передача	через	Service	
Graph	и	QoS-
приоритезация		
Контракты	
определяют	
правила	
взаимодействия	
между		EPG	
Filter | L4-L7| QoSSubject
TCP Port 80
Фильтр
Service Graph
L4-L7 сервис
QoS Priority
QoS
Контракт	1	
	
Subject 1
Subject 2
Subject 3
Создание профиля приложения
Контракты необходимы для управления передачей данных между EPG
Bridge Domain: 10.0.0.1_255.255.255.0
Tenant: Hello_Connect
VRF: VRF_INSIDE
vPC_to_UCS_a
vlan-30
vPC_to_UCS_b
vlan-30
EPG: app
Контакт = передача данныхANP: Hello_world
vPC_to_UCS_a
vlan-10
vPC_to_UCS_b
vlan-10
EPG: db
192.168.10.13 192.168.10.12
Secondary
10.1.1.x/24
Primary
10.0.0.x/24
192.168.10.11 192.168.10.10
Нет контракта = нет передачи данных
Контакт = передача данных
vPC_to_UCS_a
vlan-30
vPC_to_UCS_b
vlan-30
EPG: web
Security Zone
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.68
Создание контракта
Название
контракта
Фильтр
Ссылка на сервисную
цепочку
Класс качества
обслуживания
Создание профиля приложения
23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.69
Применение контракта к EPG
Источник/Source/Provider	 Получатель/Desanaaon/Consumer
Tenant: Hello_Connect
Создание профиля приложения
Картина целиком
Bridge Domain: 10.0.0.1_255.255.255.0
Гипервизор
(стоечные сервера)
Гипервизор
(Cisco UCS)
Физические
сервера БД
L2+L3 сеть L4-L7 устройства
ANP: Hello_world
vPC_to_UCS_a
vlan-30
vPC_to_UCS_b
vlan-30
EPG: web
Security Zone
vPC_to_UCS_a
vlan-30
vPC_to_UCS_b
vlan-30
EPG: app
Контакт = передача данных
Primary
10.0.0.1/24
vPC_to_UCS_a
vlan-10
vPC_to_UCS_b
vlan-10
EPG: db
Контакт = передача данных
CiscoRu Cisco CiscoRussia
Ждем ваших сообщений с хештегом
#CiscoConnectRu
CiscoRu
Спасибо
Хаванкин Максим
cистемный архитектор, CCIE
mkhavank@cisco.com
© 2015 Cisco and/or its affiliates. All rights reserved.
Программные интерфейсы управления (API) архитектурой, ориентированной на приложения (ACI)

More Related Content

What's hot

Развитие интегрированных решений на основе Cisco UCS
Развитие интегрированных решений на основе Cisco UCSРазвитие интегрированных решений на основе Cisco UCS
Развитие интегрированных решений на основе Cisco UCSCisco Russia
 
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...Cisco Russia
 
Практика внедрения виртуализированной сетевой инфраструктуры
Практика внедрения виртуализированной сетевой инфраструктуры Практика внедрения виртуализированной сетевой инфраструктуры
Практика внедрения виртуализированной сетевой инфраструктуры Cisco Russia
 
Архитектура корпоративной сети Cisco, варианты внедрения и позиционирование
Архитектура корпоративной сети Cisco, варианты внедрения и позиционированиеАрхитектура корпоративной сети Cisco, варианты внедрения и позиционирование
Архитектура корпоративной сети Cisco, варианты внедрения и позиционированиеCisco Russia
 
Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...
Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...
Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...Cisco Russia
 
FlexPod и All Flash FAS
FlexPod и All Flash FASFlexPod и All Flash FAS
FlexPod и All Flash FASCisco Russia
 
Развитие технологий построения распределенных ЦОД
Развитие технологий построения распределенных ЦОДРазвитие технологий построения распределенных ЦОД
Развитие технологий построения распределенных ЦОДCisco Russia
 
Cisco. Унифицированные вычисления практические аспекты перехода к частному об...
Cisco. Унифицированные вычисления практические аспекты перехода к частному об...Cisco. Унифицированные вычисления практические аспекты перехода к частному об...
Cisco. Унифицированные вычисления практические аспекты перехода к частному об...Yulia Sedova
 
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организацииВнедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организацииCisco Russia
 
Обзор возможностей продукта Cisco TelePresence Server
Обзор возможностей продукта Cisco TelePresence ServerОбзор возможностей продукта Cisco TelePresence Server
Обзор возможностей продукта Cisco TelePresence ServerCisco Russia
 
Архитектура и принципы функционирования сетевой фабрики Cisco ACI
Архитектура и принципы функционирования сетевой фабрики Cisco ACIАрхитектура и принципы функционирования сетевой фабрики Cisco ACI
Архитектура и принципы функционирования сетевой фабрики Cisco ACICisco Russia
 
Репликация базы данных CUCM
Репликация базы данных CUCMРепликация базы данных CUCM
Репликация базы данных CUCMCisco Russia
 
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийVMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийDe Novo
 
HPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использованияHPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использованияDe Novo
 
Развитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCSРазвитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCSCisco Russia
 
Hosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктурыHosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктурыDe Novo
 
Интеграция ACI с виртуальными средами
Интеграция ACI с виртуальными средамиИнтеграция ACI с виртуальными средами
Интеграция ACI с виртуальными средамиCisco Russia
 
Автоматизация задач с помощью EEM
Автоматизация задач с помощью EEMАвтоматизация задач с помощью EEM
Автоматизация задач с помощью EEMCisco Russia
 
Оркестрация в сетях операторов связи
Оркестрация в сетях операторов связиОркестрация в сетях операторов связи
Оркестрация в сетях операторов связиCisco Russia
 

What's hot (20)

Развитие интегрированных решений на основе Cisco UCS
Развитие интегрированных решений на основе Cisco UCSРазвитие интегрированных решений на основе Cisco UCS
Развитие интегрированных решений на основе Cisco UCS
 
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
Cisco ACI - инфраструктура, ориентированная на приложения: решаемые задачи, п...
 
Практика внедрения виртуализированной сетевой инфраструктуры
Практика внедрения виртуализированной сетевой инфраструктуры Практика внедрения виртуализированной сетевой инфраструктуры
Практика внедрения виртуализированной сетевой инфраструктуры
 
Архитектура корпоративной сети Cisco, варианты внедрения и позиционирование
Архитектура корпоративной сети Cisco, варианты внедрения и позиционированиеАрхитектура корпоративной сети Cisco, варианты внедрения и позиционирование
Архитектура корпоративной сети Cisco, варианты внедрения и позиционирование
 
Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...
Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...
Автоматизированое развертывание виртуализированной инфраструктуры с интегриро...
 
FlexPod и All Flash FAS
FlexPod и All Flash FASFlexPod и All Flash FAS
FlexPod и All Flash FAS
 
Развитие технологий построения распределенных ЦОД
Развитие технологий построения распределенных ЦОДРазвитие технологий построения распределенных ЦОД
Развитие технологий построения распределенных ЦОД
 
CMX
CMXCMX
CMX
 
Cisco. Унифицированные вычисления практические аспекты перехода к частному об...
Cisco. Унифицированные вычисления практические аспекты перехода к частному об...Cisco. Унифицированные вычисления практические аспекты перехода к частному об...
Cisco. Унифицированные вычисления практические аспекты перехода к частному об...
 
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организацииВнедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
Внедрение сетевой фабрики Cisco ACI в ЦОД небольшой организации
 
Обзор возможностей продукта Cisco TelePresence Server
Обзор возможностей продукта Cisco TelePresence ServerОбзор возможностей продукта Cisco TelePresence Server
Обзор возможностей продукта Cisco TelePresence Server
 
Архитектура и принципы функционирования сетевой фабрики Cisco ACI
Архитектура и принципы функционирования сетевой фабрики Cisco ACIАрхитектура и принципы функционирования сетевой фабрики Cisco ACI
Архитектура и принципы функционирования сетевой фабрики Cisco ACI
 
Репликация базы данных CUCM
Репликация базы данных CUCMРепликация базы данных CUCM
Репликация базы данных CUCM
 
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложенийVMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
VMware vSAN как платформа для высоконагруженных критичных для бизнеса приложений
 
HPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использованияHPI: Расширенные возможности и модели использования
HPI: Расширенные возможности и модели использования
 
Развитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCSРазвитие вычислительной платформы Cisco UCS
Развитие вычислительной платформы Cisco UCS
 
Hosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктурыHosted Private Infrastructure. Новая модель ИТ-инфраструктуры
Hosted Private Infrastructure. Новая модель ИТ-инфраструктуры
 
Интеграция ACI с виртуальными средами
Интеграция ACI с виртуальными средамиИнтеграция ACI с виртуальными средами
Интеграция ACI с виртуальными средами
 
Автоматизация задач с помощью EEM
Автоматизация задач с помощью EEMАвтоматизация задач с помощью EEM
Автоматизация задач с помощью EEM
 
Оркестрация в сетях операторов связи
Оркестрация в сетях операторов связиОркестрация в сетях операторов связи
Оркестрация в сетях операторов связи
 

Similar to Программные интерфейсы управления (API) архитектурой, ориентированной на приложения (ACI)

Инновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI AnywhereИнновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI AnywhereCisco Russia
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...ARCCN
 
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеПрограммируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеCisco Russia
 
Обзор решения Cisco NSO
Обзор решения Cisco NSOОбзор решения Cisco NSO
Обзор решения Cisco NSOCisco Russia
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераCisco Russia
 
Безопасность и виртуализация в центрах обработки данных (часть 1)
Безопасность и виртуализация в центрах обработки данных (часть 1)Безопасность и виртуализация в центрах обработки данных (часть 1)
Безопасность и виртуализация в центрах обработки данных (часть 1)Cisco Russia
 
Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)
Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)
Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)Andrey Klyuchka
 
Интеграция сервисов информационной безопасности в NFV-инфраструктуру
Интеграция сервисов информационной безопасности в NFV-инфраструктуруИнтеграция сервисов информационной безопасности в NFV-инфраструктуру
Интеграция сервисов информационной безопасности в NFV-инфраструктуруPositive Hack Days
 
Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев с презентац...
Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев  с презентац...Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев  с презентац...
Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев с презентац...ARCCN
 
Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Cisco Russia
 
Программируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходов
Программируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходовПрограммируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходов
Программируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходовCisco Russia
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Cisco Russia
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средстваCisco Russia
 
Интеграция инфраструктурных продуктов Cisco для ЦОД и OpenStack
Интеграция инфраструктурных продуктов Cisco для ЦОД и OpenStackИнтеграция инфраструктурных продуктов Cisco для ЦОД и OpenStack
Интеграция инфраструктурных продуктов Cisco для ЦОД и OpenStackCisco Russia
 
Обзор архитектуры ETSI MANO для управления сетями NFV и реализация Cisco
Обзор архитектуры ETSI MANO для управления сетями NFV и реализация CiscoОбзор архитектуры ETSI MANO для управления сетями NFV и реализация Cisco
Обзор архитектуры ETSI MANO для управления сетями NFV и реализация CiscoCisco Russia
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализацияYandex
 
SDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьSDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьCisco Russia
 
Совместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местСовместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местDell_Russia
 
Cisco ACI: концепция инфраструктуры, ориентированной на приложения
Cisco ACI: концепция инфраструктуры, ориентированной на приложенияCisco ACI: концепция инфраструктуры, ориентированной на приложения
Cisco ACI: концепция инфраструктуры, ориентированной на приложенияCisco Russia
 
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!Cisco Russia
 

Similar to Программные интерфейсы управления (API) архитектурой, ориентированной на приложения (ACI) (20)

Инновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI AnywhereИнновационное SDN решение для ЦОД Cisco ACI Anywhere
Инновационное SDN решение для ЦОД Cisco ACI Anywhere
 
Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...Создание и развитие отечественной платформы с открытым программным кодом для ...
Создание и развитие отечественной платформы с открытым программным кодом для ...
 
Программируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применениеПрограммируемость и автоматизация решений Ciscо - практическое применение
Программируемость и автоматизация решений Ciscо - практическое применение
 
Обзор решения Cisco NSO
Обзор решения Cisco NSOОбзор решения Cisco NSO
Обзор решения Cisco NSO
 
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдераАвтономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
Автономные Сети: упрощение развертывания уровня доступа в сети сервис-провайдера
 
Безопасность и виртуализация в центрах обработки данных (часть 1)
Безопасность и виртуализация в центрах обработки данных (часть 1)Безопасность и виртуализация в центрах обработки данных (часть 1)
Безопасность и виртуализация в центрах обработки данных (часть 1)
 
Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)
Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)
Cisco Connect Almaty 2014 - Security Solutions for Data Centers (russian)
 
Интеграция сервисов информационной безопасности в NFV-инфраструктуру
Интеграция сервисов информационной безопасности в NFV-инфраструктуруИнтеграция сервисов информационной безопасности в NFV-инфраструктуру
Интеграция сервисов информационной безопасности в NFV-инфраструктуру
 
Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев с презентац...
Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев  с презентац...Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев  с презентац...
Менеджер по Маркетингу и Развитию Бизнеса NEC Алексей Стребулаев с презентац...
 
Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1Безопасность ЦОД-часть 1
Безопасность ЦОД-часть 1
 
Программируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходов
Программируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходовПрограммируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходов
Программируемые и программно-определяемые инфраструктуры ЦОД. Развитие подходов
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
 
Автоматизация: технологии и средства
Автоматизация: технологии и средстваАвтоматизация: технологии и средства
Автоматизация: технологии и средства
 
Интеграция инфраструктурных продуктов Cisco для ЦОД и OpenStack
Интеграция инфраструктурных продуктов Cisco для ЦОД и OpenStackИнтеграция инфраструктурных продуктов Cisco для ЦОД и OpenStack
Интеграция инфраструктурных продуктов Cisco для ЦОД и OpenStack
 
Обзор архитектуры ETSI MANO для управления сетями NFV и реализация Cisco
Обзор архитектуры ETSI MANO для управления сетями NFV и реализация CiscoОбзор архитектуры ETSI MANO для управления сетями NFV и реализация Cisco
Обзор архитектуры ETSI MANO для управления сетями NFV и реализация Cisco
 
Другая виртуализация
Другая виртуализацияДругая виртуализация
Другая виртуализация
 
SDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использоватьSDN: Что это? Что оно нам дает и как его использовать
SDN: Что это? Что оно нам дает и как его использовать
 
Совместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих местСовместные решения Citrix и Dell для правильной организации рабочих мест
Совместные решения Citrix и Dell для правильной организации рабочих мест
 
Cisco ACI: концепция инфраструктуры, ориентированной на приложения
Cisco ACI: концепция инфраструктуры, ориентированной на приложенияCisco ACI: концепция инфраструктуры, ориентированной на приложения
Cisco ACI: концепция инфраструктуры, ориентированной на приложения
 
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
Программируемая сеть, думающая за вас: ночной кошмар или светлое будущее?!
 

More from Cisco Russia

Service portfolio 18
Service portfolio 18Service portfolio 18
Service portfolio 18Cisco Russia
 
История одного взлома. Как решения Cisco могли бы предотвратить его?
История одного взлома. Как решения Cisco могли бы предотвратить его?История одного взлома. Как решения Cisco могли бы предотвратить его?
История одного взлома. Как решения Cisco могли бы предотвратить его?Cisco Russia
 
Об оценке соответствия средств защиты информации
Об оценке соответствия средств защиты информацииОб оценке соответствия средств защиты информации
Об оценке соответствия средств защиты информацииCisco Russia
 
Обзор Сервисных Услуг Cisco в России и странах СНГ.
Обзор Сервисных Услуг Cisco в России и странах СНГ.Обзор Сервисных Услуг Cisco в России и странах СНГ.
Обзор Сервисных Услуг Cisco в России и странах СНГ.Cisco Russia
 
Клиентские контракты на техническую поддержку Cisco Smart Net Total Care
Клиентские контракты на техническую поддержку Cisco Smart Net Total CareКлиентские контракты на техническую поддержку Cisco Smart Net Total Care
Клиентские контракты на техническую поддержку Cisco Smart Net Total CareCisco Russia
 
Cisco Catalyst 9000 series
Cisco Catalyst 9000 series Cisco Catalyst 9000 series
Cisco Catalyst 9000 series Cisco Russia
 
Cisco Endpoint Security for MSSPs
Cisco Endpoint Security for MSSPsCisco Endpoint Security for MSSPs
Cisco Endpoint Security for MSSPsCisco Russia
 
Профессиональные услуги Cisco для Software-Defined Access
Профессиональные услуги Cisco для Software-Defined AccessПрофессиональные услуги Cisco для Software-Defined Access
Профессиональные услуги Cisco для Software-Defined AccessCisco Russia
 
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...Cisco Russia
 
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отраслиПромышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отраслиCisco Russia
 
Полугодовой отчет Cisco по информационной безопасности за 2017 год
Полугодовой отчет Cisco по информационной безопасности за 2017 год Полугодовой отчет Cisco по информационной безопасности за 2017 год
Полугодовой отчет Cisco по информационной безопасности за 2017 год Cisco Russia
 
Годовой отчет Cisco по кибербезопасности за 2017 год
Годовой отчет Cisco по кибербезопасности за 2017 годГодовой отчет Cisco по кибербезопасности за 2017 год
Годовой отчет Cisco по кибербезопасности за 2017 годCisco Russia
 
Безопасность для цифровой экономики. Развитие продуктов и решений Cisco
Безопасность для цифровой экономики. Развитие продуктов и решений CiscoБезопасность для цифровой экономики. Развитие продуктов и решений Cisco
Безопасность для цифровой экономики. Развитие продуктов и решений CiscoCisco Russia
 
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...Cisco Russia
 
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...Cisco Russia
 
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...Cisco Russia
 

More from Cisco Russia (20)

Service portfolio 18
Service portfolio 18Service portfolio 18
Service portfolio 18
 
История одного взлома. Как решения Cisco могли бы предотвратить его?
История одного взлома. Как решения Cisco могли бы предотвратить его?История одного взлома. Как решения Cisco могли бы предотвратить его?
История одного взлома. Как решения Cisco могли бы предотвратить его?
 
Об оценке соответствия средств защиты информации
Об оценке соответствия средств защиты информацииОб оценке соответствия средств защиты информации
Об оценке соответствия средств защиты информации
 
Обзор Сервисных Услуг Cisco в России и странах СНГ.
Обзор Сервисных Услуг Cisco в России и странах СНГ.Обзор Сервисных Услуг Cisco в России и странах СНГ.
Обзор Сервисных Услуг Cisco в России и странах СНГ.
 
Клиентские контракты на техническую поддержку Cisco Smart Net Total Care
Клиентские контракты на техническую поддержку Cisco Smart Net Total CareКлиентские контракты на техническую поддержку Cisco Smart Net Total Care
Клиентские контракты на техническую поддержку Cisco Smart Net Total Care
 
Cisco Catalyst 9000 series
Cisco Catalyst 9000 series Cisco Catalyst 9000 series
Cisco Catalyst 9000 series
 
Cisco Catalyst 9500
Cisco Catalyst 9500Cisco Catalyst 9500
Cisco Catalyst 9500
 
Cisco Catalyst 9400
Cisco Catalyst 9400Cisco Catalyst 9400
Cisco Catalyst 9400
 
Cisco Umbrella
Cisco UmbrellaCisco Umbrella
Cisco Umbrella
 
Cisco Endpoint Security for MSSPs
Cisco Endpoint Security for MSSPsCisco Endpoint Security for MSSPs
Cisco Endpoint Security for MSSPs
 
Cisco FirePower
Cisco FirePowerCisco FirePower
Cisco FirePower
 
Профессиональные услуги Cisco для Software-Defined Access
Профессиональные услуги Cisco для Software-Defined AccessПрофессиональные услуги Cisco для Software-Defined Access
Профессиональные услуги Cisco для Software-Defined Access
 
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
Обнаружение известного вредоносного кода в зашифрованном с помощью TLS трафик...
 
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отраслиПромышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
Промышленный Интернет вещей: опыт и результаты применения в нефтегазовой отрасли
 
Полугодовой отчет Cisco по информационной безопасности за 2017 год
Полугодовой отчет Cisco по информационной безопасности за 2017 год Полугодовой отчет Cisco по информационной безопасности за 2017 год
Полугодовой отчет Cisco по информационной безопасности за 2017 год
 
Годовой отчет Cisco по кибербезопасности за 2017 год
Годовой отчет Cisco по кибербезопасности за 2017 годГодовой отчет Cisco по кибербезопасности за 2017 год
Годовой отчет Cisco по кибербезопасности за 2017 год
 
Безопасность для цифровой экономики. Развитие продуктов и решений Cisco
Безопасность для цифровой экономики. Развитие продуктов и решений CiscoБезопасность для цифровой экономики. Развитие продуктов и решений Cisco
Безопасность для цифровой экономики. Развитие продуктов и решений Cisco
 
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
Cisco StealthWatch. Использование телеметрии для решения проблемы зашифрованн...
 
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
Обеспечение бесперебойной работы корпоративных приложений в больших гетероген...
 
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...
Новое поколение серверов Сisco UCS. Гиперконвергентное решении Cisco HyperFle...
 

Программные интерфейсы управления (API) архитектурой, ориентированной на приложения (ACI)

  • 1. Хаванкин Максим cистемный архитектор, CCIE mkhavank@cisco.com Мастер-класс по использованию программных интерфейсов для управления инфраструктурой ЦОД Программные интерфейсы управления (API) архитектурой, ориентированной на приложения (ACI) 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.
  • 2. Содержание •  Несколько слов об API •  Объектная модель ACI •  Использование REST API для управления APIC •  Cobra SDK •  Arya – генератор кода на Python •  ACI toolkit 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.2
  • 3. Что представляет собой ACI? ACI фабрика Неблокируемая фабрика на базе оверлеев App DBWeb Внешняя сеть передачи данных (Tenant VRF) QoS Filter QoSQoS Filter Application Policy Infrastructure Controller APIC 1. Профиль приложения 2. Кластер контроллеров 3. Cеть на базе Nexus 9000 Service Filter ServiceСеть ЦОД на базе коммутаторов Nexus 9000 с централизованным управлением при помощи контроллера на основе политик
  • 4. Несколько слов об API 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.4
  • 5. API на уровне устройства •  NETCONF •  REST •  JSON-RPC Высокоуровневые абстракции и DevOps •  Puppet •  Chef •  Openstack Новые инструменты для настройки сетевых устройств
  • 6. REST использует знакомую модель HTTP GET HTML Описывает как данные отображаются пользователю HTTP GET JSON/XML Описывают данные в формате, который понятен приложению {"ids":[303776224, 19449911, 607032789, 86544242, 2506725913, 17631389], "next_cursor":0, "next_cursor_str":"0", "previous_cursor":0, "previous_cursor_str":"0"} Web серфинг REST API Twitter: IDs of last five followers
  • 7. JSON-RPC: выглядит как REST, но немного по другому
  • 8. Одинаково: оба пересылают/принимают JSON поверх HTTP REST (CSR 1000v) JSON-RPC (N9K NX-API)
  • 9. REST: много ресурсов •  https://172.6.1.118/api/v1… …/global/banner …/global/hostname …/global/reload …/interfaces/… …/routing-svc/… …/nat-svc/… …/acl/… … JSON-RPC: мало ресурсов •  https://10.10.10.8/ins Разное: Ресурсы (URI) CSR1kV N9K
  • 10. REST: стандартные HTTP методы •  GET: Retrieve/List •  PUT: Replace •  POST: Create New Entry •  DELETE: Delete JSON-RPC: POST + body method Разное: методы
  • 11. Объектная модель ACI 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.11
  • 12. Объектная модель ACI •  В модели находятся все объекты о которых знает APIC контроллер §  Network, Compute, Application, и т.д. •  Management Information Tree (MIT): объекты сгруппированы в виде дерева •  MIT имеет разные ветки (distinct branches) для разных функциональных областей •  Каждый узел (node) это управляемый объект: §  имеет class & distinguished name 12 topRoot polUni compUni
  • 13. Конфигурация сети как набор объектов Конфигурация представляет собой упорядоченный набор объектов … которые имеют ссылки друг на друга Root Policy Universe Tenants Application s Infra VLANs Fabric Nodes Virtual Network Hypervisors 13 Tenant VRF VRF Bridge Domain 1 10.1.0.1/24 Bridge Domain 2 10.2.0.1/24 Bridge Domain 1
  • 14. Уникальное имя (distinguished name = dn) •  DN используется как глобальный уникальный идентификатор для каждого объекта в дереве MIT •  Представляет собой relative name (RN) к которому приставляется слева родительское RN (parent RN) •  Правила именования RN зависят от объекта управления §  детали в документации 14 topRoot polUni fvTenant fvAp fvAEPg vzFilter vzEntry vzBrCP vzSubj fabricTopology fabricPod fabricPathEpCont fabricPathEp fabricNode vmmProvP vmmDomP vmmCtrlrP Пример: uni/tn-tenant/ap-app1/epg-epg1 Пример: topology/pod-1/paths-101/pathep-[eth1/1]
  • 15. Программные интерфейсы ACI •  Northbound API дают возможность управлять контроллером из внешних систем •  Northbound API §  Native REST API §  Python SDK (“Cobra”) •  Southbound API применяются для управления устройствами подключаемыми к фабрике •  Southbound API §  L4-7 Device Packages §  OpFlex 15 Системы управления Скрипты APIC REST МСЭ Коммутатор OpFlex APIC Dev Pkg
  • 16. REST – единственный интерфейс 16 GUI CLI Web браузер API Tools Object Browser (visore) APIC кластер + Leaves & Spines R E S T Python SDK
  • 17. Использование REST API для управления APIC 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.17
  • 18. REST API: поддерживаемые методы •  Поддерживаются стандартные методы •  Stateless §  No state for requests or sessions •  HTTP1.1 / HTTPS (default) •  Обрабатываются любым APIC в кластере •  Доступ к коммутаторам через APIC 18 Метод Действие GET Read POST Create / Update DELETE Delete •  Формат XML или JSON –  определяется расширением в URI –  Content-Type и Accept header игнорируются
  • 19. REST API: операции чтения 19 /api API Operator /{mo|class} Определение объекта или класса /{dn|classname} Distinguished name или Object Class .{xml|json} Тип ответа xml или json ?[options] Фильтры, селекторы или модификаторы запроса host:port APIC хост и порт http(s):// http или https
  • 20. Получение информации об объекте по его имени (DN) •  Чтение свойств EPG 20 <imdata totalCount="1"> <fvAEPg childAction="" configIssues="" configSt="applied" descr="" dn="uni/tn-Cisco/ap-Software/epg-Download" lcOwn="local" matchT="AtleastOne" modTs="2015-05-23T22:19:21.173+00:00" monPolDn="uni/ tn-common/monepg-default" name="Download" pcTag="49189" prio="unspecified" scope="2293760" status="" triggerSt="triggerable" uid="0"/> </imdata> http://apic/api/mo/uni/tn-Cisco/ap-Software/epg-Download.xml
  • 21. Поиск информации по имени класса •  Получение L1 свойств всех физических интерфейсов 21 <imdata totalCount="1134"> <l1PhysIf adminSt="up" autoNeg="on" bw="0" childAction="" delay="1" descr="" dn="topology/pod-1/node-102/sys/phys-[eth1/32]" dot1qEtherType="0x8100" ethpmCfgFailedBmp="" ethpmCfgFailedTs="00:00:00:00.000" ethpmCfgState="0" id="eth1/32" inhBw="unspecified" layer="Layer2" lcOwn="local" linkDebounce="100" linkLog="default" mdix="auto" medium="broadcast" modTs="2015-06-03T22:07:10.513+00:00" mode="trunk" monPolDn="uni/infra/moninfra- default" mtu="9000" name="" portT="leaf" routerMac="not-applicable" snmpTrapSt="enable" spanMode="not-a-span-dest" speed="10G" status="" switchingSt="disabled" trunkLog="default" usage="discovery"/> … </imdata> http://apic/api/class/l1PhysIf.xml?query-target-filter=eq(l1PhysIf.speed,"10G")
  • 22. Получение всех свойств объекта •  Чтение всех свойств объекта (subtree=агдд) 22 <imdata totalCount="1"> <compVm cfgdOs="Ubuntu Linux (32-bit)" childAction="" descr="" dn="comp/prov- VMware/ctrlr-[vc-1]-vCenter_1/vm-vm-1001" guid="5024a300-1fde-aa80-72d4-7c33ef63a688" id="0" lcOwn="local" modTs="2015-06-05T17:04:04.471+00:00" monPolDn="" name="32bit_Ubuntu" oid="vm-1001" os="" state="poweredOn" status="" type="virt"> <compVNic adapterType="Vmxnet3" addressType="assigned" childAction="" descr="" guid="" id="0" ip="0.0.0.0" lcOwn="local" mac="00:50:56:A4:D0:D0" modTs="2015-06-05T17:04:04.471+00:00" monPolDn="" name="Network adapter 1" oid="4000" operSt="up" rn="vnic-00:50:56:A4:D0:D0" status="" type="virt"/> <compRsHv childAction="" forceResolve="no" lcOwn="local" modTs="2015-06-04T22:39:08.435+00:00" rType="mo" rn="rshv-[comp/prov-VMware/ctrlr- [vc-1]-vCenter_1/hv-host-12]" state="formed" stateQual="none" status="" tCl="compHv" tDn="comp/prov-VMware/ctrlr-[vc-1]-vCenter_1/hv-host-12" tType="mo"/> </compVm> </imdata> http://apic/api/mo/comp/prov-VMware/ctrlr-[vc-1]-vCenter_1/vm-vm-1001.xml?rsp-subtree=full Атрибут subtree query установлен в значение "full" для получения всех связанных объектов target Dn содержит ссылку на другой объект – в этом примере – гипервизор чтобы получить больше информации об объекте
  • 23. REST API: операции Create/Update /api /mo /dn .{xml|json} ?[options]host:porthttp(s):// <fvTenant name="NewTenant"> <fvAp name="NewApplication"> <fvAEPg name="WebTier"> <fvRsPathAtt encap="vlan-1" mode="regular" tDn="topology/pod-1/paths-17/pathep-[eth1/1]"/> </fvAEPg> </fvAp> </fvTenant> В теле запроса (payload) в виде XML/JSON на APIС передается команда 23
  • 24. Object Browser: Visore •  Встроенный в APIC браузер для поиска объектов и проверки их состояния и свойств •  Ссылка на Visore: http://<apic>/ visore.html •  Поиск объекта по его dn (fvTenant, topSystem, topology/ pod-1/node-101) 24
  • 25. Sniffer: API Inspector •  API вызовы, которые выполняются при действиях в GUI мониторятся §  GET, POST •  Команды навигации и GET- вызовы которые выполняются в фоновом режиме •  При изменении конфигурации можно увидеть POST вызовы которые выполняются в фоновом режиме 25
  • 26. Результат работы API инспектора 26 POST url: http://172.23.3.215/api/node/mo/uni/tn-Cisco.json { "fvTenant": { "attributes": { "name": "Cisco", "status": "created" }, "children": [] } }
  • 27. Cobra SDK 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.27
  • 28. SDK и документация •  Доступен на APIC*: §  https://<apic>/cobra •  Доступен на DevNet §  https://developer.cisco.com/site/apic- dc/ §  Downloads -> Python Egg Files •  Потребуется использовать Management Information Model §  https://developer.cisco.com/media/ mim-ref/ или https://<apic>/doc/html •  Python SDK документация §  https://developer.cisco.com/site/apic- dc/documents/pythonapi or §  https://<apic>/cobra •  APIC REST API User Guide §  http://www.cisco.com/c/en/us/td/docs/ switches/datacenter/aci/apic/sw/1-x/ api/rest/ b_APIC_RESTful_API_User_Guide.ht ml 28 *http://cs.co/9006xDw6
  • 29. Установка сессии •  REST •  Login с использованием username и password в payload §  POST /api/mo/aaaLogin.xml §  <aaaUser name='admin' pwd='insieme'/> •  В заголовке ответа находится “APIC-cookie” §  Сохранить и использовать в последующих запросах Cobra import cobra.mit.access import cobra.mit.session ls = cobra.mit.session.LoginSession( 'https://apic', 'admin', 'insieme') md = cobra.mit.access.MoDirectory(ls) md.login() md содержит ссылку на сессию на APIC контроллер 29
  • 30. Примеры простых запросов REST Запрос информации обо всех endpoint (подключенные к фабрике физические и виртуальные сущности) GET /api/class/fvCEp.xml <?xml?><imdata><fvCEp dn="uni/tn-Cisco/ap- Blog/epg-MySQL/cep-00:50:56:82:D2:FE" encap="vlan-501" id="0" ip="0.0.0.0" lcC="vmm" lcOwn="local" mac="00:50:56:82:D2:FE" mcastAddr="not- applicable" name="00:50:56:82:D2:FE” uid="0"/ ></imdata> Парсинг результата в виде XML и последующая обработка Cobra Использование метода “lookupByClass” для поиска всех endpoints (fvCEp) endpoints = md.lookupByClass('fvCEp') print([str(ep.dn) for ep in endpoints]) ['uni/tn-Cisco/ap-Blog/epg-MySQL/ cep-00:50:56:82:D2:FE', 'uni/tn-Cisco/ap-Blog/ epg-MySQL/cep-00:50:56:82:C3:D0'] 30 Tip: To inspect http requests use debuglevel on httplib: import httplib httplib.HTTPConnection.debuglevel = 1
  • 31. Query Filters in Cobra Built in helpers .lookupByClass and .lookupByDn use .query under the covers For advanced queries, you can use .query directly In this example, we recursively print a full subtree for all endpoints def printtree(mos, indent=0): for mo in mos: print ' ' * indent, str(mo.meta.className) printtree(mo.children, indent=indent+2) cq = cobra.mit.access.ClassQuery('fvCEp') cq.subtree = 'full' endpoints = md.query(cq) printtree(endpoints) >>> printtree(endpoints) cobra.model.fv.CEp cobra.model.fv.RsNic cobra.model.fv.RsVm cobra.model.fv.RsCEpToPathEp cobra.model.fv.RsHyper cobra.model.fv.ReportingNode 31
  • 32. Фильтры для запросов 32 •  Более эффективно, возвращается меньшее число объектов •  Фильтрация ответа, по определенным критериям condition(s): §  Синтаксис: http://URI?condition[&condition[&...]] Тип фильтра Синтаксис Cobra Query Property Описание query-target {self | children | subtree} AbstractQuery.queryTarget Define the scope of query target-subtree-class <class name> AbstractQuery.classFilter Respond only elements including specified class query-target-filter <filter expressions> AbstractQuery.propFilter Respond only elements matching conditions rsp-subtree {no | children | full} AbstractQuery.subtree specifies child object level included in the response rsp-subtree-class <class name> AbstractQuery.subtreeClassFilter Respond only specified classes rsp-subtree-filter <filter expressions> AbstractQuery.subtreePropFilter (>1.0.2m) Respond only classes matching conditions rsp-subtree-include {faults | health :stats : …} AbstractQuery.subtreeInclude Request additional objects order-by <classname.property>| {asc | desc} NotImplemented Sort the response based on the property values
  • 33. Подтверждение изменений в конфигурации REST Создание нового тенанта POST /api/mo/uni.xml <fvTenant name="Cisco"/> Cobra Создать объект и подтвердить внесение изменений 33 Совет: To get the configured XML body for the object you've created/modified, add the rsp-include query parameter: POST /api/mo/uni.xml?rsp-subtree=modified topMo = cobra.model.pol.Uni('') fvTenant = cobra.model.fv.Tenant(topMo, name='Cisco') c = cobra.mit.request.ConfigRequest() c.addMo(fvTenant) md.commit(c) Еще один совет: Disable the annoying Requests Insecure Warning. Put this at the top of your script: import requests.packages.urllib3 requests.packages.urllib3.disable_warnings()
  • 34. Arya – генератор кода на Python 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.34
  • 35. APIC REST to Python Adapter: arya.py •  GUI генерирует REST •  API Inspector отображает REST •  arya.py создает код из REST •  Автоматическая генерация кода •  Доступно §  http://github.com/datacenter/ arya XML/ JSON arya.py Python code {"fvTenant":{"attributes":{"dn":"uni/tn- Cisco","name":"Cisco","rn":"tn- Cisco","status":"created"},"children":[{"fvBD": {"attributes":{"dn":"uni/tn-Cisco/BD- CiscoBd","mac":"00:22:BD:F8:19:FF","name":"CiscoBd","rn":" BD-CiscoBd","status":"created"},"children":[{"fvRsCtx": {"attributes": {"tnFvCtxName":"CiscoNetwork","status":"created,modified"} ,"children":[]}},{"fvSubnet":{"attributes":{"dn":"uni/tn- Cisco/BD-CiscoBd/subnet- [10.0.0.1/8]","ip":"10.0.0.1/8","rn":"subnet- [10.0.0.1/8]","status":"created"},"children":[]}}]}}, {"fvCtx":{"attributes":{"dn":"uni/tn-Cisco/ctx- CiscoNetwork","name":"CiscoNetwork","rn":"ctx- CiscoNetwork","status":"created"},"children":[]}}]}} fvTenant = cobra.model.fv.Tenant(topMo, name='Cisco') fvCtx = cobra.model.fv.Ctx(fvTenant, name='CiscoNetwork') fvBD = cobra.model.fv.BD(fvTenant, mac='00:22:BD:F8:19:FF', name='CiscoBd') fvRsCtx = cobra.model.fv.RsCtx(fvBD, tnFvCtxName=fvCtx.name) fvSubnet = cobra.model.fv.Subnet(fvBD, ip='10.0.0.1/8') 35
  • 36. Использование arya (1/2) Получение конфигурации, которую нужно превратить в код 1.  Right-click –> save XML 2.  Использовать API inspector 3.  Запрос конфигурации из APIC при помощи REST 36 Выберите "only configuration" и "subtree"
  • 37. Использование arya (2/2) # arya.py -f accportprof-vm-vpc10.xml 37 #!/usr/bin/env python ''' Autogenerated code using arya.py Original Object Document Input: <?xml version="1.0" encoding="UTF-8"?><imdata totalCount="1"><infraAccPortP descr="" dn="uni/infra/accportprof-vm-vpc10" name="vm-vpc10" ownerKey="" ownerTag=""><infraHPortS descr="" name="vm-vpc10" ownerKey="" ownerTag="" type="range"><infraRsAccBaseGrp fexId="101" tDn="uni/infra/funcprof/accbundle-vm-vpc10"/><infraPortBlk descr="" fromCard="1" fromPort="10" name="block1" toCard="1" toPort="10"/></infraHPortS></ infraAccPortP></imdata> ''' raise RuntimeError('Please review the auto generated code before ' + 'executing the output. Some placeholders will ' + 'need to be changed') # list of packages that should be imported for this code to work import cobra.mit.access import cobra.mit.request import cobra.mit.session import cobra.model.infra import cobra.model.pol from cobra.internal.codec.xmlcodec import toXMLStr # log into an APIC and create a directory object ls = cobra.mit.session.LoginSession('https://1.1.1.1', 'admin', 'password') md = cobra.mit.access.MoDirectory(ls) md.login() # the top level object on which operations will be made polUni = cobra.model.pol.Uni('') infraInfra = cobra.model.infra.Infra(polUni) # build the request using cobra syntax infraAccPortP = cobra.model.infra.AccPortP(infraInfra, ownerKey='', name='vm-vpc10', descr='', ownerTag='') infraHPortS = cobra.model.infra.HPortS(infraAccPortP, ownerKey='', type='range', name='vm-vpc10', descr='', ownerTag='') infraRsAccBaseGrp = cobra.model.infra.RsAccBaseGrp(infraHPortS, fexId='101', tDn='uni/infra/funcprof/accbundle-vm-vpc10') infraPortBlk = cobra.model.infra.PortBlk(infraHPortS, name='block1', descr='', fromPort='10', fromCard='1', toPort='10', toCard='1') # commit the generated code to APIC print toXMLStr(infraInfra) c = cobra.mit.request.ConfigRequest() c.addMo(infraInfra) md.commit(c) Готовый Cobra script для создания профиля vPC Остается добавить APIC IP и credentials а так же удалить предупреждение о том что код без проверки запускать нельзя
  • 39. Программируемость и ACI 39 ACI предоставляет: REST API Полностью открытая модель объектов Доступ при помощи JSON или XML Python SDK для доступа к объектам Но…. Существенные затраты на обучение §  5000+ классов §  Новые концепции
  • 40.
  • 41. Почему появился ACI Toolkit? 41 Снижение входного барьера Адресовать 80% сценариев использования Дать примеры скриптов конечным Заказчикам Ускорить процесс перехода на ACI
  • 43. ACI Toolkit CLI интерфейс: network, security, cloud, application APIC ACI Toolkit NX-OS like CLI Custom Python Scripts •  Основан на открытых APIC API •  Скрипты, написаны при помощи Toolkit просто создавать и редактировать •  Пока нет полной функциональности, наиболее часто используемые операции •  Фокус в основном на конфигурацию
  • 44. Tenant Context / VRF Subnet Bridge Domain Outside EPG EPG App. Profile TabooContract Filter Entry L3 Interface L2 InterfaceInterface Node Link POD 1 ** 1 * *1 1 * * *** * Provide / Consume 1 * * * * * 1 1 * * 1 * Provide / Consume * * 1 1 * 1 1 1 1 1 1 * 1 * 1 2 1 * 1 * 1 * NetworkPhysical Policy Jan/2015 ACI Toolkit Модель политик
  • 45. Скрипты Очень просто начать процесс разработки и отладки
  • 46. Приложение «CLI» Эмуляция NX-OS CLI полностью написаная на Python Использует возможности toolkit Знакомый интерфейс для сетевого инженера Фокус на задачах поддержки §  show epg §  shutdown / no shutdown на interface
  • 47. Приложение «Cable Plan» 47 Дает возможность импортировать существующий кабельный план : §  XML файла §  APIC Выполнить экспорт и сравнение загруженных ранее кабельных планов Advanced use can build cable plan XML file, query, and modify cable plan
  • 48. Приложение «ACI Endpoint Tracker» Отслеживает подключение и историю перемещений оконечных Сохраняет данные в open source MySQL Database, давая возможность выполнять собственные запросы Основа для средств визуализации Помогает ответить на следующие вопросв: §  Какие Endpoint подключены к сети? §  Куда подключен определенный Endpoint? §  Кто был подключен в прошлый Четверг между 3:30am и 4:00am? §  История перемещения определенного Endpoint? 48
  • 51. Создание профиля приложения Hello_world J 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.51
  • 52. Создание профиля приложения Tenant - контейнер для хранения сетевых свойств приложений Tenant: Hello_Connect
  • 53. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.53 Пример создания объекта “Tenant” Название
  • 54. Создание профиля приложения Логическая модель: private network, как набор изолированных сетевых сегментов, или VRF Tenant: Hello_Connect VRF: VRF_INSIDE
  • 55. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.55 Пример создания объекта “VRF” Добавляем VRF Название VRF Режим реализации политик Удобно переключиться в режим «Unenforced» во время откладки контрактов между EPG
  • 56. Создание профиля приложения Bridge Domain логическая конструкция обозначающая границы L2-сегмента Bridge Domain: 10.0.0.1_255.255.255.0 Tenant: Hello_Connect VRF: VRF_INSIDE
  • 57. Новая концепция: Bridge Domain Bridge Domain - логическая конструкция представляющая L2-сегмент передачи данных внутри фабрики Один или несколько EPG могут быть ассоциированы с одним BD Можно «превратить» в аналог VLAN: 1.  Влючить flood для L2 unknown unicast 2.  Включить ARP Flooding Название BD удобно сделать «говорящим», например использовать для этого адрес и маску подсети
  • 58. Создание профиля приложения Знакомая концепция: подсети – primary/secondary IP адреса на SVI-интерфейсах Bridge Domain: 10.0.0.1_255.255.255.0 Tenant: Hello_Connect VRF: VRF_INSIDE Secondary 10.1.1.x/24 Primary 10.0.0.x/24 interface vlan123 ip address 10.0.0.1 255.255.255.0 ip address 10.1.1.1 255.255.255.0 secondary
  • 59. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.59 Настройка подсети Адрес шлюза по умолчанию для подсети Область видимости
  • 60. Новая концепция: профиль приложения §  Сетевой профиль приложения представляет собой набор EPG и политик, которые определяют правила взаимоотношений между группами Inbound/Outbound политики Сетевой Профиль Приложения Inbound/Outbound политики EPG A Service A Service A Service A Service A Service B Service B Service B Service B EPG B Service C Service C Service C Service C Service C Service C EPG C Service D Service E Service D Service E
  • 61. Создание профиля приложения Сетевой профиль ANP содержит один или несколько EPG Bridge Domain: 10.0.0.1_255.255.255.0 Tenant: Hello_Connect VRF: VRF_INSIDE vPC_to_UCS_a vlan-10 vPC_to_UCS_b vlan-10 EPG: db Security Zone vPC_to_UCS_a vlan-20 vPC_to_UCS_b vlan-20 EPG: app Security Zone ANP: Hello_world Нет контрактов = нет передачи данных vPC_to_UCS_a vlan-30 vPC_to_UCS_b vlan-30 EPG: web Security Zone Secondary 10.1.1.x/24 Primary 10.0.0.x/24
  • 62. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.62 Создание профиля приложения Название профиля приложения Мастер создания EPG Мастер создания контрактов – активируется после создания EPG
  • 63. Новая концепция: EPG 63 Ø  Интерфейс, при помощи которого конечное устройство подключается к сети Ø  Имеет адрес (identity), местоположения, атрибуты (version, patch level) Ø  Может быть физическим или виртуальным Примеры: §  End Point Group (EPG) определяются при помощи: —  Физический портов (leaf или FEX) —  Логический порт (VM port group) —  VLAN ID —  VXLAN (VNID) —  IP адрес (применимо ко внешним подключениям external/border leaf) —  IP Prefix/Subnet (применимо ко внешним подключениям external/border leaf) —  Атрибуты виртуальных машин (план) Сервер Виртуальные машины или контейнеры СХД Клиенты
  • 64. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.64 Создание EPG Название EPG Ассоциация с BD (помещение EPG в L2-сегмент) Ассоциация c VMM-доменом (создание портовых групп на DVS) Ассоциация c физическими портами/Port-channel/vPC для невиртуализированной нагрузки
  • 65. Золотое правило EPG •  Если есть EPG, значит должен быть и контракт! •  Данные между EPG без контракта который явно это разрешает не передаются •  Это касается •  Трафика между EPG в одном ANP •  Трафика между EPG разных ANP •  L2 OUT EPG •  L3 OUT EPG •  и т.д. и т.п. 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.65
  • 67. Создание профиля приложения Контракты необходимы для управления передачей данных между EPG Bridge Domain: 10.0.0.1_255.255.255.0 Tenant: Hello_Connect VRF: VRF_INSIDE vPC_to_UCS_a vlan-30 vPC_to_UCS_b vlan-30 EPG: app Контакт = передача данныхANP: Hello_world vPC_to_UCS_a vlan-10 vPC_to_UCS_b vlan-10 EPG: db 192.168.10.13 192.168.10.12 Secondary 10.1.1.x/24 Primary 10.0.0.x/24 192.168.10.11 192.168.10.10 Нет контракта = нет передачи данных Контакт = передача данных vPC_to_UCS_a vlan-30 vPC_to_UCS_b vlan-30 EPG: web Security Zone
  • 68. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.68 Создание контракта Название контракта Фильтр Ссылка на сервисную цепочку Класс качества обслуживания
  • 69. Создание профиля приложения 23.11.15 © 2015 Cisco and/or its affiliates. All rights reserved.69 Применение контракта к EPG Источник/Source/Provider Получатель/Desanaaon/Consumer
  • 70. Tenant: Hello_Connect Создание профиля приложения Картина целиком Bridge Domain: 10.0.0.1_255.255.255.0 Гипервизор (стоечные сервера) Гипервизор (Cisco UCS) Физические сервера БД L2+L3 сеть L4-L7 устройства ANP: Hello_world vPC_to_UCS_a vlan-30 vPC_to_UCS_b vlan-30 EPG: web Security Zone vPC_to_UCS_a vlan-30 vPC_to_UCS_b vlan-30 EPG: app Контакт = передача данных Primary 10.0.0.1/24 vPC_to_UCS_a vlan-10 vPC_to_UCS_b vlan-10 EPG: db Контакт = передача данных
  • 71. CiscoRu Cisco CiscoRussia Ждем ваших сообщений с хештегом #CiscoConnectRu CiscoRu Спасибо Хаванкин Максим cистемный архитектор, CCIE mkhavank@cisco.com © 2015 Cisco and/or its affiliates. All rights reserved.