Трансляция сетевых адресов (NAT). Виды, схемы работы
Трансляция сетевых адресов (NAT) используется многими сервис провайдерами и частными пользователями для решения проблемы нехватки реальных IP-адресов и обеспечения безопасности локальных сетей подключенных к Интернету. Например. Предприятие может иметь выделенный диапазон реальных IP-адресов, но гораздо большее количество компьютеров имеющих локальные IP-адреса которым необходим доступ в Интернет. Для решения этой проблемы используется технология трансляции адресов, которая позволяет компьютерам локальной сети взаимодействовать с сетью Интернет, используя всего один внешний реальный IP-адрес. NAT решает эту проблему с помощью подстановки общедоступного IP- адреса вместо локального IP-адреса Подставляя внутренний IP-адрес и порт вместо внешнего IP-адреса и порта, NAT сохраняет таблицу соответствия, затем при получении ответного пакета производится обратное преобразование.
К локальным IP-адресам относятся следующие диапазоны адресов: 10.
Схема работы 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 протокола
1. Наличие локальных адресов в SIP сигнализации.
SIP-пакет:
INVITE sip:[email protected] 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: 192.168.0.21:5060>
Call-ID: [email protected]: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).
Вызываемый абонент, получив вызов от сервера сети Интернет-телефонии, с указанием локального адреса получателя голосового потока не может отправить речевую информацию по назначению, поскольку указанный адрес не маршрутизируется в Интернете. Вследствие этого возникает, одностороння слышимость абонентов или ее полное отсутствие.
Это связанно с тем, что NAT резервирует внешний порт на небольшой промежуток времени (от 1 до 3 мин.), поле чего освобождает его.
Полученный после этого входящий вызов от сервера сети Интернет-телефонии просто игнорируется и как следствие этого абонент расположенный за NATом не может получить информацию о входящем звонке
Нет
Как можно улучшить эту статью?
Отправить ответ на email?
Предоставляя информацию, вы соглашаетесь с Политикой обработки персональных данных и на получение рекламной информации о продуктах, услугах посредством звонков и рассылок по предоставленным каналам связиТрансляция сетевых адресов NAT | CiscoTips
NAT (Network Address Translation) – трансляция (подмена) сетевых адресов. Эта технология широко используется. Позволяет с одной стороны, противостоять нехватке IPv4 адресов, а с другой – повысить защищённость сети.
Приватные адреса
Давайте начнём вот с чего: IPv4 адреса бывают публичные и приватные, если вы не совсем понимаете смысл приватных (серых) адресов, то рекомендую начать изучение с соответствующей статьи. Если в двух словах, то приватные адреса может использовать кто угодно в своей сети, для этого нет необходимости арендовать адресное пространство, или выделять адреса у провайдера. Очевидный недостаток таких адресов – к устройству, имеющему приватный адрес нельзя подключиться из интернета – только из вашей собственной локальной сети. Это связанно с тем, что ни один провайдер мира не знает, что эти адреса используются в вашей сети и соответственно эти сети отсутствуют в таблице маршрутизации сторонних маршрутизаторов и трафик к ним не маршрутизируется. Понятно, что при всём желании маршруты нельзя прописать на сторонних маршрутизаторах, так как не только вы пользуетесь этими адресами. Основное преимущество приватных адресов в том, что за них не надо платить, ими можно пользоваться на своё усмотрение и главное – одни и те же адреса используются в разных локальных сетях разных организаций, что приводит к экономии адресного пространства IPv4.
Трансляция адресов
Для того чтобы организовать возможность выхода в интернет с устройств, имеющих приватные адреса применяется технология трансляции адресов, либо используется прокси-сервер. Если попытаться отправить, например, запрос к веб-серверу, находящемуся в интернете, с приватного адреса, то сам запрос теоретически дойдёт, так как веб сервер имеет публичный адрес, а вот ответ от сервера не вернётся, так как обратный адрес, на который этот ответ надо слать – приватный. Трансляция адресов заключается в том, что есть некоторое NAT-устройство, например, сервер или маршрутизатор, который имеет один или несколько публичных адресов. Клиенты с приватными адресами пытаются отправить запросы напрямую получателю в интернете, но ip пакеты по пути попадают на такое устройство. При этом в пакете подменяется адрес отправителя: вместо приватного адреса клиента, устройство ставит в это поле один из своих публичных адресов, после чего пакет отправляется в сеть. Теперь у него и адрес отправителя и адрес получателя – публичные. Получатель обрабатывает пакет и возвращает на него ответ (например, содержимое запрошенной из интернета странички). Этот ответ, как несложно догадаться, идёт на публичный адрес устройства, занимающегося NAT-ом. Устройство помнит, когда и какой адрес оно подменяло и в этом пакете адрес получателя снова меняется: публичный адрес устройства заменяется на приватный адрес клиента, после чего пакет идёт дальше во внутреннюю сеть. Клиент получает данные, как будто бы никакого преобразования адресов не было. Но это всё хорошо в теории. На практике, есть ряд протоколов, которые не могут работать с NAT-ом. На это есть свои причины. Какие-то протоколы в данных седьмого уровня могут содержать копию ip адреса, и эта копия, естественно не подменяется, так как NAT-устройство работает на 3-ем и 4-ом уровнях модели OSI.
Другие протоколы подразумевают появление дополнительных соединений в процессе работы, которые могу исходить от внешней стороны. Про такие соединения NAT-устройство так же не знает и не будет передавать их клиенту. Но, если пользователям в вашей сети надо сидеть в интернете и читать почту, то проблем не будет.
- Минимизация использования публичных адресов
- Повышенная гибкость использования адресов
- Возможность изменения внешних адресов без необходимости изменять адресный план локальной сети
- Повышенная безопасность в связи с тем, что из интернета нельзя обратиться ко внутренним устройствам напрямую.
Недостатки трансляции адресов:
- Уменьшение производительности в связи с дополнительными действиями на маршрутизаторе.
- Проблемы с работой некоторых протоколов.
- Сложности при организации туннелей.
- Сложности с организацией входящих соединений извне.
Раз уж мы изучаем оборудование Cisco, то в качестве NAT-устройства у нас выступает маршрутизатор. Любой маршрутизатор Cisco умеет организовывать трансляцию адресов.
Терминология
Чтобы ориентироваться в терминах, надо запомнить 4 адреса, которые фигурируют в процессе трансляции:
- Inside local
- Inside global
- Outside local
- Outside global
Inside local – Это приватный адрес нашего устройства, которое пытается отправит запрос в интернет. Мы отправляем пакет на адрес некоего сервера (outside global). Когда пакет проходит через NAT-устройство, то адрес отправителя подменяется на публичный адрес, имеющийся в распоряжении NAT-устройства (inside global). Если сервер-получателя имеет публичный адрес и доступен по нему извне, то outside global и outside local
– совпадают, если сам сервер тоже скрыт за каким-то NAT-устройством, то именно оно получает вместо него запрос на outside global адрес и транслирует адрес получателя на outside local (во внутренней сети получателя). Впрочем, ситуация, когда сервер находится за NAT-ом – не частое явление и обычно outside local и outside global – это один и тот же адрес.
Иными словами, мы можем объяснить эти термины так:
- Inside – адреса нашего отправляющего устройства, которые подвергаются трансляции (local в global и обратно).
- Outside – адреса получателя
- Local – внутренние с точки зрения локальных сетей, часто приватные адреса устройств (как отправителя, так и получателя), с которых прямое взаимодействие без трансляции невозможно.
- Global – публичные адреса, имеющиеся в распоряжении NAT-устройств, между которыми и происходит взаимодействие в интернете.
Таблица трансляций
Для обеспечения корректной работы, маршрутизатор должен иметь в памяти таблицу трансляций, в которой находится информация о том, когда проводились трансляции, а также записываются inside local, inside global, outside global и outside local адреса. Эта таблица необходима для организации правильной обратной трансляции. Например, если внутренний компьютер с адресом «A» отправил запрос на адрес «B», а маршрутизатор подменил приватный адрес «A» на свой публичный «C», то, когда придёт ответ из интернета с адреса «B» на адрес «C», маршрутизатор, глядя в эту табличку будет знать, что надо адрес получателя «C» подменить обратно на адрес «A».
Виды трансляции адресов
Всё вышеперечисленное является общими принципами работы NAT. Однако, существуют разные способы организации этого процесса:
- Статический NAT – когда на маршрутизаторе организована трансляция одного конкретного inside local адреса в один конкретный inside global адрес.
- Динамическая трансляция NAT – когда на маршрутизаторе имеется пул свободных inside global адресов, и конфигурация позволяет клиентам из некоего множества inside local адресов проходить трансляцию. В этом случае для очередного клиента изнутри в пуле выбирается очередной свободный адрес и происходит трансляция.
- Трансляция портов и адресов (PAT) – это механизм NAT, затрагивающий не только третий, но и четвёртый уровень модели OSI. Используется, когда количество клиентов превышает размер пула inside global адресов. В этом случае клиенты могут транслироваться на один и тот же inside global адрес, но при этом может менять номер порта (TCP или UDP), чтобы при получении ответа, в зависимости от того, на какой он пришел порт, можно было бы организовать трансляцию этого ответа одному или другому клиенту.
PAT вносит дополнительные ограничения на перечень работающих протоколов, впрочем HTTP, POP3, SMTP будут нормально работать и через PAT. PAT позволяет значительно сэкономить адресное пространство. В случае использования протокола ICMP, который не инкапсулируется в TCP или UDP и к которому не применимо понятие «порт», вместо номера портов PAT меняет поле ICMP «Queue ID», что приводит к аналогичному результату.
Таковы основные принципы работы трансляции адресов, для получения практических сведений, рекомендую обратиться к статье «Настройка трансляции адресов на маршрутизаторе Cisco».
Разница между преобразованием сетевых адресов (NAT) и преобразованием адресов портов (PAT)
Преобразование сетевых адресов (NAT): NAT, при котором частный IP-адрес или локальный адрес преобразуется в общедоступный IP-адрес. NAT используется для замедления скорости истощения доступных IP-адресов путем преобразования локального IP-адреса или частного IP-адреса в глобальный или общедоступный IP-адрес. NAT может быть отношением «один к одному» или отношением «многие к одному».
Пример:
Рассмотрим домашнюю сеть с тремя устройствами: компьютером, смартфоном и смарт-телевизором. Без NAT каждое из этих устройств должно было бы иметь уникальный общедоступный IP-адрес для подключения к Интернету. Однако с помощью NAT все эти устройства могут совместно использовать один общедоступный IP-адрес и обмениваться данными с Интернетом, используя свои частные IP-адреса. Когда одно из устройств отправляет запрос в Интернет, NAT преобразует частный IP-адрес устройства в общедоступный IP-адрес сети и отправляет запрос через Интернет.
Преобразование адреса порта (PAT): В PAT частные IP-адреса преобразуются в общедоступные IP-адреса через номера портов. PAT также использует адрес IPv4, но с номером порта. Он бывает двух типов:
1. Статический 2. Перегрузка PAT
Пример:
Рассмотрим домашнюю сеть с тремя устройствами: компьютером, смартфоном и смарт-телевизором. Без PAT каждое из этих устройств должно было бы иметь уникальный общедоступный IP-адрес для подключения к Интернету. Однако с помощью PAT все эти устройства могут использовать один общедоступный IP-адрес и обмениваться данными с Интернетом, используя уникальные номера портов. Когда компьютер отправляет запрос в Интернет, PAT присваивает ему уникальный номер порта и преобразует частный IP-адрес компьютера в общедоступный IP-адрес сети. Сервер назначения в Интернете получает запрос и отвечает на уникальный номер порта, позволяя компьютеру получить ответ.
Разница между преобразованием сетевых адресов (NAT) и преобразованием адресов портов (PAT):
Преобразование сетевых адресов (NAT) | Преобразование адресов портов (PAT) | PAT означает преобразование адресов портов. |
---|---|
В NAT частные IP-адреса преобразуются в общедоступные IP-адреса.![]() | В PAT частные IP-адреса преобразуются в общедоступные IP-адреса через номера портов. |
NAT можно считать надмножеством PAT. | PAT — это динамический NAT. |
NAT использует адрес IPv4. | PAT также использует адрес IPv4, но с номером порта. |
Существует 3 типа: статический, динамический NAT и PAT/перегрузка NAT/маскировка IP. | Он также имеет два типа: статический и перегруженный PAT. |
Роль NAT и PAT в повышении эффективности интернет-маршрутизации:
- NAT и PAT могут повысить безопасность: NAT может помочь повысить безопасность, скрывая частные IP-адреса устройств в частной сети от Интернета. Это может затруднить злоумышленникам выбор определенных устройств в сети, поскольку они не смогут видеть частные IP-адреса устройств. PAT также может помочь повысить безопасность, позволяя устройствам в частной сети взаимодействовать с Интернетом, используя уникальные номера портов, что может затруднить получение злоумышленниками доступа к сети.
- NAT и PAT могут повысить производительность: NAT и PAT также могут повысить производительность, позволяя устройствам в частной сети совместно использовать один общедоступный IP-адрес. Это может помочь уменьшить количество записей маршрутизации в таблице маршрутизации маршрутизатора, что может повысить эффективность интернет-маршрутизации.
- У NAT и PAT есть ограничения: Хотя NAT и PAT могут помочь сделать интернет-маршрутизацию более эффективной, у них есть некоторые ограничения. NAT может вызвать проблемы с определенными типами интернет-приложений, которые полагаются на сквозную связь, таких как передача голоса по IP (VoIP) и онлайн-игры. PAT также может вызывать проблемы с определенными типами интернет-приложений, использующих несколько подключений, таких как BitTorrent.
- NAT и PAT используются в комбинации: NAT и PAT часто используются в комбинации для повышения эффективности интернет-маршрутизации.
Например, корпоративная сеть может использовать NAT, чтобы позволить нескольким устройствам в сети совместно использовать один общедоступный IP-адрес, а затем использовать PAT, чтобы позволить нескольким устройствам обмениваться данными с Интернетом, используя уникальные номера портов.
- IPv6-адреса могут уменьшить потребность в NAT: NAT и PAT в основном используются для решения проблемы нехватки доступных IPv4-адресов. Однако по мере расширения использования адресов IPv6, которые представляют собой более новый тип IP-адресов с гораздо большим адресным пространством, потребность в NAT и PAT в будущем может уменьшиться.
NAT и PAT — не единственные технологии для повышения эффективности интернет-маршрутизации. Существуют и другие технологии, которые также могут помочь сделать интернет-маршрутизацию более эффективной, например, агрегация сетевых адресов, трансляция сетевых адресов — трансляция протоколов (NAT-PT) и оператор связи. -класс NAT (CGN).
Что такое преобразование сетевых адресов?
Преобразование сетевых адресов (NAT) очень просто. Когда пакеты проходят через какое-либо сетевое устройство — обычно это брандмауэр, маршрутизатор или балансировщик нагрузки, — IP-адрес источника или получателя изменяется. Затем пакеты, возвращающиеся в другом направлении, транслируются обратно на исходные адреса. В некоторых случаях оба меняются сразу, что в некоторых документах называется «дважды NAT».
Преобразование адресов портов (PAT) — это особый случай NAT, в котором исходные IP-адреса для всех пакетов, идущих в одном направлении, преобразуются в общий адрес. Это чрезвычайно распространено для брандмауэров на границе Интернета, которые преобразуют все внутренние IP-адреса в один адрес, обычно собственный адрес брандмауэра, на стороне Интернета.
Почему преобразование адресов «порта»
В сетях IPv4 преобразование сетевых адресов используется почти повсеместно для периферийных интернет-устройств. Из-за нехватки зарегистрированных адресов IPv4 большинству сетей приходится использовать диапазоны частных адресов внутри своих сетей. Таким образом, почти каждая домашняя или корпоративная сеть должна использовать NAT на границе Интернета.
Большинство этих реализаций используют PAT для исходящего веб-трафика. Таким образом, один общедоступный адрес в Интернете может использоваться для всех устройств внутри сети. Однако с этим есть проблема.
Рассмотрим, что происходит, когда мой компьютер отправляет пакет на веб-сайт в Интернете. Брандмауэр заменяет IP-адрес моего компьютера в поле «источник» заголовка пакета и перенаправляет его в пункт назначения, который не меняется. Затем веб-сервер должен ответить.
Он отправляет пакет обратно на единственный известный IP-адрес моего компьютера, который на самом деле является адресом внешнего интерфейса брандмауэра. Интернет направляет этот пакет обратно к брандмауэру, но теперь брандмауэр должен отменить преобразование, заменив адрес в том, что теперь является полем «назначение» заголовка пакета, на IP-адрес моего компьютера. Затем он пересылает этот пакет мне.
Но что произойдет, если внутри сети будет две или более систем? А если сотни? Что, если я не единственный, кто общается с этим конкретным веб-сайтом? Откуда брандмауэр знает, как отменить перевод?
Здесь на помощь приходит «порт» в преобразовании адресов портов. Наиболее распространенные протоколы в Интернете — это разновидность TCP или UDP. И TCP, и UDP включают понятие порта. Порт — это не физическая вещь, это просто номер в заголовке пакета. Фактически, есть исходный порт и порт назначения.
Когда мой компьютер начинает новый сеанс связи с веб-сервером, он отправляет первый пакет на определенный предопределенный порт назначения, а также на IP-адрес назначения, который мы уже обсуждали.
Для HTTP стандартом является номер порта 80. Для HTTPS это порт 443. Сеть использует IP-адрес, чтобы решить, как направить пакет. Но затем, когда он достигает сервера, операционная система использует номер порта, чтобы узнать, какому процессу отправить этот пакет, в данном случае процессу веб-сервера.
Но я мог бы одновременно открыть много веб-сеансов. Таким образом, мой компьютер также включает в себя «исходный» номер порта, который сообщает ему, какой процесс, работающий локально на моем компьютере, должен отправлять ответные пакеты обратно.
Когда удаленный веб-сервер отвечает на мой сеанс, заголовок пакета содержит его IP-адрес в качестве адреса источника и мой адрес PAT в качестве адреса назначения, а также использует исходный номер исходного порта в качестве нового адреса назначения.
В отличие от исходного порта назначения, который является чем-то четко определенным, например, 80 или 443, номер исходного порта, который мой компьютер использует для идентификации сеанса для себя, может быть любым от 1 до 65535.
Когда брандмауэр получает пакет от мой компьютер, он добавляет запись в свою таблицу преобразования, которая включает мой реальный IP-адрес, IP-адрес удаленного сервера, а также номера исходного и конечного портов. Поэтому, когда он получает ответ от сервера, он может использовать исходный порт для поиска «непереведенных» значений, которые ему нужно использовать, чтобы вернуть пакет мне.
На самом деле это немного сложнее, потому что есть вероятность, что ваш компьютер и мой будут использовать один и тот же номер исходного порта. Таким образом, хотя алгоритм преобразования, как правило, является собственностью поставщика брандмауэра, многие из них создают новый исходный порт для переведенного заголовка пакета. Тогда проще убедиться, что этот номер порта уникален. Но обратите внимание, что для каждого общего внешнего IP-адреса по-прежнему существует верхний предел в 65535 одновременных сеансов в этой таблице преобразования.
Помните, что на рабочей станции может быть открыто сразу несколько сеансов, поэтому на практике вы можете столкнуться с проблемами нехватки ресурсов на брандмауэре, если попытаетесь использовать один адрес PAT для более чем нескольких тысяч внутренних рабочих станций.
Статический NAT
Другая проблема с PAT заключается в том, что брандмауэру необходимо сопоставить входящий пакет с существующим сеансом. Это явно не работает, если вам нужно разрешить внешним устройствам подключаться к внутреннему серверу для таких вещей, как веб-серверы или серверы электронной почты. Если есть системы, которым необходимо принимать входящие подключения, вам необходимо использовать статический NAT.
Статическая трансляция сетевых адресов — это именно то, на что это похоже. Вместо исходящих соединений, динамически создающих записи в таблице перевода, вы создаете правила перевода, которые всегда будут присутствовать.
При использовании статического NAT межсетевой экран знает, как выполнять трансляцию в обоих направлениях, даже если он видит первый пакет в сеансе.
NAT политик
Разновидностью статического NAT является NAT политик. Вспомните предыдущие комментарии о том, как сервер использует номера портов, чтобы решить, какому приложению отправить пакет. Брандмауэр также может использовать ту же информацию для принятия решений.
Чаще всего это используется для совместного использования одного и того же IP-адреса в Интернете несколькими разными внутренними серверами. Например, брандмауэр может иметь правило, которое перенаправляет TCP-порты 80 и 443 на веб-сервер, порты 25 и 587 на сервер электронной почты и порты 20, 21 и 22 на сервер FTP/SFTP.
Такая конфигурация удобна, если у вас не хватает адресов и вам нужно их удвоить.
Роль балансировщиков нагрузки в NAT
Балансировщики нагрузки фактически являются устройствами NAT. Но у них могут быть и более сложные правила. Балансировщик нагрузки обычно имеет один адрес для пул серверов, выполняющих ту же функцию. Балансировщик нагрузки заменит IP-адрес назначения в пакете реальным адресом одного из серверов в пуле, а затем перенаправит пакет на этот сервер.
Обычно используется для повышения производительности или отказоустойчивости. Балансировщик нагрузки отслеживает состояние всех серверов в пуле. Если какой-либо из серверов по какой-либо причине становится недоступным, балансировщик нагрузки может немедленно удалить его из пула и прекратить отправку новых сеансов на этот отказавший сервер.
Еще одна функция, обнаруженная в некоторых балансировщиках нагрузки, — это возможность просматривать содержимое HTML и использовать его для выбора сервера. Например, может быть общий IP-адрес для всех веб-серверов в домене example.com. Балансировщик нагрузки может просмотреть точный URL-адрес и перенаправить https://example.com/application1 на первый сервер, а https://example.com/application2 — на второй сервер. Опять же, эта переадресация выполняется путем преобразования IP-адреса получателя в заголовке пакета.
Что дальше для NAT и PAT?
Еще в 2015 году я писал об IPv6 и его значении для NAT. Хотя текущая потребность в NAT и PAT в значительной степени обусловлена нехваткой адресов IPv4, потребность в них не исчезнет в ближайшее время по двум причинам.
Во-первых, распространение IPv6 по-прежнему идет медленно, поскольку такие функции, как NAT и PAT в сочетании с частной адресацией, устранили большую часть необходимости перехода на IPv6. Единственными людьми, которым действительно нужны новые IPv4-адреса, являются поставщики услуг. И даже в отдаленном будущем можно будет работать в Интернете на IPv6, но поставщики услуг будут переводить и туннелировать IPv4-адреса для своих клиентов и продолжать скрывать проблемы.
И, во-вторых, одна из очень полезных функций NAT заключается в том, что он может скрывать вашу истинную личность, что важно по соображениям конфиденциальности. В какой-то ключевой момент своей ранней истории адресация IPv6 должна была быть свободна от NAT. Но, в то же время, предполагалось встроить уникальный 48-битный MAC-адрес вашего компьютера в ваш IPv6-адрес.
Если бы мы реализовали Интернет таким образом, то любой, кто перехватывает ваши пакеты в общедоступных частях Интернета, смог бы уникальным образом связать ваши пакеты с вашим компьютером или мобильным устройством, даже если полезная нагрузка была зашифрована. Это открыло бы дверь для множества атак анализа трафика «больших данных» против отдельных лиц.
Анализ трафика может дать много информации. Если я вижу, что в один и тот же дом доставляют много пиццы, я знаю, где вечеринка. Я даже могу предположить, сколько людей придет. Мне не нужно знать, что такое начинки. Точно так же я могу сказать, где находится ваш почтовый сервер, каким банком вы пользуетесь и даже с какими социальными сетями вы взаимодействуете, просто взглянув на ваши пакеты.