NAT – преобразование сетевых адресов – вещь очень даже неплохая. Один интернет-адрес (если по простому – входящий от провайдера кабель) можно “размножить” на несколько компьютеров, получая внутреннюю сеть, которая легко может пользоваться благами интернета. Каждая машинка в сети получает свой внутренний адрес, а NAT-устройство обеспечивает прозрачное преобразование TCP-запросов в сеть и из нее, подменяя необходимую техническую информацию прямо на лету. Но не все так просто для VoIP телефонии, которая работает по протоколу SIP.
C SIP все сложнее. Если остальные сетевые протоколы (например HTTP, FTP) не интересуются адресами отправителя-получателя, то SIP – внутри своей текстовой информации вписывает текущий адрес.
Представьте, что хотите отправить письмо обычной (не электронной) почтой. Вы его запечатываете в конверт и несете на почту. Конверт – это техническая информация, а NAT – это почтовый работник, которые ставит штемпели на конверт и отправляет его куда нужно. А вот SIP пишет свой адрес внутри конверта, поэтому конверт нужно вскрыть и, если нужно, исправить, чего NAT не умеет.
И получается, что два телефона SIP, которые расположены за устройствами преобразования адресов, не могут связаться между собой без дополнительных ухищрений. Но как же работают IP телефоны да и тот же Skype?
Для решения проблемы преобразования адресов создаются специальные серверы SIP-proxy, которые работают аналогично NAT – преобразователям, только для протокола SIP. Так, если вы запустили Skype, то он каждые N миллисекунд лезет на свой сервер и считывает информацию, получает данные, через какой адрес он сейчас работает и какие адреса можно использовать для прогона SIP пакетов. Поэтому Skypе не требует открытых портов, внешних адресов и т.п. Он сам ищет дырки в вашей “защищенной” сети, и через них гоняет свою информацию. Есть еще технология STUN, которая делает нечто подобное, подробности в Wiki
Теперь перейдем к Microsoft Office Communicator. Во внутренней сети видео-аудио конференции будут работать без дополнительных усилий, поскольку технология peer-to-peer позволяет качать информацию между компьютерами одной сети. Если компьютеры пингуются (ping), то коммуникатор будет легко соединять их в аудио-видео конференцию.
Но если мы хотим подключить внешних пользователей, например, работающих дома, необходимо установить EDGE сервер. И на нем расположить минимум два (!) внешних IP адреса и один внутренний. Один адрес для информации и отдельно для голоса. На семинаре Microsoft рекомендовали вообще сделать три адреса – дополнительный еще для Web-конференций.
При этом, если пытаться использовать всего один адрес, то соединения не происходит и возникает ошибка “Звонок не выполнен или уже
Так что с уверенностью можно сказать, что Microsoft Communicator работает за NAT, но с обязательным коннектом к EDGE серверу.
Единственное, что нужно помнить – это нагрузка на сам сервер. Если при соединении точка-точка, нагрузка распределяется между компьютерами и трафик идет напрямую, то при соединении через EDGE, сервер прокачивает через через себя всю аудио-видео информацию, что предполагает довольно высокие требования к аппаратному обеспечению. С учетом того, что сервер рассчитан на работу с несколькими тысячами пользователей.
Вот выдержка из документации:
Hardware component | Minimum requirement |
---|---|
CPU | Dual processor, quad-core 2.0 GHz+4-way processor, dual-core 2.0 GHz+ |
Memory | 8 GB |
Disk | 2x 72 GB, 15K or 10K RPM, RAID 0 (striped) or equivalent |
Network | 2-port 1 Gbps network adapter (recommended) |
nat_vv
Сергей! ЛВС организована так, что подсети не видят друг друга, а видят только сервера.
Видеозвонки(MSCommunicator) проходят в пределах одной подсети.
При видеозвонке в другую подсеть, сообщение типа не могу звук. Мгновенные сообщения проходят. Как же так? Ведь обе сети видят Communication Server 2007? Это что надо настраивать EDGE-сервер? Жду ответа. Спасибо!
Сергей Трофимов
|AuthorПриветсвую!
Если коммуникаторы не могут связаться точка-точка, т.е. как я уже писал, не пингуются компьютеры, то остается единственное – нестраивать EDGE сервер. Или устанавливать маршрутизацию, чтобы компьютеры разных подсетей могли пинговать друг друга. Рекомендую посмотреть трафик от коммуникаторов при помощи Microsoft Network Monitor 3.3 (бесплатная софтина, можно скачать с сайта Microsoft)
Марат
Добрый день Сергей. У меня такой вопрос.. есть сервер Communicator с белым адресом, в другом городе стоит маршрутизатор с NAT, за ним пользователь с серыми адресами. Пользователь пингует сервер, но соединение коммуникатора к серверу не происходит (не логинится) С Чем это может быть связано? На маршрутизаторе всё прозрачно, закрытых портов нет. Ошибка сервер не доступен, попробуйте использовать TLS и т.д.
Сергей Трофимов
|AuthorДобрый день, Марат
скорее всего это связано с некорректной настройкой сервера. Посмотрите последовательность работ здесь:
http://technet.microsoft.com/en-us/library/gg425910.aspx