Создать статический маршрут
Примечание
Статический маршрут по умолчанию (0.0.0.0/0
) действует на машины с публичными IP-адресами. Если вам требуется создать NAT-инстанс, создайте его в отдельной подсети.
Чтобы создать таблицу маршрутизации и добавить в нее статические маршруты:
-
В консоли управления
перейдите в каталог, где требуется создать статический маршрут. -
В списке сервисов выберите Virtual Private Cloud.
-
На панели слева выберите
Таблицы маршрутизации. -
Нажмите кнопку Создать.
-
Задайте имя таблицы маршрутизации. Требования к имени:
- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
(Опционально) Добавьте описание таблицы маршрутизации.
-
Выберите сеть, в которой требуется создать таблицу маршрутизации.
-
Нажмите кнопку Добавить маршрут.
-
В открывшемся окне введите префикс подсети назначения в нотации CIDR.
-
Укажите Next hop — IP-адрес из разрешенных диапазонов.
-
Нажмите кнопку Добавить.
-
Нажмите кнопку Создать таблицу маршрутизации.
Чтобы использовать статические маршруты, необходимо привязать таблицу маршрутизации к подсети:
- На панели слева выберите
Подсети. - В строке нужной подсети нажмите кнопку
. - В открывшемся меню выберите пункт Привязать таблицу маршрутизации.
- В открывшемся окне выберите созданную таблицу в списке.
- Нажмите кнопку Привязать.
Чтобы создать таблицу маршрутизации и добавить в нее статические маршруты:
-
Посмотрите описание команды CLI для создания таблиц маршрутизации:
yc vpc route-table create --help
-
Получите идентификаторы облачных сетей в вашем облаке:
yc vpc network list
Результат:
+----------------------+-----------------+ | ID | NAME | +----------------------+-----------------+ | enp34hbpj8dq******** | yc-auto-subnet | | enp846vf5fus******** | routes-test | +----------------------+-----------------+
-
Создайте таблицу маршрутизации в одной из сетей:
yc vpc route-table create \ --name=test-route-table \ --network-id=enp846vf5fus******** \ --route destination=0.0.0.0/0,next-hop=192.168.1.5
Где:
--name
— имя таблицы маршрутизации.--network-id
— идентификатор сети, в которой будет создана таблица.--route
— настройки маршрута, включают два параметра:destination
— префикс подсети назначения в нотации CIDR.next-hop
— внутренний IP-адрес виртуальной машины из разрешенных диапазонов, через которую будет направляться трафик.
Результат:
...done id: enpsi6b08q2v******** folder_id: b1gqs1teo2q2******** created_at: "2019-06-24T09:57:54Z" name: test-route-table network_id: enp846vf5fus******** static_routes: - destination_prefix: 0.0.0.0/0 next_hop_address: 192.168.1.5
Чтобы использовать статические маршруты, необходимо привязать таблицу маршрутизации к подсети:
-
Получите список подсетей в вашем облаке:
yc vpc subnet list
Результат:
+----------------------+------------------+----------------------+----------------+---------------+------------------+ | ID | NAME | NETWORK ID | ROUTE TABLE ID | ZONE | RANGE | +----------------------+------------------+----------------------+----------------+---------------+------------------+ | b0cf2b0u7nhl******** | subnet-1 | enp846vf5fus******** | | ru-central1-a | [192.168.0.0/24] | +----------------------+------------------+----------------------+----------------+---------------+------------------+
-
Привяжите таблицу маршрутизации к одной из подсетей:
yc vpc subnet update b0cf2b0u7nhl******** --route-table-id enp1sdveovdp********
Результат:
..done id: b0cf2b0u7nhl******** folder_id: b1gqs1teo2q2******** created_at: "2019-03-12T13:27:22Z" name: subnet-1 network_id: enp846vf5fus******** zone_id: ru-central1-a v4_cidr_blocks: - 192.168.0.0/24 route_table_id: enp1sdveovdp********
Terraform
Terraform распространяется под лицензией Business Source License
Подробную информацию о ресурсах провайдера смотрите в документации на сайте Terraform
Если у вас еще нет Terraform, установите его и настройте провайдер Yandex Cloud.
Чтобы создать таблицу маршрутизации и добавить в нее статические маршруты:
-
Опишите в конфигурационном файле параметры ресурсов, которые необходимо создать:
-
name
— имя таблицы маршрутизации. Формат имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
network_id
— идентификатор сети, в которой будет создана таблица. -
static_route
— описание статического маршрута:destination_prefix
— префикс подсети назначения в нотации CIDR.next_hop_address
— внутренний IP-адрес виртуальной машины из разрешенных диапазонов, через которую будет направляться трафик.
Пример структуры конфигурационного файла:
resource "yandex_vpc_route_table" "lab-rt-a" { name = "<имя_таблицы_маршрутизации>" network_id = "<идентификатор_сети>" static_route { destination_prefix = "10.2.0.0/16" next_hop_address = "172.16.10.10" } }
Чтобы добавить, изменить или удалить таблицу маршрутизации, используйте ресурс
yandex_vpc_route_table
с указанием на сеть в полеnetword id
(например,network_id = "${yandex_vpc_network.lab-net.id}"
).Более подробную информацию о параметрах ресурса
yandex_vpc_route_table
в Terraform см. в документации провайдера . -
-
Проверьте корректность конфигурационных файлов.
-
В командной строке перейдите в папку, где вы создали конфигурационный файл.
-
Выполните проверку с помощью команды:
terraform plan
Если конфигурация описана верно, в терминале отобразится список создаваемых ресурсов и их параметров. Если в конфигурации есть ошибки, Terraform на них укажет.
-
-
Разверните облачные ресурсы.
-
Если в конфигурации нет ошибок, выполните команду:
terraform apply
-
Подтвердите создание ресурсов: введите в терминал слово
yes
и нажмите Enter.После этого в указанном каталоге будут созданы все требуемые ресурсы. Проверить появление ресурсов и их настройки можно в консоли управления
или с помощью команды CLI:yc vpc route-table list
-
Чтобы создать таблицу маршрутизации и добавить в нее статические маршруты, воспользуйтесь методом REST API create для ресурса RouteTable или вызовом gRPC API RouteTableService/Create и передайте в запросе:
-
Идентификатор каталога, в котором будет размещена таблица маршрутизации, в параметре
folderId
. -
Имя таблицы маршрутизации в параметре
name
. Формат имени:- длина — от 3 до 63 символов;
- может содержать строчные буквы латинского алфавита, цифры и дефисы;
- первый символ — буква, последний — не дефис.
-
Идентификатор сети, в которой будет размещена таблица маршрутизации, в параметре
networkId
. -
Префикс подсети назначения в нотации CIDR в параметре
staticRoutes[].destinationPrefix
. -
Внутренний IP-адрес виртуальной машины, через которую будет направляться трафик, в параметре
staticRoutes[].nextHopAddress
. IP-адрес должен входить в разрешенный диапазон.
Чтобы использовать статические маршруты, необходимо привязать таблицу маршрутизации к подсети. Воспользуйтесь методом REST API update для ресурса Subnet или вызовом gRPC API SubnetService/Update и передайте в запросе:
-
Идентификатор подсети в параметре
subnetId
.Чтобы узнать идентификатор подсети, воспользуйтесь методом REST API list для ресурса Subnet или вызовом gRPC API SubnetService/List и передайте в запросе идентификатор каталога в параметре
folderId
.О том, как узнать идентификатор каталога, читайте в разделе Получение идентификатора каталога.
-
Идентификатор таблицы маршрутизации в параметре
routeTableId
. -
Имя параметра
routeTableId
в параметреupdateMask
.
Важно
Метод API переопределит все параметры изменяемого объекта, которые не были явно переданы в запросе, на значения по умолчанию. Чтобы избежать этого, перечислите настройки, которые вы хотите изменить, в параметре updateMask
(одной строкой через запятую).