Соединение нескольких VPC
In this article:
Соединение нескольких VPC#
Если вам необходимо соединить два и более VPC, то вы можете сделать это с помощью транзитного шлюза.
В приводимом примере показано, как соединить два VPC, vpc-1 (10.0.0.0/16) и vpc-2 (172.31.0.0/16), которые находятся в одном проекте.
При необходимости вы можете подключить к транзитному шлюзу VPC из других проектов, в том числе из проектов других компаний, предоставив доступ к шлюзу.
The general procedure is as follows:
задайте маршруты в таблице маршрутизации транзитного шлюза к подключённым VPC;
set the route in route table of each VPC through the transit gateway to another VPC;
allow appropriate traffic, such as ICMP, in the security groups associated with the instances between which this traffic is to be transmitted.
Пример прохождения трафика#
В данном примере предполагается, что в vpc-1 запущен экземпляр с адресом 10.0.0.4 в подсети 10.0.0.0/20 в зоне доступности az-1, а в vpc-2 запущен экземпляр с адресом 172.31.16.4 в подсети 172.31.16.0/20 в зоне доступности az-2.
И с экземпляра 10.0.0.4 выполняется ping экземпляра 172.31.16.4.
Кроме того, мы предполагаем, что подсети 10.0.0.0/20 назначена основная таблица vpc-rtb-1 для vpc-1, а подсети 172.31.16.0/20 — основная таблица vpc-rtb-2 для vpc-2.
Экземпляр 10.0.0.4 отправляет эхо-запрос ICMP на адрес 172.31.16.4 на виртуальный маршрутизатор
vpc-1.Виртуальный маршрутизатор
vpc-1проверяет адрес назначения по связанной с подсетью таблице маршрутизацииvpc-rtb-1и направляет пакет на виртуальный интерфейс подключенияvpc-1к транзитному шлюзу в зоне доступностиaz-1.
Маршрутизатор
vpc-1получает пакет, предназначенный для 172.31.16.4. В соответствии с таблицей маршрутизации он отправляет его на подключение транзитного шлюза кvpc-1.#Транзитный шлюз в соответствии со своей таблицей маршрутизации направляет пакет на виртуальный интерфейс подключения к
vpc-2в той же зоне доступности —az-1.
Транзитный шлюз получает пакет, предназначенный для 172.31.16.4, от подключения к
vpc-1. В соответствии со своей таблицей маршрутизации он отправляет его на подключение кvpc-2.#Виртуальный маршрутизатор
vpc-2отправляет поступивший пакет от транзитного шлюза в подсеть 172.31.16.0 в зоне доступностиaz-2, где находится экземпляр 172.31.16.4.
Маршрутизатор VPC-2 получает пакет, предназначенный экземпляру, находящемуся в подключённой к нему подсети.#
Пакет доставлен.
Эхо-пакет проделывает схожий путь обратно от экземпляра 172.31.16.4 до экземпляра 10.0.0.4, однако основная часть маршрута — до стыковочной подсети в vpc-1 — пролегает внутри зоны доступности az-2.
Create a transit gateway#
Go to Interconnect Transit gateways and open the subsection of the same name.
Click Create.
Оставьте без изменений опции Создать таблицу маршрутизации и назначить основной для:
подключений;
распространения маршрутов.
При их выборе всем новым подключениям назначается созданная основная таблица маршрутизации и включается распространение маршрутов из этих подключений. Это освобождает от необходимости вручную задавать статические маршруты к каждому VPC в таблицах маршрутизации транзитного шлюза.
Click Create to create the gateway.
Создайте стыковочные подсети#
В каждой из зон доступности рекомендуется создать стыковочную подсеть (attachment subnet), к которой будет подключаться транзитный шлюз. Если подсеть с экземплярами подключить напрямую к транзитному шлюзу, то трафик из шлюза будет поступать к экземплярам, минуя Network ACL. При наличии стыковочной подсети трафик между транзитным шлюзом и остальными подсетями в этом VPC всегда проходит через виртуальный маршрутизатор VPC и, как следствие, фильтруется Network ACL.
Note
Правила групп безопасности применяются к трафику на сетевых интерфейсах в любом случае — независимо от выбора варианта подключения.
В стыковочной подсети не рекомендуется размещать другие ресурсы. Она служит только для связи с транзитным шлюзом, поэтому в целях экономии адресного пространства стыковочной подсети можно выделить IP-подсеть наименьшего возможного размера (/28).
Go to Virtual machines Networking Subnets and click Create.
In the subnet dialog window, set the following parameters:
vpc-1.(Optional) Name tag.
Адрес подсети 10.0.255.0/28.
Зону доступности, к которой необходимо подключить транзитный шлюз.
Если необходимо назначить дополнительные теги, перейдите на следующий шаг, нажав Добавить теги.
After setting all the required parameters, click Create subnet.
Аналогично создайте подсети 10.0.255.16/28 и 10.0.255.32/28 в остальных зонах доступности (при наличии в регионе) в vpc-1 и подсети 172.31.255.0/28, 172.31.255.16/28 и 172.31.255.32/28 в трёх зонах доступности (при наличии в регионе) в vpc-2.
В этом примере значение 255 в третьем октете адресов стыковочных подсетей выбрано так, чтобы адресное пространство VPC оставалось целостным и непрерывным и было доступно для создания подсетей, в которых будут размещаться экземпляры.
Вы можете выбрать, в скольких зонах доступности создавать подсети — одной, двух или трёх. Однако для продуктивных инфраструктур рекомендуем заранее создавать стыковочные подсети во всех зонах доступности, так как потом изменить этот выбор будет невозможно — инфраструктуру транзитного шлюза придётся создавать с нуля заново.
Выбор зон доступности для стыковочных подсетей влияет на маршрут передачи трафика между VPC и транзитным шлюзом. Например, если у каждого из соединяемых VPC имеется стыковочная сеть только в одной зоне доступности, то трафик между подсетями в других зонах доступности этих VPC будет маршрутизироваться через эту зону. Если же создать подсети в каждой зоне, то трафик будет направляться по кратчайшему пути.
Create attachments#
Attachments must be created in each of the attached VPCs. (see about connecting transit gateways).
When creating the first attachment, you can specify subnets in one or more availability zones at will. However, when creating another attachment, you must specify subnets in the same availability zones as for the first one.
В этом примере используются подключения в двух зонах доступности.#
Traffic can be exchanged between any subnets in these VPCs, not only those directly attached to the transit gateway — it is only necessary to set routes through the transit gateway in the route tables of these subnets.
Note
Once created, the attachment cannot be associated with other subnets.
Go to Interconnect Transit gateways Attachments.
Click Create.
In the window that opens, set the following parameters:
Тег Name для идентификации подключения, например
vpc-1(опционально).The transit gateway you have created.
vpc-1.Стыковочные подсети в
vpc-1, к которым будет подключён транзитный шлюз:10.0.255.0/28;
10.0.255.16/28.
В каждой из этих подсетей будет создан виртуальный интерфейс подключения.
Click Create to create the attachment.
Аналогичные подключения необходимо создать для vpc-2.
Specify routes in the transit gateway route table#
Если вы не отключали опцию Создать таблицу маршрутизации и назначить основной для: распространения маршрутов у основной таблицы маршрутизации транзитного шлюза, то маршруты в vpc-1 и vpc-2 будут установлены в неё автоматически.
В противном случае для каждого подключаемого VPC необходимо задать маршрут к нему через соответствующие подключения:
Go to Interconnect Transit gateways Route tables.
In the resource table, select the route table of the created transit gateway and click on the table ID to go to its page.
In the Routes tab click Add.
In the dialog window:
В поле Сеть укажите сеть, которая соответствует
vpc-1(10.0.0.0/16). Вы можете указать CIDR-блок любой подсети вvpc-1, если трафик необходимо пересылать в конкретную подсеть.Подключение, через которое
vpc-1подключается к транзитному шлюзу.
Click Create.
Повторите шаги 3-5 для задания маршрута к
vpc-2.
Specify routes in the VPC route table#
В каждом VPC необходимо задать маршрут до другого VPC через транзитный шлюз. Ниже предполагается, что всем подсетям в VPC, из которых надо передавать трафик в другое VPC, назначена основная таблица маршрутизации этого VPC. Если какой-либо подсети назначена другая таблица маршрутизации, то, чтобы трафик из неё передавался в другое VPC, необходимо также задать в ней маршрут через транзитный шлюз.
Go to Virtual machines Networking Route tables.
Выберите в таблице ресурсов основную таблицу маршрутизации
vpc-1и нажмите на идентификатор таблицы для перехода на её страницу.Open the Routes tab and click Add.
In the dialog window:
В поле Сеть укажите целевую сеть в
vpc-2. В данном примере это сеть 172.31.0.0/16, соответствующаяvpc-2.In the Gateway Type field, select Transit Gateway.
In the Gateway field, select the created transit gateway.
Click Add to create the route.
Повторите шаги 2-4 для
vpc-2.
Enable required traffic#
Чтобы экземпляры виртуальных машин в разных VPC могли обмениваться трафиком друг с другом, его необходимо разрешить в группах безопасности, которые назначены этим экземплярам.
В качестве примера рассмотрим ситуацию, когда требуется выполнять взаимный ping между экземплярами в разных VPC. При этом предполагается, что экземплярам назначена группа безопасности по умолчанию из соответствующего VPC.
Go to Virtual machines Security Security groups.
В таблице ресурсов найдите группу безопасности по умолчанию для
vpc-1и нажмите на её ID для перехода на страницу группы.На вкладке Входящие правила нажмите Добавить.
In the dialog window:
In the Protocol field, select ICMP.
For the Grant access option, select From network.
В поле Сеть введите подсеть в
vpc-2, в которой находится экземпляр изvpc-2, например, 172.31.16.0/20 как в примере прохождения трафика. Либо укажите CIDR-блок для всегоvpc-2, в данном случае 172.31.0.0/16.
Повторите шаги 2-4 для
vpc-2.
Проверьте, что связь есть.
На экземпляре в vpc-2 запустите ping экземпляра в vpc-1 по внутреннему IP-адресу.
Ту же проверку выполните для экземпляра в vpc-1.