[Документация Yandex Cloud](../../index.md) > [Yandex Cloud Router](../index.md) > Практические руководства > Организация сетевой связности между несколькими виртуальными сетями с помощью VPC Stitching

# Организация сетевой связности между несколькими виртуальными сетями с помощью VPC Stitching


{% note info %}

В [регионе Казахстан](../../overview/concepts/region.md) доступна только [зона доступности](../../overview/concepts/geo-scope.md) `kz1-a`.

{% endnote %}


{% note warning %}

Функция доступна только при подключенной услуге [Cloud Interconnect](../../interconnect/index.md) с объемом трафика не менее [300 ТБ](../../interconnect/pricing.md).

{% endnote %}

С помощью [VPC Stitching](../concepts/vpc-stitching.md) вы можете организовать IP-связность между двумя и более [облачными сетями](../../vpc/concepts/network.md) Virtual Private Cloud, которые находятся в разных каталогах или облаках.

{% note alert %}

VPC Stitching можно настроить только для облачных сетей, принадлежащих облакам в составе одной [организации](../../organization/concepts/organization.md). Связность между сетями из разных организаций не поддерживается.

{% endnote %}


В этом руководстве используется следующая конфигурация:

* облачная сеть `Net-1` с несколькими подсетями;
* облачная сеть `Net-2` с несколькими подсетями;
* приватное соединение `vpc-stitching`, через которое замыкается трафик между облачными сетями;
* виртуальный маршрутизатор `ri-1`, в который добавлены приватное соединение, облачные сети и IP-префиксы их подсетей;
* [склеивающие анонсы](../concepts/vpc-stitching.md), объединяющие IP-префиксы подсетей каждой облачной сети.

{% note warning %}

Для VPC Stitching не предоставляется SLA. Объем переданного через VPC Stitching трафика нельзя отслеживать средствами мониторинга. Передача данных сверх [емкости](../../interconnect/concepts/capacity.md) транкового подключения возможна, но не гарантируется.

{% endnote %}

Чтобы настроить VPC Stitching:

1. [Создайте транковое подключение](#create-trunk), если у вас еще нет подходящего подключения Cloud Interconnect.
1. [Создайте приватное соединение](#create-prc).
1. [Создайте виртуальный маршрутизатор](#create-ri).
1. [Обратитесь в поддержку для включения VPC Stitching](#enable-vpc-stitching).
1. [Добавьте облачные сети и IP-префиксы](#add-prefixes) в виртуальный маршрутизатор.
1. [Добавьте склеивающие анонсы](#add-static-routes) в приватное соединение.
1. [Проверьте сетевую связность](#check-connectivity).

## Перед началом работы {#before-you-begin}

Убедитесь, что:

* облачные сети, между которыми нужно настроить связность, принадлежат облакам в одной организации;
* IP-префиксы подсетей этих сетей не пересекаются;
* у вас есть роли [cic.editor](../../interconnect/security/index.md#cic-editor) и [cloud-router.editor](../security/index.md#cloudrouter-editor) в каталогах с ресурсами Cloud Interconnect и Cloud Router соответственно;
* если вы будете использовать Yandex Cloud CLI, он [установлен и настроен](../../cli/quickstart.md).

Для VPC Stitching необходимы:

* [транковое подключение](../../interconnect/concepts/trunk.md) с объемом данных не менее 300 ТБ, что соответствует емкости 1 Гбит/с;
* [приватное соединение](../../interconnect/concepts/priv-con.md), созданное в этом транковом подключении со специальными параметрами VPC Stitching;
* [виртуальный маршрутизатор](../concepts/routing-instance.md), в который добавлены приватное соединение и облачные сети.

Если у вас уже есть транковое подключение с объемом данных не менее 300 ТБ, перейдите к [созданию приватного соединения](#create-prc). Если объем данных меньше 300 ТБ, [измените емкость подключения](../../interconnect/operations/trunk-update.md#capacity) и дождитесь подтверждения поддержки.

Если приватное соединение и виртуальный маршрутизатор с требуемыми параметрами уже созданы, а поддержка подтвердила включение VPC Stitching, перейдите к [настройке IP-префиксов](#add-prefixes).

## Создайте транковое подключение {#create-trunk}

Создайте [обращение в поддержку](https://kz.center.yandex.cloud/support) для создания транкового подключения Cloud Interconnect с объемом данных 300 ТБ.

Используйте следующий шаблон обращения:

```text
Тема: [CIC] Создание нового транка для включения VPC Stitching.

Текст обращения:
Прошу создать в каталоге <идентификатор_каталога> новое транковое
подключение Cloud Interconnect для VPC Stitching с объемом данных 300 ТБ.
```

Дождитесь подтверждения поддержки. После создания подключения [получите его идентификатор](../../interconnect/operations/trunk-get-info.md) — он понадобится при создании приватного соединения.

## Создайте приватное соединение {#create-prc}

Создайте приватное соединение со следующими параметрами:

#|
|| **Параметр** | **Значение** ||
|| Имя | `vpc-stitching` ||
|| VLAN ID | `4095` ||
|| Подсеть для BGP-пиринга | `172.31.255.0/30` ||
|| IP-адрес на оборудовании клиента | `172.31.255.1` ||
|| IP-адрес на оборудовании Yandex Cloud | `172.31.255.2` ||
|| Номер BGP ASN на оборудовании клиента | `65534` ||
|#

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором находится транковое подключение.
  1. [Перейдите](https://kz.console.yandex.cloud/link/interconnect) в сервис **Cloud Interconnect**.
  1. На панели слева выберите ![nodes-left](../../_assets/console-icons/nodes-left.svg) **Приватные соединения** и нажмите **Создать приватное соединение**.
  1. В открывшемся окне:

      1. В поле **Идентификатор транкового подключения** выберите созданное ранее транковое подключение.
      1. В поле **VLAN ID** укажите `4095`.
      1. В поле **Стыковая подсеть** укажите `172.31.255.0/30`.
      1. В поле **Peer IP** укажите `172.31.255.1`.
      1. В поле **Cloud IP** укажите `172.31.255.2`.
      1. В поле **BGP ASN** укажите `65534`.
      1. В блоке **Общая информация** в поле **Имя** укажите `vpc-stitching`.
      1. Нажмите **Создать**.
  1. [Получите идентификатор](../../interconnect/operations/priv-con-get-info.md) созданного приватного соединения.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`.
  
  Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для создания приватного соединения:

      ```bash
      yc cic private-connection create --help
      ```

  1. Создайте приватное соединение:

      ```bash
      yc cic private-connection create \
        --name vpc-stitching \
        --trunk-id <идентификатор_транкового_подключения> \
        --vlan-id 4095 \
        --ipv4-peering 'peering-subnet=172.31.255.0/30,peer-ip=172.31.255.1,cloud-ip=172.31.255.2,peer-bgp-asn=65534' \
        --async
      ```

      Где:

      * `--name` — имя приватного соединения;
      * `--trunk-id` — идентификатор транкового подключения;
      * `--vlan-id` — идентификатор VLAN приватного соединения;
      * `--ipv4-peering` — параметры BGP-пиринга в формате `ключ=значение`, разделенные запятыми;
      * `--async` — необязательный параметр для асинхронного выполнения операции.

  1. Дождитесь завершения операции и получите информацию о приватном соединении:

      ```bash
      yc cic private-connection get --name vpc-stitching
      ```

      Сохраните значение поля `id` — идентификатор понадобится на следующих шагах.

{% endlist %}

## Создайте виртуальный маршрутизатор {#create-ri}

Создайте виртуальный маршрутизатор `ri-1` и добавьте в него приватное соединение `vpc-stitching`.

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором хотите создать виртуальный маршрутизатор.
  1. [Перейдите](https://kz.console.yandex.cloud/link/cloud-router) в сервис **Cloud Router**.
  1. Нажмите **Создать виртуальный маршрутизатор**.
  1. Введите имя виртуального маршрутизатора `ri-1`.
  1. В поле **Приватные соединения** выберите соединение `vpc-stitching` или укажите его идентификатор.
  1. Нажмите **Создать**.
  1. [Получите идентификатор](../operations/ri-get-info.md) созданного виртуального маршрутизатора.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`.
  
  Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для создания виртуального маршрутизатора:

      ```bash
      yc cloudrouter routing-instance create --help
      ```

  1. Создайте виртуальный маршрутизатор и добавьте в него приватное соединение:

      ```bash
      yc cloudrouter routing-instance create \
        --name ri-1 \
        --folder-id <идентификатор_каталога> \
        --cic-prc <идентификатор_приватного_соединения> \
        --async
      ```

      Где:

      * `--name` — имя виртуального маршрутизатора;
      * `--folder-id` — идентификатор каталога, в котором создается виртуальный маршрутизатор;
      * `--cic-prc` — идентификатор приватного соединения `vpc-stitching`;
      * `--async` — необязательный параметр для асинхронного выполнения операции.

  1. Дождитесь завершения операции и получите информацию о виртуальном маршрутизаторе:

      ```bash
      yc cloudrouter routing-instance get --name ri-1
      ```

      Сохраните значение поля `id`.

{% endlist %}

## Обратитесь в поддержку для включения VPC Stitching {#enable-vpc-stitching}

Создайте [обращение в поддержку](https://kz.center.yandex.cloud/support) и попросите включить VPC Stitching для созданного приватного соединения.

Используйте следующий шаблон обращения:

```text
Тема: [CloudRouter] Включение VPC Stitching.

Текст обращения:
Прошу включить VPC Stitching:
* идентификатор приватного соединения (prc-id):
  bd6g2**********7c8sv (vpc-stitching);
* идентификатор виртуального маршрутизатора (ri-id):
  fokrf**********ml058 (ri-1).
```

Дождитесь подтверждения поддержки о включении VPC Stitching, прежде чем продолжить настройку.

## Добавьте облачные сети и IP-префиксы {#add-prefixes}

Добавьте в виртуальный маршрутизатор сети `Net-1` и `Net-2` и настройте IP-префиксы подсетей.

Для облачных сетей используются следующие имена подсетей и IP-префиксы:

* `Net-1` (`enpcfncr6uld********`):

  * зона `kz1-a`:

    * `subnet-a1` — `10.10.12.0/24`;
    * `subnet-a2` — `10.10.13.0/24`;


* `Net-2` (`enpt8ok6snlp********`):

  * зона `kz1-a`:

    * `subnet-a3` — `172.16.11.0/24`;
    * `subnet-a4` — `172.16.25.0/24`;


{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором находится виртуальный маршрутизатор `ri-1`.
  1. [Перейдите](https://kz.console.yandex.cloud/link/cloud-router) в сервис **Cloud Router**.
  1. В строке с виртуальным маршрутизатором `ri-1` нажмите значок ![ellipsis](../../_assets/console-icons/ellipsis.svg) и выберите ![pencil](../../_assets/console-icons/pencil.svg) **Редактировать**.
  1. В блоке **Маршрутизируемые сети и префиксы** выберите сети `Net-1` и `Net-2`.
  1. В появившихся блоках с сетями выберите подсети по именам и добавьте их IP-префиксы для соответствующих зон доступности, используя значения из списка выше.
  1. Нажмите **Сохранить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`.
  
  Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для управления сетями и IP-префиксами виртуального маршрутизатора:

      ```bash
      yc cloudrouter routing-instance update-networks --help
      ```

  1. Добавьте сети `Net-1` и `Net-2` и IP-префиксы их подсетей:

      
      ```bash
      yc cloudrouter routing-instance update-networks \
        <идентификатор_виртуального_маршрутизатора> \
        --add-vpc-net 'id=enpcfncr6uld********,zone=kz1-a,ipv4-prefixes=[10.10.12.0/24,10.10.13.0/24]' \
        --add-vpc-net 'id=enpt8ok6snlp********,zone=kz1-a,ipv4-prefixes=[172.16.11.0/24,172.16.25.0/24]' \
        --async
      ```


      Значение каждого параметра `--add-vpc-net` задается в формате `id=<идентификатор_сети>,zone=<зона_доступности>,ipv4-prefixes=[<CIDR>,...]`.

      Если сеть уже добавлена в виртуальный маршрутизатор, используйте параметр `--update-vpc-net` вместо `--add-vpc-net`.

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

      ```bash
      yc cloudrouter routing-instance get \
        <идентификатор_виртуального_маршрутизатора>
      ```

      В блоке `vpc_info` должны отображаться обе сети и все настроенные IP-префиксы.

{% endlist %}

## Добавьте склеивающие анонсы {#add-static-routes}

Добавьте в приватное соединение агрегированные IP-префиксы, которые будут использоваться как [склеивающие анонсы](../concepts/vpc-stitching.md):

* для сети `Net-1`:

  * `10.10.12.0/23`;


* для сети `Net-2`:

  * `172.16.10.0/23`;


{% note warning %}

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

{% endnote %}

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://kz.console.yandex.cloud) выберите каталог, в котором находится приватное соединение `vpc-stitching`.
  1. [Перейдите](https://kz.console.yandex.cloud/link/interconnect) в сервис **Cloud Interconnect**.
  1. На панели слева выберите ![nodes-left](../../_assets/console-icons/nodes-left.svg) **Приватные соединения**.
  1. В строке с соединением `vpc-stitching` нажмите значок ![ellipsis](../../_assets/console-icons/ellipsis.svg) и выберите ![pencil](../../_assets/console-icons/pencil.svg) **Редактировать**.
  1. В поле **IPv4 StaticRoute prefix** добавьте все склеивающие анонсы из списка выше. Чтобы добавить очередной префикс, нажмите **Добавить префикс**.
  1. Нажмите **Сохранить**.

- CLI {#cli}

  Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

  По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`.
  
  Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

  1. Посмотрите описание команды CLI для добавления статических маршрутов в приватное соединение:

      ```bash
      yc cic private-connection upsert-static-routes --help
      ```

  1. Добавьте склеивающие анонсы:

      
      ```bash
      yc cic private-connection upsert-static-routes \
        <идентификатор_приватного_соединения> \
        --ipv4-static-routes "10.10.12.0/23,172.16.10.0/23" \
        --async
      ```


      Первый позиционный аргумент — идентификатор или имя приватного соединения. В параметре `--ipv4-static-routes` передайте склеивающие анонсы в формате CIDR, разделив их запятыми без пробелов. Параметр `--async` необязательный.

  1. Дождитесь завершения операции и проверьте конфигурацию приватного соединения:

      ```bash
      yc cic private-connection get \
        <идентификатор_приватного_соединения>
      ```

      В поле `ipv4_static_routes` должны отображаться все добавленные префиксы.

{% endlist %}

## Проверьте сетевую связность {#check-connectivity}

Перед проверкой убедитесь, что:

* в каждой из связываемых сетей есть запущенный ресурс с IP-адресом из настроенного префикса;
* группы безопасности и локальные файрволы ресурсов разрешают ICMP-трафик между сетями;
* виртуальный маршрутизатор находится в состоянии `ACTIVE`;
* в его конфигурации отображаются сети `Net-1`, `Net-2`, их IP-префиксы и приватное соединение `vpc-stitching`.

1. Подключитесь к ресурсу в сети `Net-1` и выполните команду:

    ```bash
    ping -c 5 <внутренний_IP-адрес_ресурса_в_Net-2>
    ```

1. Подключитесь к ресурсу в сети `Net-2` и выполните команду:

    ```bash
    ping -c 5 <внутренний_IP-адрес_ресурса_в_Net-1>
    ```

Если пакеты передаются в обоих направлениях, сетевая связность настроена. Сообщите о результатах проверки в обращении, созданном для включения VPC Stitching.

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