<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>IT-блог компании &#34;ЛанКей&#34; &#187; federation</title>
	<atom:link href="http://www.lankey.ru/blog/tag/federation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lankey.ru/blog</link>
	<description>Системный интегратор. Комплексные решения по построению ИТ-инфраструктуры предприятия.</description>
	<lastBuildDate>Sat, 28 Jan 2012 13:58:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Интеграция OCS 2007 R2 и Google Talk / Jabber</title>
		<link>http://www.lankey.ru/blog/2009/10/17/integracia-ocs-2007-r2-i-google-talk/</link>
		<comments>http://www.lankey.ru/blog/2009/10/17/integracia-ocs-2007-r2-i-google-talk/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 22:35:15 +0000</pubDate>
		<dc:creator>Ярослав Никифоров</dc:creator>
				<category><![CDATA[Office Communications Server]]></category>
		<category><![CDATA[federation]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[office communications server 2007 r2]]></category>

		<guid isPermaLink="false">http://blogs.lankey.ru/?p=360</guid>
		<description><![CDATA[Известно, что пользователи Office Communications Server 2007 R2, используя Office Communicator, могут общаться не только друг с другом, но и с клиентами других систем обмена сообщениями &#8211; AOL (и официальным ICQ), MSN Live Messenger, Yahoo &#8211; этот процесс называется федерация (federation). Пользователи видят таких клиентов в своем списке контактов, видят их состояние присутствия (так же, [...]]]></description>
			<content:encoded><![CDATA[<p>Известно, что пользователи Office Communications Server 2007 R2, используя Office Communicator, могут общаться не только друг с другом, но и с клиентами других систем обмена сообщениями &#8211; AOL (и официальным ICQ), MSN Live Messenger, Yahoo &#8211; этот процесс называется<strong> федерация</strong> (federation). Пользователи видят таких клиентов в своем списке контактов, видят их состояние присутствия (так же, как и федеративные пользователи видят их состояние), и могут обмениваться текстовыми сообщениями.</p>
<p>Теперь количество интегрируемых с OCS систем увеличилось. Первого октября команда разработчиков Office Communications Server выпустила <strong>бесплатное</strong> дополнение для OCS 2007 R2 &#8211; <strong>XMPP Gateway</strong>, сервер для федерации с системами, работающими по протоколу Jabber &#8211; а это, например, Google Talk, или известный в России QIP.</p>
<p>Сервер XMPP Gateway устанавливается в сети периметра &#8211; той же самой, где находится сервер Edge. Сосуществовать с другими ролями OCS эта роль не может &#8211; для нее нужен отдельный сервер (или виртуальная машина). И, несмотря на то, что роль называется Gateway &#8211; она требует для работы лишь один сетевой интерфейс. Главное &#8211; чтобы XMPP Gateway мог связаться с сервером Edge по TCP-порту 5061, и с другими Jabber-серверами в Интернете по TCP-порту 5269. Второго мы можем добиться, например опубликовав порт 5269 на нашем внешнем firewall.</p>
<p>Обязательное требование к серверу XMPP Gateway &#8211; что он <strong>не должен</strong> быть членом домена, в котором развернут Office Communications Server. Рекомендуется, чтобы этот сервер просто принадлежал какой-либо рабочей группе.</p>
<p>Давайте попробуем развернуть эту роль и на практике посмотреть, как же можно связать пользователей Communicator и Google Talk:</p>
<p><span id="more-360"></span></p>
<h3>Коротко о Jabber</h3>
<p>Давайте сначала разберемся, как работает протокол XMPP.</p>
<p>По своей сути протокол &#8211; это специально сформированные сообщения в формате XML. Клиенты XMPP общаются с сервером по порту 5222. Серверы общаются между собой по порту 5269. Для того, чтобы два сервера могли обмениваться информацией между собой, используется так называемый Dialback &#8211; первый сервер подключается ко второму по порту 5269, и второй сервер устанавливает встречное соединение с первым, тоже на порт 5269.</p>
<p>Поскольку XML-сообщения это по сути открытый текст &#8211; протокол позволяет шифровать передаваемый межсерверный трафик по протоколу TLS.</p>
<h3>Поиск нужного сервера</h3>
<p>Если пользователь хочет отправить сообщение на адрес someuser@somedomain.ru &#8211; сервер выполняет DNS-запрос на получение записи типа SRV с именем <strong>_xmpp-server._tcp.somedomain.ru</strong>. Ответ DNS-сервера и содержит имя Jabber-сервера (или серверов) домена somedomain.ru, и порт, к которому нужно произвести подключение.</p>
<h3>Структура сети</h3>
<p>Схема сети выглядит следующим образом:</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp00.png"><img class="alignnone size-medium wp-image-362" title="Структура сети для XMPP" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp00-300x235.png" alt="Структура сети для XMPP" width="300" height="235" /></a></p>
<p>У нас есть контроллер домена DC, он же центр выдачи цифровых сертификатов, сервер OCS (Standard Edition), сервер EDGE (типа Consolidated Edge, все три роли на одном. Самое главное &#8211; что на нем есть Access Edge). Расположим в сети периметра сервер JABBER. Пользователи нашего OCS имеют SIP-адреса из домена, скажем, <strong>external.ru</strong>.</p>
<p>Сервер Access Edge имеет сетевое имя sip.external.ru.</p>
<h3>Установка сервера JABBER</h3>
<p>Установим на нем 64-битный Windows 2003 или 2008 &#8211; я остановился на 2003 R2 Datacenter. Оставляем этот сервер в рабочей группе, и припишем в настройках имени компьютера DNS-суффикс external.ru &#8211; чтобы его полное имя совпадало с тем, какой сертификат мы ему выдадим.</p>
<p>Связь сервера JABBER с сервером EDGE будет проходить по зашифрованному каналу &#8211; следовательно, оба сервера должны иметь сертификаты. Импортируем сертификат корневого центра сертификации DC в соответствующее хранилище сервера JABBER, и выдадим этому серверу сертификат шаблона Web Server на полное имя компьютера &#8211; <strong>jabber.external.ru</strong>. На сервере EDGE сертификат на имя sip.external.ru сертификат уже присутствует с момента развертывания OCS.</p>
<h3>Установка XMPP Gateway</h3>
<p>Скачаем с сайта Microsoft Download Center дистрибутив XMPP Gateway и запустим его. Сам дистрибутив программу не установит, а лишь разархивируется в каталог <code>C:\Program Files\Microsoft Office Communications Server 2007 R2\XMPP Installer</code>. Куда мы зайдем и запустим setup.exe.</p>
<p>Первый пункт установки развернет нам файлы приложения. После него нужно настроить IP-адрес для шлюза. Находим файл <code>C:\Program Files\Microsoft Office Communications Server 2007 R2\XMPP Gateway\TGWConsoleGUI.dll.config</code> и открываем его Блокнотом.</p>
<p>Впишем в него IP-адрес сервера JABBER, в два параметра. Первый параметр &#8211; для адреса, к которому будет получать доступ сервер EDGE. Второй параметр &#8211; для адреса, к которому будут получать доступ внешние серверы из Интернета. Для нас это один и тот же адрес, допустим, 192.168.1.222:</p>
<p><code><br />
&lt;?xml version="1.0" standalone="yes"?&gt;<br />
&lt;configuration&gt;<br />
&lt;appSettings&gt;<br />
&lt;add key= "cultureName" value = "en-US"/&gt;<br />
&lt;add key= "SipIP" value= "<strong>192.168.1.222</strong>"/&gt;<br />
&lt;add key= "XmppIP" value="<strong>192.168.1.222</strong>"/&gt;<br />
&lt;/appSettings&gt;<br />
&lt;/configuration&gt;<br />
</code></p>
<p>Сохраняем файл и возвращаемся в программу установки.</p>
<p>Второй шаг запустит программу настройки. Эта же программа будет доступна в дальнейшем через ярлык в Administrative Tools. Кстати, при любом изменении в этой программе необходимо рестартовать службу Office Communications XMPP Gateway.</p>
<h3>Настройка программы &#8211; параметры доступа к OCS</h3>
<p>Первый раздел программы слева &#8211; SIP Configuration, то есть связка с OCS. На первой закладке в поле Domain нужно указать SIP-домен организации, то есть в нашем тестовом случае, external.ru. В поле Host Name указывается имя сервера EDGE &#8211; в нашем случае, это sip.external.ru.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp01.png"><img class="alignnone size-medium wp-image-363" title="Настройка XMPP 1" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp01-300x213.png" alt="Настройка XMPP 1" width="300" height="213" /></a></p>
<p>Нажимаем кнопку Save.</p>
<p>На второй закладке нужно выбрать сертификат для TLS-шифрования трафика с сервером EDGE. Выбираем ранее полученный нами сертификат на имя сервера jabber.external.ru.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp02.png"><img class="alignnone size-medium wp-image-364" title="Настройка XMPP 2" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp02-300x213.png" alt="Настройка XMPP 2" width="300" height="213" /></a></p>
<p>На третьей закладке можно выбрать домен и убедиться, что сервер JABBER подключается к серверу EDGE.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp03.png"><img class="alignnone size-medium wp-image-365" title="Настройка XMPP 3" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp03-300x213.png" alt="Настройка XMPP 3" width="300" height="213" /></a></p>
<p><em>Внимание: проверяется только <strong>возможность</strong> подключения, то есть доступность сервера по IP-адресу. Никакой трафик, вроде авторизации и так далее, не передается, то есть информация об успехе подключения всего лишь говорит что сервер нам доступен, а не то что он действительно работает правильно</em>.</p>
<h3>Настройка программы &#8211; параметры XMPP Configuration</h3>
<p>В закладке Allow list мы указываем, с какими именно Jabber-доменами мы хотим &laquo;дружить&raquo;, и методику связи с ними &#8211; в частности, следует ли использовать TLS или достаточно простого TCP подключения. Сервер gmail.com для Google Talk в отличие от многих других может работать и без TLS.</p>
<p>В поле Domain Name вводим домен, с пользователями которого мы хотим связываться &#8211; в нашем случае это gmail.com. Метод подключения выбираем TCP Dialback &#8211; то есть, без сертификатов и шифрования. Нажимаем OK &#8211; и домен появляется в списке.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp04.png"><img class="alignnone size-medium wp-image-366" title="Настройка XMPP 4" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp04-300x213.png" alt="Настройка XMPP 4" width="300" height="213" /></a></p>
<p>На второй закладке мы ничего не указываем &#8211; потому что мы выбрали подключение без шифрования.</p>
<p>На третьей закладке мы можем проверить доступность серверов gmail.com.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp05.png"><img class="alignnone size-medium wp-image-367" title="Настройка XMPP 5" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp05-300x213.png" alt="Настройка XMPP 5" width="300" height="213" /></a></p>
<p><em>Так же, как и раньше, проверяется только <strong>возможность </strong>подключения</em>.</p>
<p>Раздел Settings можно не настраивать, оставив все по умолчанию.</p>
<p>Теперь можно вернуться в программу установки и нажать Start services.</p>
<h3>Настройка сервера EDGE</h3>
<p>Теперь, для того, чтобы наш EDGE знал, куда следует переадресовывать запросы на адреса для Jabber, нужно открыть оснастку управления на сервере EDGE, выбрать свойства сервера и найти закладку Allow.</p>
<p>На этой закладке нажимаем Allow и вписываем &#8211; домен gmail.com, и хост, на который нужно переадресовывать запросы &#8211; у нас это jabber.external.ru.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp06.png"><img class="alignnone size-medium wp-image-368" title="Настройка XMPP 6" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp06-281x300.png" alt="Настройка XMPP 6" width="281" height="300" /></a></p>
<p>Естественно, нужно позаботиться о том, чтобы сервер EDGE знал, как найти IP-адрес сервера JABBER &#8211; например, указав его в файле hosts.</p>
<h3>Настройка внешнего DNS</h3>
<p>Как я говорил ранее, не только мы устанавливаем соединение с другим Jabber-сервером &#8211; и этот сервер должен установить еще одно соединение с нами. Для этого он должен нас найти.</p>
<p>Открываем консоль внешнего DNS-сервера, обслуживающего наш SIP-домен, и создаем там запись типа А для сервера JABBER &#8211; я назвал его xmpp.external.ru. Так как порт 5269 моего сервера я просто опубликовал на аппаратном firewall &#8211; то для этой записи A я указываю IP-адрес firewall-а.</p>
<p>Создаем еще одну запись, типа SRV, с именем _xmpp-server._tcp &#8211; именно по ней нас и найдут внешние сервера. Укажем порт 5269 и хост xmpp.external.ru &#8211; тот, который мы прописали чуть выше.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp09.png"><img class="alignnone size-medium wp-image-369" title="Настройка DNS для XMPP" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp09-271x300.png" alt="Настройка DNS для XMPP" width="271" height="300" /></a></p>
<h3>Проверка</h3>
<p>Все! Настройка закончена. Если все прошло как надо, все нужные порты и записи присутствуют и службы запущены &#8211; мы можем добавить в Communicator запись с gmail-а, и увидеть статус присутствия, написать сообщения и даже получить ответ <img src='http://www.lankey.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp10.png"><img class="alignnone size-medium wp-image-370" title="Общение Communicator и Google Talk" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp10-300x229.png" alt="Общение Communicator и Google Talk" width="300" height="229" /></a></p>
<p>Пользователь Google Talk в свою очередь увидит наш статус присутствия и тоже сможет нам писать.</p>
<p><a href="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp11.png"><img class="alignnone size-medium wp-image-371" title="Общение Google Talk и Communicator" src="http://blogs.lankey.ru/wp-content/uploads/2009/10/xmpp11-199x300.png" alt="Общение Google Talk и Communicator" width="199" height="300" /></a></p>
<h3>Послесловие</h3>
<p>Как можно видеть на картинке выше, в моем Communicator присутствуют еще записи из доменов qip.ru и jabber.ru, без состояния присутствия. Дело в том, что эти сервера требуют обязательного шифрования трафика по TLS &#8211; а значит, нужно будет присвоить серверу xmpp.external.ru сертификат, причем от публичного центра сертификации. Так что &#8211; продолжение экспериментов следует <img src='http://www.lankey.ru/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.lankey.ru/blog/2009/10/17/integracia-ocs-2007-r2-i-google-talk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

