Files
ermnvldmr.com/services/docs/content/ru/apex/concepts/addressing.md
T
deytenit b3638f4d63 fix: cyrillic fonts, dev certs, page head, and ru-text typography (#67)
🤖 PR generated for branch `fix/cyrillic-fonts-dev-certs-and-page-head`.

### Changes Summary
- **Fonts**: Add Cyrillic glyph subsets for Lato, EB Garamond, and Fira
Code.
- **Dev**: Support remote Root CA and encrypted dev CA key in
`.env.dev`.
- **UI & Kits**: Add size variant to `Breadcrumbs` component and enlarge
`PageHead` breadcrumbs with tuned collapse scroll threshold.
- **ESLint**: Add `no-hanging-particles` i18n & markdown typography rule
with auto-fixer.
- **Content & i18n**: Apply `ru-text` editorial and typography polish
(em dashes, number ranges, «ё» restoration, non-breaking spaces) across
`services/www` and `services/docs`.
2026-10-25 15:21:09 +03:00

5.4 KiB
Raw Blame History

title, description, weight
title description weight
Схема адресации флота Подсети /24 для каждого узла и статические якорные IP внутри пространства анклава (по умолчанию 198.18.0.0/16). 17

Фреймворк apex назначает каждому сервису фиксированный, предсказуемый IPv4-адрес внутри подсети узла. Каждый узел объявляет собственный /24, якоря сервисов — это статические адреса внутри него, а вся схема автоматически валидируется линтером якорных IP.

Адресное пространство

Пространство анклава по умолчанию равно 198.18.0.0/16 — диапазону для бенчмаркинга, выделенному RFC 2544: Benchmarking Methodology for Network Interconnect Devices. Этот диапазон никогда не маршрутизируется в публичном интернете и не конфликтует с распространёнными частными диапазонами (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), которые уже используют облачные провайдеры и домашние сети. Оператор может переопределить его через переменную APEX_ENCLAVE_SUBNET.

Подсети узлов

Каждый узел объявляет ровно один диапазон /24 как APEX_SUBNET в своём файле node.env. Эта подсеть служит пулом IPAM сети direct. Оператор назначает её вручную: по соглашению она располагается внутри пространства анклава (198.18.0.0/16 по умолчанию или в подсети из APEX_ENCLAVE_SUBNET), однако фреймворк не накладывает строгих ограничений на выбор адресов.

Note

В качестве соглашения оператор может группировать подсети /24 связанных узлов в непрерывные блоки, чтобы сохранять наглядность адресного плана. Это вопрос внутренней организации, а не жёсткое требование фреймворка.

Распределение внутри /24 узла

Внутри подсети /24 узла адреса хостов разделяются по ролям:

Диапазон Назначение
.10–.19 Зарезервировано для якорей базовой композиции; сервис traefik всегда занимает адрес .10 (через APEX_TRAEFIK_DIRECT_IP)
.20 и выше Якоря сервисов, распределяемые по проектам (<project>)

Каждый якорь сервиса представляет собой статический ipv4_address в сети direct — фиксированный якорный IP, а не динамическую аренду (lease). Назначенные адреса фиксируются в compositions/ADDRESSING.md, который служит человекочитаемым реестром подсети узла.

Автоматическая проверка

Линтер compose проверяет якорные IP-адреса во всех композициях узла. Для каждого значения ipv4_address, найденного в файлах compositions/*/docker-compose.yml, проверяются следующие условия:

  • Корректный формат — о некорректном литерале линтер сообщает как об ошибке, не падая аварийно.
  • Уникальность — один и тот же якорный IP не может использоваться в двух разных проектах; при обнаружении дубликатов выводятся имена обоих конфликтующих проектов.
  • Принадлежность подсети узла — каждый якорь должен входить в объявленную подсеть /24 узла.

При любом нарушении линтер завершается с ошибкой и кодом 1. При успешной проверке в лог выводится сообщение Anchor IP validation passed. Логика проверки реализована в действии utils/lint-docker-compose; см. GitHub: apex.ermnvldmr.com.


См. также: