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

Узнайте, как 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 нет

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

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

  • Интернет. Направляет трафик, указанный префиксом адреса, в Интернет. Системный маршрут по умолчанию указывает префикс адреса 0.0.0.0/0. Если вы не переопределяете маршруты Azure по умолчанию, 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 Пиринговая связь между виртуальными сетями Все
Шлюз виртуальной сети Префиксы, объявленные в локальной среде через BGP или настроенные в шлюзе локальной сети Шлюз виртуальной сети Все
По умолчанию. Несколько VirtualNetworkServiceEndpoint. Только для подсети, для которой включена конечная точка службы
  • Пиринг виртуальной сети. При создании пиринга виртуальной сети между двумя виртуальными сетями система добавляет маршрут для каждого диапазона адресов в адресном пространстве каждой виртуальной сети, связанной с пирингом. См. дополнительные сведения о пиринге виртуальных сетей.

  • Шлюз виртуальной сети: если в виртуальную сеть включить шлюз виртуальной сети, добавляется один или несколько маршрутов со шлюзом виртуальной сети, указанным в качестве типа следующего прыжка. Источником также является шлюз виртуальной сети, так как он добавляет маршруты в подсеть. Если локальный сетевой шлюз обменивается маршрутами протокола BGP с шлюзом виртуальной сети, система добавляет маршрут для каждого маршрута. Эти маршруты распространяются из локального сетевого шлюза. Мы рекомендуем сводные сведения о локальных маршрутах в самый большой диапазон адресов, поэтому вы распространяете наименьшее количество маршрутов в шлюз виртуальной сети 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 выполняет NAT на общедоступный 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, в виртуальное устройство следующим образом:

$param = @{
    Name = 'StorageRoute'
    AddressPrefix = 'Storage'
    NextHopType = 'VirtualAppliance'
    NextHopIpAddress = '10.0.100.4'
}
New-AzRouteConfig @param

Та же команда для ИНТЕРФЕЙСА командной строки выглядит следующим образом:

az network route-table route create \
    --resource-group MyResourceGroup \
    --route-table-name MyRouteTable \
    --name StorageRoute \
    --address-prefix Storage \
    --next-hop-type VirtualAppliance \
    --next-hop-ip-address 10.0.100.4

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

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

Тип следующего прыжка Azure CLI и PowerShell (Resource Manager) Классический Azure CLI и PowerShell (классическая модель развертывания)
Шлюз виртуальной сети VirtualNetworkGateway VPNGateway
Виртуальная сеть VNetLocal VNETLocal (недоступно при использовании классического CLI в режиме управления услугами)
Интернет Интернет Интернет (недоступно при использовании классического CLI в режиме управления услугами)
Виртуальный модуль VirtualAppliance VirtualAppliance
нет нет 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/24 является более длинным префиксом, чем 10.0.0.0/16, даже если 10.0.0.5 попадает в оба префикса адреса. Azure направляет трафик, предназначенный для 10.0.1.5, к типу следующего прыжка, указанному в маршруте с префиксом адреса 10.0.0.0/16. Этот процесс происходит, так как префикс адреса 10.0.0.1.5 не включен в префикс адреса 10.0.0/24, что делает маршрут с префиксом адреса 10.0.0.0/16.

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

  1. определяемый пользователем маршрут;

  2. маршрут BGP;

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

Примечание.

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

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

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

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

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

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

Маршрут с префиксом адреса 0.0.0.0/0 предоставляет инструкции в Azure. 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, для которых не разрешены конечные точки службы, отправляется к типу следующего прыжка, указанному в маршруте. Если включить конечную точку службы для службы, Azure создает маршрут с префиксами адресов для службы. Трафик к службе не направляется к типу следующего прыжка в маршруте с префиксом адреса 0.0.0.0/0. Префиксы адресов для службы длиннее 0.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, которая соответствует предыдущим требованиям:

Diagram of network.

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

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

Подсеть 1

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

Идентификатор Оригинал State Префиксы адресов Тип следующего прыжка IP-адрес следующего прыжка Название определяемого пользователем маршрута
1 По умолчанию. Недопустимо 10.0.0.0/16 Виртуальная сеть
2 User Активно 10.0.0.0/16 Виртуальный модуль 10.0.100.4 В пределах виртуальной сети (VNet) 1
3 User Активно 10.0.0.0/24 Виртуальная сеть В пределах подсети 1
4 По умолчанию. Недопустимо 10.1.0.0/16 Пиринговая связь между виртуальными сетями
5 По умолчанию. Недопустимо 10.2.0.0/16 Пиринговая связь между виртуальными сетями
6 User Активно 10.1.0.0/16 нет К виртуальной сети 2 — 1 —прервать
7 User Активно 10.2.0.0/16 нет К виртуальной сети 2 — 2 —прервать
8 По умолчанию. Недопустимо 10.10.0.0/16 Шлюз виртуальной сети [X.X.X.X]
9 User Активно 10.10.0.0/16 Виртуальный модуль 10.0.100.4 К локальной среде
10 По умолчанию Активно [X.X.X.X] VirtualNetworkServiceEndpoint.
11 По умолчанию. Недопустимо 0.0.0.0/0 Интернет
12 User Активно 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 был связан с подсетью Subnet1 . Трафик, предназначенный для адресов между 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 и не попадает в префиксы адресов других маршрутов. При добавлении маршрутов в идентификаторы 6 и 7 Azure автоматически изменяет состояние "Активный " на "Недопустимый". Этот процесс обусловлен тем, что они имеют одинаковые префиксы, что и маршруты в идентификаторах 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. Azure удаляет трафик, предназначенный для адресов между 10.1.0.1-10.1.255.254 и 10.2.0.1-10.2.255.254, а не направляется в пиринговую виртуальную сеть, так как определяемые пользователем маршруты переопределяют маршруты по умолчанию. Эти маршруты не связаны с подсетью 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 на рисунке содержит следующие маршруты:

Оригинал State Префиксы адресов Тип следующего прыжка 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 нет

Таблица маршрутов для Подсети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.

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