Как из одной сети попасть в другую

«Как из одной сети попасть в другую» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. Маршрутизация (L3) — для прямого IP-доступа:

  • В облаке (AWS VPC, GCP VPC): Использую VPC Peering или Transit Gateway. Peering напрямую соединяет две VPC, а Transit Gateway выступает хабом для множества VPC и VPN-подключений. Настройка заключается в создании соответствующего ресурса и обновлении таблиц маршрутизации (Route Tables) в каждой подсети.
  • В гибридной среде (Облако + Дата-центр): Настраиваю VPN-туннель (IPsec). Например, используя AWS Site-to-Site VPN или облачный маршрутизатор (Cloud Router) в GCP, который соединяется с VPN-шлюзом (например, pfSense) в локальном ЦОДе.

2. Туннелирование поверхностного уровня (L4-L7) — для доступа к конкретным сервисам:

  • SSH-туннелирование (ад-hoc доступ): Для быстрой отладки.
    # Проброс порта БД из приватной подсети через бастион-хост
    ssh -L 5432:private-db-host:5432 user@bastion-host
  • Reverse Proxy (например, Nginx) или API Gateway: Разворачиваю в периметровой сети (DMZ). Он принимает запросы извне и проксирует их во внутренние сервисы, выполняя аутентификацию, TLS-терминацию и балансировку.

3. Zero-Trust / Service Mesh подход (современная практика): Вместо объединения сетей на уровне L3 мы можем оставить их изолированными, а доступ организовывать на уровне идентичности сервиса. Например, используя Istio Service Mesh:

  • Сервисы в разных сетях (или кластерах) общаются через защищенные TLS-туннели (mTLS), которые автоматически настраиваются sidecar-прокси (Envoy).
  • Доступ контролируется политиками (AuthorizationPolicy), а не сетевыми ACL. Это позволяет реализовать сегментацию на основе идентичности, а не IP-адресов.

Ключевой принцип: Минимизировать площадь атаки. Вместо полного объединения сетей я предпочитаю открывать доступ только к конкретным портам/сервисам через четко контролируемые точки входа (VPN, API Gateway, Mesh Gateway).