Поделиться через


Преобразование исходных сетевых адресов (SNAT) с шлюзом NAT Azure

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

SNAT также позволяет нескольким частным экземплярам в виртуальной сети использовать один общедоступный IP-адрес или набор IP-адресов (префикс) для подключения к Интернету.

Шлюз NAT позволяет использовать функцию SNAT "многие ко одному". Многие частные экземпляры в подсети могут подключаться к общедоступному IP-адресу, подключенному к шлюзу NAT, для подключения к Интернету. Если шлюз NAT делает несколько подключений к одной конечной точке назначения, каждое новое подключение использует другой порт SNAT, чтобы можно было отличить подключения друг от друга.

Нехватка портов SNAT происходит, когда исходная конечная точка исчерпала доступные порты SNAT для различения новых подключений. При исчерпании портов SNAT подключения завершаются сбоем.

Масштабирование SNAT для шлюза NAT

Масштабирование шлюза NAT в первую очередь является функцией управления общими доступными данными инвентаризации портов SNAT.

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

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

Один шлюз NAT может масштабироваться до 16 IP-адресов. Каждый общедоступный IP-адрес шлюза NAT предоставляет 64 512 портов SNAT для исходящих подключений. Шлюз NAT может масштабировать до более чем 1 миллиона портов SNAT. Протоколы TCP и UDP представляют собой отдельные перечни портов SNAT и не связаны со шлюзом NAT.

Шлюз NAT динамически выделяет порты SNAT

Шлюз NAT динамически выделяет порты SNAT для частных ресурсов подсети, таких как виртуальные машины. Все доступные порты SNAT используются по запросу любой виртуальной машиной в подсетях, настроенных с помощью шлюза NAT.

Схема выделения портов SNAT.

Рисунок: выделение портов SNAT

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

При использовании шлюза NAT предварительное размещение портов SNAT не требуется. Это означает, что порты SNAT не остаются неиспользуемыми виртуальными машинами, не нуждающимися в них.

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

Схема исчерпания портов SNAT.

Рисунок: исчерпание портов SNAT

Выбор и повторное использование порта SNAT шлюза NAT шлюза NAT

Шлюз NAT выбирает порт SNAT случайным образом из доступной инвентаризации портов, чтобы сделать новые исходящие подключения. Если шлюз NAT не находит доступные порты SNAT, он повторно использует порт SNAT. Один и тот же порт SNAT можно использовать для подключения к нескольким разным назначениям одновременно.

Порт SNAT можно повторно использовать для подключения к той же конечной точке назначения. До повторного использования порта шлюз NAT помещает таймер повторного использования порта SNAT для охлаждения на порту после закрытия подключения.

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

Схема повторного использования порта SNAT.

Рисунок: повторное использование порта SNAT

Примеры потоков SNAT для шлюза NAT

Многие из одного SNAT с шлюзом NAT

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

В следующей таблице две разные виртуальные машины (10.0.0.1 и 10.2.0.1) делают подключения к целевому https://microsoft.com IP-адресу 23.53.254.142. При настройке шлюза NAT с общедоступным IP-адресом 65.52.1.1 исходные IP-адреса каждой виртуальной машины превратятся в общедоступный IP-адрес шлюза NAT и порт SNAT:

Flow Исходный кортеж Исходный кортеж после SNAT Целевой кортеж
1 10.0.0.1:4283 65.52.1.1:1234 23.53.254.142:80
2 10.0.0.1:4284 65.52.1.1:1235 23.53.254.142:80
3 10.2.0.1:5768 65.52.1.1:1236 23.53.254.142:80

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

Шлюз NAT повторно использует порт SNAT для подключения к новому назначению.

Как упоминание ранее, шлюз NAT может повторно использовать тот же порт SNAT для одновременного подключения к новой конечной точке назначения. В следующей таблице шлюз NAT преобразует поток 4 в порт SNAT, который уже используется для других назначений (см. поток 1 из предыдущей таблицы).

Flow Исходный кортеж Исходный кортеж после SNAT Целевой кортеж
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80

Охладить порт SNAT шлюза NAT для повторного использования в том же назначении

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

Чтобы продемонстрировать это повторное использование порта SNAT, давайте рассмотрим поток 4 из предыдущей таблицы. Поток 4 подключался к конечной точке назначения, передаемой брандмауэром, с таймером охлаждения 20-секундного исходного порта.

Flow Исходный кортеж Исходный кортеж после SNAT Целевой кортеж Соединение типа пакета закрыто с помощью Таймер целевого брандмауэра для охлаждения для исходного порта
4 10.0.0.1:4285 65.52.1.1:1234 26.108.254.155:80 TCP FIN 20 секунд

поток Подключение ion 4 закрывается с помощью пакета TCP FIN. Так как подключение закрыто с помощью пакета TCP FIN, шлюз NAT помещает порт SNAT 1234 в холодное состояние в течение 65 секунд, прежде чем его можно будет повторно использовать. Так как порт 1234 находится в холодном режиме дольше, чем время ожидания таймера исходного порта брандмауэра в течение 20 секунд, поток подключения 5 продолжает повторно использовать порт SNAT 1234 без проблем.

Flow Исходный кортеж Исходный кортеж после SNAT Целевой кортеж
5 10.2.0.1:5769 65.52.1.1:1234 26.108.254.155:80

Помните, что шлюз NAT помещает порты SNAT в разные порты SNAT повторно использовать таймеры охлаждения в зависимости от того, как было закрыто предыдущее подключение. Дополнительные сведения о таймерах повторного использования портов SNAT см. в разделе "Таймеры повторного использования портов".

Не зависимостей от конкретного способа назначения исходных портов в приведенных выше примерах. Выше приведены иллюстрации только основных понятий.