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

Завершено

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

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

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

Маршруты по умолчанию

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

Источник

Префиксы адресов

Тип следующего прыжка

Значение по умолчанию

Уникальные для виртуальной сети

Виртуальная сеть

Значение по умолчанию

0.0.0.0/0

Интернет

По умолчанию.

10.0.0.0/8

нет

По умолчанию.

192.168.0.0/16

нет

По умолчанию.

100.64.0.0/10

нет

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

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

  • Интернет. Направляет трафик, указанный префиксом адреса, в Интернет. Системный маршрут по умолчанию указывает префикс адреса 0.0.0.0/0. 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:

Источник

Префиксы адресов

Тип следующего прыжка

Подсеть в виртуальной сети, в которую добавляется маршрут

По умолчанию.

Уникальные для виртуальной сети, например 10.1.0.0/16

Пиринговая связь между виртуальными сетями

Все

Шлюз виртуальной сети

Префиксы, объявленные в локальной среде через BGP или настроенные в шлюзе локальной сети

Шлюз виртуальной сети

Все

По умолчанию.

Несколько

VirtualNetworkServiceEndpoint.

Только для подсети, для которой включена конечная точка службы

  • Пиринг виртуальных сетей: при создании пиринга между двумя виртуальными сетями добавляется маршрут для каждого диапазона адресов в адресном пространстве каждой из этих виртуальных сетей.

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

    • Существует ограничение для количества маршрутов, которые можно распространить на шлюз виртуальной сети Azure, поэтому следует объединять локальные маршруты до максимально возможного диапазона адресов. Дополнительные сведения о количестве маршрутов, которые можно распространить, см. в разделе "Ограничения сети".

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

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

Пользовательские маршруты

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

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

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

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

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

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

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

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

Нет: укажите, когда следует прерывать трафик, предназначенный для префикса адреса, а не перенаправлять трафик в пункт назначения.

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

Интернет: укажите, когда вы хотите явно маршрутизировать трафик, предназначенный для префикса адреса в Интернет.

Настройка определяемых пользователем маршрутов

Ниже приведен пример, в котором у вас есть виртуальная сеть, включающая три подсети.

  • Подсети — интерфейсная, промежуточная, серверная. В подсети DMZ есть сетевое виртуальное устройство (NVA). Виртуальные сетевые модули — это виртуальные машины, которые предназначены для работы с сетевыми функциями, такими как оптимизация маршрутизации и брандмауэра.
  • Необходимо убедиться, что весь трафик из интерфейсной подсети проходит через NVA в серверную подсеть.

Схема таблицы маршрутизации схемы виртуальной сети.

Создание таблицы маршрутизации

Создать таблицу маршрутизации очень просто. Необходимо указать Имя, Подписку, Группу ресурсов и Расположение. Вы также решили использовать Распространение маршрутов шлюза виртуальной сети.

Снимок экрана: колонка таблицы маршрутов в портал Azure.

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

Создание пользовательского маршрута

В нашем примере:

  • Новый маршрут называется ToPrivateSubnet.
  • Частная подсеть — 10.0.1.0/24.
  • Маршрут использует виртуальный модуль. Обратите внимание на другие варианты Типа следующего прыжка: "Шлюз виртуальной сети", "Виртуальная сеть", "Интернет" и "Нет".
  • Виртуальный модуль находится по адресу 10.0.2.4.

Снимок экрана: страница маршрута. Выделен раскрывающийся список типа следующего прыжка. Выбран виртуальный модуль.

В сводке этот маршрут применяется ко всем префиксам адресов в 10.0.1.0/24 (частная подсеть). Трафик отправляется на виртуальный модуль с адресом 10.0.2.4.

Привязка таблицы маршрутизации

Последним шагом в нашем примере является привязка общедоступной подсети к новой таблице маршрутизации. С каждой подсетью может быть связана одна таблица маршрутов (или ноль).

Снимок экрана: привязка таблицы маршрутизации к виртуальной сети.

Примечание.

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

Примечание.

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

Защита виртуальной сети с помощью принудительного туннелирования

Оно позволяет перенаправлять или "принудительно направлять" весь Интернет-трафик обратно в локальное расположение через VPN типа "сеть — сеть" для проверки и аудита. Без настройки принудительного туннелирования интернет-трафик из виртуальных машин в Azure всегда поступает из инфраструктуры сети Azure непосредственно в Интернет, без возможности его проверки или аудита. Неавторизованный доступ в Интернет может привести к раскрытию информации или другим нарушениям безопасности. Принудительное туннелирование можно настроить с помощью Azure PowerShell. Его нельзя настроить с помощью портала Azure.

В следующем примере подсеть Frontend не использует принудительное туннелирование. Рабочие нагрузки в интерфейсной подсети могут продолжать принимать запросы клиентов непосредственно из Интернета и отвечать на них. Для подсетей среднего уровня и внутренних подсетей применяется принудительное туннелирование. Все исходящие подключения из этих двух подсетей к Интернету принудительно или перенаправляются обратно на локальный сайт через один из VPN-туннелей типа "сеть — сеть" (S2S).

Снимок экрана: принудительное туннелирование подсети.

Настройка принудительного туннелирования

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

  • Каждая подсеть виртуальной сети имеет встроенные системные таблицы маршрутизации. Системная таблица маршрутизации содержит три указанные ниже группы маршрутов.

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

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

    • Необходимо задать подключение для сайтов по умолчанию между распределенными локальными сайтами, связанными с виртуальной сетью.
    • Локальное VPN-устройство необходимо настроить для использования диапазона адресов 0.0.0.0/0 в качестве селекторов трафика.

Использование принудительного туннелирования позволяет ограничить и проверить доступ к Интернету с виртуальных машин и облачных служб в Azure.

Настройка сервера маршрутизации Azure

Сервер маршрутизации Azure упрощает динамическую маршрутизацию между виртуальными сетевыми модулями (NVA) и виртуальной сетью. Сервер маршрутизации Azure — это полностью управляемая служба, настроенная для обеспечения высокого уровня доступности.

Сервер маршрутизации Azure упрощает настройку и развертывание NVA, а также управление им в виртуальной сети.

  • Вам больше не нужно вручную обновлять таблицу маршрутизации в NVA при каждом обновлении адресов виртуальной сети.

  • Также нет необходимости вручную обновлять определяемые пользователем маршруты каждый раз, когда NVA объявляет новые маршруты или отзывает старые.

  • Можно установить пиринг между несколькими экземплярами NVA с сервером маршрутизации Azure.

  • Интерфейс между NVA и сервером маршрутизации Azure основан на общем стандартном протоколе. При условии, что NVA поддерживает BGP, вы можете использовать пиринг с сервером маршрутизации Azure.

  • Вы можете развернуть сервер маршрутизации Azure в любой новой или существующей виртуальной сети.

  • Узнайте, как развернуть Azure Route Server

Диагностика проблем с маршрутизацией

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

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

Просмотр эффективных маршрутов на портале Azure

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

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

  3. Выберите виртуальную машину в результатах поиска.

  4. В разделе Параметры выберите Сеть и перейдите к ресурсу сетевого интерфейса, выбрав его имя.

    Снимок экрана: сетевой адаптер портал Azure.

  5. В разделе Поддержка и устранение неполадок выберите Действующие маршруты. Действующие маршруты для сетевого интерфейса с именем myVMNic1 показаны на следующем изображении:

    Снимок экрана: портал Azure действующие маршруты.

Просмотр эффективных маршрутов с помощью Azure PowerShell

Действующие маршруты для сетевого интерфейса можно просмотреть с помощью команды Get-AzEffectiveRouteTable. Следующий пример кода извлекает действующие маршруты для сетевого интерфейса myVMNic1, который находится в группе ресурсов myResourceGroup.

Get-AzEffectiveRouteTable `

-NetworkInterfaceName myVMNic1 `

-ResourceGroupName myResourceGroup `

Решение проблемы с маршрутизацией

Можно выполнить следующие действия для решения проблемы маршрутизации:

  1. Добавление настраиваемого маршрута для переопределения маршрута по умолчанию. Узнайте, как добавить настраиваемый маршрут.
  2. Изменение или удаление настраиваемого маршрута, который вызывает маршрутизацию трафика в нежелательное расположение. Узнайте, как изменить или удалить настраиваемый маршрут.
  3. Убедитесь, что таблица маршрутов связана с нужной подсетью (которая содержит сетевой интерфейс). Узнайте, как связать таблицу маршрутов с подсетью.
  4. Убедитесь, что устройства, такие как VPN-шлюз Azure или виртуальные сетевые устройства, работают должным образом.

Выберите наиболее подходящий ответ на каждый вопрос.

Проверьте свои знания

1.

Какой тип маршрутов позволяет трафику переопределять маршруты, настроенные Azure?

2.

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