Sdscompany.ru

Компьютерный журнал
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Трансляция ip адресов

Разное

Развитие и широкое применение сетевых технологий в науке, производстве и бизнесе и коммерциализация Internet привели к взрывному росту количества подключений. 32-разрядного адресного пространства, предусмотренного спецификацией IPv4, к тому же используемого нерационально, стало катастрофически не хватать. Конечно, все адресные проблемы решает стандарт IPv6, который позволит присвоить IP-адрес чуть ли не всему сущему на Земле. Однако его внедрение идет достаточно медленно, и причиной тому, в частности, служит механизм Network Address Translation (NAT), обеспечивающий повторное использование IP-адресов.

Считается, что одна из наиболее трудно поправимых ошибок — принятое на начальных стадиях создания Internet решение ограничиться четырьмя байтами для определения адресного пространства. Однако даже сегодня трудно порицать за это людей, думавших, что свыше четырех миллиардов адресов (232) будет достаточно на все времена: ведь тогда не было даже ПК, которые бы нуждались в подключении к Internet, отсутствовали Internet-телефоны и микроволновые печи с сетевым интерфейсом. Правда, реально доступными в связи с разбиением адресов на классы оказались только немногим более 3 миллиардов. Возникший в наше время дефицит IP-адресов частично решается с помощью протокола трансляции сетевых адресов.

Прежде чем углубляться в механизм работы NAT, рассмотрим, как обычно происходит IP-соединение. Формат IP-пакета предусматривает двухбайтовое поле для номеров портов. Таким образом, имеется 65 535 портов, о которых можно думать как о каналах. Первые 1023 из них зарезервированы для так называемых Well Known Services (WNS), таких, скажем, как telnet, ftp, gopher, www и тому подобное. То есть они зарезервированы для серверных процессов и соответствующих протоколов и не могут использоваться клиентскими процессами. Остающиеся же порты могут служить для любых целей. Что, к примеру, произойдет, если набрать строку telnet.someserver.com? Операционная система выберет номер порта выше 1023 и присвоит его данной сессии. Предположим, для конкретности, что это будет порт 1025. На someserver.com пакет поступит на порт 23, поскольку он зарезервирован для telnet-сессии. В то же время в полученном сервером пакете содержится номер порта (1025) для ответа. Именно он и будет указан в пакете, который сервер направит клиенту. Таким образом, присваивая разные номера портов открывающимся сессиям на клиентской машине, можно одновременно обмениваться пакетами с несколькими серверами.

Напомним, что для того чтобы пакеты доставлялись по назначению, каждый узел в IP-сети (в простейшем случае) должен иметь уникальный адрес. Поэтому первым шагом в решении проблемы ограничений IPv4 было определение блоков адресов, которые могли бы использоваться повторно. Ими стали диапазоны адресов 10.0.0.0 — 10.255.255. 255; 172.16.0.0 — 172.16.255.255 и 192.168.0.0 — 192.168.255.255. RFC 1918 гарантировал, что они никогда не будут применяться во внешних сетях. Теперь любая компания могла взять для внутреннего использования одинаковые наборы адресов и ни о чем не беспокоиться. Однако поскольку пакеты с такими адресами не маршрутизируются в Internet, необходим какой-то механизм для передачи пакетов узлам в Internet, получения ответов, доставки их компьютерам внутренней LAN и упорядочения сессий. Именно этой работой и занимается протокол NAT. Он может выполняться на маршрутизаторе, с помощью которого LAN подключается к Internet, на прокси-сервере или на компьютере.

В своей основе NAT позволяет одному устройству, такому, как маршрутизатор, действовать в качестве посредника между Internet и локальной (частной) сетью. Это значит, что только один IP-адрес требуется для подключения к Internet (или к любой внешней сети) целой группы компьютеров. Заметим, что преодоление ограничений адресации является не единственным назначением NAT. Дополнительно с помощью этого протокола решаются также вопросы безопасности и администрирования.

Для использования NAT маршрутизатор, подсоединяющий LAN к Internet, имеет два IP-адреса (для простоты мы возьмем двухпортовый маршрутизатор). Один (внутренний) со стороны LAN, который выбирается из зарезервированного RFC 1918 адресного пространства, и второй (внешний) — со стороны Internet, предоставляемый оператором услуг Internet. Теперь продолжим рассмотрение нашего примера. Клиент посылает пакет узлу с адресом someserver.com. В заголовке пакета содержатся IP-адрес и номер порта источника наряду с IP-адресом и номером порта получателя. Когда пакет прибывает на маршрутизатор, тот модифицирует заголовок таким образом, что в Internet отправляется пакет, содержащий внешний IP-адрес маршрутизатора и номер порта источника, присвоенный из набора доступных адресов, имеющихся в таблице маршрутизатора, и те же IP-адрес и номер порта получателя, сгенерированные компьютером клиента. Далее маршрутизатор добавит в свою таблицу запись, которая приводит в соответствие внутренний адрес и номер порта машины клиента номеру порта, присвоенному этой сессии. Когда узел someserver.com посылает ответный пакет маршрутизатору, тот согласно таблице восстанавливает адресные атрибуты клиента и направляет пакет во внутреннюю сеть. Таким образом, NAT может представлять сотни компьютеров внутренней сети только одним внешним IP-адресом.
Существует несколько схем отображения внутренних, незарегистрированных адресов на внешние, зарегистрированные. При статической схеме NAT отображает один внутренний адрес на один внешний адрес. Так, IP-адрес 192.168.32.10 будет всегда транслироваться в адрес 213.18.123.110 (рис. 1). Такой метод используется, если необходимо обеспечить доступ к компьютеру клиента извне.

При динамической трансляции NAT отображает незарегистрированный IP-адрес на один из свободных из группы зарегистрированных адресов. IP-адрес 192.168.32.10 компьютера будет транслироваться на первый доступный адрес из диапазона 213.18.123.100 — 213.18.123.150 (рис. 2). Динамическая трансляция также действует по схеме «один к одному». Однако, как говорится, возможны варианты.

Рис. 2

Первый из них, при котором множество незарегистрированных адресов отображаются на один зарегистрированный с использованием различных портов, известен как overloading или Port Address Translation (PAT). В этой схеме каждый внутренний сетевой адрес компьютера клиента отображается на один и тот же внешний IP-адрес, но с разными номерами портов (рис. 3).

Рис. 3

Может существовать ситуация, когда внутренние адреса, применяемые в частной LAN, являются зарегистрированными IP-адресами в другой сети ( overlapping ). В таком случае маршрутизатор должен иметь таблицу соответствия этих адресов, чтобы перехватить их и заменить на уникальные зарегистрированные адреса.

Рассмотрим вкратце, как обеспечивается безопасность и выполняются административные функции с использованием NAT.

Реализация динамической схемы NAT автоматически создает брандмауэр между внутренней и внешней сетями или Internet. Динамическая трансляция позволяет осуществлять соединения, инициированные только компьютерами внутренней сети. Это значит, что компьютеры из внешней сети не могут подключаться к рабочей станции LAN, если только последняя не инициирует соединение. Таким образом, компьютеры внутренней сети могут осуществлять Internet-серфинг их и даже загружать файлы с сайтов, но никто извне не может захватить их IP-адреса и использовать последние для соединения с каким-нибудь портом клиентского компьютера. С помощью NAT маршрутизаторы способны выполнять фильтрацию пакетов и регистрацию трафика. Это позволяет контролировать посещаемость Web-узлов сотрудниками организации и тем самым предотвращать просмотр материалов сомнительного содержания.

Заметим, что NAT иногда путают с прокси-сервером. Однако между ними существует различие. NAT прозрачна как для отправителя, так и для получателя: ни один из них не может обнаружить, что имеет дело с третьим устройством. Но прокси-сервер не является прозрачным. Компьютер-источник знает, что он обращается к прокси-серверу и должен быть соответствующим образом сконфигурирован. Компьютер-получатель считает, что прокси-сервер представляет собой источник и имеет дело непосредственно с ним. К тому же прокси-сервер обычно работает на четвертом (транспортном) уровне эталонной модели OSI, тогда как NAT является протоколом третьего (сетевого) уровня.

Протокол NAT не только успешно справляется со своей основной работой — сохранением IP-адресов, но во многих случаях он также значительно упрощает архитектуру внутренних сетей.

Трансляция адресов

Для того чтобы узлы с частными адресами могли при необходимости подключаться к сети Интернет , используются специальные трансляторы частных адресов в публичные. Например, транслятор сетевых адресов ( Network Address Translation — NAT) переводит один частный адрес в один публичный. Поэтому экономия IP -адресов может быть достигнута только за счет того, что не всем узлам частной сети разрешается выход в Интернет .

Второй тип транслятора Port Address Translation — PAT один общедоступный IP — адрес комбинирует с набором номеров порта узла источника, т.е. формируется совокупность комплексных адресов, называемых сокетами, например 192.168.10.17:1275, 192.168.10.17:1086, 192.168.10.17:2013. При этом один IP — адрес могут использовать сразу несколько узлов частной сети. Поэтому данный метод трансляции частных адресов в публичные эффективно экономит общедоступные IP -адреса. Транслятор PAT называют также NAT Overload, где один IP — адрес используется многими пользователями.

Когда клиент сети с частными адресами посылает пакеты в сеть Интернет , транслятор адресов NAT переводит внутренний (inside) локальный (частный) IP — адрес клиента во внутренний глобальный (публичный) адрес . Адрес назначения по отношению к клиенту, например, посылающему запрос серверу, является внешним (outside). В общем случае внешние адреса также могут быть локальными и глобальными.

Таким образом, NAT позволяет многим сетям использовать одни и те же частные IP -адреса. При этом публичные адреса используются только по мере необходимости при передаче информации в Интернет . Кроме того, NAT повышает безопасности сети, т.к. скрывает внутренние (частные) IP -адреса от внешних сетей.

На рис. 9.1 приведена схема сети, в которой используется транслятор адресов. Трансляторы NAT обычно устанавливаются на границе тупиковой сети. В нашем примере R-В — граничный маршрутизатор, через который все пользователи внутренних частных сетей на маршрутизаторах R-А, R-В подсоединяются к маршрутизатору R-ISP сети провайдера (поставщика) интернет -услуг. На маршрутизаторе R-В и установливается транслятор NAT .

Читать еще:  Координаты по адресу

При передаче пакета из внутренней (inside) сети, например из 192.168.10.0, в сеть Интернет граничный маршрутизатор транслирует внутренний частный адрес компьютера в публичный маршрутизируемый (routable) адрес внешней (outside) сети. Для реализации трансляции частных адресов в публичные провайдер выделяет администратору набор (пул) публичных адресов, например, пул адресов: 222.100.100.60 — 222.100.100.62.

На рис. 9.2 приведен пример передачи пакета с узла с IP -адресом 192.168.10.11 на веб- сервер сети провайдера с IP -адресом 210.4.4.18.

В приведенном примере внутренний (Inside) локальный адрес — это частный IP — адрес 192.168.10.11, назначенный администратором на конечный узел внутренней сети.

Внутренний (Inside) глобальный адрес — это публичный адрес , который назначается транслятором соответствующему внутреннему узлу, когда пакет выходит из NAT маршрутизатора. Это адрес , который виден из внешней сети. При передаче запроса с компьютера на сервер ( рис. 9.2) транслятор NAT преобразует внутренний локальный адрес источника192.168.10.11 во внутренний глобальный 222.100.100.60, который выбирает транслятор NAT из таблицы перевода ( NAT Table ). Если транслятор не находит соответствующей строки в таблице перевода, то пакет уничтожается.

Внешний (Outside) глобальный адрес — это адрес назначения в сети Интернет , например IP — адрес 210.4.4.18 ( рис. 9.2). В некоторых случаях адресат назначения может находиться в частной сети, поэтому также может потребоваться транслятор NAT .

Трансляторы NAT могут работать в динамическом или статическом режимах.

В динамическом режиме NAT автоматически назначает публичные адреса на передаваемые пакеты из заданного провайдером пула общедоступных публичных адресов. Когда конечный узел с частным IP -адресом запрашивает доступ в Интернет , динамический NAT выбирает из пула свободный IP — адрес , который не используется другими узлами.

В статическом режиме администратор создает таблицу соответствия частных и глобальных адресов, и записи в таблице не меняются. Статический NAT обычно используется для веб-серверов или узлов, которые должны иметь постоянный адрес , который доступен из Интернета. Эти внутренние узлы могут быть серверами предприятия или сетевыми устройствами.

Транслятор номера порта

Транслятор номера порта PAT или, по-другому, NAT Overload, переводит многие частные IP-адреса в один или несколько публичных адресов. Получив от провайдера один публичный адрес, можно обеспечить доступ в Интернет сразу нескольким конечным узлам с частными адресами. Это возможно только, если каждый частный адрес будет дополнительно помечен (идентифицирован) номером порта, который задается на 4-ом транспортном уровне модели OSI.

При открытии сессии TCP/IP, например, при посылке запроса на сервер, сообщению (сегменту) присваивается номер порта назначения из диапазона известных номеров в пределах от 0 до 1023, а также номер порта источника из диапазона зарегистрированных портов (от 1024 до 49151) или диапазона динамических портов (от 49151 до 65535).

Транслятор PAT в маршрутизаторе дополняет IP-адрес источника этим номером порта, формируя комплексный публичный адрес (сокет). Когда ответ возвращается с сервера, исходный номер порта узла клиента, который на обратном пути становится номером порта назначения, определяет, какому клиенту маршрутизатор должен направить пакеты.

На рис. 9.3 приведен пример, когда узлы с внутренними частными адресами источников информации 192.168.10.11 и 192.168.10.12 обращаются к веб-серверу с адресом 210.4.4.18. На транспортном уровне запросам конечных узлов назначаются номера портов источников, соответственно 192.168.10.11:1407 и 192.168.10.12:1258.

Транслятор PAT граничного маршрутизатора R-В изменяет внутренние локальные адреса источников на внутренние глобальные адреса с теми же самыми номерами портов, т.е. формирует соответствующие публичные комплексные адреса, например, 222.100.100.60:1407 и 222.100.100.60:1258.

При этом комплексный адрес назначения (DA) будет внешним IP-адресом с назначенным номером порта службы уровня приложений, в данном случае 210.4.4.18:80 веб-сервера HTTP.

В формате заголовка сегмента (см. рис. 9.1, 9.2 из курса «Основы построения сетей пакетной коммутации») номер порта задается 16-ти разрядным двоичным числом. Поэтому один внешний глобальный адрес теоретически может использоваться для адресации 64К узлов. На практике число узлов на один глобальный адрес не превышает 4000.

Пакеты, поступающие из публичной сети, направляются адресату назначения в частной сети, в соответствии с таблицей транслятора, где отображены пары публичных и частных адресов. Этот процесс называется прослеживанием связи (connection tracking).

В предыдущем примере номера портов двух источников 1407 и 1258 в граничном шлюзе не изменяются. Однако если эти номера портов уже используются в других текущих сессиях, то эти номера переназначаются на первое доступное число. Например ( рис. 9.4), одинаковый номер порта 1258 используется в пакете, пересылаемом с узла 192.168.10.12 и в пакете, передаваемом с узла 192.168.10.13.

Поэтому транслятор РАТ на граничном маршрутизаторе R-В изменит во внутреннем глобальном адресе источника номер порта второго пакета на 1259. Если доступных номеров портов больше нет, то транслятор РАТ попытается использовать следующий IP-адрес из пула доступных для транслятора адресов.

Трансляция сетевых адресов NAT

NAT (Network Address Translation) – трансляция (подмена) сетевых адресов. Эта технология широко используется. Позволяет с одной стороны, противостоять нехватке IPv4 адресов, а с другой – повысить защищённость сети.

Приватные адреса

Давайте начнём вот с чего: IPv4 адреса бывают публичные и приватные, если вы не совсем понимаете смысл приватных (серых) адресов, то рекомендую начать изучение с соответствующей статьи. Если в двух словах, то приватные адреса может использовать кто угодно в своей сети, для этого нет необходимости арендовать адресное пространство, или выделять адреса у провайдера. Очевидный недостаток таких адресов – к устройству, имеющему приватный адрес нельзя подключиться из интернета – только из вашей собственной локальной сети. Это связанно с тем, что ни один провайдер мира не знает, что эти адреса используются в вашей сети и соответственно эти сети отсутствуют в таблице маршрутизации сторонних маршрутизаторов и трафик к ним не маршрутизируется. Понятно, что при всём желании маршруты нельзя прописать на сторонних маршрутизаторах, так как не только вы пользуетесь этими адресами. Основное преимущество приватных адресов в том, что за них не надо платить, ими можно пользоваться на своё усмотрение и главное – одни и те же адреса используются в разных локальных сетях разных организаций, что приводит к экономии адресного пространства IPv4.

Трансляция адресов

Для того чтобы организовать возможность выхода в интернет с устройств, имеющих приватные адреса применяется технология трансляции адресов, либо используется прокси-сервер. Если попытаться отправить, например, запрос к веб-серверу, находящемуся в интернете, с приватного адреса, то сам запрос теоретически дойдёт, так как веб сервер имеет публичный адрес, а вот ответ от сервера не вернётся, так как обратный адрес, на который этот ответ надо слать – приватный. Трансляция адресов заключается в том, что есть некоторое NAT-устройство, например, сервер или маршрутизатор, который имеет один или несколько публичных адресов. Клиенты с приватными адресами пытаются отправить запросы напрямую получателю в интернете, но ip пакеты по пути попадают на такое устройство. При этом в пакете подменяется адрес отправителя: вместо приватного адреса клиента, устройство ставит в это поле один из своих публичных адресов, после чего пакет отправляется в сеть. Теперь у него и адрес отправителя и адрес получателя – публичные. Получатель обрабатывает пакет и возвращает на него ответ (например, содержимое запрошенной из интернета странички). Этот ответ, как несложно догадаться, идёт на публичный адрес устройства, занимающегося NAT-ом. Устройство помнит, когда и какой адрес оно подменяло и в этом пакете адрес получателя снова меняется: публичный адрес устройства заменяется на приватный адрес клиента, после чего пакет идёт дальше во внутреннюю сеть. Клиент получает данные, как будто бы никакого преобразования адресов не было. Но это всё хорошо в теории. На практике, есть ряд протоколов, которые не могут работать с NAT-ом. На это есть свои причины. Какие-то протоколы в данных седьмого уровня могут содержать копию ip адреса, и эта копия, естественно не подменяется, так как NAT-устройство работает на 3-ем и 4-ом уровнях модели OSI. Другие протоколы подразумевают появление дополнительных соединений в процессе работы, которые могу исходить от внешней стороны. Про такие соединения NAT-устройство так же не знает и не будет передавать их клиенту. Но, если пользователям в вашей сети надо сидеть в интернете и читать почту, то проблем не будет.

Преимущества трансляции адресов:

  1. Минимизация использования публичных адресов
  2. Повышенная гибкость использования адресов
  3. Возможность изменения внешних адресов без необходимости изменять адресный план локальной сети
  4. Повышенная безопасность в связи с тем, что из интернета нельзя обратиться ко внутренним устройствам напрямую.

Недостатки трансляции адресов:

  1. Уменьшение производительности в связи с дополнительными действиями на маршрутизаторе.
  2. Проблемы с работой некоторых протоколов.
  3. Сложности при организации туннелей.
  4. Сложности с организацией входящих соединений извне.

Раз уж мы изучаем оборудование Cisco, то в качестве NAT-устройства у нас выступает маршрутизатор. Любой маршрутизатор Cisco умеет организовывать трансляцию адресов.

Терминология

Чтобы ориентироваться в терминах, надо запомнить 4 адреса, которые фигурируют в процессе трансляции:

  1. Inside local
  2. Inside global
  3. Outside local
  4. Outside global

Inside local – Это приватный адрес нашего устройства, которое пытается отправит запрос в интернет. Мы отправляем пакет на адрес некоего сервера (outside global). Когда пакет проходит через NAT-устройство, то адрес отправителя подменяется на публичный адрес, имеющийся в распоряжении NAT-устройства (inside global). Если сервер-получателя имеет публичный адрес и доступен по нему извне, то outside global и outside local – совпадают, если сам сервер тоже скрыт за каким-то NAT-устройством, то именно оно получает вместо него запрос на outside global адрес и транслирует адрес получателя на outside local (во внутренней сети получателя). Впрочем, ситуация, когда сервер находится за NAT-ом – не частое явление и обычно outside local и outside global – это один и тот же адрес.

Читать еще:  Как отправить письмо сразу нескольким адресатам

Иными словами, мы можем объяснить эти термины так:

  1. Inside – адреса нашего отправляющего устройства, которые подвергаются трансляции (local в global и обратно).
  2. Outside – адреса получателя
  1. Local – внутренние с точки зрения локальных сетей, часто приватные адреса устройств (как отправителя, так и получателя), с которых прямое взаимодействие без трансляции невозможно.
  2. Global – публичные адреса, имеющиеся в распоряжении NAT-устройств, между которыми и происходит взаимодействие в интернете.

Таблица трансляций

Для обеспечения корректной работы, маршрутизатор должен иметь в памяти таблицу трансляций, в которой находится информация о том, когда проводились трансляции, а также записываются inside local, inside global, outside global и outside local адреса. Эта таблица необходима для организации правильной обратной трансляции. Например, если внутренний компьютер с адресом «A» отправил запрос на адрес «B», а маршрутизатор подменил приватный адрес «A» на свой публичный «C», то, когда придёт ответ из интернета с адреса «B» на адрес «C», маршрутизатор, глядя в эту табличку будет знать, что надо адрес получателя «C» подменить обратно на адрес «A».

Виды трансляции адресов

Всё вышеперечисленное является общими принципами работы NAT. Однако, существуют разные способы организации этого процесса:

  1. Статический NAT – когда на маршрутизаторе организована трансляция одного конкретного inside local адреса в один конкретный inside global адрес.
  2. Динамическая трансляция NAT – когда на маршрутизаторе имеется пул свободных inside global адресов, и конфигурация позволяет клиентам из некоего множества inside local адресов проходить трансляцию. В этом случае для очередного клиента изнутри в пуле выбирается очередной свободный адрес и происходит трансляция.
  3. Трансляция портов и адресов (PAT) – это механизм NAT, затрагивающий не только третий, но и четвёртый уровень модели OSI. Используется, когда количество клиентов превышает размер пула inside global адресов. В этом случае клиенты могут транслироваться на один и тот же inside global адрес, но при этом может менять номер порта (TCP или UDP), чтобы при получении ответа, в зависимости от того, на какой он пришел порт, можно было бы организовать трансляцию этого ответа одному или другому клиенту. PAT вносит дополнительные ограничения на перечень работающих протоколов, впрочем HTTP, POP3, SMTP будут нормально работать и через PAT. PAT позволяет значительно сэкономить адресное пространство. В случае использования протокола ICMP, который не инкапсулируется в TCP или UDP и к которому не применимо понятие «порт», вместо номера портов PAT меняет поле ICMP «Queue ID», что приводит к аналогичному результату.

Таковы основные принципы работы трансляции адресов, для получения практических сведений, рекомендую обратиться к статье «Настройка трансляции адресов на маршрутизаторе Cisco».

Трансляция Сетевых Адресов — Network Address Translation подробное описание технологии

Трансляция сетевых адресов по английский Network Address Translation (NAT) это технология замены ip адресов и портов в заголовке ip пакета. Чаще всего nat используется, чтобы заменить ip адрес внутренней сети на ip адрес из внешней сети. Это делается, чтобы преодолеть нехватку адресов IPv4.

Внутренние и внешние IP адреса

Внешние ip адреса это обычные адреса, которые можно применять в интернет. Они должны быть уникальными во всём мире, их нельзя использовать просто так. Нужно получать разрешение у корпорации ICANN, у одного из ее региональных регистраторов.

Проблема с внешними адресами в протоколе ipv4 в том, что их не хватает для современного масштаба интернет. Адресов ipv4 примерно 4 млрд., а сейчас устройств в интернете гораздо больше.

Внутренние IP адреса это три специальных, диапазонов ip адресов, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 которые можно использовать для создания внутренних или частных сетей. Диапазоны определены в документе RFC 1918. Эти адреса не могут использоваться в интернет, зато их можно применять в своей сети без обращения в ICANN. Разные частные сети, могут использовать одни и те же диапазоны внутренних ip адресов.

Пример использования NAT

Как работает технология NAT для преобразования внутренних адресов во внешние? Предположим, у нас есть сеть организации в которой используются внутренние адреса из диапазона 192.168.1.0. Есть Интернет в котором такие адреса использовать нельзя и внутренняя сеть подключаемая к интернет через устройство NAT.

Устройство NAT имеет один внешний ipv4 адрес 184.86.48.128 и когда компьютеры из внутренней сети хотят подключиться к интернету, устройство NAT преобразует ip адреса из внутренней сети в ip адрес внешней сети.

Типы NAT

Есть достаточно много разных вариантов технологии NAT. Мы рассмотрим 3 типа, которые используются чаще всего. Однако, кроме них есть и другие возможные варианты.

Статический NAT

Первый тип это статическое отображение ip адресов один к одному. В этом случае, нам нужно иметь столько же внешних адресов, сколько и компьютеров во внутренней сети. т.е. 4 компьютера и 4 ip адреса в нашем случае. И у нас фиксированное отображение внутренних адресов во внешние ip адреса.

Такая схеме используетя редко и она возможна, когда Вы подключаете сеть организации не к интернет, а к какой-то другой организации, где тоже используются внутренние ip адреса и возможен конфликт ip адресов.

Динамический NAT

Второй вариант это динамическое преобразование, когда набор внутренних ip адресов отображается на группу внешних ip адресов. В случае динамического NAT у нас есть несколько внешних ip адресов, которые поочередно используются разными компьютерами из внутренней сети. Например сначала компьютер 1 использует первый адрес, а компьютер 3 второй адрес.

Через некоторое время, второй компьютер может использовать второй адрес, а третий компьютер первый адрес. Таким образом, преобразование выполняется динамически.

Один ко многим (masquerading)

Третий вариант, который используется чаще всего это, когда все адреса из внутренней сети, отображаются на один внешний ip адрес.

Рассмотрим, как работает вариант NAT one-to-many, потому что с его помощью, можно подключать к интернет большие сети организаций, используя один внешний ip адрес (184.86.48.128). Именно это позволяет частично смягчить проблему нехватки адресов ipv4.

Преобразование или трансляция сетевых адресов, реализуется с помощью таблицы NAT, которая находится внутри устройства NAT.

Работа NAT

Как работает nat в режиме masquerading? Предположим, что первый компьютер решил зайти на сайт. Он отправляет пакет, в ip адресе указывается ip адрес компьютера из внутренней сети (192.168.1.2), в поле порт указывается динамический порт, выданный браузеру операционной системой (57160). И пакет предназначен для 80 порта адреса Веб-сайта.

Но, так как адреса из внутренней сети не могут использоваться в интернет, то устройству nat нужно заменить ip адрес из внутренней сети в заголовке пакета в адресе отправителя (192.168.1.1), на ip адрес из внешней сети (184.86.48.128).

Как это делает устройство nat? После того, как устройство nat получило пакет, оно записывает внутренний ip адрес и внутренний порт в таблицу и генерирует пару внешний адрес и внешний порт для замены в пакете. Так как у нас всего лишь один внешний адрес, то именно он записывается в поле внешний ip. Внешний порт генерируется случайным образом. Устройство нат сгенерировало адрес пота 48202.

На следующем этапе происходит трансляция, т.е. замена ip адреса и порта. IP адрес и порт отправителя удаляются из пакета и на их место записываются новые данные из таблицы nat. Внешний ip адрес устройства nat и внешний порт, которое устройство nat сгенерировало случайным образом.

В таком виде пакет передается на веб сервер. Когда приходит ответ от веб-сервера, там в качестве получателя, указывается ip адрес устройства nat и порт на этом устройстве.

Но в реальности эти данные предназначены не для устройства nat, а для компьютера внутренней сети. Поэтому устройство нат должно понять к какому компьютеру во внутренней сети предназначены данные. Затем изменить ip адрес и порт, передать данные нужному компьютеру. Это делается, с помощью таблицы nat.

В таблице nat ищется запись в которой внешний ip адрес и внешний порт, такие же как в поступившем пакете. Пока у нас в таблице одна запись, поэтому устройство nat берет из этой записи внутренний ip адрес интересующего нас компьютера и его порт. Устройство nat сново производит замену ip адреса и порта в пакете и в в таком виде передает пакет во внутреннюю сеть.

Что происходит если в интернет захочет зайти какой-нибудь другой компьютер, предположим, что компьютер 4 тоже хочет зайти на веб-сайт zvondozvon.ru. Устройство nat работает аналогично, извлекает ip адрес и порт, записывает их в таблицу nat. В качестве внешнего ip адреса указывается единственный внешний ip адрес устройства nat и номер внешнего порта снова генерируется случайным образом.

Адрес и порт из внутренней сети меняются на адрес и порт из внешней сети. И в таком виде пакет передается в интернет.

Когда приходит ответ от веб-сервера, снова выполняется поиск пары внешний ip адрес и внешний порт. В таблице nat ищется соответствующие им внутренний ip адрес и внутренний порт. Производится замена в заголовке пакета и пакет передается во внутреннюю сеть. Можете посмотреть видео, если что-то было не ясно.

Читать еще:  Адрес электронной почты майкрософт

Преимущества NAT

Эта технология долго позволяла справляться с нехваткой адресов ipv4. Вы можете подключить к интернет сеть крупной организации, где много компьютеров, с помощью всего лишь одного внешнего адреса ipv4.

Эту технологию легко развернуть и использовать, Вам нужно всего лишь одно устройство nat и адреса для внутренней сети. Вы можете свободно использовать из диапазона частных адресов не обращаясь в ICANN.

Дополнительное преимущество в безопасности, технология nat скрывает внутреннюю структуру сети от внешнего мира. Для внешнего мира есть всего один адрес ipv4, а что установлено внутри сети, с внутренними адресами, никто не видит.

Недостатки NAT

Однако nat обладает рядом существенных недостатков. Первый теоретический недостаток, заключается в том, что нарушение фундаментального принципа построения ip-сетей, в которых каждый компьютер должен иметь возможность соединяться с любым другим компьютером.

Следствие этого теоретического недостатка, является ряд практических. Например нет возможности подключиться из внешнего мира к компьютерам во внутренней сети. Из внешнего мира виден всего лишь один ip адрес и невозможно понять, что в реальности за этим ip адресом находится большое количество других устройств.

Некоторые протоколы, которые разрабатывались в ранние годы создания интернет, и рассчитаны на то, что каждое устройство может соединиться с каждым, в случае с nat работают плохо. Например, плохо работает протокол FTP, который использует два соединения, одно для управления, другое для передачи данных. Соединение для передачи данных обычно устанавливается сервером, если клиент находится за устройством nat, то сервер FTP не может установить с ним соединение для передачи данных.

Плохо работают протоколы, которые не устанавливают соединения. Для которых нет возможности сохранить запись в таблице nat на всё время жизни соединения.

Дополнительный недостаток в том, что нет единого стандарта nat, а есть много разных вариантов, которые поддерживаются разными производителями оборудования и их ПО, все это вносит путаницу и приводит к несовместимости.

Решение проблем с NAT

Как можно решить проблемы с nat? Если Вы хотите иметь возможность попасть из внешнего мира во внутреннюю сеть, то для этого можно использовать статическое отображение, которое мы уже рассматривали выше.

Можно использовать отображение один к одному, но для этого нужно иметь несколько внешних ip адресов.

Также можно использовать статическое отображение для портов. Например, порт 80 на устройстве nat отображается во внутренний адрес сервера и порт 80. Порт 25, который используется для электронной почты отображается во внутренний адрес почтового сервера и порт 25. В этом случае у нас есть один ip адрес, но разные его порты отображаются в разные пары, ip адрес и порт, во внутренней сети.

Есть технология NAT Traversal, которая позволяет устанавливать соединения с компьютерами во внутренней сети без интернет. Она определена в стандарте RFC 3489. Есть и другие варианты такой технологии. Такая технология часто используется в приложениях для передачи видео и голоса, например Skype.

Итоги

Рассмотрели технологию трансляции сетевых адресов NAT, она используется, чтобы в заголовке ip пакета преобразовать ip адрес внутренней или частно сети в ip адрес внешней сети, которая может использоваться в интернет. Технология nat реализуется с помощью маршрутизаторов, межсетевых экранов и другие сетевые устройства.

Трансляция сетевых адресов (NAT). Виды, схемы работы

Трансляция сетевых адресов (NAT) используется многими сервис провайдерами и частными пользователями для решения проблемы нехватки реальных IP-адресов и обеспечения безопасности локальных сетей подключенных к Интернету. Например. Предприятие может иметь выделенный диапазон реальных IP-адресов, но гораздо большее количество компьютеров имеющих локальные IP-адреса которым необходим доступ в Интернет. Для решения этой проблемы используется технология трансляции адресов, которая позволяет компьютерам локальной сети взаимодействовать с сетью Интернет, используя всего один внешний реальный IP-адрес. NAT решает эту проблему с помощью подмены локального IP-адреса на наружный общедоступный адрес. Заменяя внутренний IP-адрес и порт на внешний IP-адрес и порт, NAT сохраняет таблицу соответствия, затем при получении ответного пакета производится обратное преобразование.
К локальным IP-адресам относятся следующие диапазоны адресов: 10.ххх.ххх.ххх, 192.168.ххх.ххх, 172.16.ххх.ххх — 172.32.ххх.ххх.
Схема работы NATа

Типы трансляторов сетевых адресов (NAT)

Трансляторы адресов подразделяются на 4 типа:
1. Symmetric NAT.
2. Full Cone NAT.
3. Address Restricted Cone NAT (он же Restricted NAT).
4. Port Restricted Cone NAT (или Port Restricted NAT)

В первых трех типах NATа разные IP-адреса внешней сети могут взаимодействовать с адресом из локальной сети используя один и тот же внешний порт. Четвертый тип, для каждого адреса и порта использует отдельный внешний порт.
NATы не имеют статической таблицы соответствия адресов и портов. Отображение открывается, когда первый пакет посылается из локальной сети наружу через NAT и действует определенный промежуток времени (как правило, 1-3 минуты), если пакеты через этот порт не проходят, то порт удаляется из таблицы соответствия. Обычно NAT распределяют внешние порты динамически, используется диапазон выше 1024.

1.Symmetric NAT.
До недавнего времени это была наиболее распространённая реализация. Его характерная особенность – в таблице NAT маппинг адреса IL на адрес IG жёстко привязан к адресу OG, то есть к адресу назначения, который был указан в исходящем пакете, инициировавшем этот маппинг. При указанной реализации NAT в нашем примере хост 192.168.0.141 получит оттранслированные входящие UDP-пакеты только от хоста 1.2.3.4 и строго с портом источника 53 и портом назначения 1053 – ни от кого более. Пакеты от других хостов, даже если указанные в пакете адрес назначения и порт назначения присутствуют в таблице NAT, будут уничтожаться маршрутизатором. Это наиболее параноидальная реализация NAT, обеспечивающая более высокую безопасность для хостов локальной сети, но в некоторых случаях сильно усложняющая жизнь системных администраторов. Да и пользователей тоже.

2. Full Cone NAT.
Эта реализация NAT – полная противоположность предыдущей. При Full Cone NAT входящие пакеты от любого внешнего хоста будут оттранслированы и переправлены соответствующему хосту в локальной сети, если в таблице NAT присутствует соответствующая запись. Более того, номер порта источника в этом случае тоже не имеет значения – он может быть и 53, и 54, и вообще каким угодно. Например, если некое приложение, запущенное на компьютере в локальной сети, инициировало получение пакетов UDP от внешнего хоста 1.2.3.4 на локальный порт 4444, то пакеты UDP для этого приложения смогут слать также и 1.2.3.5, и 1.2.3.6, и вообще все до тех пор, пока запись в таблице NAT не будет по какой-либо причине удалена. Ещё раз: в этой реализации NAT во входящих пакетах проверяется только транспортный протокол, адрес назначения и порт назначения, адрес и порт источника значения не имеют.

3. Address Restricted Cone NAT (он же Restricted NAT).
Эта реализация занимает промежуточное положение между Symmetric и Full Cone реализациями NAT – маршрутизатор будет транслировать входящие пакеты только с определенного адреса источника (в нашем случае 1.2.3.4), но номер порта источника при этом может быть любым.

4.Port Restricted Cone NAT (или Port Restricted NAT).
То же, что и Address Restricted Cone NAT, но в этом случае маршрутизатор обращает внимание на соответствие номера порта источника и не обращает внимания на адрес источника. В нашем примере маршрутизатор будет транслировать входящие пакеты с любым адресом источника, но порт источника при этом обязан быть 53, в противном случае пакет будет уничтожен маршрутизатором.

NAT и Интернет телефония с использованием SIP протокола

Существует три основных проблемы прохождения через NAT звонков с использованием SIP протокола.
1. Наличие локальных адресов в SIP сигнализации.

INVITE sip:74957877070@212.1.1.45 SIP/2.0
Record-Route:
Via: SIP/2.0/UDP 212.1.1.45;branch=z9hG4bK3af7.0a6e92f4.0
Via: SIP/2.0/UDP 192.168.0.21;branch=z9hG4bK12ee92cb;rport=5060
From: «test» ;tag=as149b2d97
To: sip:74957877070@mangosip.ru
Contact:
Call-ID: 3cbf958e6f43d91905c3fa964a373dcb@192.168.0.21:5060
CSeq: 3 INVITE
Max-Forwards: 70
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces
Content-Type: application/sdp
Content-Length: 394

v=0
o=root 3303 3304 IN IP4 192.168.0.21
s=session
c=IN IP4 192.168.0.21
t=0 0
m=audio 40358 RTP/AVP 8 101
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off — — — —
a=sendrecv

В приведенном примере сигнализации выделены поля, в которых указан локальный адрес. Как следствие этого сервер сети Интернет-телефонии (SoftSwitch) обработав такой запрос, с локальными адресами, не может отправить абоненту ответ, поскольку в поле «Via» указан адрес, который не маршрутизируется в Интернете.
2. Прохождение голосового потока (RTP).
Вызываемый абонент, получив вызов от сервера сети Интернет-телефонии, с указанием локального адреса получателя голосового потока не может отправить речевую информацию по назначению, поскольку указанный адрес не маршрутизируется в Интернете. Вследствие этого возникает, одностороння слышимость абонентов или ее полное отсутствие.
3. Абонент, подключенный через NAT, практически не может принимать входящие звонки.
Это связанно с тем, что NAT резервирует внешний порт на небольшой промежуток времени (от 1 до 3 мин.), поле чего освобождает его.
Полученный после этого входящий вызов от сервера сети Интернет-телефонии просто игнорируется и как следствие этого абонент расположенный за NATом не может получить информацию о входящем звонке

Ссылка на основную публикацию
Adblock
detector