# Сеть и доступ Исполняемый порядок раскатки, включая Netplan, SG и lockdown — в [RUNBOOK.ru.md](RUNBOOK.ru.md). Этот файл фиксирует сетевую диагностику и проверки доступа. ## Сбор диагностики До изменения Netplan выполните и сохраните вывод: ```bash ip -br link ip -br -4 address ip -4 route ip -4 rule sudo netplan get sudo netplan status --all 2>&1 || true sudo ls -la /etc/netplan sudo sh -c 'for f in /etc/netplan/*.yaml; do echo "--- $f"; cat "$f"; done' systemctl is-active systemd-networkd NetworkManager networkctl list 2>&1 || true networkctl status 2>&1 || true grep -RniE 'network:|network-config|disable_network_config' \ /etc/cloud/cloud.cfg /etc/cloud/cloud.cfg.d 2>/dev/null || true ``` Диагностика этой VM показала: - публичный интерфейс `eth0`, `135.106.166.7/24`, default gateway `135.106.166.1`; - приватный интерфейс `eth1`, MAC `fa:16:3e:b6:c6:70`, изначально `DOWN/unmanaged`; - приватный адрес VM — `192.168.0.5/24`. Для `eth1` не нужен gateway: узлы `192.168.0.0/24` доступны connected route. Default route должен остаться только на `eth0`. ## Настройка приватного интерфейса Используйте подготовленный скрипт: ```bash cd /opt/signoz sudo ./scripts/05-configure-private-network.sh ``` Он создаёт отдельный `/etc/netplan/60-signoz-private.yaml`, проверяет MAC, выполняет `netplan generate` и запускает `netplan try --timeout 120`. Файл `50-cloud-init.yaml` не изменяется: cloud-init продолжает управлять публичным `eth0`, а отдельный файл сохраняет конфигурацию `eth1`. Пока `netplan try` ожидает подтверждения: ```bash ip -br -4 address show eth1 ip route get 192.168.0.1 ``` С другой VM приватной сети проверьте SSH. ICMP в группе безопасности обычно закрыт, `ping` не является проверкой связности: ```bash ssh -i ~/.ssh/hansel-private -o ConnectTimeout=5 root@192.168.0.5 ``` Если новая SSH-сессия работает, вернитесь в первую и подтвердите Netplan клавишей Enter. Если нет — не подтверждайте: через 120 секунд произойдёт откат. ## Группа безопасности Минимальные входящие правила для VM SigNoz: - TCP 22: на хосте UFW разрешает любой источник; конкретные IP/подсети задаются в SG или файрволе приватной сети провайдера; - TCP 4317 от приватной подсети `192.168.0.0/24` (ВМ1 и ВМ2); - TCP 4318 от той же подсети, если нужен OTLP/HTTP; - никаких входящих правил для 8080, 5432, 8123, 9000, 9181. UI только через SSH `-L 8080:127.0.0.1:8080`. Для текущего backend используется OTLP/gRPC, поэтому после проверки 4318 можно закрыть. Исходящий доступ к приватной сети оставьте. Для обновления временно разрешайте HTTPS/DNS наружу или используйте внутренний registry/proxy. ## Доступ к UI UI слушает только `127.0.0.1:8080` на VM SigNoz. Через доступный jump host: ```powershell ssh -i C:\Users\MI\.ssh\hansel ` -J root@ ` -L 8080:127.0.0.1:8080 ` root@192.168.0.5 -N ``` Если ключи jump host и SigNoz различаются, удобнее добавить оба узла в `~/.ssh/config`. После запуска туннеля откройте `http://127.0.0.1:8080`. ## Проверки перед удалением внешнего IP 1. Новая SSH-сессия к `192.168.0.5` через jump host открывается. 2. Туннель показывает UI SigNoz. 3. `scripts/30-verify-signoz.sh` проходит без ошибок. 4. С ВМ1 и ВМ2 доступны `192.168.0.5:4317` и при необходимости `:4318`. 5. В SigNoz появился свежий trace сервиса HAN Chat. 6. Все контейнеры имеют статус `running`, healthcheck — `healthy`. 7. Создан snapshot диска ВМ. 8. В облачной группе безопасности нет публичного доступа к служебным портам.