Соединение «серых» компьютеров при симметричном nat Текст научной статьи по специальности «Компьютерные и информационные науки»
Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гриценко Алексей Викторович
Представлен обзор механизма преобразования сетевых адресов NAT (Network Address Translation) по способу преобразования. Приведены данные о том, с какой частотой разные способы используются на практике. Рассмотрены различные схемы обхода NAT .
i Надоели баннеры? Вы всегда можете отключить рекламу.
Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гриценко Алексей Викторович
Обеспечение передачи потоковых данных из локальных сетей с использованием Nat
Межпротокольный шлюз nat-pt с функциями dns-alg и ftp-alg для обеспечения взаимодействия между сетями IPv4 и IPv6
Обзор способов достоверной идентификации сетевых устройств
Проект компьютерной сети на основе технологии content Delivery Network
On data transfer between mobile web clients
i Не можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.
CONNECTION OF PRIVATE IP ADDRESS COMPUTERS WITH SYMMETRIC NAT
The paper presents the review of NAT on the way of address translation. It provides the date on how often different methods are used in practice. Different NAT bypass schemes are considered.
Текст научной работы на тему «Соединение «серых» компьютеров при симметричном nat»
СОЕДИНЕНИЕ «СЕРЫХ» КОМПЬЮТЕРОВ ПРИ СИММЕТРИЧНОМ NAT
Донской государственный технический университет, Ростов-на-Дону, Российская Федерация
Представлен обзор механизма преобразования сетевых адресов NAT (Network Address Translation) по способу преобразования. Приведены данные о том, с какой частотой разные способы используются на практике. Рассмотрены различные схемы обхода NAT.
Ключевые слова: NAT, P2P, публичный адрес, UDP, hole punching.
CONNECTION OF PRIVATE IP ADDRESS COMPUTERS WITH SYMMETRIC NAT
Don State Technical University, Rostov-on-Don, Russian Federation
The paper presents the review of NAT on the way of address translation. It provides the date on how often different methods are used in practice. Different NAT bypass schemes are considered.
Keywords: NAT, P2P, public address, UDP, hole punching.
Введение. Пиринговые соединения (от узла к узлу) в последнее время все чаще и чаще используются в приложениях и сервисах. Такой подход небезоснователен, так как для дистрибьюторов услуги позволяет экономить ресурсы и повышать отказоустойчивость системы, лишая ее узкого места — сервера. Для конечных клиентов появляется дополнительная гарантия, исключающая прослушку и логгирование трафика третей стороной. На подготовительных стадиях работы по организации распределенных высокопроизводительных вычислений была выявлена проблема создания подобных прямых соединений между клиентами за NAT, в частности, наибольшие сложности вызывают симметричные NAT. Зачастую клиент находится в локальной подсети, имеющей свою адресацию («серые» ip-адреса), которая имеет лишь транслируемый выход во «вне». Клиент может быть как за домашним NAT, т.е. роутером/маршрутизатором, так и за NAT провайдера, а также за двумя и более NAT. Ключевым шагом организации прямых соединений является преодоление NAT.
Виды NAT по способу преобразования адресов.
1) Full Cone (полный конус).
Однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом.
2) Restricted Cone (ограниченный конус).
Постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любое соединение, инициированное с внутреннего адреса, позволяет в дальнейшем получать ему пакеты с любого порта того публичного хоста, к которому он отправлял пакет(ы) ранее. Отличие от Full Cone в том, что на узел будут маршрутизироваться только пакеты с того же IP, хотя порты источника могут различаться.
3) Port Restricted Cone (порт ограниченного конуса).
Постоянная трансляция между парой «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт», при которой входящие пакеты проходят на внутренний хост только с одного порта публичного хоста — того, на который внутренний хост уже посылал пакет. Отличие от Full Cone в том, что на узел будут маршрутизироваться пакеты с любого IP, но порт источника должен совпасть с портом назначения первой отправки.
4) Symmetric (симметричный).
Трансляция, при которой каждое соединение, инициируемое парой «внутренний адрес: внутренний порт» преобразуется в свободную уникальную случайно выбранную пару «публичный адрес: публичный порт». При этом инициация соединения из публичной сети невозможна.
По данным сервиса тестирования маршрутизаторов nattest.ne, разработанного Оливером Гассером (Технический университет Мюнхена), в процентном эквиваленте преобладают Port Restricted 50,9%, за ними Symmetric 15,5%, Full Cone: 13%, Restricted Cone 3,3%. Всего выборка содержит 12 182 протестированных узлов.
Currentiy we have 12177 data sets in our database NAT Types determined using the STUN Algorithm
Full Cone Address Port Symmetrie SymmetricFW Other
Рис. 2. Статистика существования NAT по типам
Обход NAT. Существующие механизмы позволяют обходить все конусные NAT, например, специально разработанный для этого высокоуровневый протокол STUN, подробно описан и закреплен в рекомендации RFC 5389. Рабочее предложение RFC (Request for Comments) — документ из серии пронумерованных информационных документов Интернета, содержащих технические спецификации и стандарты, широко применяемые во всемирной сети. Однако, наибольшие трудности вызывает обход Symmetric (симметричного) NAT. У данного типа трансляции внешний порт меняется при каждом соединении, либо по истечении некоторого времени (обычно 20-60 секунд). Симметричный NAT принимает пакеты с ip:port только от узла с которым самостоятельно установил соединение. До отправки во вне какого-либо пакета, сопоставления «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт» не существует в таблице маршрутизации NAT.
Способы обхода NAT:
1) Ретрансляция подключения через сторонний публичный сервер. Способ позволяет добиться 100% обхода любого NAT, однако переносит накладные расходы на сервер и снижает отказоустойчивость. Готовая реализация подобной ретрансляции — это протокол TURN.
2) Supernode — это ретрансляция через других клиентов сети, имеющих публичный адрес или конусный NAT [1 ].
3) STUN — это высокоуровневый сетевой протокол, который позволяет клиенту, находящемуся за сервером трансляции адресов (или за несколькими такими серверами),
определить свой внешний IP-адрес, способ трансляции адреса и порта во внешней сети, связанный с определённым внутренним номером порта [2].
4) ICE — это STUN + TURN. Пытается напрямую соединить клиентов по STUN, в случае неудачи начинает ретрансляцию посредством TURN.
5) Universal Plug and Play (UPnP) — набор сетевых протоколов, публикуемых форумом UPnP. Цель UPnP — универсальная автоматическая настройка сетевых устройств, как дома, так и в корпоративной среде. Состоит из набора сопутствующих протоколов, построенных на открытых интернет-стандартах. Позволяет открыть и перенаправить внешние порты, в том числе конфигурация передается NAT автоматически программным способом (внутри локальной сети) без физического доступа к NAT или его панели администратирования.
6) DMZ (англ. Demilitarized Zone — демилитаризованная зона, ДМЗ) — сегмент сети, содержащий общедоступные сервисы и отделяющий их от частных. Позволяет открыть и перенаправить внешние порты. Настройка осуществляется вручную при непосредственном доступе к маршрутизатору.
7) Port triggering/forwarding где статическое перенаправление портов это Port Forwarding, а динамическое перенаправление портов Port Triggering. Обе функции позволяют открыть и перенаправить внешние порты. Настройка осуществляется вручную при непосредственном доступе к маршрутизатору.
8) UDP hole punching — метод установления прямого соединения между двумя клиентами спрятанными за NAT [3]. Для инициации соединения требуется третья сторона — сервер, который виден обоим клиентам. Он позволяет определить клиентам свои внешние адреса и порты, по которым в дальнейшем будет инициировано соединение.
9) ICMP hole punching — метод установления прямого соединения между двумя клиентами спрятанными за NAT [4]. В отличии от обычного UDP hole punching, метод не требует третьего сервера для определения внешних адресов. Алгоритм отправляет ICMP ECHO REQUEST запросы в UDP виде, с низким значением TTL (Time to live — предельный период времени или число итераций или переходов, за который набор данных (пакет) может существовать до своего исчезновения) инкрементируя TTL от 1 в надежде, что, где-то посередине между NAT клиента и другими промежуточными сетями (или близко к клиенту) TTL истечет. Тогда произойдет возврат сообщения TTL_EXPIRED. Но так как был использован UDP-протокол, источник спалит свой внешний порт, по которому, собственно, в дальнейшем можно установить общение. ICMP UDP поддерживается не всеми маршрутизаторами.
10) Подмена источника — в случае с симметричным NAT, входящие пакеты могут быть доставлены только от ip:port источника, которому клиент отправлял запрос самостоятельно. Подмена источника пакета другим клиентом позволит соответствовать этому требованию. Однако существуют механизмы распознавания фальсификации данных, некоторые сети, файерволы, провайдеры, которые блокируют подобные пакеты.
Заключение. Способы обхода NAT имеют каждый свои особенности. Ни один способ (кроме ретрансляции) не дает 100% гарантии преодоления симметричных NAT, однако их совокупное использование позволяет максимизировать успех.
1. IT Administrators Guide [электронный ресурс] / Skype Limited 2010. — Режим доступа : https://download.skype.com/share/business/guides/skype-it-administrators-guide.pdf (дата обращения: 12.05.2017).
2. RFC 3489 — STUN — Simple Traversal of User Datagram Protocol (UDP). Network Address Translators (NATs). J. Rosenberg, J. Weinberger, dynamicsoft, C. Huitema, Microsoft, R. Mahy, Cisco, March 2003. 47 с.
3. A New Method for Symmetric NAT Traversal in UDP and TCP (Yuan Wei, Daisuke Yamada, Suguru Yoshida, Shigeki Goto) — Режим доступа :
https://www.goto.info.waseda.ac.jp/~wei/file/wei-apan-v10.pdf (дата обращения: 10.05.2017).
4. Extended UDP Multiple Hole Punching Method to Traverse Large Scale NATs (Kazuhiro Tobe, Akihiro Shimoda, and Shigeki Goto) APAN Network Research Workshop 2010 at the 30th APAN Meeting August 9, 2010 Hanoi, Vietnam. 23 с.
Вопрос про Роутеру и его настройкам. Что такое Full cone nat и NAPT ?
Cone NAT, Full Cone NAT — Однозначная (взаимная) трансляция между парами «внутренний адрес: внутренний порт» и «публичный адрес: публичный порт». Любой внешний хост может инициировать соединение с внутренним хостом (если это разрешено в правилах межсетевого экрана).
Перегруженный NAT (NAPT, NAT Overload, PAT, маскарадинг) — форма динамического NAT, который отображает несколько незарегистрированных адресов в единственный зарегистрированный IP-адрес, используя различные порты. Известен также как PAT (Port Address Translation). При перегрузке каждый компьютер в частной сети транслируется в тот же самый адрес, но с различным номером порта.
Остальные ответы
Похожие вопросы
Трансляция адресов: трудности перевода
Сегодня NAT стала принадлежностью практически любого маршрутизатора доступа и даже некоторых операционных систем (например, Windows XP). Но с распространением мультимедийных услуг и пиринговых (peer-to-peer) онлайновых служб система NAT, вернее – успешное преодоление ее имманентных ограничений, становится одной из актуальных проблем и для пользователей, и для провайдеров услуг, и для разработчиков оборудования. Ситуация усугубляется тем, что единого стандарта на системы NAT до сих пор не существует, а сложность и широкий спектр задач, стоящих перед разработчиками, породили великое множество таких систем, ведущих себя совершенно по-разному.
- Симметричные системы сетевой трансляции (Symmetric NAT) устанавливают в сети отношения «один к одному». Каждой паре локальных и глобальных адресов соответствует собственная, уникальная, запись в таблице трансляции. Другими словами – с каждым внешним респондентом, имеющим собственный IP-адрес, соединение устанавливается по уникальному (присущему только одному сочетанию хостов и никогда не повторяющемуся) набору портов.
- Конусные системы сетевой трансляции (Cone NAT) позволяют устанавливать отношения «один ко многим». Каждому локальному хосту, участвующему во внешнем обмене по определенному порту (набору портов), соответствует IP-адрес, по которому он виден извне, а порт (или порты) остается прежним (некоторые системы NAT позволяют устанавливать на одном внешнем интерфейсе несколько глобальных IP-адресов). По этому же IP-адресу локальный хост будет доступен или частично ограничен (Restricted и Port Restricted Cone) для любых других глобальных хостов, участвующих в обмене по тому же протоколу, что значительно упрощает установление внешних связей и взаимодействий.
В случае конусного NAT внутренний номерной план остается постоянным для всех респондентов организации. При использовании симметричного NAT внутренние номерные планы будут для каждого абонента уникальными. С позиций защиты сети это просто замечательно. Но в случае, если обмен с внешним миром все-таки необходим, для достижения единообразия потребуется пропустить весь медиа трафик через специализированный медиа сервер с глобальным IP-адресом (расположенный у оператора Интернета или в демилитаризованной зоне корпоративной сети), который специально «обучен» обрабатывать взаимодействия конкретного вида.
На первом этапе развития Интернета пользователи, как правило, ограничивались просмотром web страниц и обменом почтой, т.е. взаимодействием со специализированными серверами (так называемая клиент-серверная модель). Объемы передаваемой информации были относительно невелики, что не вызывало большой нагрузки на серверы. С появлением мультимедийных услуг (прежде всего онлайновых игр, пакетной телефонии, видеоконференцсвязи) нагрузка растет экспоненциально – как следствие все более распространенной становится модель одноранговых, пиринговых взаимодействий. Обмен мультимедийными данными между абонентами одноранговых сетей происходит напрямую. А серверам достаются более простые задачи – обработка сигнализации, установление соединений и, соответственно, хранение номерных планов и информации об абонентах, включая их готовность к взаимодействию (presence).
Тернист путь к прозрачности
Использование симметричного NAT, который требует для организации однорангового взаимодействия между хостами выделенных серверов, проксирующих весь мультимедийный трафик, становится неоправданным, поскольку замедляет внедрение новых услуг и приводит к избыточным вложениям в инфраструктуру сети. В результате маршрутизаторам с симметричным NAT, скорее всего, никогда не удастся стать абсолютно прозрачными и получить пока еще гипотетический логотип Designed for Microsoft Windows Vista.
К слову, здесь будет уместен пример потенциально неблагополучного решения – системы Skype, которая изначально разрабатывалась для любых сред, использования любых систем NAT и любых межсетевых экранов. Skype широко использует проксирование и даже туннелирование голосового трафика (например, по 80-му порту), вследствие чего не может обойтись без специализированных медиасерверов. На них – с ростом числа абонентов, объемов голосового трафика и массовым внедрением видеоуслуг (Skype 2) – ложится все большая нагрузка по проксированию и конвертированию трафика. В итоге уже сегодня можно наблюдать определенное снижение качества услуг.
Удастся ли Skype преодолеть трудности роста, взросления и масштабирования – покажет время, скорее всего, самое ближайшее, тем более что конкуренция на рынке пакетной телефонии растет буквально угрожающими темпами. А пока любому российскому пользователю Skype, не находящемуся под защитой межсетевых экранов и локальных, немаршрутизируемых адресов (т.е. все той же NAT) надо быть готовым к резкому увеличению счетов за трафик, предъявляемых к оплате интернет-провайдером, – ведь медиасервером, проксирующим трафик других абонентов Skype, в любой момент может стать и его компьютер.
Есть решение
Напомним, что обеспечение надежной и беспроблемной работы широкополосной телефонии и других мультимедийных и пиринговых приложений в корпоративных и домашних сетях (где традиционны локальные IP-адреса и системы трансляции сетевых адресов) все еще остается серьезной проблемой, в значительной мере сдерживающей распространение новых сетевых сервисов. Этим обеспокоены многие компании.
- Проксирующий сервер (Outbound Proxy) – на стороне оператора. Этот способ наиболее универсален и обеспечивает работу SIP-приложений, поддерживающих Outbound Proxy, практически с любыми системами трансляции адресов. Однако весь голосовой трафик абонентов должен проходить через этот сервер, что предъявляет повышенные требования к конфигурации и производительности такого сервера (а значит, приводит к снижению качества связи) и к тому же отрицательно сказывается на безопасности.
- Шлюз SIP ALG – в клиентском маршрутизаторе. Этот подход позволяет обеспечить сервисы SIP телефонии в сети с трансляцией адресов без использования вспомогательных внешних устройств. Недостатки – более сложная программная реализация, повышенная нагрузка на маршрутизатор, относительно малая распространенность и невысокая масштабируемость решений. Тем не менее SIP ALG вполне приемлем в относительно небольших проектах, где необходимо минимизировать вложения в сетевую инфраструктуру.
- Full Cone NAT – на маршрутизаторе, а на стороне оператора устанавливается STUN-сервер. При минимальных вложениях в сетевую инфраструктуру этот способ обеспечивает правильную маршрутизацию входящих и исходящих вызовов и устойчивую работу приложений (поддержка протокола STUN сегодня реализована во многих программных и аппаратных телефонах). Большинство российских операторов, предоставляющих сервисы IP-телефонии на базе SIP, имеют в своей инфраструктуре STUN-серверы и предпочитают задействовать абонентские маршрутизаторы, реализующие Full Cone NAT.
Заметили неточность или опечатку в тексте? Выделите её мышкой и нажмите: Ctrl + Enter. Спасибо!
article_navig Start —>
article_navig End —>
one_article End —>
main End —> iks_mainContent=>main End—> iks_mainContent=>anketa Start—> iks_mainContent=>anketa End—>
CG-NAT — зачем нужен и как начать пользоваться

Технология CG-NAT (Carrier Grade Network Address Translation) дает провайдеру возможность заменить локальный IP-адрес пользователя на публичный в TCP/IP-сетях. Разбираемся, как CG-NAT реализован в СКАТ DPI и почему это оптимальное решение.
Как все работает
CG-NAT дает провайдеру возможность выдать публичный IPv4-адрес нескольким клиентам. Благодаря этому становится проще внедрять IPv6 за счет продления использования IPv4. Система контроля и анализа трафика СКАТ DPI создана для провайдеров, однако с помощью нее можно заменить устройства NAT в своей ИТ-инфраструктуре. Решение создано так, чтобы эффективно работать в любых условиях. В случае же роста или изменения инфраструктуры СКАТ DPI гибко адаптируется.
Альтернативные решения
A10 Networks Thunder
Среди плюсов пользователи называют демократичное ценообразование без внезапных изменений. Также клиентам нравится высокая надежность решения, редкие отказы, простота использования, интуитивно понятный графический интерфейс, подробная и логичная документация. Среди минусов пользователи называют проблемы решения с отслеживанием одновременного использования нескольких портов.
F5 BIG-IP
Здесь пользователям нравится простота использования, хорошая система защиты от несанкционированного проникновения извне и большое количество доступных и гибких в настройке функций. Среди минусов говорят об иногда проседающей скорости и периодически возникающих проблемах с подключением. Также отмечается, что решение дает мало информации в случае возникновения проблем — не очень ясно, как именно можно исправить ситуацию.
Cisco ASR 9000
В качестве плюсов пользователи отмечают знакомую и привычную многим экосистему Cisco, надежность и простоту в использовании. Из минусов озвучивают не очень хорошую документацию, а также иногда встречающиеся ошибки во внутренней архитектуре.
При желании, вы можете потратить время своих технических специалистов и реализовать CG-NAT самостоятельно. На тематических информационных ресурсах есть примеры успешных кейсов такого рода. Из плюсов можно отметить полный контроль решения с вашей стороны — ваши инженеры, скорее всего, будут точно понимать его устройство. Главный же минус здесь в том, создание функциональности CG-NAT своими силами — это постоянная тяжелая работа, требующая ресурсов. Скорее всего, для очень многих компаний более оправданно будет воспользоваться готовым решением. Например, Carrier Grade NAT от VAS Experts, которое мы сейчас и рассмотрим.
Плюсы CG-NAT в составе СКАТ DPI
- Он максимально рационально использует адресное пространство IPv4.
- Отвечает требованиям, прописанным в технических стандартах RFC 4787 (Network Address Translation (NAT) Behavioral Requirements for Unicast UDP) и RFC 6888 (Common Requirements for Carrier-Grade NATs), соответствие которым должно гарантировать стабильную работу.
- СКАТ DPI может работать с 128 миллионами сессий одномоментно.
- Вы можете динамически масштабировать решение и увеличить пропускную способность не прерывая трафика.
- Единое управление всей функциональностью платформы.
- Трансляции журналируются и доступны либо в виде логов, либо же их можно передать на внешний коллектор по протоколу NetFlow v10 (IPFIX).
Прозрачная трансляция сетевых адресов на стандартном x86 сервере
Как настраивается NAT в СКАТ DPI
В нашем решении его можно настроить буквально за две команды. Профиль можно создать одной командой, вот она:
fdpi_ctrl load profile --service 11 --profile.name test_nat --profile.json '< "nat_ip_pool" : "5.200.43.0/24,5.200.44/25", "nat_tcp_max_sessions" : 2000, "nat_udp_max_sessions" : 2000 >'
А вот одна команда для его включения:
fdpi_ctrl load --service 11 --profile.name test_nat --ip 192.168.0.1
fdpi_ctrl load --service 11 --profile.name test_nat --login test_subs
fdpi_ctrl load --service 11 --profile.name test_nat --cidr 192.168.1.0/24
Управление CG-NAT через графический интерфейс

Нагрузка на профили и пулы адресов

NAT-статистика (нагрузка на порты)

Статистика преобразования приватных IP-адресов в публичные
Дополнительные возможности
В СКАТ DPI встроена опция Full Cone NAT, которая позволяет отправлять пакеты из любого источника по внешнему отображаемому порту TCP/UDP. Благодаря этому, становится проще отслеживать активность пиринговых сервисов, таких, как торренты, игры и другие. Все соединения клиентов с одного серого внутреннего IP-адреса привязываются к одному белому внешнему IP-адресу благодаря функции Paired IP address pooling.
Также есть базовая защита от DDoS-атак. Она устроена так: при попытке подключения к «белому» адресу извне на определенный порт, устройство, выполняющее функции NAT проверяет, есть ли для данного порта установленные соединения. Если нет, то соединения будет прервано.
Также, в случае заражения какого-либо из абонентов зловредным ПО мы можем ограничить количество используемых портов UDP и TCP, чтобы это ПО не забрало себе все сетевые ресурсы. В этом случае пострадает только один абонент, а не все.
Также среди используемых технологий стоит озвучить Hairpinning. Она дает возможность всем абонентам за NAT обращаться к публичным адресам друг друга без пересылки пакетов за пределы устройства и трансляции за пределами устройства.
Несколько уточнений
Чтобы функция CG-NAT работала корректно, СКАТ DPI должен работать по схеме «в разрыв» (пример на схеме ниже). Также нужна лицензия СКАТ DPI BRAS или COMPLETE. Скорость трансляции адресов зависит от выбранной аппаратной платформы и лицензии. Она может составлять от 6 до 200Гбит/с. Кроме того, мы рекомендуем установить резервную платформу на случай нештатных ситуаций.