10 lines
1.5 KiB
Markdown
10 lines
1.5 KiB
Markdown
# Итог: автоназначение адреса с учётом вложенных префиксов (изменение 020)
|
|||
|
|
|
||
|
|
## Что сделано
|
||
|
|
- `app/services.py`: `next_free_address(net, occupied)` — перескок за занятые диапазоны, без перебора; для IPv4 ≤ /30 без адреса сети и broadcast. Старая `next_free` удалена.
|
||
|
|
- `app/api/v1/prefixes.py`: общий `_busy_ranges()` (вложенные префиксы любой глубины и адреса префикса) используется и для выбора подсети, и для автоназначения адреса; `allocate_next` блокирует строку префикса (`FOR UPDATE`) — параллельные запросы получают разные адреса.
|
||
|
|
- `README.md`: раздел API.
|
||
|
|
|
||
|
|
## Проверка
|
||
|
|
Проверка: стенд `ipam_control_006` пересобран, миграции применены до 0008 (`alembic check` — расхождений нет); ручная проверка (скрипт во временной папке, в репозиторий не добавлялся); автотесты по условию этапа не писались. Пул /24 с дочерним /25: автоназначение выдало `198.51.100.128` (вне вложенного префикса).
|
||
|
|
Не проверено: параллельные запросы (5 потоков).
|