Выход из изолированной сети наружу

Выход из изолированной сети наружу

Изолированная сеть замкнута сама на себя, а её узлам нужен доступ во внешнюю сеть — к репозиториям обновлений, службе времени, корпоративным сервисам. Выход даётся через общий VRF, а адреса при этом транслируются, чтобы внешней стороне не требовался обратный маршрут. Значения — из сквозного примера.

Что получится

  • В таблице маршрутизации VRF demo появится маршрут по умолчанию через VRF tenant2.
  • Соединения, открытые узлами сети 10.88.0.0/24, будут уходить наружу с адреса агента в сети tenant2.
  • Встречные соединения — снаружи в сеть demo — по-прежнему запрещены.

Перед началом

  • Профили demo и tenant2 созданы, агенты получили адреса в обеих сетях.
  • В сети tenant2 есть маршрут во внешнюю сеть.
  • Адреса сети demo не транслируются где-то ещё: SNAT-группа на те же адреса приведёт к двойной трансляции, и система такую политику отклонит.

Настройка

  1. Откройте раздел VRF, перейдите на вкладку Cross-VRF политики и нажмите Создать политику.
  2. Заполните форму:
    • Из VRFdemo;
    • В VRFtenant2;
    • Режим политикиМежду VRF (routed);
    • Сети назначения0.0.0.0/0;
    • Сети источников10.88.0.0/24;
    • Транслировать адреса источников (NAT-masquerade) — включите.
  3. Сохраните политику.
  4. Убедитесь, что узлы сети demo используют плавающий шлюз 10.88.0.1 как маршрут по умолчанию.
⚠️

Важно: 0.0.0.0/0 в поле Сети назначения допускается только вместе с трансляцией адресов источников. Без неё политика открыла бы всю таблицу маршрутизации целевого VRF и обнулила изоляцию, поэтому система такую пару отклоняет.

ℹ️

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

Проверка

В интерфейсе системы

  1. На вкладке Cross-VRF политики пара demo → tenant2 присутствует с режимом routed.
  2. Уходящий наружу трафик виден инструментом TCP Dump на интерфейсе ens19.301: источником пакетов будет адрес агента в сети tenant2, а не адрес узла сети demo. Это и есть подтверждение трансляции.
  3. Путь до внешнего адреса проверяется инструментом Traceroute с выбором интерфейса ens19.301.

На машине

Таблицу маршрутизации VRF интерфейс пока не показывает, поэтому маршрут по умолчанию смотрят на агенте:

ip route show vrf demo

Трафиком

С узла сети demo обратитесь к внешнему адресу:

curl -sS -o /dev/null -w '%{http_code}\n' http://<внешний адрес>/

В журнале внешнего узла источником запроса будет 10.89.0.11 или 10.89.0.12. Обратное направление остаётся закрытым: обращение снаружи к 10.88.0.201 проходить не должно.

Частые ошибки

Сообщения об ошибках называют поля по именам, под которыми они уходят в систему: Сети источников — это from_prefixes, Сети назначенияto_prefixes.

СообщениеЧто означаетЧто сделать
NAT-политика требует непустой from_prefixes: он ограничивает masquerade адресами источникаВключена трансляция, но не заданы Сети источниковПеречислите сети, которым разрешён выход
default-префикс "0.0.0.0/0" протекает всей таблицей и обнуляет изоляциюВ Сетях назначения указан маршрут по умолчанию без трансляцииВключите Транслировать адреса источников либо перечислите конкретные сети
NAT-политика открывает IPv6-назначения (...), но from_prefixes не содержит ни одного IPv6-префикса — трафик этой семьи уходил бы без masqueradeВ назначениях есть сеть IPv6, а в источниках — только IPv4Добавьте в Сети источников сеть IPv6 либо уберите назначения IPv6
from_prefixes NAT-политики накрывают адрес 10.88.0.240 SNAT-пула "pool-1" — источник уже транслируется пулом (double-NAT)Те же адреса транслирует SNAT-группаСузьте Сети источников либо откажитесь от одной из двух трансляций
from_prefixes NAT-политики накрывают data-адрес 10.10.10.11 агента slb-node-1 — служебный трафик агента должен сохранять источникВ Сети источников попал адрес рабочего трафика агентаУкажите только изолированные сети
"0.0.0.0/0" накрывает локально терминируемый адрес ... — leak не доставляет на локальный адрес (нужен SLB-листенер)В Сетях назначения оказался адрес самого агента в целевом VRFУберите этот адрес из назначений; чтобы опубликовать приложение на этом адресе, заведите конфигурацию балансировки
Routed-leak к/от default-плоскости пока не поддерживается (только VRF↔VRF): политика demo→defaultОдним из концов выбрана default (global)Для этой пары доступен только режим Через балансировщик

Дальше