Маршрутизация трафика в виртуальной сети

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

Системные маршруты

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

По умолчанию

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

Источник Префиксы адресов Тип следующего прыжка
Значение по умолчанию Уникальные для виртуальной сети Виртуальная сеть
Значение по умолчанию 0.0.0.0/0 Интернет
Значение по умолчанию 10.0.0.0/8 Нет
Значение по умолчанию 172.16.0.0/12 Нет
Значение по умолчанию 192.168.0.0/16 Нет
Значение по умолчанию 100.64.0.0/10 None

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

  • Виртуальная сеть. Осуществляет маршрутизацию трафика между диапазонами адресов адресного пространства виртуальной сети. Azure создает маршрут с префиксом адреса, который соответствует каждому диапазону адресов, определенному в адресном пространстве виртуальной сети. Если в адресном пространстве определено несколько диапазонов адресов, Azure создает индивидуальный маршрут для каждого из них. Azure автоматически перенаправляет трафик между подсетями, используя маршруты, созданные для каждого из диапазонов адресов. Вам не нужно определять шлюзы, чтобы Azure направлял трафик между подсетями. Хотя виртуальная сеть содержит подсети, каждая из которых имеет определенный диапазон адресов, Azure не создает маршруты по умолчанию для каждого диапазона, так как все они находятся в пределах диапазона адресов адресного пространства виртуальной сети.

  • Интернет. Направляет трафик, указанный префиксом адреса, в Интернет. Системный маршрут по умолчанию указывает префикс адреса 0.0.0.0/0. Если вы не переопределяете маршруты по умолчанию, Azure направляет трафик по любому адресу, не указанному диапазоном адресов в виртуальной сети, в Интернет, за одним исключением. Если целевой адрес предназначен для одной из служб Azure, Azure направляет трафик непосредственно в службу через магистральную сеть Azure, а не в Интернет. Трафик между службами Azure не проходит через Интернет, независимо от того, в каком регионе Azure находится виртуальная сеть или в каком регионе развернут экземпляр службы Azure. Можно переопределить системный маршрут Azure по умолчанию, указывающий префикс адреса 0.0.0.0/0, с помощью настраиваемого маршрута.

  • Нет — Трафик, направляемый на тип следующего прыжка Нет, прерывается, а не направляется за пределы подсети. Azure автоматически создает маршруты по умолчанию для следующих префиксов адресов:

    • 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16: зарезервированы для частного использования в RFC 1918.
    • 100.64.0.0/10. Зарезервирован в RFC 6598.

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

Необязательные маршруты по умолчанию

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

Источник Префиксы адресов Тип следующего прыжка Подсеть в виртуальной сети, к которой добавлен маршрут
По умолчанию Уникальные для виртуальной сети, например: 10.1.0.0/16 Пиринговая связь между виртуальными сетями All
Шлюз виртуальной сети Префиксы, объявленные в локальной среде через BGP или настроенные в шлюзе локальной сети Шлюз виртуальной сети All
По умолчанию Несколько VirtualNetworkServiceEndpoint Только для подсети, для которой включена конечная точка службы
  • Пиринг виртуальных сетей. При создании пиринга между двумя виртуальными сетями добавляется маршрут для каждого диапазона адресов в адресном пространстве каждой из этих виртуальных сетей. См. дополнительные сведения о пиринге виртуальных сетей.

  • Шлюз виртуальной сети. Если в виртуальную сеть включить шлюз виртуальной сети, добавляется один или несколько маршрутов со шлюзом виртуальной сети, указанным в качестве типа следующего прыжка. Источником также является шлюз виртуальной сети, так как он добавляет маршруты в подсеть. Если локальный сетевой шлюз обменивается маршрутами протокола пограничного шлюза (BGP) со шлюзом виртуальной сети Azure, маршрут добавляется для каждого маршрута, распространяемого из локального сетевого шлюза. Рекомендуется суммировать локальные маршруты до самых больших диапазонов адресов, чтобы наименьшее количество маршрутов распространялись на шлюз виртуальной сети Azure. Существуют ограничения на количество маршрутов, которые вы можете распространять на шлюз виртуальной сети Azure. Дополнительные сведения см. в разделе Ограничения сети.

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

    Примечание

    Типы следующего прыжка Пиринг виртуальных сетей и VirtualNetworkServiceEndpoint добавляются только в таблицы маршрутов подсетей в виртуальных сетях, созданных с помощью модели развертывания Azure Resource Manager. Типы следующих прыжков не добавляются в таблицы маршрутов, которые связаны с подсетями виртуальных сетей, созданными в классической модели развертывания. См. дополнительные сведения о моделях развертывания Azure.

Настраиваемые маршруты

Создать настраиваемые маршруты можно путем создания определяемых пользователем маршрутов или путем обмена маршрутами протокола BGP между локальным сетевым шлюзом и шлюзом виртуальной сети Azure.

Определяемые пользователем маршруты

Вы можете создать настраиваемые (определяемые пользователем) статические маршруты в Azure, чтобы переопределить системные маршруты Azure по умолчанию или добавить дополнительные маршруты в таблицу маршрутов подсети. В Azure вы создаете таблицу маршрутов, которую можно не связывать или связать с несколькими подсетями виртуальной сети. С каждой подсетью может быть связана одна таблица маршрутов (или ноль). Сведения о максимальном количестве маршрутов, которые можно добавить в таблицу маршрутов, и о максимальном количестве таблиц маршрутов, определяемых пользователем, на подписку Azure см. в разделе Ограничения сети. Когда вы создаете таблицу маршрутизации и связываете ее с подсетью, маршруты из этой таблицы объединяются с маршрутами по умолчанию в подсети. В случае конфликта между назначениями маршрутов определяемые пользователем маршруты переопределяют маршруты по умолчанию.

При создании маршрута, определяемого пользователем, можно указать приведенные ниже типы следующего прыжка.

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

    • Частный IP-адрес сетевого интерфейса, подключенного к виртуальной машине. Для такого сетевого интерфейса, который перенаправляет сетевой трафик на адрес, отличный от своего собственного, требуется активировать параметр Azure Enable IP forwarding (Включить IP-пересылку). Параметр отключает проверку источника и назначения для сетевого интерфейса, выполняемую Azure. См. дополнительные сведения о способах включения IP-пересылки для сетевого интерфейса. Хотя параметр Включить IP-пересылку относится к Azure, вам также может потребоваться включить IP-пересылку в операционной системе виртуальной машины, чтобы устройство перенаправляло трафик между частными IP-адресами, назначенными сетевым интерфейсам Azure. Если устройство должно направлять трафик на общедоступный IP-адрес, ему нужно либо проксировать трафик, либо преобразовать методом NAT частный IP-адрес источника в собственный частный IP-адрес, который Azure затем сможет соответствующим образом преобразовать в общедоступный IP-адрес, прежде чем отправлять трафик в Интернет. Чтобы определить требуемые параметры на виртуальной машине, ознакомьтесь с документацией вашей операционной системы или сетевого приложения. См. дополнительные сведения об исходящих подключениях в Azure.

      Примечание

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

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

    • Частный IP-адрес внутренней подсистемы балансировки нагрузки Azure. Подсистема балансировки нагрузки часто используется как часть стратегии обеспечения высокой доступности виртуальных сетевых модулей.

    Вы можете определить маршрут с префиксом адреса 0.0.0.0/0 и типом следующего прыжка "Виртуальный модуль". Таким образом модуль будет проверять трафик и определять, следует ли пересылать или прерывать трафик. Если вы хотите создать определяемый пользователем маршрут, который содержит префикс адреса 0.0.0.0/0, ознакомьтесь со статьей Определяемые пользователем маршруты и IP-пересылка.

  • Шлюз виртуальной сети. Укажите, когда трафик, предназначенный для конкретных префиксов адресов, следует направлять в шлюз виртуальной сети. Шлюз виртуальной сети должен быть шлюзом VPN. Невозможно указать шлюз виртуальной сети типа ExpressRoute в определяемом пользователем маршруте, так как для ExpressRoute с настраиваемыми маршрутами необходимо использовать BGP. Указать шлюзы виртуальной сети, если установлены параллельные подключения VPN и ExpressRoute, невозможно. Вы можете определить маршрут, который направляет трафик, предназначенный для префикса адресов 0.0.0.0/0, в виртуальный сетевой шлюз на основе маршрутов. В локальной среде у вас может быть устройство, которое проверяет трафик и определяет, следует ли пересылать или прерывать трафик. Если вы хотите создать определяемый пользователем маршрут для префикса адреса 0.0.0.0/0, ознакомьтесь со статьей Определяемые пользователем маршруты и IP-пересылка. Вместо настройки определяемого пользователем маршрута для префикса адреса 0.0.0.0/0 вы можете объявить этот маршрут с помощью BGP, если вы включили BGP для виртуального сетевого шлюза VPN.

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

  • Виртуальная сеть. Укажите, когда следует переопределить маршрутизацию по умолчанию в виртуальной сети. Пример сценария создания маршрута с типом прыжка Виртуальная сеть см. в статье Определяемые пользователем маршруты и IP-пересылка.

  • Интернет. Укажите, требуется ли явно направлять трафик, предназначенный для префикса адреса, в Интернет или вы хотите, чтобы трафик, предназначенный для служб Azure с общедоступными IP-адресами, оставался в пределах магистральной сети Azure.

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

Теги служб для определяемых пользователем маршрутов

Теперь можно указать тег службы в качестве префикса адреса для определяемого пользователем маршрута вместо явного диапазона IP-адресов. Тег службы представляет группу префиксов IP-адресов из определенной службы Azure. Корпорация Майкрософт управляет префиксами адресов, входящих в тег службы, и автоматически обновляет этот тег при изменении адресов. Это сводит к минимуму сложность частых обновлений определяемых пользователем маршрутов и сокращает количество маршрутов, которые вам приходится создавать. В настоящее время в каждой таблице маршрутов можно создать не более 25 маршрутов с тегами службы. В этом выпуске также поддерживается использование тегов служб в сценариях маршрутизации для контейнеров.

Точное совпадение

При наличии точного совпадения префикса между маршрутом с явным префиксом IP-адреса и маршрутом с тегом службы предпочтение отдается маршруту с явным префиксом. Если несколько маршрутов с тегами службы имеют совпадающие префиксы IP-адресов, маршруты будут оцениваться в следующем порядке.

  1. Региональные теги (например, Storage.EastUS, AppService.AustraliaCentral).
  2. Теги верхнего уровня (например, Storage, AppService).
  3. Региональные теги AzureCloud (например, AzureCloud.canadacentral, AzureCloud.eastasia).
  4. Тег AzureCloud

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

New-AzRouteConfig -Name "StorageRoute" -AddressPrefix "Storage" -NextHopType "VirtualAppliance" -NextHopIpAddress "10.0.100.4"

Для CLI будет использоваться та же команда:

az network route-table route create -g MyResourceGroup --route-table-name MyRouteTable -n StorageRoute --address-prefix Storage --next-hop-type VirtualAppliance --next-hop-ip-address 10.0.100.4

Известные проблемы (апрель 2021 г.)

Если имеются маршруты BGP или настроена конечная точка службы в подсети, маршруты могут оцениваться с использованием неверного приоритета. Сейчас эта функция недоступна для виртуальных сетей с двумя стеками (IPv4 и IPv6). Разрабатывается исправление для этих сценариев

Типы следующего прыжка в инструментах Azure

Имя, отображаемое и указанное для типов следующего прыжка, отличается между порталом Azure и программами командной строки, а также в Azure Resource Manager и классических моделях развертывания. В следующей таблице перечислены имена, используемые для обозначения каждого типа следующего прыжка в разных инструментах и моделях развертывания:

Тип следующего прыжка Azure CLI и PowerShell (Resource Manager) Классический Azure CLI и PowerShell (классическая модель развертывания)
Шлюз виртуальной сети VirtualNetworkGateway VPNGateway
Виртуальная сеть VNetLocal VNETLocal (недоступно при использовании классического CLI в режиме управления услугами)
Интернет Интернет Интернет (недоступно при использовании классического CLI в режиме управления услугами)
Виртуальный модуль VirtualAppliance VirtualAppliance
None Нет NULL (недоступно при использовании классического CLI в режиме управления услугами)
Пиринг между виртуальными сетями Пиринговая связь между виртуальными сетями Неприменимо
Конечная точка службы для виртуальной сети VirtualNetworkServiceEndpoint Неприменимо

Протокол BGP

Локальный сетевой шлюз может обмениваться маршрутами со шлюзом виртуальной сети Azure с использованием протокола BGP. Использование BGP со шлюзом виртуальной сети Azure зависит от типа, выбранного вами при создании шлюза. В частности:

  • ExpressRoute. Вам нужно использовать протокол BGP, чтобы объявить локальные маршруты для маршрутизатора Microsoft Edge. Вы не можете создавать определяемые пользователем маршруты для принудительного перенаправления трафика в шлюз виртуальной сети ExpressRoute, если развертываете шлюз виртуальной сети типа ExpressRoute. Определяемые пользователем маршруты можно использовать для принудительного перенаправления трафика от Express Route на, например, виртуальные сетевые модули.
  • VPN. При необходимости можно использовать протокол BGP. Дополнительные сведения см. в статье Обзор использования BGP с VPN-шлюзами Azure.

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

Распространение маршрутов ExpressRoute и VPN-шлюзов можно отключить для подсети с помощью свойства в таблице маршрутов. Если распространение маршрутов отключено, маршруты не добавляются в таблицу маршрутов для всех подсетей при отключении распространения маршрутов в шлюзе виртуальной сети (как для статических маршрутов, так и для маршрутов BGP). Активировать VPN-подключения можно с помощью пользовательских маршрутов и VPN-шлюза с типом следующего прыжка. Распространение маршрутов BGP не должно быть отключено для GatewaySubnet. Шлюз не будет работать, если этот параметр отключен. Дополнительные сведения см. в разделе Создание, изменение и удаление таблицы маршрутов.

Как Azure выбирает маршрут

Когда исходящий трафик передается из подсети, Azure выбирает маршрут на основе целевого IP-адреса, используя самый длинный алгоритм сопоставления префикса. Например, таблица маршрутов содержит два маршрута: один маршрут указывает префикс адреса 10.0.0.0/24, а второй — префикс адреса 10.0.0.0/16. Azure направляет трафик, предназначенный для 10.0.0.5, к типу следующего прыжка, указанному в маршруте с префиксом адреса 10.0.0.0/24, так как этот маршрут длиннее, чем маршрут с префиксом адреса 10.0.0.0/16, хотя 10.0.0.5 содержится в обоих префиксах адресов. Azure направляет трафик, предназначенный для 10.0.1.5, к типу следующего прыжка, указанному в маршруте с префиксом адреса 10.0.0.0/16. Этот маршрут является самым длинным и самым подходящим, так как 10.0.1.5 не включен в префикс адреса 10.0.0.0/24.

Если несколько маршрутов содержат один и тот же префикс адреса, Azure выбирает тип маршрута на основе следующего приоритета:

  1. определяемый пользователем маршрут;
  2. маршрут BGP;
  3. Системные маршруты

Примечание

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

Например, таблица маршрутов содержит следующие маршруты:

Источник Префиксы адресов Тип следующего прыжка
Значение по умолчанию 0.0.0.0/0 Интернет
Пользователь 0.0.0.0/0 Шлюз виртуальной сети

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

Подробную таблицу маршрутизации с пояснениями маршрутов см. в статье Определяемые пользователем маршруты и IP-пересылка.

Префикс адреса 0.0.0.0/0

Маршрут с префиксом адреса 0.0.0.0/0 указывает Azure, как направлять трафик, предназначенный для IP-адреса, который не находится в префиксе адреса любого другого маршрута в таблице маршрутов подсети. При создании подсети Azure создает маршрут по умолчанию с префиксом адреса 0.0.0.0/0 и типом следующего прыжка Интернет. Если вы не переопределите этот маршрут, Azure направляет в Интернет весь трафик, предназначенный для IP-адресов, не включенных в префикс адреса любого другого маршрута. Исключением является лишь трафик к общедоступным IP-адресам служб Azure, который не перенаправляется в Интернет, а остается в магистральной сети Azure. Если вы переопределите этот маршрут с помощью настраиваемого маршрута, трафик, предназначенный для адресов, не входящих в префиксы адресов любого другого маршрута в таблице маршрутов, направляется на виртуальный сетевой модуль или шлюз виртуальной сети, в зависимости от того, что указано в настраиваемом маршруте.

Если вы переопределите префикс адреса 0.0.0.0/0, при условии, что исходящий трафик из подсети проходит через виртуальный сетевой шлюз или виртуальный модуль, в маршруте Azure по умолчанию происходят следующие изменения:

  • Azure отправляет весь трафик к типу следующего прыжка, указанному в маршруте, включая трафик, предназначенный для общедоступных IP-адресов служб Azure. Когда типом следующего прыжка для маршрута с префиксом адреса 0.0.0.0/0 является Интернет, трафик из подсети, предназначенный для общедоступных IP-адресов служб Azure, никогда не покидает магистральную сеть Azure, независимо от региона Azure, в котором находится виртуальная сеть или ресурс службы Azure. Вы можете создать определяемый пользователем маршрут или маршрут BGP с типом следующего прыжка Шлюз виртуальной сети или Виртуальный модуль. Тогда весь трафик, включая трафик, отправленный на общедоступные IP-адреса служб Azure, для которых не разрешены конечные точки службы, отправляется к типу следующего прыжка, указанному в маршруте. Если для службы включить конечную точку службы, трафик к этой службе не направляется по типу следующего прыжка в маршруте с префиксом адреса 0.0.0.0/0, потому что префиксы адресов для службы указаны в маршруте, который Azure создает при включении конечной точки службы, и они будут длиннее префикса 0.0.0.0/0.

  • Вы больше не сможете напрямую получать доступ к ресурсам в подсети из Интернета. Вы можете косвенно обращаться к ресурсам в подсети из Интернета, если входящий трафик проходит через устройство, указанное типом следующего прыжка для маршрута с префиксом адреса 0.0.0.0/0, прежде чем достичь ресурса в виртуальной сети. Если маршрут содержит указанные ниже значения для типа следующего прыжка:

    • Виртуальный модуль. Модуль должен:

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

Если виртуальная сеть подключена к шлюзу Azure VPN, не связывайте таблицу маршрутов с подсетью шлюза, включающей маршрут с назначением 0.0.0.0/0. Это может привести к неправильной работе шлюза. Дополнительные сведения см. в ответе на вопрос Почему на моем VPN-шлюзе открыты определенные порты? в статье VPN-шлюз: вопросы и ответы.

Дополнительные сведения об использовании шлюзов виртуальной сети между Интернетом и Azure см. в статье Сеть периметра между Azure и локальным центром обработки данных.

Пример маршрутизации

Чтобы продемонстрировать основные понятия в этой статье, в последующих разделах представлено следующее:

  • сценарий с описанием требований;
  • настраиваемые маршруты, необходимые для соответствия требованиям;
  • таблица маршрутов для одной подсети, которая содержит стандартные и настраиваемые маршруты, необходимые для соответствия требованиям.

Примечание

Этот пример не является рекомендуемым или лучшим типом реализации. Его предназначение — проиллюстрировать основные понятия в этой статье.

Требования

  1. Реализуйте две виртуальные сети в одном регионе Azure и настройте ресурсы для обмена данными между виртуальными сетями.

  2. Настройте в локальной сети безопасный обмен данными с обеими виртуальными сетями через Интернет с помощью туннеля VPN. Можно также использовать подключение ExpressRoute, но в этом примере используется VPN-подключение.

  3. Для одной подсети в одной виртуальной сети:

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

Реализация

На следующем рисунке показана реализация с помощью модели развертывания Azure Resource Manager, которая соответствует предыдущим требованиям:

Network diagram

Стрелки показывают поток трафика.

Таблицы маршрутов

Подсеть 1

Таблица маршрутов Subnet 1 (Подсеть 1) на рисунке содержит следующие маршруты:

ID Источник Состояние Префиксы адресов Тип следующего прыжка IP-адрес следующего прыжка Название определяемого пользователем маршрута
1 По умолчанию Недопустимо 10.0.0.0/16 Виртуальная сеть
2 Пользователь Активна 10.0.0.0/16 Виртуальный модуль 10.0.100.4 В пределах виртуальной сети (VNet) 1
3 Пользователь Активна 10.0.0.0/24 Виртуальная сеть В пределах подсети 1
4 По умолчанию Недопустимо 10.1.0.0/16 Пиринговая связь между виртуальными сетями
5 По умолчанию Недопустимо 10.2.0.0/16 Пиринговая связь между виртуальными сетями
6 Пользователь Активна 10.1.0.0/16 None К виртуальной сети 2 — 1 —прервать
7 Пользователь Активна 10.2.0.0/16 None К виртуальной сети 2 — 2 —прервать
8 По умолчанию Недопустимо 10.10.0.0/16 Шлюз виртуальной сети [X.X.X.X]
9 Пользователь Активна 10.10.0.0/16 Виртуальный модуль 10.0.100.4 К локальной среде
10 По умолчанию Активна [X.X.X.X] VirtualNetworkServiceEndpoint
11 По умолчанию Недопустимо 0.0.0.0/0 Интернет
12 Пользователь Активна 0.0.0.0/0 Виртуальный модуль 10.0.100.4 Виртуальный сетевой модуль по умолчанию

Пояснение для идентификатора каждого маршрута:

  • 1. Azure автоматически добавляет этот маршрут для всех подсетей в виртуальной сети 1, так как 10.0.0.0/16 — это единственный диапазон адресов, определенный в адресном пространстве для виртуальной сети. Если определяемый пользователем маршрут в маршруте 2 не создан, трафик, отправленный на любой адрес между 10.0.0.1 и 10.0.255.254, будет направляться в виртуальную сеть, так как префикс длиннее 0.0.0.0/0 и не находится внутри префиксов адресов любого из других маршрутов. В Azure было автоматически изменено состояние с Активно на Недопустимо, когда был добавлен определяемый пользователем маршрут 2, так как он имеет тот же префикс, что и маршрут по умолчанию, а определяемые пользователем маршруты переопределяют маршруты по умолчанию. Состояние этого маршрута по-прежнему имеет значение Активно для подсети 2, потому что таблица маршрутов, в которой находится определяемый пользователем маршрут 2, не связана с подсетью 2.
  • 2. Этот маршрут был добавлен в Azure, когда определяемый пользователем маршрут для префикса адреса 10.0.0.0/16 был связан с подсетью 1 в виртуальной сети 1. Определяемый пользователем маршрут указывает 10.0.100.4 в качестве IP-адреса виртуального модуля, так как это частный IP-адрес, назначенный виртуальной машине виртуального модуля. Таблица маршрутов, в которой существует этот маршрут, не связана с подсетью 2 и поэтому не отображается в таблице маршрутов подсети 2. Этот маршрут переопределяет маршрут по умолчанию для префикса 10.0.0.0/16 (маршрут 1), который автоматически направляет трафик, адресованный 10.0.0.1 и 10.0.255.254 в виртуальной сети, с помощью типа следующего прыжка "Виртуальная сеть". Этот маршрут существует в соответствии с требованием 3, чтобы принудительно направить весь исходящий трафик через виртуальный модуль.
  • ID3. Этот маршрут был добавлен в Azure, когда определяемый пользователем маршрут для префикса адреса 10.0.0.0/24 был связан с подсетью 1. Трафик, предназначенный для адресов между 10.0.0.1 и 10.0.0.254, остается в подсети, а не направляется к виртуальному модулю, указанному в предыдущем правиле (маршрут 2), так как он имеет более длинный префикс, чем маршрут 2. Этот маршрут не связан с подсетью 2 и поэтому не отображается в таблице маршрутов подсети 2. Этот маршрут эффективно переопределяет маршрут 2 для трафика в подсети 1. Этот маршрут существует в соответствии с требованием 3.
  • ID4. Служба Azure автоматически добавила маршруты 4 и 5 для всех подсетей в виртуальной сети 1, когда для этой виртуальной сети был настроен пиринг с виртуальной сетью 2. В виртуальной сети 2 есть два диапазона адресов: 10.1.0.0/16 и 10.2.0.0/16, поэтому служба Azure добавила маршрут для каждого диапазона. Если определяемые пользователем маршруты в маршрутах 6 и 7 не созданы, трафик, отправленный на любой адрес между 10.1.0.1-10.1.255.254 и 10.2.0.1-10.2.255.254, будет направляться в пиринговую виртуальную сеть, так как префикс длиннее, чем 0.0.0.0/0, и не находится внутри префиксов адресов любого из других маршрутов. В Azure было автоматически изменено состояние с Активно на Недопустимо, когда были добавлены маршруты 6 и 7, так как они имеют те же префиксы, что и маршруты 4 и 5, а определяемые пользователем маршруты переопределяют маршруты по умолчанию. Состояние маршрутов с идентификаторами 4 и 5 по-прежнему имеет значение Активно для подсети 2, так как таблица маршрутов, в которой находятся определяемые пользователем маршруты с идентификаторами 6 и 7, не связана с подсетью 2. Пиринг виртуальных сетей был создан в соответствии с требованием 1.
  • 5. То же касается и маршрута 4.
  • 6. Служба Azure добавила этот маршрут и маршрут 7, когда определяемые пользователем маршруты для префиксов адресов 10.1.0.0/16 и 10.2.0.0/16 были связаны с подсетью 1. Трафик, предназначенный для адресов между 10.1.0.1-10.1.255.254 и 10.2.0.1-10.2.255.254, прерывается Azure, а не направляется в пиринговую виртуальную сеть, так как определяемые пользователем маршруты переопределяют маршруты по умолчанию. Эти маршруты не связаны с подсетью 2 и поэтому не отображаются в таблице маршрутов подсети 2. Эти маршруты переопределяют маршруты 4 и 5 трафика, выходящего из подсети 1. Маршруты 6 и 7 существует в соответствии с требованием 3, чтобы прервать трафик, предназначенный для другой виртуальной сети.
  • 7. То же касается и маршрута 6.
  • 8. Azure автоматически добавляет этот маршрут для всех подсетей в виртуальной сети 1 при создании шлюза виртуальной сети типа VPN. Azure добавляет общедоступный IP-адрес шлюза виртуальной сети в таблицу маршрутов. Трафик, отправленный на любой адрес между 10.10.0.1 и 10.10.255.254, направляется в шлюз виртуальной сети. Префикс длиннее, чем 0.0.0.0/0, и не находится внутри префиксов адресов других маршрутов. Шлюз виртуальной сети был создан в соответствии с требованием 2.
  • 9. Этот маршрут был добавлен в Azure, когда определяемый пользователем маршрут для префикса адреса 10.10.0.0/16 был добавлен в таблицу маршрутов, связанную с подсетью 1. Этот маршрут переопределяет маршрут 8. Маршрут отправляет весь трафик, предназначенный для локальной сети, в виртуальный сетевой модуль для проверки вместо маршрутизации трафика локально. Этот маршрут был создан в соответствии с требованием 3.
  • 10. Azure автоматически добавляет этот маршрут в подсеть, когда для нее настраивается конечная точка службы для службы Azure. Azure направляет трафик из подсети на общедоступный IP-адрес службы через сеть инфраструктуры Azure. Префикс длиннее, чем 0.0.0.0/0, и не находится внутри префиксов адресов других маршрутов. Конечная точка службы была создана в соответствии с требованием 3, чтобы направить трафик, предназначенный для хранилища Azure, непосредственно в хранилище.
  • 11. Служба Azure автоматически добавила этот маршрут в таблицу маршрутов всех подсетей в виртуальной сети 1 и виртуальной сети 2. Префикс адреса 0.0.0.0/0 является наиболее коротким. Любой трафик, отправленный адресам с более длинными префиксами, направляется согласно другим маршрутам. По умолчанию Azure направляет весь трафик, предназначенный для адресов, отличных от указанных для одного из других маршрутов, в Интернет. Azure автоматически изменяет состояние с Активно на Недоступно для подсети 1, когда определяемый пользователем маршрут для префикса адреса 0.0.0.0/0 (12) связывается с подсетью. Состояние этого маршрута по-прежнему имеет состояние Active для всех других подсетей в обеих виртуальных сетях, поскольку маршрут не связан ни с какими другими подсетями в любых виртуальных сетях.
  • 12. Этот маршрут был добавлен в Azure, когда определяемый пользователем маршрут для префикса адреса 0.0.0.0/0 был связан с подсетью 1. Определяемый пользователем маршрут указывает 10.0.100.4 в качестве IP-адреса виртуального модуля. Этот маршрут не связан с подсетью 2 и поэтому не отображается в таблице маршрутов подсети 2. Весь трафик для любых адресов, не включенных в префиксы адресов других маршрутов, отправляется на виртуальный модуль. Добавление этого маршрута меняет состояние маршрута по умолчанию для префикса адреса 0.0.0.0/0 (11) с Активно на Недоступно для подсети 1, потому что определяемый пользователем маршрут переопределяет маршрут по умолчанию. Этот маршрут существует для выполнения третьего требования.

Подсеть 2

Таблица маршрутов подсети 2 на рисунке содержит следующие маршруты:

Источник Состояние Префиксы адресов Тип следующего прыжка IP-адрес следующего прыжка
По умолчанию Активна 10.0.0.0/16 Виртуальная сеть
По умолчанию Активна 10.1.0.0/16 Пиринговая связь между виртуальными сетями
По умолчанию Активна 10.2.0.0/16 Пиринговая связь между виртуальными сетями
По умолчанию Активна 10.10.0.0/16 Шлюз виртуальной сети [X.X.X.X]
По умолчанию Активна 0.0.0.0/0 Интернет
По умолчанию Активна 10.0.0.0/8 Нет
По умолчанию Активна 100.64.0.0/10 Нет
По умолчанию Активна 192.168.0.0/16 None

Таблица маршрутов для подсети 2 содержит все созданные по умолчанию маршруты Azure и необязательные маршруты пиринговой виртуальной сети и шлюза виртуальной сети. Azure добавляет дополнительные маршруты во все подсети в виртуальной сети, когда шлюз и пиринг добавляются в виртуальную сеть. В Azure были удалены маршруты для префиксов адресов 10.0.0.0/8, 192.168.0.0/16 и 100.64.0.0/10 из таблицы маршрутов подсети 1, когда определяемый пользователем маршрут для префикса адреса 0.0.0.0/0 был добавлен в подсеть 1.

Дальнейшие действия