Как показал томный взгляд, построение сети для видеосвязи задача нетривиальная: тут и решения разные, и уровни взаимодействия, и интернет везде разный, и опасных мест выше крыши. Самое странное – нет русскоязычных гайдов по планированию, дизайну и более тонкой настройке. Есть серединка, т.н. «базовая настройка», которой искушенный сетевой администратор доволен не будет. В зависимости от ситуации и требований могут появиться абсолютно неожиданные решения. Даже для одной организации с набором требований найти подходящее решение сходу будет проблематично, а чтобы быть универсальным и охватить полный спектр услуг, предоставляемых оборудованием Cisco TelePresence, нужен будет не один агрегат. Если купить все цисковские железки и все друг в друга воткнуть – может это и получится «Универсально».
Под катом много текста.
Введение
Идея организации в одной сети всех доступных средств передачи информации, таких как телефон, телеграф и сети связи, не новая, и появилась еще во второй половине XX века. Эта концепция дошла до наших дней под названием ISDN, однако, развитие IP-сетей и появление новых сервисов не дали жизни предложенной концепции. Ей на смену пришли решения, которые носили название New Generation Network (NGN) – сети нового поколения. Используя концепцию сетей нового поколения для передачи мультимедиа данных, Cisco TelePresence реализует свои управляющие компоненты раздельно. Т.е. сигнальная информация, необходимая для установки/разрывов соединения и определения маршрута мультимедиа потока, передается по одним устройствам. А непосредственно мультимедиа данные, т.е. голос и видео, коммутируются другими устройствами.
Видеоконференцсвзязь базируется на следующих 5 «слонах» (использую сиско-терминологию):
1. VideoNetworkServices, управляющие controlplane компоненты, занимаются роутингом вызовов в т.ч. в «иные» сети. Управляют сигнальной информацией;
2. Videoservices, так называемые userplane компоненты, отвечающие непосредственно за передачу мультимедиа. Чаще используется аббревиатура MCU (Multipoint Control Unit), опираясь на терминологию h.323;
3. endpoints, по-руccки, конечные устройства: может быть телевизор или мобильник, ну и все что между (iPod пока не поддерживается).;
4. Менеджеры: без них никуда. Если в Бугульме не работает камера, ехать туда придется последнему, кто её трогал;
5. конечно же сеть.
VideoNetworkServices
Бывает их два вида: кол-контрол и гейтвеи.
•
CallControl – т.н. Video Communication Server (VCS), регистрирует конечные точки (SIP и Н.323), роутит вызовы, мониторит, к мультимедиа никакого отношения не имеет. Можно собирать в кластер несколько штук, если одной тяжело. Бывают VCS Control, для подключения клиентов из своей сети, а бывают VCS Expressway с поддержкой NAT, трансфер файрволл etc, для внешних подключений. Expressway размещается в DMZ.
•
Gateway — доступ в «иные» сети, например ISDN, PSTN. Бизнес-ту-Бизнес там же.
VCS Tandberg
Videoservices
Видеосервисы не обязательны, но являются важной частью планирования инфраструктуры ВКС. Начать стоит с ответов на вопросы: будут ли конференции с более чем 2-мя участниками, нужен ли стриминг видео и нужна ли запись? Соответственно, выделяют два типа устройств:
•
Conferencing – оборудование для объединения 3 и более участников. Обеспечивает свитчинг и транскодинг. Свитчинг заключается в пересылке видео/аудио потока от одного конечного устройства к множеству других. Транскодинг – это кодирование и декодирование медиа потока между конечными точками. В терминологии Н.323 зовется MCU (MultipointControlUnit). Сиско предоставляет свой список существующих решений: Cisco Telepresence Multipoint Switch, MCU 4000, Cisco Integrated Service Router (ISR), а так же кластерные решения на базе MSE 8000 с несколькими блейд серверами на борту.
MCU 4500
• Streaming&Recording – многие MCU, помимо конференсинга, держат у себя на борту сервер видеовещания. А если их нет – есть два вида железок. Одна, правда, только записывает, Cisco TelePresence Recording Server. А вот вторая и пишет и вещает одновременно, Cisco TelePresence Content Server. Работает в связкес Cisco Media Services Engine (MSE)
Endpoints
Конечные устройства можно использовать вот какие:
• Софтовые клиенты: ЛайфСайз Клир Си (есть для андроид устройств), Cisco Jabber (есть для айпадов, мак виндус и андроид). В таком случае устройством-кодеком будет сам компьютер/планшет/телефон;
• Персональные станции: EX60, DX650, E20 – самые популярные. Настраиваются просто, веб-мордой либо прямо на экране. Все что нужно терминалу, это выбрать кодек и дать адрес сервера. Кстати, у DX650 есть VPN-клиент на борту, т.е. можно цепляться не к Экспрессвею, а сначала в рабочую сеть, и по туннелю к Контролу;
• Митинг-румы и конференс-румы. Решения правильно называются Collaboration Room Endpoints (серии MX и Profile) и Immersive TelePresence (TX серии). В них кодек – это коробочка, в которую заводятся экраны, микрофоны и камеры.
Management
Soft-based штуковина с огромным количеством функций, пока, правда, в основном используется для мониторинга. Дело в том, что почти у каждой железки есть удобная веб-морда. Консоль, кстати, тоже доступна. Однако если вы умеете настраивать роутеры и свитчи фирмы Сиско – это вам не поможет, синтаксис там совсем другой. И все же, манагеры:
•
Cisco TMS – TelePresence Management Suite. Сервер-бейзед системка, т.е. под него нужна железка. Удобный и понятный мониторинг, основнаяфича – видеоконференции по расписанию. Т.е. в определенный момент совершается вызов на всех участников. Интегрируется в AD, в частности, календарь MicrosoftExchange;
•
Cisco TelePresence Manager и
Cisco Prime Collaboration Manager – В чем реальное отличие от первого, честно, не знаю. Трогал только первый. Но в прайм колаборейшене есть риал-тайм мониторинг, за что, несомненно, респект.
Network
В основном все требования к сети для передачи потока зависят от самого потока. Например, для передачи видео h.264 рекомендуется не менее 2 Мбит/сек. для одного клиента. Задержки, джиттер, потери – все как у всех. Наиболее интересен вопрос подключения удаленных клиентов. Нужен ли VPN, не нужен ли, одна сеть для всех клиентов, или /30 и PPTP, или NAT. Шифрование, реализованное в Cisco TelePresence, обсудим далее.
Теперь, когда мы немного ознакомились с функциональными назначениями различных продуктов (это вообще не все) можно начать планировать подключение клиентов, выход в сети, зрить в корень реализации и т.д.
Есть несколько вариантов установления звонка соединения(skinny не рассматривал):
• h.323 — набор протоколов, пользователи связи цепляются к гейткиперу (он же контроллер зоны, он же привратник, реализован в VCS) — обработчик вызовов. Гейткипер цепляется к h.323 MCU;
• sip – протокол инициализации сессий. Нужен сип-сервер (который есть в VCS). Будет регистрировать пользователей, он же SIP-proxy. Цепляется к MCU (для случая звонков от 3-х участников).
Можно процитировать книжку Cisco Video and TelePresence Architecture Design Guide:
In many regards, SIP is better categorized as a communications session signaling protocol than a telecommunications signaling protocol because SIP enables more than just the establishment of voice and video communications. SIP can enable instant messaging, presence, and so forth, whereas SCCP and H.323 are purely telecommunications protocols. Part of the strength of the SIP protocol specification to support a myriad of services comes from the fact that UAS and UAC elements must ignore what they do not understand or support. On occasion, however, this strength becomes one of SIP’s disadvantages because it complicates interoperation between vendors. Furthermore, SIP is less detailed in its specification than SCCP or H.323, making vendor interoperation somewhat challenging at times. For example, in SIP there is more than one way to implement some features. If different vendors implement the same feature in different ways, they would be incompatible.
Что сип, что h.323 — одинаково полезны. Стоит оговориться, что h.323 — это не протокол, а рекомендации к используемым протоколам. А протоколы эти имеют характер стандарта. По функциям одно и то же. Хотя сип выигрывает по следующим критериям:
• удобнее масшабировать;
• соединение устанавливается в 1 хендшейк, когда в h.323 их будет 100500;
• многие заметят сходство SIPс небезызвестным протоколом HTTP. Правда, похож, понятен.
Начнем с того, что для нас важно будет определение топологии, или топологий, которые мы хотим раскидать. Предположим простейшую схему, нам точно нужно телеприсутствие, видеосвязь h.264 и конференции SIP+h.323. С этим справится набор из VCS для регистрации участников и sip-сервером на борту, MCU для конференсинга, эндпоинты с HD камерами и интернет-канал.
Лирическое отступление: Работая с Cisco TelePresence придется столкнуться с большим количеством НЕ циско-устройств: в их число входят Tandberg и Codian. Дела такие: когда-то в недалеком прошлом все они были независимы друг от друга. Тандберт считался гигантом видеосвязи, а Кодиан специализировался на производстве MCU-шек. В 2007 Британский Кордиан стал (за 270 миллионов бакинских) частью гиганта Тандберга, а в 2010 Тандберг стал частью гиганта Циско (за 3.3 миллиарда). Тандберг теперь производит своё оборудование под брендом TANDBERG Cisco, а Кодиан поддерживает и производит своё оборудование с подачи Циски под старым брендом Codian. Т.е. говоря о Кодианах и пр. мы подразумеваем Cisco«Om-nom-nom»corp.
Схема включения будет иметь вид:
Лицензирование
Заденем вопрос лицензирования. Поскольку пользователи живут и регистрируются на VCS, а объединение трех и более клиентов происходит на MCU, логично предположить, что Циско вряд ли дадут своим клиентам безграничные возможности по подключению участников конференций. Ограничение номер раз, это максимально доступное кол-во регистраций пользователей. Изначально машинка (VCS) имеет возможности на 2500 регистраций (зависит от комплектации покупки). Можно собрать кластер (максимум 6 устройств). Кластером можно расширить число регистраций МАКСИМУМ до 10 000. Меньше, чем должно быть – это из-за резервирования, т.е. если одна железяка выходит из строя юзеров возможно портировать на вторую. Ограничения номер 2 и 3 это traversal и non-traversal звонки. Traversal звонки, это:
• Звонки с H.323 на sip (и наоборот);
• Firewall traversal вызов Assent;
• Firewall traversal вызов h.460;
• Ipv4-ipv6;
• Expressway получивший вызов, но не имеющий продленную лицензию на локальные вызовы, может использовать одну traversal лицензию на один звонок.
Non-traversal – это звонок внутри ipv4 сети, с сипа на сип, вызовы между VCS-ками, т.е. простейшие вызовы не требующие хитрых манипуляций.Траверсал лицензии можно докупать по 10, 20, 50, 100, 200 и 300 штук. Кстати, если собрать кластер (так же 6 штук), можно получить 2000 нон-траверсал и 400 траверсал лицензий. Так же, лицензированию на VCS подвержены множество дополнительных функций, такие как FindMe, Advanced Account Security, Device Provisioning и многое другое. К сожалению, ни слова не нашел по расширению количества создаваемых sip-доменов (по умолчанию их 200, но куда уж больше!).
Лицензирование MCU заключается в возможном количестве участников в конференции. Рассмотрим на примере MCU серии 4200 Codian MCU-4210: он имеет возможность включать до 20 участников в видеоконференцию, имеет дополнительно 20 лицензий на аудио участников. Для сравнения, Codian MCU-4220 может всего по 40 (видео и доп. аудио). Тут 20 участников означает наличие на устройстве 20 виртуальных портов, которые устройство между собой коммутирует. Т.е. больше 20 – никак. Кластер можно собирать, только если у вас есть что-то из сверхзлых железок, ако Supervisor MCU MSE 8050 напичканного блейдами MCU MSE 8510 blade. Кстати, на этой же MCU-шке (4210) есть сервер видеовещания.
Шифрование
Разберемся, что шифруется: во-первых сигнализация. Шифруется она AES-ом (DES-ом, 3DES-ом), ключ выбирается по Диффи-Хеллману. Включается нажатием кнопки в красявой веб-мордочке. Во-вторых, шифруется передаваемый трафик (медиа данные), тем же AES-ом, ключик по тому же Диффи-Хеллману. И включается точно так же.
Если секурность кажется недостаточной, то до клиентов можно поднимать VPN-туннели, писать ACL, настраивать Firewall-ы и т.д. Включим паранойю:
• если SIP, то SIPS (тот же сип, но с TLS.Адрес пишется не sip:@…, а sips:@...)
• если TCP/UDP, то TLS
• если RTP, то SRTP
• если клиент далеко, то GRE/IPsec
• ну и все, что придумаем
Понятно, что это увеличит время пакетизации и общий оверхед.
VCS Software Overview
Сама по себе прошивка очень удобная (X7.2.2), обладает мануалом к себе самой на борту, открывается он кнопочкой Help в верхнем правом углу. Открывающийся в окне хелп даёт справочную информацию о той подсистеме, в которой вы сейчас находитесь (как теоритическую, так и практическую). Поля ввода так же подсвечиваются миниатюрным хелпом.
Не стоит переживать, если что-то не понятно, или не помнишь что в каком поле писать. Help выполнит своё предназначение. К плюшкам софтварины можно отнести мощный набор регулярок (относительно мощный в пределах своей задачи).
Настройка
Базовую настройку опустим, вот уж чего-чего, а «как настроить VCSe+VCSc+MCU на скорую руку» в интернетах полным-полно, а вот самого интересного можно отрыть только в километрах гайдов (у меня ушло чуть меньше месяца с «ниже абсолютного нуля»). Предположим, что базовые настройки мы выполнили, установили соседство c MCU, Traversal зоны, настроили время и т.д. Сейчас разберемся с управлением вызовами «like a boss», кто такие эти соседки, и зачем нужен Traversal.
Зоны
Мутные замуты начинаются здесь. Зона – это абстрактный набор чего угодно (доменов, ip-адресов, устройств, сервисов), к которым применим определенный набор правил. Зоны нужны для управления пропускной способностью, аутентификацией и маршрутизацией звонков, и это применяется сразу ко всему, что есть в зоне. Создавая Диал-планы Вам необходимо указать из какой
зоны в какую передать звонок (а не в какой домен). Так проще контролировать все, что происходит, однако, настройка этого безобразия может показаться муторной.
Все конечные устройства, VCS-ки и MCU-шки, вообще все ваши устройства, входят в Локальную зону (
LocalZone). Локал зона может быть разделена на подзоны (
Subzones). Поэтому для гибкости управления можно создавать отдельную сабзону для нового sip-домена. Создавать их можно до 1000. Домен, который будет относится к той или иной сабзоне нужно определять с помощью «правила членства в подзоне» (Subzone membership rules).
Зоны же бывают соседские (
Neighbor), перенаправляющие (
Traversal(клиент-серверного представления)),
ENUM и
DNS. Последние два для ENUM и DNS запросов, им нужно показать, у каких серверов спрашивать имена и E.164. Traversal zone нужны для маршрутизации вызовов между разделенными фаером VCS Control и Expressway. Скажем половина клиентов внутри будет делать вызов через VCS Control, а половина, которая находится удаленно, воспользуется средствами Expressway. VCS Control– клиент, Expressway– сервер. Neighbor зона нужна, например, для связи с MCU, или другим VCS. Те, кто не попал ни в одну зону, попадают в
DefaultZone, и работают согласно правилам дефолтной зоны, которую, вообще говоря, можно не заполнять правилами, и все будут просто реджектиться.
Скриншоты буду выкладывать поменьше, дабы не забивать текст полупустыми окнами браузера. Проще рассказать словами.
Создать Subzone (для управления пропускной способностью, шифрованием и аутентификацией) можно в меню VCS Configuration ->Localzone ->Subzones. Жмем New, в области Policy разрешаем регистрацию Registration policy – Allow, и обязательно авторизуем: Authentication policy – Check Credentials. В области SIP Media encryption mode можно определить необходимость шифрования. Ограничения по пропускной способности – опционально. Этот инструмент позволяет управлять звонками между зонами.
Создать SIP-domain (VCS Configurations -> Protocols –> SIP ->Domains). Нажать New, ввести имя домена. Создать можно до 200 штук.
Создание правил membership rules для установления членства домена в сабзоне (VCS Configuration ->Local zone ->Subzones membership rules). Правило должно содержать Название, приоритет, регулярное выражение, под которое будет попадать доменное имя и сабзона, правила которой будут использоваться в данном домене.
После того, как определилась сабзона получателя и отправителя, на VCS (или VCS-ах) начинается обработка вызова, согласно правилам вызова Call policy (VCS Configuration->Call policy->Rules). Во-первых, включаем их, во-вторых пишем правила. Кто знаком с ACL-ями увидит большое сходство. Откуда-куда-политика – простая схема, всего 3 пункта правила. То правило, которое стоит выше – срабатывает раньше, менять положение можно стрелками ввхерх-вниз.
Таким правилом мы разрешаем/запрещаем вызовы на номер 123456 из домена newdomain.ru, например. Есть в конце неявный Deny или нет, я, к сожалению, не проверял, но на всякий случай в конце поставил правило «.* -> .* Reject» т.е. блочить отовсюду и куда угодно. Естественно раньше написаны разрешающие правила. Вообще говоря, можно не включать Call Policy, и рулить звонками на уровне диал-планов. Но со включенными правилами у вас даже до диал-планов не дойдет, и если у вас их много, не нужно бегать по списку правил и судорожно искать диал-план, под который попадает ваш звонок.
Вот уже мы вплотную подошли к Dial-plan-ам, вещам важным и нужным, без которых ничего работать не будет. Обработка вызова на этапе Dial-plan-ов происходит поэтапно. Сначала срабатывают правила типа «Transform». Они позволяют делать с адресами вообще что угодно: отрезать доменную часть, добавить доменную часть, сменить имя получателя, отправителя. Скажем, вам хочется звонить с Сиско-фона на блатной номер, «666666» например, и попадать в конференцию, комнат у вас немерено, и создавать еще одну нет нужды. Значит, пишем трансформ уже в существующую комнату и дело с концом. Вот пример как из 666666 сделать 639801.
После того, как трансформ выполнен и правила трансформа, применимые к вызову, кончились, начинается обработка согласно правилам Search rules. Создаем Search Rule для диал-планов, для роутинга search requests в определенные зоны (VCSConfiguration ->Dial-Plan ->SearchRules). Пример правила для домена-сабзоны ниже.
Обращаем внимание на то, что правило создаётся для исходящей зоны, указанной в Source name ищет в запросе Pattern string, указанный как суффикс получателя (Suffix) URI «nik». Другими словами, если из зоны nik звонок имеет адрес назначения nik, то искать этот адрес нужно в локальной зоне (Local Zone).Включается правило в drop-down поле State в положение Enable.
Сейчас пара слово Pattern matching variables. Да-да, а самое приятное – эти штуки работают вообще везде, если в поиске регулярка, суффикс или префикс. Это переменные вида %pattern%, которые применяются в регулярках, Search Rules-ах и вообще везде, где вы работаете с ip-адресами или sip-доменами.
Краткий, но полезный лист переменных:
%localdomains% — все локальные sip-домены
%ip% — все ipv4 и ipv6 адреса
%ipv4%, %ipv6% то же самое, но по-отдельности
%localdomain1% — sip-домен с индексом 1(изменяется от 1 до 200)
%systemname% — systemname
Вопрос – кто же будет звонить? Создать sip-юзера можно несколькими способами. Первый очевидный – создать локального пользователя прямо в VCS (VCS Configuration –>Authentication ->Devices ->Local Database). Второй вариант – создать пользователя в TMS (у нас же еще менеджер есть). Для создания пользователей конечных устройств (регистрируемых с устройств) пройти в меню Системы -> Регламентирование -> Пользователи. Слева в меню Создать группу и пользователей (Add Group,Add users). В том же меню слева, снизу выбрать конфигурацию шаблонов (Configuration Template) и создать шаблон для группы. Тут стоит оговориться, что для разных терминальных устройств шаблоны будут разные, но, по сути, с одинаковым набором опций. Например, домен, адрес SIP-сервера, адрес телефонной книги и т.д… На TMS скачивается набор схем, все схемы заполняются администратором. Заполнение шаблона понятно интуитивно, но схемы этого шаблона для конечных устройств (будь это джаббер клиент, или терминал E20) нужно предварительно скачать с сайта
Есть возможность проводить аутентификацию после интеграции в AD или LDAP, но у нас не было необходимости.
Теперь Expressway. Создать SIP-домен таким же способом, как на Control-е. Поскольку TMS и Expressway находятся в разных сетях и разделены ACL-ем, юзера так же надо заводить в Local Database (Аналогично создать сабзону и membership Rule для членства в сабзоне). Для работы аутентификации включить Search Rule по протоколу SIP, с источником DefaultZone, искать нужно по следующей регулярке ^(.+)domain\.ru$, и отправлять в Traversal Zone на VCS Control. Для чего и почему – выяснилось только эмпирическим путем: до регистрации, поскольку это НЕ контрол, под «его» сеть не попадает никто, юзер не числится в домене, он не в сабзоне, т.е. все НЕ зарегистрированные лица попадают в DefaultZone.
Можно создать 2 универсальных правила, Call's to Traversal zone и Call's from Traversal zone для звонков между VCS-ками (мы же теперь можем такими понятиями оперировать?). Нетрудно догадаться, какого вида они будут, но если нужно разрешать сквозные звонки не всем, то лучше такое общее правило не писать, а делать для каждого домена отдельно.
Кратенько об MCU. Собственно, сам Конференсинг, как мы помним, организуется на MCU. Управление конференциями простое, устанавливаем h.323 соединение VCS с MCU-шкой (вагон и тележка гайдов в интернетах по этой теме) и создаем саму конференцию. Особенности хелпа MCU такие же как на VCS, но все же: создается конференция во вкладке Конференции кнопкой «Добавить новую конференцию». При создании конференции большинство полей будет заполнено из шаблона (заранее сконфигуренного), заполнить нужно будет только следующие поля:
• Имя – знаковый индентификатор
• Цифровой идентификатор – цифры, добавляемые к префиксу для регистрации
• PIN-код, если необходимо
• Айдишник гостя
• PIN гостя.
Шаблоны обеспечивают автоматическое заполнение некоторых полей, их можно изменять в меню Главная страница -> Конференции -> Шаблоны. Помимо основных настроек, будет доступна для конфигурирования пользовательская раскладка (Главная страница: ->Конференции -> Конференция «name» -> Пользовательская раскладка).Она определяет расположение участников видеоконференций на экране.
Вот так с нуля можно сконфигурить звонилку-конференсилку из кучи дорогих железок. Спасибо, что дожили до конца и с новым годом вас!
Источники
habrahabr.ru/
www.cisco.com/
www.anticisco.ru/
linkmeup.ru/
mcu.dc.codian.com/
This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.