Преобразование исходных сетевых адресов (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 для подключения к исходящему трафику.
При использовании шлюза NAT предварительное размещение портов SNAT не требуется. Это означает, что порты SNAT не остаются неиспользуемыми виртуальными машинами, не нуждающимися в них.
После выпуска порта SNAT он доступен для использования любой виртуальной машиной в подсетях, настроенных с помощью шлюза NAT. Выделение по запросу позволяет динамическим и дивергентным рабочим нагрузкам в подсетях использовать порты SNAT по мере необходимости. Пока доступны порты SNAT, потоки SNAT успешно выполняются.
Рисунок: исчерпание портов SNAT
Выбор и повторное использование порта SNAT шлюза NAT шлюза NAT
Шлюз NAT выбирает порт SNAT случайным образом из доступной инвентаризации портов, чтобы сделать новые исходящие подключения. Если шлюз NAT не находит доступные порты SNAT, он повторно использует порт SNAT. Один и тот же порт SNAT можно использовать для подключения к нескольким разным назначениям одновременно.
Порт SNAT можно повторно использовать для подключения к той же конечной точке назначения. До повторного использования порта шлюз NAT помещает таймер повторного использования порта 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 см. в разделе "Таймеры повторного использования портов".
Не зависимостей от конкретного способа назначения исходных портов в приведенных выше примерах. Выше приведены иллюстрации только основных понятий.