Инструкции#

Соединение VPC с помощью транзитного шлюза#

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

Общая схема действий следующая:

Создайте транзитный шлюз#

  1. Перейдите в раздел Сетевые соединения Транзитные шлюзы и откройте одноимённый подраздел.

  2. Нажмите Создать.

  3. Оставьте опцию Сделать таблицу маршрутизации основной включённой. При её выборе всем новым подключениям назначается созданная основная таблица маршрутизации.

  4. Нажмите Создать для завершения создания шлюза.

Создайте подключения#

Подключения необходимо создать в каждом из соединяемых VPC (см. подробнее о подключении транзитных шлюзов).

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

При этом обмен трафиком возможен между любыми подсетями в этих VPC, не только непосредственно подключёнными к транзитному шлюзу — необходимо лишь задать маршруты через транзитный шлюз в таблицах маршрутизации этих подсетей.

Примечание

После создания к подключению нельзя привязать другие подсети.

  1. Перейдите в раздел Сетевые соединения Транзитные шлюзы Подключения.

  2. Нажмите Создать.

  3. В открывшемся окне укажите следующие параметры:

    • Тег Name для идентификации подключения, например vpc-1 (опционально).

    • Созданный транзитный шлюз.

    • VPC, с которым необходимо установить связь.

    • Подсети в этом VPC, к которым будет подключён транзитный шлюз.

  4. Нажмите Создать для завершения создания подключения.

Аналогичное подключение необходимо создать для другого VPC.

Задайте маршруты в таблице маршрутизации транзитного шлюза#

Основная таблица маршрутизации транзитного шлюза создаётся пустой. Для каждого подключаемого VPC необходимо задать маршрут к нему через транзитный шлюз:

  1. Перейдите в раздел Сетевые соединения Транзитные шлюзы Таблицы маршрутизации.

  2. Выберите в таблице ресурсов таблицу маршрутизации созданного транзитного шлюза и нажмите на идентификатор таблицы для перехода на её страницу.

  3. Откройте вкладку Маршруты и нажмите Добавить.

  4. В открывшемся окне:

    • В поле Сеть укажите сеть, которая соответствует vpc-1 (вы можете указать CIDR-блок любой существующей подсети в vpc-1, если трафик необходимо пересылать именно в неё).

    • Подключение, к которому подключено vpc-1.

  5. Нажмите Создать.

  6. Повторите шаги 3-5 для задания маршрута к vpc-2.

Задайте маршруты в таблице маршрутизации VPC#

В каждом VPC необходимо задать маршрут до транзитного шлюза. Ниже предполагается, что всем подсетям в VPC, из которых надо передавать трафик в другое VPC, назначена основная таблица маршрутизации этого VPC. Если каким-либо подсетям назначена другая таблица маршрутизации, то, чтобы трафик из неё передавался в другое VPC, необходимо также задать в ней маршрут через транзитный шлюз.

  1. Перейдите в раздел Виртуальные машины Сеть Таблицы маршрутизации.

  2. Выберите в таблице ресурсов основную таблицу маршрутизации vpc-1 и нажмите на идентификатор таблицы для перехода на её страницу.

  3. Перейдите на вкладку Маршруты и нажмите Добавить.

  4. В открывшемся окне:

    • В поле Сеть укажите целевую подсеть в vpc-2. В данном примере это та же подсеть в vpc-2, что вы указали при создании маршрута в таблице маршрутизации транзитного шлюза.

    • В поле Тип шлюза выберите Транзитный шлюз.

    • В поле Шлюз выберите созданный транзитный шлюз.

  5. Нажмите Добавить для создания маршрута.

  6. Повторите шаги 2-4 для vpc-2.

Разрешите необходимый трафик#

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

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

  1. Перейдите в раздел Виртуальные машины Безопасность Группы безопасности.

  2. В таблице ресурсов найдите группу безопасности по умолчанию для vpc-1 и нажмите на её ID для перехода на страницу группы.

  3. Откройте вкладку Входящие правила и нажмите Добавить.

  4. В открывшемся окне:

    • В поле Протокол выберите ICMP.

    • Для опции Разрешить доступ выберите Из сети.

    • В поле Сеть введите подсеть в vpc-2, которую вы указывали при задании маршрутов. Экземпляр из vpc-2 должен находиться в ней.

  5. Повторите шаги 2-4 для vpc-2.

Проверьте, что всё работает. На экземпляре в vpc-2 запустите ping экземпляра в vpc-1 по внутреннему IP-адресу. Ту же проверку выполните для экземпляра в vpc-1.

Перенаправление трафика на пользовательский шлюз в другом VPC#

Если вам необходимо направить трафик из одной или нескольких подсетей в одном VPC на пользовательский шлюз (например, CheckPoint) в другом VPC, это можно сделать с помощью транзитного шлюза. В приводимом примере показано, как маршрутизировать трафик в интернет из подсети в vpc-2 через пользовательский шлюз в vpc-1.

../../../_images/RedirectingTrafficToPrivateGateway.png

Схема прохождения трафика:

  1. Исходящий трафик от экземпляров поступает в подсеть 10.188.1.0/24, связанную с rtb-4.

  2. Далее он направляется на интерфейс подключения к транзитному шлюзу attach-to-vpc-2, где маршрутизируется в соответствии с таблицей маршрутизации транзитного шлюза tgw-rtb-2.

  3. Через подключение к vpc-1 исходящий трафик попадает в подсеть 172.31.100.0/24 и маршрутизируется в соответствии с таблицей маршрутизации rtb-2, которая назначена этой подсети.

  4. Трафик поступает на интерфейс eni0. На пользовательском шлюзе при помощи NAT MASQUERADE или SNAT трафик перенаправляется на интерфейс eni1 в подсети 172.31.101.0/24.

    Примечание

    На пользовательском шлюзе должен быть сконфигурирован маршрут в 0.0.0.0/0 через 172.31.101.1.

  5. Исходящий трафик через интерфейс eni1 направляется на стандартный шлюз в интернет.

  6. Далее трафик уходит в интернет.

  7. Обратный входящий трафик поступает на стандартный шлюз в интернет.

  8. Трафик направляется на интерфейс eni1 пользовательского шлюза, где выполняется обратный NAT MASQUERADE или SNAT.

  9. Трафик перенаправляется на интерфейс eni0 и поступает в подсеть 172.31.102.0/24.

    Примечание

    На пользовательском шлюзе должен быть сконфигурирован маршрут до vpc-2 через 172.31.102.1.

  10. Обратный трафик направляется на интерфейс подключения к транзитному шлюзу attach-to-vpc-1 в соответствии с rtb-1.

  11. Трафик попадает в транзитный шлюз и пересылается согласно таблице маршрутизации транзитного шлюза tgw-rtb-1 на подключение к vpc-2, откуда он поступает в подсеть 10.188.2.0/24.

  12. В соответствие с таблицей маршрутизации rtb-3 трафик направляется к экземплярам.

Общая схема действий следующая:

  1. Создайте транзитный шлюз.

  2. Создайте подключения в каждом VPC.

  3. Создайте таблицу маршрутизации транзитного шлюза для каждого подключения.

  4. В таблицах маршрутизации транзитного шлюза задайте маршруты к подключённым VPC.

  5. Задайте маршруты в таблицах маршрутизации подсетей.

  6. Разрешите соответствующий трафик в группах безопасности, назначенных пользовательскому шлюзу, и экземплярам, отправляющим трафик через этот шлюз.

  7. Сконфигурируйте пользовательский шлюз.

Создайте транзитный шлюз#

  1. Перейдите в раздел Транзитные шлюзы и откройте одноимённый подраздел.

  2. Нажмите Создать.

  3. Отключите опцию Сделать таблицу маршрутизации основной. При её выборе всем новым подключениям назначается созданная основная таблица маршрутизации транзитного шлюза, что в нашем случае не требуется. Таблицы маршрутизации транзитного шлюза создадим на следующем шаге.

  4. Нажмите Создать для завершения создания шлюза.

Создайте подключения#

Подключения необходимо создать в каждом из соединяемых VPC (см. подробнее о подключении транзитных шлюзов).

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

При этом трафиком может передаваться между любыми подсетями в этих VPC, не только непосредственно подключёнными к транзитному шлюзу — необходимо лишь задать маршруты через транзитный шлюз в таблицах маршрутизации этих подсетей.

Примечание

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

Примечание

В нашем примере используются следующие подключения:

  • attach-to-vpc-1 к vpc-1 (172.31.100.0/24);

  • attach-to-vpc-2 к vpc-2 (10.188.2.0/24).

Создайте таблицу маршрутизации транзитного шлюза для каждого подключения#

Примечание

В данном разделе под таблицами маршрутизации понимаются таблицы маршрутизации транзитного шлюза.

  1. Перейдите в раздел Транзитные шлюзы и откройте раздел Таблицы маршрутизации.

  2. Нажмите Создать.

  3. Введите имя таблицы, например, к какому VPC относится подключение, которое будет использовать эту таблицу маршрутизации.

  4. Нажмите Создать для завершения создания таблицы маршрутизации.

  5. Выберите созданную таблицу маршрутизации, нажмите Создать назначения и выберите из списка подключение к этому VPC.

  6. Нажмите Создать, чтобы связать подключение и таблицу маршрутизации.

  7. Выполните аналогичные шаги для второй таблицы маршрутизации и второго подключения.

Примечание

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

  • tgw-rtb-1 для подключения attach-to-vpc-1;

  • tgw-rtb-2 для подключения attach-to-vpc-2.

Задайте маршруты к подключённым VPC в таблицах маршрутизации транзитного шлюза#

Таблицы маршрутизации транзитного шлюза создаются пустыми. Необходимо задать маршрут до другого VPC в таблице маршрутизации, назначенной подключению к этому VPC. Это следует сделать для каждого подключаемого VPC.

  1. Перейдите в раздел Транзитные шлюзы Таблицы маршрутизации.

  2. В таблице ресурсов выберите таблицу маршрутизации созданного транзитного шлюза, назначенную соответствующему подключению (tgw-rtb-2). Нажмите на идентификатор таблицы для перехода на её страницу.

  3. Откройте вкладку Маршруты и нажмите Добавить.

  4. В открывшемся окне:

    • В поле Сеть укажите сеть 0.0.0.0/0 (перенаправляется весь исходящий трафик).

    • Выберите подключение, к которому подключено vpc-1 (attach-to-vpc-1).

    • Нажмите Создать.

  5. Выполните аналогичные шаги для задания маршрута к vpc-2 (таблица маршрутизации tgw-rtb-1). В поле Сеть укажите подсеть в vpc-2, из которой трафик направляется на пользовательский шлюз (10.188.1.0/24). Выберите подключение, к которому подключено vpc-2 (attach-to-vpc-2).

    Примечание

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

Задайте маршруты в таблицах маршрутизации подсетей#

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

Настроим таблицу маршрутизации rtb-4 для vpc-2:

  1. Перейдите в раздел Таблицы маршрутизации.

  2. В таблице ресурсов выберите таблицу маршрутизации rtb-4 необходимой подсети (10.188.1.0/24) в vpc-2 и нажмите на идентификатор таблицы для перехода на её страницу.

  3. Перейдите на вкладку Маршруты и нажмите Добавить.

  4. В открывшемся окне:

    • В поле Сеть укажите целевую подсеть (0.0.0.0/0). В данном примере это та же подсеть, что вы указали при создании маршрута в таблице маршрутизации транзитного шлюза tgw-rtb-2.

    • В поле Тип шлюза выберите Транзитный шлюз.

    • В поле Шлюз выберите созданный транзитный шлюз (tgw-1).

    • Нажмите Добавить для создания маршрута.

Примечание

Предполагается, что подключение к vpc-2 (attach-to-vpc-2) находится в другой подсети vpc-2, трафик которой не отправляется через пользовательский шлюз.

Настроим таблицы маршрутизации rtb-0, rtb-1 и rtb-2 для vpc-1:

  1. Перейдите в раздел Таблицы маршрутизации.

  2. В таблице ресурсов выберите таблицу маршрутизации rtb-2, назначенную подсети 172.31.100.0/24, в которой находится интерфейс подключения транзитного шлюза, и нажмите на идентификатор таблицы для перехода на её страницу.

  3. Перейдите на вкладку Маршруты и нажмите Добавить.

  4. В открывшемся окне:

    • В поле Сеть укажите целевую подсеть (0.0.0.0/0).

    • В поле Тип шлюза выберите Сетевой интерфейс.

    • В поле Шлюз выберите «внутренний» интерфейс (eni0) вашего шлюза.

    • Нажмите Добавить для создания маршрута.

  5. В таблице ресурсов выберите таблицу маршрутизации rtb-1, назначенную подсети 172.31.102.0/24, в которой находится «внутренний» интерфейс (eni0) собственного шлюза, и нажмите на идентификатор таблицы для перехода на её страницу.

  6. Перейдите на вкладку Маршруты и нажмите Добавить.

  7. В открывшемся окне:

    • В поле Сеть укажите целевую подсеть (10.188.1.0/24) в vpc-2, из которой отправляется трафик в интернет.

      Примечание

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

    • В поле Тип шлюза выберите Транзитный шлюз.

    • В поле Шлюз выберите созданный транзитный шлюз (tgw-1).

    • Нажмите Добавить для создания маршрута.

  8. В таблице ресурсов выберите таблицу маршрутизации rtb-0, назначенную подсети 172.31.101.0/24, в которой находится «внешний» интерфейс (eni1) вашего шлюза, и нажмите на идентификатор таблицы для перехода на её страницу.

  9. В открывшемся окне:

    • В поле Сеть укажите целевую подсеть (0.0.0.0/0).

    • В поле Тип шлюза выберите Стандартный шлюз в интернет.

    • Нажмите Добавить для создания маршрута.

Примечание

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

Сконфигурируйте пользовательский шлюз#

  1. Для интерфейсов пользовательского шлюза следует отключить проверку проверку источника/адресата.

  2. Необходимо настроить перенаправление трафика с интерфейса eni0 на eni1.

  3. На интерфейсе eni1 требуется настроить NAT MASQUERADE или SNAT.