Проверка MASQUERADE в amnezia-awg2 — задача 26¶
✅ Закрыто 24.08.2026 без удаления правил. Первоначально два правила для
10.8.1.0/24были ошибочно приняты за дубликат. Проверка полного выводаiptables -t nat -S POSTROUTINGпоказала разные выходные интерфейсы:eth0иeth1.
Фактическая схема¶
В контейнере amnezia-awg2:
| Правило | Назначение |
|---|---|
172.29.172.1/32 → 10.8.1.12/32, -o awg0, MASQUERADE |
Узкий обратный путь VPS nginx к Open WebUI на ragserver |
destination 127.0.0.11/32 → DOCKER_POSTROUTING |
Служебное правило Docker DNS |
source 10.8.1.0/24, -o eth0, MASQUERADE |
Выход VPN-клиентов через основную сеть контейнера 172.29.172.0/24 |
source 10.8.1.0/24, -o eth1, MASQUERADE |
Выход VPN-клиентов в Docker-сеть 172.17.0.0/16 |
Интерфейсы и маршруты на момент проверки:
eth0 172.29.172.2/24
eth1 172.17.0.2/16
awg0 10.8.1.0/24
default via 172.29.172.1 dev eth0
10.8.1.0/24 dev awg0
172.17.0.0/16 dev eth1
172.29.172.0/24 dev eth0
Правило через eth0 активно и имело около 1,3 млн пакетов / 274 MiB. Правило
через eth1 имело нулевые счётчики, но оно отличается по интерфейсу и не
является точным дубликатом.
Безопасная диагностика¶
Нельзя удалять правило по номеру строки: перед правилами Amnezia находится
узкий SNAT для rag-api, а номера меняются при любом обновлении.
sudo docker exec amnezia-awg2 \
iptables -t nat -L POSTROUTING -n -v --line-numbers
sudo docker exec amnezia-awg2 \
iptables -t nat -S POSTROUTING
sudo docker exec amnezia-awg2 ip -br address
sudo docker exec amnezia-awg2 ip route
Точным дубликатом считаются только две полностью одинаковые строки в выводе
iptables -t nat -S POSTROUTING, включая -s, -d и -o.
Что было проверено¶
- В
awg0.confнетPostUpиPreDown; старая гипотеза об их повторном выполнении не подтвердилась. - После переоформления
awg-ragчерез GUI и обновления контейнерной конфигурации набор правил остался корректным. ragserverимеет свежий handshake на10.8.1.12.- Open WebUI через VPN и публичный
rag-api /healthzотвечают HTTP 200.
Решение¶
Правила не удалять, cron-cleanup не устанавливать. Если в будущем появятся две
полностью одинаковые строки, сначала снять iptables-save, определить источник
создания и удалять правило только по полному match, а не по line number.
Первоначальный runbook: 08.08.2026. Диагностика и закрытие: 24.08.2026.