Маршрутизация
При создании виртуальной машины (ВМ) в Yandex Cloud она получает от виртуальной сети ряд параметров для настройки своего сетевого окружения. Значения этих параметров передаются от виртуальной сети к ВМ с помощью протокола DHCP. К обязательным параметрам сетевого окружения ВМ относятся:
- Внутренний IP-адрес для каждого сетевого интерфейса ВМ.
- Маска подсети — определяет размер подсети, к которой подключается сетевой интерфейс ВМ.
- Имя хоста и FQDN для ВМ.
- Шлюз по умолчанию — это первый IP-адрес в подсети, к которой подключен сетевой интерфейс ВМ, на который будет отправляться весь исходящий трафик от ВМ во внешний мир.
Таблица маршрутизации ВМ
Обычно в Yandex Cloud ВМ создается только с одним сетевым интерфейсом, и на момент создания у ВМ в ее собственной таблице маршрутизации будет только один маршрут — маршрут к шлюзу по умолчанию с префиксом 0.0.0.0/0
. У этого маршрута (префикса) шлюзом всегда будет первый IP-адрес в подсети, к которой подключается сетевой интерфейс ВМ.
Предположим, что сетевой интерфейс ВМ подключается к подсети с префиксом 192.168.10.0/24
. В этой подсети при создании ВМ для сетевого интерфейса выделился IP-адрес 192.168.10.5
. Таблица маршрутизации внутри ВМ будет иметь следующий вид:
ip route
default via 192.168.10.1 dev eth0 proto dhcp src 192.168.10.5 metric 100
Это означает, что нужно отправлять весь трафик в виртуальную сеть через шлюз 192.168.10.1
(интерфейс eth0
).
Внимание
Изменение IP-адреса для шлюза по умолчанию в таблице маршрутизации ВМ может привести к полной потере связности с ВМ.
Если вы используете на ВМ несколько сетевых интерфейсов, помните, что виртуальная сеть для каждого сетевого интерфейса настроит свой шлюз по умолчанию. Для согласованной работы маршрутизации необходимо оставить только один шлюз по умолчанию, удалив соответствующие записи в таблице маршрутизации с помощью команды ip route del
.
Если создана ВМ с несколькими сетевыми интерфейсами, таблица маршрутизации внутри ВМ поможет лишь выбрать сетевой интерфейс для исходящего трафика для определенных IP-префиксов назначения.
Таблицы маршрутизации VPC
Таблицы маршрутизации ВМ не дают возможности напрямую передавать трафик от одной ВМ в подсети к другой. Трафик в любом случае будет отправлен на шлюз по умолчанию виртуальной сети.
Для гранулярной маршрутизации трафика на уровне виртуальной сети необходимо использовать таблицы маршрутизации VPC. Этот инструмент Yandex Cloud может пригодиться при необходимости обработки сетевого трафика на специализированных ВМ, таких как, межсетевые экраны (NGFW), шлюзы безопасности (VPN) и пр.
Таблица маршрутизации VPC позволяет управлять маршрутизацией IPv4-трафика для виртуальных машин. Использование протокола IPv6 в Virtual Private Cloud в настоящее время не поддерживается.
Таблица маршрутизации VPC создается внутри облачной сети и может быть применена в любой ее подсети. Применить таблицу маршрутизации к подсетям из другой облачной сети не получится.
В таблице маршрутизации VPC может быть одна и более записей. Каждая запись определяет статический маршрут в границах данной виртуальной сети.
Статические маршруты
Для каждой записи в таблице маршрутизации VPC нужно указать:
Префикс назначения
— префикс назначения целевого IPv4-маршрута в CIDR-нотации, например,10.20.30.0/24
.Next hop
— тип шлюза, куда будет отправляться исходящий трафик для указанного префикса назначения. Допускаются значения:IP-адрес
— IP-адрес шлюза назначения, например, внутренний IP-адрес ВМ в одной из подсетей.Шлюз
— используется для передачи трафика через NAT-шлюз. Для такого типа шлюза необходимо указать имя NAT-шлюза, который уже создан в облачной сети.
Если создать несколько записей с перекрывающимися префиксами, то приоритет будет у префикса с большей маской подсети. Например, для двух записей в таблице с префиксами назначения 172.16.0.0/20
и 172.16.0.0/24
для передачи трафика будет использована запись с префиксом 172.16.0.0/24
, как наиболее приоритетная.
При создании статического маршрута с IP-адресом
в качестве next hop
можно указать внутренний IP-адрес, который до этого не использовался в данной облачной сети. В этом случае весь трафик к префиксу назначения такого маршрута будет отбрасываться виртуальной сетью до тех пор, пока не будет запущена ВМ с соответствующим IP-адресом.
В статических маршрутах можно использовать префикс маршрута по умолчанию — 0.0.0.0/0
. Это означает, что весь трафик, который не направлен по другим более специфичным маршрутам, будет направлен через IP-адрес шлюза, указанного для данного префикса.
При создании статического маршрута со Шлюзом
в качестве next hop
в Префиксе назначения
можно указать только префикс маршрута по умолчанию — 0.0.0.0/0
. Другие префиксы для данного типа next hop
не поддерживаются.
Приоритет маршрутов в сложных сценариях
В сложных сценариях маршрутизации, когда в сети (подсетях) VPC есть несколько маршрутов по умолчанию, исходящий трафик будет маршрутизироваться в следующем порядке:
-
Приоритет 1. Если настроен статический маршрут по умолчанию
0.0.0.0/0
, такой маршрут будет иметь высший приоритет. -
Приоритет 2. Если у ВМ настроен публичный IP-адрес, то трафик будет маршрутизироваться через него, если в подсети нет статического маршрута по умолчанию (приоритет 1).
-
Приоритет 3. Если настроен статический маршрут по умолчанию
0.0.0.0/0
через NAT-шлюз, такой маршрут будет иметь наименьший приоритет, по сравнению с приоритетами 1 и 2. -
Приоритет 4. При получении анонса для маршрута по умолчанию
0.0.0.0/0
из Cloud Interconnect такой маршрут будет считаться наименее приоритетным, относительно маршрутов с приоритетами 1,2 и 3.
Ограничения
-
В таблице маршрутизации VPC для каждого префикса назначения может быть только одна запись. Повторяющиеся префиксы назначения в одной таблице маршрутизации VPC не допускаются, в том числе и для префикса маршрута по умолчанию
0.0.0.0/0
. -
Доступ в интернет изнутри виртуальной машины и доступ к ней через публичный IP-адрес возможен только в том случае, если в ее подсети отсутствует статический маршрут по умолчанию
0.0.0.0/0
. Если виртуальная машина находится за NAT-инстансом, можно подключиться к ней через внутренний IP-адрес, используя NAT-инстанс в роли джамп-хоста:ssh -J <имя_пользователя_NAT-инстанса>@<публичный_IP-адрес_NAT-инстанса> \ <имя_пользователя_ВМ>@<внутренний_IP-адрес_ВМ>
-
В таблицах маршрутизации VPC нельзя использовать префиксы link-local IP-адресов —
169.254.0.0/16
и более специфичные, поскольку они зарезервированы для служебных нужд Virtual Private Cloud. -
Не допускается использование в качестве
next hop
IP-адреса обработчика трафика сетевого балансировщика. -
При использовании таблиц маршрутизации VPC для маршрутизации обратного трафика от целевых ресурсов внутреннего сетевого балансировщика следует учитывать особенности маршрутизации трафика.
-
Не допускается использование в качестве
next hop
IP-адреса обработчика трафика балансировщика нагрузки уровня приложений. -
Виртуальная сеть Yandex Cloud не разрешает транзит трафика через саму себя. Другими словами, в качестве префиксов назначения и шлюзов для статических маршрутов в таблице маршрутизации VPC можно использовать только приватные диапазоны IP-адресов Virtual Private Cloud. Трафик на публичные префиксы назначения или к шлюзам с публичными IP-адресами в таблице маршрутизации VPC будет отбрасываться.
-
Количественные ограничения по использованию таблиц маршрутизации и статических маршрутов описаны в разделе Квоты и лимиты документации сервиса Virtual Private Cloud.