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

В этой статье содержаться общие сведения о поддержке протокола BGP VPN-шлюзами Azure.

Стандартный протокол маршрутизации BGP обычно используется в Интернете для обмена данными о маршрутизации и доступности между двумя или несколькими сетями. При использовании в контексте виртуальных сетей Azure BGP позволяет VPN-шлюзам Azure и локальным VPN-устройствам, называемым одноранговые узлы BGP или соседи, обмениваться "маршрутами", которые информируют оба шлюза о доступности и доступности этих префиксов для прохождения через задействованные шлюзы или маршрутизаторы. Также BGP позволяет передавать трафик транзитом через несколько сетей. Для этого шлюз BGP распространяет на все известные ему узлы BGP информацию о маршрутах, полученную от остальных узлов BGP.

Почему именно BGP?

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

Преимущества и возможности протокола BGP:

Поддержка автоматического и гибкого обновления префиксов

Если используется протокол BGP, достаточно объявить минимальный префикс для определенного узла BGP через VPN-туннель IPsec S2S. Это может быть даже небольшой префикс узла (/32) для IP-адреса узла BGP на локальном VPN-устройстве. Вы можете выбирать, какие из локальных префиксов будут объявлены в Azure, чтобы виртуальная сеть Azure получила к ним доступ.

Также можно объявлять более крупные префиксы, в том числе некоторые префиксы адресов виртуальной сети, например большое пространство частных IP-адресов (10.0.0.0/8 и т. д.). Обратите внимание, что эти префиксы не должны совпадать с префиксами виртуальной сети. Маршруты, идентичные префиксам виртуальной сети, будут отклонены.

Поддержка нескольких туннелей между виртуальной сетью и локальным сайтом с автоматической отработкой отказа на основе BGP

Вы можете создавать несколько подключений между виртуальной сетью Azure и локальными VPN-устройствами в одном расположении. Это позволяет использовать между двумя сетями несколько туннелей (путей) в режиме "активный — активный". Если один из туннелей отключится, BGP отзовет соответствующие маршруты и трафик автоматически переместится в действующие туннели.

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

Несколько активных путей

Поддержка транзитной маршрутизации между локальными сетями и несколькими виртуальными сетями Azure

BGP позволяет нескольким шлюзам получать и распространять префиксы из разных сетей, подключенных к ним напрямую или опосредованно. Благодаря этому возможна транзитная маршрутизация через VPN-шлюзы Azure между локальными сайтами или несколькими виртуальными сетями Azure.

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

Многоскачковый транзит

Часто задаваемые вопросы о BGP

VPN-шлюзы Azure поддерживают BGP для всех классов SKU?

Протокол BGP поддерживается для всех SKU VPN-шлюза Azure, за исключением SKU уровня "Базовый".

Можно ли использовать BGP с VPN-шлюзами на основе Политики Azure?

Нет, BGP поддерживает только VPN-шлюзы с управлением на основе маршрута.

Какие номера ASN можно использовать?

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

Следующие номера ASN зарезервированы для Azure и IANA.

  • Номера ASN, зарезервированные для Azure:

    • общедоступные ASN — 8074, 8075, 12076;
    • частные ASN — 65515, 65517, 65518, 65519, 65520.
  • Номера ASN, зарезервированные для IANA:

    • 23456, 64496-64511, 65535-65551 и 429496729.

При подключении к VPN-шлюзам Azure эти номера ASN нельзя указывать для локальных VPN-устройств.

Можно ли использовать 32-разрядный (4-байтовый) номер ASN?

Да, VPN-шлюз теперь поддерживает 32-разрядный (4-байтовый) номер ASN. Чтобы выполнить настройку с помощью ASN в десятичном формате, используйте PowerShell, Azure CLI или пакет Azure SDK.

Какие частные ASN можно использовать?

Доступные диапазоны частных ASN:

  • 64512–65514 и 65521–65534

Эти ASN не зарезервированы для использования IANA или Azure, поэтому их можно назначить VPN-шлюзу Azure.

Какой адрес VPN-шлюз использует в качестве IP-адреса узла BGP?

По умолчанию VPN-шлюз выделяет из диапазона GatewaySubnet один IP-адрес для VPN-шлюзов в режиме "активный — резервный" или два IP-адреса для VPN-шлюзов в режиме "активный — активный". Эти адреса выделяются автоматически при создании VPN-шлюза. Вы можете получить фактический выделенный IP-адрес BGP с помощью PowerShell или на портале Azure. В PowerShell используйте Get-AzVirtualNetworkGateway и найдите свойство bgpPeeringAddress. На портале Azure на странице Конфигурация шлюза просмотрите свойство Настройка BGP ASN.

Если локальные маршрутизаторы VPN используют IP-адреса APIPA (169.254.x.x) в качестве IP-адресов BGP, необходимо указать один или более IP-адресов BGP APIPA Azure на VPN-шлюзе Azure. VPN-шлюз Azure выберет адреса APIPA для использования с локальным узлом BGP APIPA, указанным в шлюзе локальной сети, или частным IP-адресом для локального узла BGP, не связанного с APIPA. См. статью Настройка BGP на VPN-шлюзах Azure.

Каковы требования к IP-адресам узла BGP на VPN-устройстве?

Локальный узел BGP не должен иметь общедоступный IP-адрес VPN-устройства или входить в диапазон IP-адресов виртуальной сети VPN-шлюза. Используйте в качестве IP-адреса узла BGP другой IP-адрес VPN-устройства. Это может быть адрес, назначенный интерфейсу внутреннего замыкания на устройстве (обычный IP-адрес или адрес APIPA). Если устройство использует для BGP адрес APIPA, необходимо указать один или несколько IP-адресов BGP APIPA на VPN-шлюзе Azure, как описано в статье Настройка BGP. Укажите эти адреса на локальном сетевом шлюзе, который представляет это расположение.

Что нужно указать в качестве префикса адреса локального сетевого шлюза, если используется BGP?

Важно!

Это изменение из задокументированного ранее требования. При использовании BGP для подключения следует оставить поле Адресное пространство пустым для соответствующего ресурса шлюза локальной сети. VPN-шлюз Azure добавит маршрут узла в IP-адрес локального узла BGP через туннель IPsec. Не добавляйте маршрут /32 в поле Диапазон адресов. Он является избыточным. Если вы используете адрес APIPA в качестве IP-адреса BGP VPN-устройства, его нельзя добавлять в это поле. Другие префиксы будут добавлены в поле Диапазон адресов как статические маршруты на VPN-шлюзе Azure, наряду с маршрутами, полученными через BGP.

Можно ли использовать один номер ASN одновременно для локальных VPN-сетей и виртуальных сетей Azure?

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

Какие префиксы адресов будут объявлять для меня VPN-шлюзы Azure?

VPN-шлюз объявляет следующие маршруты для локальных устройств BGP:

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

Сколько префиксов можно объявлять VPN-шлюзу Azure?

VPN-шлюз Azure поддерживает до 4000 префиксов. Если количество префиксов превысит лимит, сеанс BGP будет сброшен.

Можно ли объявить маршрут по умолчанию (0.0.0.0/0) к VPN-шлюзам Azure?

Да. Обратите внимание, что в результате весь исходящий трафик виртуальной сети будет направлен на локальный сайт. Кроме того, виртуальные машины в виртуальной сети не смогут принимать общедоступный трафик из Интернета напрямую, например RDP или SSH из Интернета на виртуальные машины.

Можно ли объявить точно такие же префиксы, как в моей виртуальной сети?

Нет. Azure будет блокировать или фильтровать объявление таких же префиксов, как префиксы адреса виртуальной сети. Тем нее менее вы можете объявить префикс, который представляет собой супермножество адресов внутри виртуальной сети.

Например, если ваша виртуальная сеть использует адресное пространство 10.0.0.0/16, вы можете объявить 10.0.0.0/8. При этом нельзя объявлять 10.0.0.0/16 или 10.0.0.0/24.

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

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

Можно ли сочетать подключения с BGP и подключения без BGP на VPN-шлюзах Azure?

Да, вы можете использовать подключения с BGP и без BGP на одном VPN-шлюзе Azure.

Поддерживает ли VPN-шлюз Azure транзитную маршрутизацию BGP?

Да, транзитная маршрутизация BGP поддерживается, но с одним исключением: VPN-шлюзы Azure не будут объявлять маршруты по умолчанию для других узлов BGP. Чтобы включить транзитную маршрутизацию между несколькими VPN-шлюзами Azure, необходимо включить BGP на всех промежуточных подключениях между виртуальными сетями. Дополнительные сведения см. в статье Обзор использования BGP с VPN-шлюзами Azure.

Можно ли создать несколько туннелей между VPN-шлюзом Azure и локальной сетью?

Да, вы можете создать несколько VPN-туннелей типа "сеть – сеть" (S2S) между VPN-шлюзом Azure и локальной сетью. Обратите внимание, что все эти туннели будут учитываться в общем числе туннелей на ваших VPN-шлюзах Azure. Кроме того, вы должны включить BGP для обоих туннелей.

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

Можно ли создать несколько туннелей между двумя виртуальными сетями Azure с использованием BGP?

Да, но хотя бы один из шлюзов виртуальной сети должен быть в конфигурации "активный — активный".

Можно ли использовать BGP для S2S VPN в конфигурации сосуществования ExpressRoute и S2S VPN?

Да.

Что следует добавить в настройки локального VPN-устройства для сеансов пиринга BGP?

Добавьте маршрут узла для IP-адреса узла BGP Azure на VPN-устройство. Этот маршрут указывает на туннель S2S VPN IPsec. Например если IP-адрес VPN-узла Azure имеет значение 10.12.255.30, добавьте для адреса 10.12.255.30 узловой маршрут, в котором интерфейсом следующего прыжка будет соответствующий интерфейс туннелирования IPsec на VPN-устройстве.

Поддерживает ли шлюз виртуальной сети BFD для подключений S2S с BGP?

Нет. Двухнаправленное обнаружение перенаправления (BFD) — это протокол, который можно использовать с BGP для определения времени простоя в соседних странах быстрее, чем при использовании стандартной проверки активности BGP ("keepalives"). BFD использует таймеры с точностью измерения до доли секунды, предназначенные для работы в среде LAN, но не с подключениями через общедоступный Интернет или глобальную сеть.

Для подключений через общедоступный Интернет задержка отправки или даже удаление определенных пакетов не является необычным, поэтому внедрение этих агрессивных таймеров приведет к нестабильной работе. Такая нестабильность может привести к подавлению маршрутов протоколом BGP. В качестве альтернативы можно настроить локальное устройство с таймерами с частотой проверки активности менее 60 секунд и таймером удержания на 180 секунд. Это приводит к ускоренной конвергенции.

Инициируют ли VPN-шлюзы Azure сеансы пиринга или подключения BGP?

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

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

Инструкции по настройке BGP для подключений между локальными и виртуальными сетями и подключениями между виртуальными сетями см. в статье Настройка BGP для Azure VPN-шлюз.