Настройка фильтров маршрутов для пиринга Майкрософт с помощью PowerShell

Фильтры маршрутов — это один из способ использовать целый ряд поддерживаемых служб через пиринг Майкрософт. Действия, описанные в этой статье, помогут настроить фильтры маршрутов для каналов ExpressRoute и управлять ими.

Службы Microsoft 365, такие как Exchange Online, SharePoint Online и Skype для бизнеса, а также общедоступные службы Azure, такие как служба хранилища и База данных SQL Azure, доступны через пиринг Майкрософт. Общедоступные службы Azure можно выбирать для каждого региона и нельзя определять для каждой общедоступной службы.

При настройке пиринга Майкрософт в канале ExpressRoute все префиксы, которые относятся к этим службам, объявляются через установленные сеансы BGP. Значение сообщества BGP подключается к каждому префиксу для идентификации службы, предлагаемой через него. Список значений сообщества BGP и служб, с которыми они сопоставляются, см. в разделе о поддержке сообществ BGP.

Подключение ко всем службам Azure и Microsoft 365 приводит к объявлению большого количества префиксов через BGP. Это значительно увеличивает размер таблиц маршрутов, которые обслуживают маршрутизаторы в вашей сети. Если вы планируете использовать только подмножество служб, предлагаемых через пиринг Майкрософт, размер таблиц маршрутизации можно уменьшить двумя способами. Вы можете:

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

  • Определять фильтры маршрутов и применять их к каналу ExpressRoute. Фильтр маршрутов — это новый ресурс, который позволяет выбрать список служб, которые вы собираетесь использовать через пиринг Майкрософт. Маршрутизаторы ExpressRoute отправляют только список префиксов, которые принадлежат службам, определяемым в фильтре маршрутов.

Diagram of a route filter applied to the ExpressRoute circuit to allow only certain prefixes to be broadcast to the on-premises network.

О фильтрах маршрута

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

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

Чтобы подключить фильтры маршрутов к службам Microsoft 365, у вас должно быть разрешение на использование этих служб через ExpressRoute. Если у вас нет такого разрешения, подключение фильтров маршрутов завершится сбоем. Дополнительные сведения о получении разрешения см. в статье Azure ExpressRoute для Microsoft 365.

Внимание

Пиринг Майкрософт для каналов ExpressRoute, которые были настроены до 1 августа 2017 г., позволяет объявлять все префиксы служб Microsoft Office, даже если не настроены фильтры маршрутов. Пиринг Майкрософт для каналов ExpressRoute, настроенных 1 августа 2017 г. или позднее, не будет объявлять префиксы, пока к каналу не будет присоединен фильтр маршрутов.

Необходимые компоненты

  • Изучите предварительные требования и рабочие процессы, прежде чем приступить к настройке.

  • Необходимо иметь активный канал ExpressRoute с подготовленным пирингом Майкрософт. Для выполнения этих задач можно использовать следующие инструкции:

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

Azure Cloud Shell

В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.

Начало работы с Azure Cloud Shell

Вариант Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. Screenshot that shows an example of Try It for Azure Cloud Shell.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. Button to launch Azure Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. Screenshot that shows the Cloud Shell button in the Azure portal

Чтобы использовать Azure Cloud Shell, выполните следующие действия:

  1. Запустите Cloud Shell.

  2. Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.

  3. Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.

  4. Нажмите клавишу ВВОД, чтобы запустить код или команду.

Войдите в учетную запись Azure и выберите подписку.

Если вы используете Azure Cloud Shell, вы автоматически войдете в учетную запись Azure после нажатия кнопки "Попробовать". Чтобы войти локально, откройте консоль PowerShell с повышенными привилегиями и выполните командлет для подключения.

Connect-AzAccount

Если у вас есть несколько подписок Azure, запросите их список.

Get-AzSubscription

укажите подписку, которую нужно использовать;

Select-AzSubscription -SubscriptionName "Name of subscription"

Получение списка префиксов и значений сообщества BGP

  1. Чтобы получить список значений сообщества BGP и префиксов, связанных со службами, которые доступны через пиринг Майкрософт, используйте следующий командлет:

    Get-AzBgpServiceCommunity
    
  2. Создайте список значений сообщества BGP, которые хотите использовать в фильтре маршрутов.

Создание фильтра маршрута и правила фильтрации

Фильтр маршрутов может иметь только одно правило, и правило должно быть типом Allow. С этим правилом может быть связан список значений сообщества BGP. Команда az network route-filter create позволяет создать только ресурс фильтра маршрутов. После создания ресурса нужно создать правило и подключить его к объекту фильтра маршрута.

  1. Чтобы создать ресурс фильтра маршрутов, выполните следующую команду:

    New-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup" -Location "West US"
    
  2. Чтобы создать правило фильтрации, выполните следующую команду:

    $rule = New-AzRouteFilterRuleConfig -Name "Allow-EXO-D365" -Access Allow -RouteFilterRuleType Community -CommunityList 12076:5010,12076:5040
    
  3. Чтобы добавить правило фильтрации в маршрут фильтра, выполните следующую команду:

    $routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
    $routefilter.Rules.Add($rule)
    Set-AzRouteFilter -RouteFilter $routefilter
    

Присоедините фильтр маршрута к цепи ExpressRoute

Чтобы подключить фильтр маршрутов к каналу ExpressRoute, выполните следующую команду, если вы установили только пиринг Майкрософт:

$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "MyResourceGroup"
$ckt.Peerings[0].RouteFilter = $routefilter 
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt

Стандартные задачи

Получение свойств фильтра маршрута

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

  1. Чтобы получить ресурс фильтра маршрута, выполните следующую команду:

    $routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
    
  2. Получите правила фильтра маршрута для ресурса фильтра маршрута, выполнив следующую команду:

    $routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
    $rule = $routefilter.Rules[0]
    

Обновление свойств фильтра маршрутов

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

$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$routefilter.rules[0].Communities = "12076:5030", "12076:5040"
Set-AzRouteFilter -RouteFilter $routefilter

Окончательное удаление фильтра маршрутов из канала ExpressRoute

Как только фильтр маршрутов отсоединяется от канала ExpressRoute, префиксы перестают объявляться через сеанс BGP. Фильтр маршрутов можно отсоединить от канала ExpressRoute с помощью следующей команды:

$ckt.Peerings[0].RouteFilter = $null
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt

Очистка ресурсов

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

Remove-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"

Next Steps

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