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


Сведения о NAT в VPN-шлюзе Azure

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

  • подключение нескольких сетей с перекрывающимися IP-адресами;
  • Подключение к Интернету из сетей с частными IP-адресами (RFC1918) для выхода в глобальную сеть
  • подключение сетей IPv6 к сетям IPv4 (NAT64).

Внимание

Поддержка NAT в VPN-шлюзе Azure позволяет подключать локальные сети или филиалы к виртуальной сети Azure с пересекающимися IP-адресами. Выход в Интернет и NAT64 НЕ поддерживаются.

Перекрывающиеся адресные пространства

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

Типы NAT: статическое и динамическое

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

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

  • Динамическое NAT — здесь IP-адрес может быть преобразован в разные целевые IP-адреса с учетом их текущей доступности или с разными комбинациями IP-адреса и порта TCP или UDP. Вариант с преобразованием сети и портов называется NAPT, преобразование адресов и портов сети. Динамические правила приведут к состояниям сопоставления переводов в зависимости от потоков трафика в любой определенный момент времени.

Примечание.

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

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

Внимание

  • NAT поддерживается в следующих номерах SKU: VpnGw2~5, VpnGw2AZ~5AZ.
  • NAT поддерживается только для межсетевых подключений IPsec. Подключения "виртуальная сеть — виртуальная сеть" или "точка — сеть" не поддерживаются.
  • Каждое правило динамического NAT может быть назначено одному соединению.

Режимы NAT: входящий и исходящий трафик

Каждое правило NAT определяет соответствие адресов или тип преобразования для соответствующего сетевого адресного пространства.

  • Вход: правило IngressSNAT сопоставляет адресное пространство локальной сети с переведённым адресным пространством, чтобы избежать перекрытия адресов.

  • Исходящий трафик: правило EgressSNAT сопоставляет диапазон адресов виртуальной сети Azure с другим переведённым диапазоном адресов.

Для каждого правила NAT следующие два поля задают диапазоны адресов "до преобразования" и "после преобразования".

  • Внутренние сопоставления: адресное пространство перед трансляцией. Для правила входящего трафика это поле содержит исходный диапазон адресов в локальной сети. Для правила исходящего трафика это исходный диапазон адресов VNet.

  • Внешние сопоставления: адресное пространство после преобразования для локальных сетей (входа) или виртуальной сети (выхода). Для разных сетей, подключенных к VPN-шлюзу Azure, диапазоны адресов для всех внешних сопоставлений не могут перекрываться ни друг с другом, ни с другими сетями, подключенными без использования NAT.

NAT и маршрутизация

После того как правило NAT определено для подключения, эффективное адресное пространство для этого подключения изменится в соответствии с правилом. Если в VPN-шлюзе Azure настроен протокол BGP, выберите вариант "Включить преобразование маршрутов BGP" для автоматического преобразования маршрутов, полученных и объявленных на подключениях с правилами NAT:

  • Полученные маршруты: Префиксы назначения маршрутов, полученных через подключение с правилами IngressSNAT, будут преобразовываться из префиксов внутреннего сопоставления (до-NAT) в префиксы внешнего сопоставления (после-NAT) этих правил.

  • Объявляемые маршруты. VPN-шлюз Azure будет объявлять префиксы внешнего сопоставления ("после преобразования") из правил EgressSNAT для диапазона адресов виртуальной сети, а также полученные от других подключений маршруты, у которых префиксы адресов совпадают с префиксами внешнего сопоставления ("после преобразования").

  • Рекомендации по IP-адресам одноранговых узлов BGP в локальной сети с использованием NAT:

    • Адрес APIPA (169.254.0.1 – 169.254.255.254): NAT не поддерживается для адресов APIPA BGP.
    • IP-адрес, не относящийся к APIPA: исключите IP-адреса BGP-пиров из диапазона NAT.

Примечание.

Полученные маршруты от подключений без настроенных правил IngressSNAT преобразовываться не будут. Объявляемые маршруты виртуальной сети для подключений без настроенных правил EgressSNAT также не будут преобразовываться.

Пример NAT

Следующая схема демонстрирует пример конфигурации NAT для VPN-шлюза Azure.

Схема с конфигурацией и правилами NAT.

На этой схеме представлены виртуальная сеть Azure и две локальные сети, где все сети используют диапазон адресов 10.0.1.0/24. Чтобы подключить эти две сети к виртуальной сети Azure и VPN-шлюзу, создайте следующие правила:

  • Правило IngressSNAT 1. Это правило преобразует локальное адресное пространство 10.0.1.0/24 192.168.2.0/24.

  • Правило IngressSNAT 2. Это правило преобразует локальное адресное пространство 10.0.1.0/24 на 192.168.3.0/24.

  • Правило EgresSNAT 1. Это правило преобразует адресное пространство виртуальной сети 10.0.1.0/24 на 192.168.1.0/24.

На этой схеме каждый ресурс подключения использует следующие правила.

  • Подключение 1 (VNet-Филиал1):

    • Правило 1 IngressSNAT
    • Правило 1 EgressSNAT
  • Подключение 2 (VNet-Филиал2)

    • правило IngressSNAT 2;
    • Правило 1 EgressSNAT

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

Сеть Исходная Переведенный текст
Виртуальная сеть 10.0.1.0/24 192.168.1.0/24
Ветвь 1 10.0.1.0/24 192.168.2.0/24
Филиал 2 10.0.1.0/24 192.168.3.0/24

На следующей схеме показан IP-пакет из Ветви 1 в виртуальную сеть до и после перевода NAT:

Диаграмма, показывающая до и после преобразования NAT.

Внимание

Одно правило SNAT определяет преобразование для обоих направлений в конкретной сети.

  • Правило IngressSNAT определяет преобразование исходных IP-адресов, поступающих в VPN-шлюз Azure из локальной сети. Оно также обрабатывает преобразование целевых IP-адресов, которые выходят из виртуальной сети в одну и ту же локальную сеть.
  • Правило EgressSNAT определяет преобразование исходных IP-адресов, выходящих из VPN-шлюза Azure в локальные сети. Оно также обрабатывает преобразование целевых IP-адресов для пакетов, поступающих в виртуальную сеть через подключения с настроенным правилом EgressSNAT.
  • Ни в одном из этих случаев правила DNAT не требуются.

Конфигурация NAT

Чтобы реализовать конфигурацию NAT, показанную в предыдущем разделе, сначала создайте правила NAT в VPN-шлюзе Azure, а затем создайте подключения с соответствующими правилами NAT. Процесс настройки NAT для локальных подключений описан в статье Настройка NAT в VPN-шлюзах Azure.

Рекомендации и ограничения для NAT

Внимание

Для NAT действует несколько ограничений.

  • NAT поддерживается в следующих номерах SKU: VpnGw2~5, VpnGw2AZ~5AZ.
  • NAT поддерживается только для распределенных подключений IPsec/IKE. Подключения "виртуальная сеть — виртуальная сеть" или "точка — сеть" не поддерживаются.
  • Правила NAT не поддерживаются в подключениях с использованием селекторов трафика, основанных на политике, и политически-ориентированными VPN. Правила NAT поддерживаются только на VPN на основе маршрутов.
  • Максимально поддерживаемый размер подсети внешнего сопоставления для динамического NAT составляет /26.
  • Сопоставления портов можно настроить только для типов статического NAT. Динамические сценарии NAT неприменимы для сопоставлений портов.
  • Сопоставления портов не поддерживают диапазоны на данный момент. Необходимо ввести отдельный порт.
  • Сопоставления портов можно использовать для протоколов TCP и UDP.

Вопросы о NAT и ответы на них

Поддерживает ли NAT все SKU VPN-шлюзов Azure?

NAT поддерживается с VpnGw2 по VpnGw25 и с VpnGw2AZ по VpnGw5AZ.

Можно ли использовать NAT при подключении между виртуальными сетями или P2S?

Сколько правил NAT можно использовать на VPN-шлюзе?

Вы можете создать до 100 правил NAT (входящего трафика и правил исходящего трафика) в VPN-шлюзе.

Можно ли использовать косую черту (/) в имени правила NAT?

№ Вы получите сообщение об ошибке.

Применяется ли NAT ко всем подключениям на VPN-шлюзе?

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

Какие типы NAT поддерживают VPN-шлюзы?

VPN-шлюзы поддерживают только статический 1:1 NAT и динамический NAT. Они не поддерживают NAT64.

Работает ли NAT на VPN-шлюзах «активный — активный»?

Да. NAT работает как в режиме «активный-активный», так и в режиме «активный-резервный» на VPN-шлюзах. Каждое правило NAT применяется к одному экземпляру VPN-шлюза. В шлюзах active-active создайте отдельное правило NAT для каждого экземпляра шлюза через поле ID конфигурации IP.

Работает ли NAT с подключениями BGP?

Да, можно использовать BGP с NAT. Ниже приведены некоторые важные сведения.

  • Чтобы убедиться, что изученные и рекламируемые маршруты преобразуются в префиксы адресов после NAT (внешние сопоставления) на основе правил NAT, связанных с подключениями, выберите Включить преобразование маршрутов BGP на странице конфигурации для правил NAT. Локальные маршрутизаторы BGP должны объявлять точные префиксы, как определено в правилах IngressSNAT .

  • Если локальный VPN-маршрутизатор использует обычный, не APIPA адрес и конфликтует с адресным пространством виртуальной сети или другими локальными сетевыми пространствами, убедитесь, что правило IngressSNAT преобразует IP-адрес BGP-пиринга в уникальный, не пересекающийся адрес. Поместите адрес после NAT в поле IP-адреса однорангового ip-адреса BGP шлюза локальной сети.

  • NAT не поддерживается с адресами APIPA BGP.

Нужно ли создавать правила DNAT, соответствующие правилу SNAT?

№ Правило преобразования одного исходного сетевого адреса (SNAT) определяет преобразование обоих направлений конкретной сети:

  • Правило IngressSNAT определяет преобразование исходных IP-адресов, поступающих в VPN-шлюз из локальной сети. Он также обрабатывает перевод конечных IP-адресов, покидающих виртуальную сеть в ту же локальную сеть.

  • Правило EgressSNAT определяет преобразование исходных IP-адресов виртуальной сети, проходящих через VPN-шлюз в локальные сети. Он также обрабатывает преобразование конечных IP-адресов для пакетов, поступающих в виртуальную сеть, через подключения, имеющие правило EgressSNAT .

В любом случае вам не нужны правила преобразования сетевых адресов назначения (DNAT).

Что делать, если адресное пространство для виртуальной сети или шлюза локальных сетей имеет два или более префикса? Можно ли применить NAT ко всем из них или только подмножество?

Необходимо создать одно правило NAT для каждого префикса, так как каждое правило NAT может включать только один префикс адреса для NAT. Например, если адресное пространство для шлюза локальной сети состоит из 10.0.1.0/24 и 10.0.2.0/25, можно создать два правила:

  • Правило IngressSNAT 1: сопоставление 10.0.1.0/24 с 192.168.1.0/24.
  • Правило IngressSNAT 2: сопоставление 10.0.2.0/25 с 192.168.2.0/25.

Эти два правила должны соответствовать длинам префиксов соответствующих адресов. Те же правила применяются к правилам EgressSNAT для адресного пространства виртуальной сети.

Внимание

Если вы привязываете только одно правило к предыдущей связи, другое адресное пространство не будет преобразовано.

Какие диапазоны IP-адресов можно использовать для внешнего сопоставления?

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

Можно ли использовать разные правила EgresSNAT для преобразования адресного пространства виртуальной сети в разные префиксы для локальных сетей?

Да. Можно создать несколько правил EgresSNAT для одного адресного пространства виртуальной сети, а затем применить правила EgressSNAT к разным подключениям.

Можно ли использовать одно правило IngressSNAT для разных подключений?

Да. Обычно используется то же правило IngressSNAT , если подключения предназначены для одной локальной сети, чтобы обеспечить избыточность. Нельзя использовать одно правило входящего трафика, если подключения предназначены для разных локальных сетей.

Требуются ли правила входящего трафика и исходящего трафика для подключения NAT?

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

Что выбрать в качестве идентификатора IP-конфигурации?

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

Следующие шаги

Процесс настройки NAT для локальных подключений описан в статье Настройка NAT в VPN-шлюзах Azure.