-- +goose Up -- +goose StatementBegin -- Static routes — managed durch EdgeGuard, geschrieben in -- /etc/edgeguard/routes.conf und appliziert via `ip route … proto -- edgeguard`. Markierung mit Protocol-ID 250 (in der apply-script -- gemappt) damit der Operator manuell-gesetzte Routen im Kernel -- erkennt und nicht beim flush wegradiert. -- -- destination: CIDR ("10.0.5.0/24" oder "0.0.0.0/0"). -- gateway: IPv4/v6 oder NULL (für on-link via dev). -- dev: interface name (optional; bei Gateway-only kann ip das -- selbst auflösen, aber explizit ist besser). -- metric: Priorität — niedriger gewinnt (default 100). -- table: routing table name oder "main" (default). CREATE TABLE IF NOT EXISTS static_routes ( id BIGSERIAL PRIMARY KEY, destination TEXT NOT NULL, gateway TEXT, dev TEXT, metric INTEGER NOT NULL DEFAULT 100, table_name TEXT NOT NULL DEFAULT 'main', active BOOLEAN NOT NULL DEFAULT TRUE, comment TEXT, created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), CONSTRAINT static_routes_metric_check CHECK (metric >= 0 AND metric <= 65535) ); CREATE INDEX IF NOT EXISTS idx_static_routes_active ON static_routes (active) WHERE active; CREATE INDEX IF NOT EXISTS idx_static_routes_dest ON static_routes (destination); -- +goose StatementEnd -- +goose Down -- +goose StatementBegin DROP TABLE IF EXISTS static_routes; -- +goose StatementEnd