Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
* Приводятся возможности только для сети Sipnet.ru. Sipnet – это не клиент, а открытая сеть и некоторые пункты к нему (как к сети) не применимы
Приложение
NAT и STUN
На сегодняшний день подавляющее число компьютеров подключено к Интернету с использованием протокола четвертой версии протокола IP. Одной из известных проблем этой версии является нехватка адресного пространства. Так, для адресации в IPv4 используется 32 разряда, что позволяет обращаться к 4 294 967 296 устройств. Для Интернет на стадии его зарождения (20 лет назад) эта цифра казалось огромной. С позиции настоящего времени эта цифра уже не кажется столь большой, напротив, многие говорят о грядущей нехватке IP-адресов, особенно когда начнут появляться бытовые устройства (телефоны, холодильники и другие предметы бытовой техники), подключенные к Интернету. Сейчас же для «экономии» часто используется механизм NAT – Network Address Translation. Общую идею NAT можно описать так: преобразование адресов одной сети в адреса другой сети. В наиболее популярном частном случае (подключение локальной сети к Интернету) это будет трансляция внутренних адресов локальной сети (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) в один внешний интернет-адрес, полученный от провайдера. Обрабатывая пакеты, NAT-сервер будет просто заменять «локальные» адреса клиентов своим интернет-адресом, а при получении ответных данных из Интернета будет проводить обратное преобразование. При этом для служб, работающих на уровне IP, никаких проблем не возникает – NAT прозрачно меняет заголовки IP-пакетов. С протоколами более высокого уровня, к сожалению, возникают проблемы. Так, при установке соединения с помощью SIP участники диалога внутри SIP-сообщений указывают IP-адреса и номера портов, которые будут использоваться для передачи RTP-пакетов. Если NAT-сервер не занимается анализом содержимого пакетов на уровне протокола (а именно так все известные реализации и поступают), то RTP-пакеты просто не дойдут до адресата, ведь в SIP-сообщениях будут указаны внутренние немаршрутизируемые адреса участников. Для решения этой проблемы используется протокол STUN – Simple Traversal of UDP through NAT [9]. Его основная идея заключается в том, чтобы дать возможность клиенту определить, что он находится за NAT, а также сообщить ему IP-адрес и номер порта, которые получатся после трансляции внутреннего адреса сервером NAT. Имея эту информацию, клиент сможет сам правильно указать в SIP-сообщениях внешний адрес и номер порта для передачи RTP-данных на сервере NAT.
С точки зрения STUN выделяются 4 основных типа реализации NAT-серверов:
n Динамический неограниченный NAT. В этом случае все запросы от определенного внутреннего IP-адреса и порта отображаются на один и тот же внешний IP-адрес и порт. Кроме того, различные узлы Интернета могут послать пакеты узлу за NAT, отправляя их на соответствующий порт NAT-сервера.
n Динамический NAT, ограниченный по IP-адресам. То же, что и предыдущее, за исключением того, что внешние узлы могут посылать пакеты только в том случае, если узел за NAT сам предварительно посылал им какие-либо пакеты.
n Динамический NAT, ограниченный по IP-адресам и портам. То же, что и предыдущее, только ограничения заданы более жестко: узел в Интернет может отсылать пакеты только с того порта, на который он предварительно что-то получил от узла из-за NAT.
n Симметричный NAT – все пакеты от внутреннего IP-адреса и порта к внешнему IP-адресу и порту преобразуются в один и тот же IP-адрес и порт NAT-сервера. Отличие заключается в том, что при обращении к различным внешним IP-адресам порты на NAT-сервере тоже будут изменяться. Таким образом, только один интернет-узел может посылать пакеты узлу, находящемуся за NAT-сервером.