Главная Exchange/UC, Без рубрики, Новое Введение в архитектуру Lync Server 2010 (Часть 1)
  • Введение в архитектуру Lync Server 2010 (Часть 1)

    logoПрежде чем начинать работать с продуктом обязательным условием для меня является знакомство с архитектурой. Без понимания принципов работы, ролей, взаимосвязей компонентов делать что то весьма проблематично. Не смотря на то, что по Lync Server 2010 есть весьма неплохая документация, я решил написать вводную статью для новичков в Lync Server, дабы  дать старт для последующей работы в направлении объединённых коммуникаций от Microsoft.

     

    Собственно для выполнения каких задач  создан данный продукт?

     

    1. Instant Messaging  – обмен мгновенными сообщениями внутри компании. Поддерживается и с внешними клиентами, чьи компании также используют Lync (называется это  федерациями). Про публичных клиентов с которыми возможны коммуникации , а это Windows Live, AOL,Yahoo забывать не стоит. (А также все службы, работающие по XMPP)

    2. Presence Information – информация о доступности сотрудника, которая видна когда вы находитесь на сайте SharePoint и просматриваете библиотеку документов, когда пишите или получает письмо, когда общаетесь в IM. Штука удобная и позволяет сходу понять доступе ли сейчас человек и если недоступен, то почему и когда появится.

     Presence

    3. Audio-Video конференции – если общением голосом и видео сейчас никого не удивишь, то возможность делать конференции, одна из ключевых особенностей еще со времен OCS. И  пусть определение говорящего пока далеко от совершенства, то инструменты доступа к рабочему столу, публикация слайдов, “голосовалки”, запись встречи и.т.д  для людей, которые плотно сидят на конференциях являются неотъемлемым атрибутом ежедневной работы. lync-conference-call[1]

    4. Замена привычных АТС или более реалистичный вариант сосуществование с ними. Раньше мечта компании Microsoft выглядела следующим образом, ваш сервер Lync заменяет корпоративную АТС, между Lync и телефонной сетью стоит голосовой шлюз. Сейчас мечта – прямой SIP транк до оператора без шлюза. Но в такой схеме пока есть ограничения.

     

    image

    В жизни эти мечты обретают реальность, а она говорит о том, что по функционалу (не говоря про вопросы надежности) до корпоративных АТС линку еще очень и очень далеко. Поэтому все сводится либо к эксплуатации Lync  в рамках первых трех пунктов, либо к использованию схем сосуществования с имеющимися АТС. Хотя вопрос спорный и открытый для дискуссий.

     

    Pbx

    Получается взаимодействие с цепочкой “Lync клиент – Lync Server – Медиа шлюз – Корпоративная атс – Телефонная линия”. Если что то из вышеперечисленного вам необходимо, то можно разбираться дальше и переходить к инфраструктуре.

     

    Требования к инфраструктуре.

     

    Прежде всего Lync Server 2010 не оторван от инфраструктуры и требует перед развертыванием наличие Active Directory Domain Services.  В качестве минимального режима работы домена и леса поддерживается Windows Server 2003 native mode. Топологии AD DS поддерживаются, хоть один домен, хоть десяток, хоть конфигурации с несколькими лесами. (ресурсный лес) При этом как и все последние версии продуктов Lync Server 2010 не поддерживает “single-label DNS names”

    Lync Server 2010 меняет схему Active Directory  и от этого факта избавиться не получится. Как и дедушка OCS внучек Lync (т.к хранит в каталоге важную информацию) расширяет схему, а именно класс пользователя и для обратной совместимости существующие классы, добавленные Office Communications Server 2007 R2.

     

    В каталоге хранится:

     

    • Пользовательский адрес (SIP URI) и другие пользовательские параметры
    • Объекты приложений (например Response Group и Conferencing Attendant)
    • Данные опубликованные для обратной совместимости с OCS
    • Точка соединения с сервисом (SCP) для  центрального хранилища (CMS)
    • Kerberos Authentication Account (опциональный объект компьютера)

     

    Требования к операционным системам и базам данных.

     
    В качестве платформы Lync Server 2010 может использовать Windows Server 2008  Service Pack 2 или более новые версии серверных ОС. Независимо от того на какой топологии инфраструктуры Lync вы остановитесь, в любом случае вам придется использовать SQL Server. Разница лишь в том, что если вы будете использовать один Lync сервер, то автоматически получите на этом сервере SQL Server Express (64-bit edition)  Если же топология будет состоять их нескольких серверов, то вам понадобится отдельный сервер с установленным Microsoft SQL Server 2005 Standard 64-bit SP3  или более новыми и более дорогими редакциями. (как пример для кластеризации) С SQL сервером у Lync Server 2010 взаимоотношения особые.

     

    Создаются следующие базы:

     

    1. Central Management Store (CMS) – а в жизни база данных “Xds” являющаяся хранилищем конфигурации Lync (топология, политики, объекты роутеров) Существует только одна “мастер копия” базы CMS, которая автоматически устанавливается на первом сервер в случае использования Standard редакции Lync. (При использовании Enterprise редакции на первом SQL  Back End Server)

    Каждый последующий Lync  сервер получает доступную только на чтение копию базы CMS. Любые изменения конфигурации выполняются только на мастере с копированием изменений в реплики на остальных серверах. Изменения реплицируются между серверами с использованием протокола SMB по порту 445. (в случае репликации изменений на пограничный сервер Edge используется HTTPS и порт 4443)

    В операционной системе сервис “Lync server replica replicator agent”  отвечает за создание снимка и выгрузку его по копиям через отправку  статуса о необходимости обновлений.

     

    2. Pool Configuration Store (конфигурация пула) – сердце вашего Lync Server. В нем работает три базы данных.

    Rtc: хранит  пользовательские данные, такие как список контактов,расписание конференций, списки доступа.

    Rtcdyn: база хранящая динамические данные, а именно информацию о доступности.

    Rtcab: хранит черновую информацию адресной книги, полученную из AD DS.

     

      3. Application Store – еще базы данных используемые функциями Call Park (парковка звонков) и Response Group (группы ответа).

    Cpsdyn: хранит динамическую системную информацию приложения Call Park

    Rgsdyn: хранит динамическую оперативные данные  приложения Call Park

    Rgsconfig: хранит постоянные конфигурационные данные  приложения Response Group

       

      4. Archiving и Monitoring базы. При использовании дополнительных ролей Lync Server 2010 (Archiving и Monitoring ) так же создаются еще три отдельных базы.

    LcsLog: используется ролью Archiving  и содержит переписку IM

    LcsCdr: используется ролью Monitoring  и содержит информацию о звонках. (Call Details Records)

    QoEMetrics: используется ролью Monitoring и содержит данные  о качестве вызовов.

       

      5. Location Store  еще одна база с именем "lis” содержащая данные о структуре сети для службы E9-1-1

      instance

    bases

    Получается после установки в самой простой топологии с одним сервером (а топологиях чуть позже) вы должны получить на Lync сервере два экземпляра SQL c именами \rtc и \rtclocal с заявленными базами. Экземпляр \rtclocal  содержит реплики баз. И такое количество баз это при условии, что дополнительные роли Archiving и Monitoring вы не ставили.

     

    Простая топология.

     

    Допустим у вас до 5000 сотрудников и при этом высокая доступность вам не нужна. В таком случае применяется вариант “all in one” и внутри сети разворачивается единственный сервер Front End с полным набором ролей. Это на живом железе. При виртуализации количество уменьшаем вдвое.

     

    На FrontEnd сервере будут располагаться:

     

    1. Front End Server – сердце вашего Lync сервера, за ним мгновенные сообщения (SIP), статус доступности (SIP), аудио и видео точка-точка (SIP). Т.е сервер SIP-Registrar отвечающий за управление сессиями клиентов.

    2. A/V Conferencing Server – cервер аудио-видео конференций, но в рамках текущей топологии совмещенный с Front End.

    3. Monitoring Server – опциональная роль, собирающая информацию о звонках (CDR) и информацию о качестве вызовов. Вызовы Monitoring Server не записывает.

    4. Archiving Server – еще одна  опциональная роль позволяющая хранить  переписка клиентов обмена мгновенными сообщениями и содержимое конференций. Если такая задача как хранение перед вами не стоит, то и роль не нужна.

    5. Mediation Server – роль, которая необходима для интеграции с телефонией,  а именно с голосовыми шлюзами (PSTN)  и  АТС  (IP-PBX). Mediation  передает на них сигнальный SIP трафик и в некоторых случаях медиа трафик. В данной версии Lync,  Mediation Server прекрасно может быть размещен на Front End.

    6. Back End Server – это сервер MS SQL обеспечивающий работу баз данных Lync сервера. В случае одного сервера BackEnd совмещается с Front End и использует SQL Express. В базах данных хранится информация о доступности, контакт листы пользователей, статусы текущих конференций, расписание будущих конференций. При этом не надо забывать, что при использовании Archiving и Monitoring серверов, будут созданы дополнительные базы данных.

    Несмотря на то, что физически сервер у вас один и совмещено на нем множество служб он называется Front End пулом и впоследствии будет принимать подключения пользователей зарегистрировавшихся на нем.

     

    Как начнется работа после установки пула Front End:

     

    1. Администратор прописывает поддерживаемый sip домен и включает поддержку Lync для необходимых учетных записях.

    2. Пользователи входят в систему и запускают клиента Lync 2010, который будет выступать как основной рабочий инструмент. Клиент Lync 2010 при запуске вытаскивает с контроллера необходимую информацию о пользователе. (его SIP адрес) После чего пытается подключиться по порту 5061 на Front End пул. Для поиска пула используется SRV запись, (_sipinternaltls._tcp.<domain>) которая предусмотрительно добавляется администратором. В противном случае (без записи) автоматически осуществить вход клиенту не получится, что не исключает ручного добавления имени сервера на клиенте.

     

    srv

    dns

     

    3. Все SIP коммуникации (в т.ч. обмен мгновенными сообщениями) всегда осуществляются через Front End сервер. Даже в рамках сеанса обмена мгновенными сообщениями между двумя пользователями – сообщения всегда будут пересылаться исключительно через сервер. Обмен мгновенными сообщениями между пользователями, расположенными внутри сети, пойдет по сценарию:

     

    [Lync 1] <-> [Front End]  <-> [Lync 2]

     

    Если пользователь Lync звонит другому пользователю Lync внутри одной сети, то здесь взаимодействия точка-точка:

     
    [Lync 1] <-> [Lync 2]

     

    Как только звонок переходит в конференцию с тремя и более людьми, то передача данных сразу идет через сервер. (Если несколько серверов – сервер организатора)

     

    [Lync 1] <->  [Front End] <-> [Lync 2]

                              <->

                          [Lync 3]

    Полная схема сетевых взаимодействий большая и разбираться с ней сейчас в задачу не входит. Переведем внимание на порты и протоколы используемые при соединениях с сервером Lync.

    Protocols

    1. Когда Lync клиент регистрируется на сервере взаимодействие использует порт 5051 и протокол SIP. Этот же протокол используется для управления сессией, для передачи IM и изменений информации о доступности.

    SIP (англ. Session Initiation Protocol — протокол установления сеанса) — протокол передачи данных, который описывает способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым (видео- и аудиоконференция, мгновенные сообщения, онлайн-игры). (wiki)

    2. Для скачивания с Front End сервера содержимого конференций клиентом Lync используется 443 порт и протокол HTTPS.

    3. Как только два пользователя начинают аудио-видео общение, между ними начинает работать протокол SRTP (Secure Real Time Protocol) для предотвращения прослушивания и внедрения пакетов. В SRTP применяется 128-разрядное потоковое шифрование AES (Advanced Encryption Standard). Диапазон используемых портов приличный 49152 – 65535.

    4. При пересылке через брандмауэры Lync использует стандарт подразделения ICE (Interactive Connectivity Establishment)  для определения самого короткого пути между конечными точками. ICE основан на двух протоколах — STUN (Session Traversal Utilities for NAT) и TURN (Traversal Using Relay NAT).

    5. Если коммуникации предполагают более двух участников, то общение по протоколу SRTP идет уже между клиентами и Front End сервером. При создании веб-конференций используется модель PSOM (Persistent Shared Object Model). Протокол используется для передачи содержания веб-конференций, включая ключи безопасности, роли и пользователей. В PSOM также в качестве нижележащего транспорта используется TLS, а аутентификация также выполняется по защищенному SIP-каналу.

    Важно: По умолчанию все коммуникации между компонентами (SIP/RTP/PSOM/HTTP) шифруются.

     

    Выводы

    Получается что установив один сервер Front End  вы сразу же можете использовать внутри сети IM, Presence Information, A/V звонки между сотрудниками, а при наличии оборудования и доп. роли Mediation и звонки в внешний мир.  Но нужно помнить, что при одном сервере (стандартный пул) вы не имеете отказоустойчивости и возможности подключаться снаружи организации, ровно как и общаться с публичными сервисами. (Live Messenger как пример) Опять же при отправке вам сообщений от других компаний, использующих Lync не вы получите ничего. Для общения с внешним миром придется добавлять еще один сервер с новой ролью Edge, но об этом мы поговорим в следующей части. Так же стоит отметить Exchange Server,  без него смысла внедрять Lync Serevr мало. Нет автосекретаря, нет попущенных вызовов, нет истории переписки. 

     

    MCT/MVP Илья Рудь

     

    P.S Спасибо Александру Донину за помощь в написании данного конспекта.

Комментарии

  1. Хорошая статья! Теперь хоть вкратце начал понимать, что за зверь такой – Lync и для чего он 🙂

  2. Отлично!
    Хочу ещё!

  3. Когда будет продолжение?

  4. Думаю продолжение будет на следующей неделе.

  5. круть, через пару месяцев уже следующая версия поделки появится…самое время конспекты выложить 🙂

  6. Как использовать клиента Lync на терминальном сервере Citrix ?

  7. Илья , а вы про sharepoint 2010 больше статьи не планируете писать ???

  8. Ashot, как правило, я пишу статьи в рамках тех направлений с которыми в текущий момент работаю. А работаю я с Exchange, Sharepoint и теперь Lync. Поскольку у меня сейчас несколько задач по Lync, то скорее всего в ближайшей перспективе писать буду именно о нем.

  9. Хотел бы добавить к требованиям: Нужен энтерпрайзный центр сертификации в домене, ибо если работать со стандалон сервером – частично не работает функционал в конференциях. Например, показ презентаций.

    PS Столкнулся с этой проблемой, открывал кейс в майкрософт (ничем не помогли, кроме выноса мозга сбором информации), через год внедряли 2010 эксч и установили энтерпрайз ЦС – проблема ушла.

  10. Про сертификаты поговорим в следующей части. Я последнее время в большинстве ситуаций использую коммерческие центры сертификаций.

  11. Коллеги, а можно как то посмотреть сколько клиентов подключены к серверу Lync?

  12. Илья, “еще одна опциональная роль позволяющая хранить перепискУ”

  13. Хорошая статья. Мы как раз завершаем внедрение STD с телефонией. Подняты все роли. Попробуем перевести всю телефонию на Линк. По опыту скажу что телефоны нам съели мозг больше всего. Остальное поднимается довольно просто. В следующей версии майкрософт обещает ВОИП на мобильном клиенте а не коллбэк, но все также не будет мультипоинт видео конференций. Поликом что то переписывает в видео кодеках для Линка.

  14. “По опыту скажу что телефоны нам съели мозг больше всего.”

    Думаю, ситуация мало отличается от того, что было бы при попытке использовать “сторонние” телефоны в решениях Cisco. 🙂

  15. Если не ошибаюсь, то для развертывания ролей Monitoring и Archiving необходим полноценный SQL Server, а не Express.

    CA – спокойно разворачивается на контроллере домена и проблем нет. Кстати у кого есть Gold или Silver статусы у Microsoft, то можно пройти программу GetCurrent по внедрению Lync у вас в организации с подробными мануалами и консультацией. В целом неплохо, с Edge и TMG правда мозг вынесли.

  16. Илья, в конце закралась лёгкая неточность. В каком-то смысле, автосекретарь в Линке есть, в виде Response Groups Workflow. Для несложных задач приветствия и ветвления по группам он вполне подходит. Но вот донабирать внутренний номер, в отличие от АутоАттенданта из Exchange, он не умеет.

  17. Когда Lync клиент регистрируется на сервере взаимодействие использует порт 5051

  18. ф как можно сделать лес ресурсный или центальный. Где это в настройках