2026-08-16 21:43:02 +03:00
|
|
|
SHELL := /bin/bash
|
|
|
|
|
DC := docker compose
|
2026-08-17 16:59:16 +03:00
|
|
|
# Скрипты подготовки хоста требуют root. Под root sudo не нужен и может
|
|
|
|
|
# отсутствовать в системе.
|
|
|
|
|
SUDO := $(shell [ "$$(id -u)" = 0 ] || echo sudo)
|
2026-08-16 21:43:02 +03:00
|
|
|
|
2026-08-17 16:59:16 +03:00
|
|
|
.PHONY: help prereq shim shim-down build up down restart attach detach flows verify logs ports health slots drain enable metrics conns trace fdb shell
|
2026-08-16 21:43:02 +03:00
|
|
|
|
|
|
|
|
help:
|
2026-08-17 16:59:16 +03:00
|
|
|
@echo "Стенд hpnn_v2 — OVS: маршрутизация, балансировка, коммутация сегментов"
|
2026-08-16 21:43:02 +03:00
|
|
|
@echo
|
|
|
|
|
@echo " make prereq загрузить модуль openvswitch на хосте"
|
|
|
|
|
@echo " make shim поднять macvlan-shim (проверка стенда с самого хоста)"
|
|
|
|
|
@echo " make shim-down снять shim"
|
|
|
|
|
@echo " make up собрать образы и запустить стенд"
|
|
|
|
|
@echo " make down остановить стенд и удалить сети"
|
2026-08-17 16:59:16 +03:00
|
|
|
@echo " make attach подключить ВМ сегментов к br-lb (после пересоздания)"
|
|
|
|
|
@echo " make detach снять порты сегментов с моста"
|
2026-08-16 21:43:02 +03:00
|
|
|
@echo " make flows перечитать pipeline.sh и перезалить пайплайн"
|
|
|
|
|
@echo " make verify прогнать проверки"
|
|
|
|
|
@echo " make ports порты моста br-lb"
|
|
|
|
|
@echo " make health состояние членов пула по данным health-проб"
|
|
|
|
|
@echo " make slots раскладка таблицы слотов и счётчики"
|
|
|
|
|
@echo " make drain M=be1 вывести член из балансировки"
|
|
|
|
|
@echo " make enable M=be1 вернуть член в балансировку"
|
|
|
|
|
@echo " make metrics метрики Prometheus"
|
|
|
|
|
@echo " make conns таблица соединений ct"
|
2026-08-17 16:59:16 +03:00
|
|
|
@echo " make trace SRC=192.168.5.7 [SPORT=40000] [SEG=pub|p2|p3] ofproto/trace"
|
|
|
|
|
@echo " make fdb таблица коммутации сегментов (выученные MAC)"
|
2026-08-16 21:43:02 +03:00
|
|
|
@echo " make logs логи контейнеров"
|
|
|
|
|
@echo " make shell shell в контейнере lb-router"
|
|
|
|
|
|
|
|
|
|
prereq:
|
2026-08-17 16:59:16 +03:00
|
|
|
$(SUDO) scripts/host-prereq.sh
|
2026-08-16 21:43:02 +03:00
|
|
|
|
|
|
|
|
shim:
|
2026-08-17 16:59:16 +03:00
|
|
|
$(SUDO) scripts/host-prereq.sh --shim
|
2026-08-16 21:43:02 +03:00
|
|
|
|
|
|
|
|
shim-down:
|
2026-08-17 16:59:16 +03:00
|
|
|
$(SUDO) scripts/host-prereq.sh --shim-down
|
2026-08-16 21:43:02 +03:00
|
|
|
|
|
|
|
|
build:
|
|
|
|
|
$(DC) build
|
|
|
|
|
|
|
|
|
|
up: prereq
|
|
|
|
|
$(DC) up -d --build
|
|
|
|
|
@echo "Ждём готовности балансировщика..."
|
|
|
|
|
@for i in $$(seq 40); do \
|
|
|
|
|
$(DC) exec -T lb-router curl -fsS --max-time 2 http://127.0.0.1:9111/status >/dev/null 2>&1 && break; \
|
|
|
|
|
sleep 1; \
|
|
|
|
|
done
|
2026-08-17 16:59:16 +03:00
|
|
|
@$(MAKE) --no-print-directory attach
|
|
|
|
|
@echo "Ждём, пока health-пробы увидят членов пула..."
|
|
|
|
|
@sleep 6
|
2026-08-16 21:43:02 +03:00
|
|
|
@$(MAKE) --no-print-directory health
|
|
|
|
|
|
2026-08-17 16:59:16 +03:00
|
|
|
# Порты ВМ сегментов создаёт гипервизор; в стенде их создаёт этот скрипт.
|
|
|
|
|
# Повторить нужно после пересоздания любого контейнера сегмента.
|
|
|
|
|
attach:
|
|
|
|
|
$(SUDO) scripts/attach-segment.sh
|
|
|
|
|
|
|
|
|
|
detach:
|
|
|
|
|
$(SUDO) scripts/attach-segment.sh --detach
|
|
|
|
|
|
2026-08-16 21:43:02 +03:00
|
|
|
down:
|
|
|
|
|
$(DC) down
|
|
|
|
|
|
|
|
|
|
restart:
|
|
|
|
|
$(DC) restart lb-router
|
|
|
|
|
|
|
|
|
|
flows:
|
|
|
|
|
$(DC) exec -T lb-router /opt/lb/apply.sh
|
|
|
|
|
|
|
|
|
|
verify:
|
|
|
|
|
@scripts/verify.sh
|
|
|
|
|
|
|
|
|
|
logs:
|
|
|
|
|
$(DC) logs --tail=80
|
|
|
|
|
|
|
|
|
|
ports:
|
|
|
|
|
$(DC) exec -T lb-router lbctl ports
|
|
|
|
|
|
|
|
|
|
health:
|
|
|
|
|
$(DC) exec -T lb-router lbctl health
|
|
|
|
|
|
|
|
|
|
slots:
|
|
|
|
|
$(DC) exec -T lb-router lbctl slots
|
|
|
|
|
|
|
|
|
|
drain:
|
|
|
|
|
$(DC) exec -T lb-router lbctl drain $(M)
|
|
|
|
|
|
|
|
|
|
enable:
|
|
|
|
|
$(DC) exec -T lb-router lbctl enable $(M)
|
|
|
|
|
|
|
|
|
|
metrics:
|
|
|
|
|
$(DC) exec -T lb-router lbctl metrics
|
|
|
|
|
|
|
|
|
|
conns:
|
|
|
|
|
$(DC) exec -T lb-router lbctl conns
|
|
|
|
|
|
|
|
|
|
trace:
|
2026-08-17 16:59:16 +03:00
|
|
|
$(DC) exec -T lb-router lbctl trace $(SRC) $(SPORT) $(SEG)
|
|
|
|
|
|
|
|
|
|
fdb:
|
|
|
|
|
$(DC) exec -T lb-router lbctl fdb
|
2026-08-16 21:43:02 +03:00
|
|
|
|
|
|
|
|
shell:
|
|
|
|
|
$(DC) exec lb-router bash
|