Files
poc-frr-anycast/docs/2026-09-09-ansible-site-cloud-plan.md
ayurishchevandClaude Sonnet 5 b2b7306a3c Generalize frr_anycast role, add site-cloud environment (4 nodes, prepend, sNAT)
По updated_dia.png: новое окружение "Облачная площадка" (vr01-vr04, AS 65200,
anycast 172.31.255.10/32) с двумя внешними BGP-каналами — основным (ASN 65104,
без as-path prepend) и резервным (ASN 65103, с prepend на всех узлах) — плюс
sNAT (nftables masquerade) на внешнем интерфейсе.

Роль frr_anycast обобщена под это: вместо двух жёстко именованных соседей —
список bgp_neighbors произвольной длины с флагом prepend; sNAT/ip_forward —
опциональный блок (enable_snat). Площадка A мигрирована на новый формат
host_vars/group_vars без изменения site-a.env и без изменения рендера —
render-check.sh (golden-diff) по-прежнему проходит 6/6.

Для site-cloud (окружение новое, ВМ не подняты) добавлен render-check-cloud.sh
с grep-инвариантами: 4 соседа на узел, prepend только на резервном канале,
nftables masquerade на внешнем интерфейсе — 56/56 проверок пройдено.

run.sh обобщён на несколько окружений: инвентарь по имени playbook'а,
env-файл через SITE_ENV_FILE (алиас SITE_A_ENV_FILE сохранён).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bc3HkMiDwooSyLBLoMKNyF
2026-09-09 20:59:40 +03:00

17 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# План внедрения: доработка Ansible под топологию updated_dia.png
**Дата:** 2026-09-09
## Цель
Новое окружение «Облачная площадка» (4 узла vR01–vR04, AS 65200, anycast `172.31.255.10/32`), с двумя внешними BGP-каналами (Основной → ASN 65104 без prepend, Резервный → ASN 65103 с AS-path prepend на всех 4 узлах) и sNAT (nftables, masquerade на внешнем интерфейсе).
Полный анализ диаграммы, архитектурные решения и обоснование — согласованы с пользователем в чате, зафиксированы в плане `/root/.claude/plans/hdl-composed-octopus.md` (эта же сессия). Ключевое: роль `frr_anycast` обобщается со «2 жёстко именованных соседа» на список `bgp_neighbors` произвольной длины с флагом `prepend`, что требует рефакторинга площадки A (`group_vars/site_a.yml`, `host_vars/a{1,2,3}.yml`) — без изменения `site-a.env` и без изменения рендера (проверяется регрессом `render-check.sh`).
## Definition of done
- Роль `frr_anycast`: `bgp_neighbors`-based `frr.conf.j2`, опциональный sNAT (`enable_snat`) с `nftables.conf.j2`.
- `ansible/tests/render-check.sh` (площадка A) проходит без изменений в результате.
- Новое окружение `site-cloud` (env/inventory/group_vars/host_vars/playbook) + `render-check-cloud.sh` с grep-проверками 4 соседей / prepend только на резервном канале / sNAT.
- README и summary обновлены.