niikn: обход блокировки nspd.gov.ru через NetBird route

Заменил socat+DNAT+hosts (утренняя попытка 2026-04-21 не решила авторизацию,
поддомены sso/auth через FakeIP sing-box уходили в awg0→Финляндию где тоже
блок) на два централизованных изменения:

- NetBird Network Route 2.63.246.0/24 → pve-LionART для группы All:
  pushed на все 50 пиров автоматически, никаких действий на Windows-клиентах.
- OpenWrt dnsmasq override server=/nspd.gov.ru/8.8.8.8: минует sing-box
  FakeIP, клиенты LAN НИИКН получают реальные 2.63.246.71-76 и Windows
  маршрутизирует их через wt0 (NetBird) → pve-LionART → Telekom (195.26.30.163),
  WAF НСПД пропускает. Работает для главной + всех поддоменов (sso/auth/api).

Снесено:
- nspd-socat.service на pve-LionART
- DNAT "NSPD socat bypass for NIIKN" на MikroTik LionART
- bat-снипы niikn-nspd-hosts-install/uninstall
- hosts-записи + дубликат Ethernet-маршрута на WIN-BC0OTBOBBCH (192.168.1.202)

Протестировано: fallback через awg0 для non-NetBird клиентов не работает —
НСПД блочит hosting Amnezia-Финляндии тоже. Единственный known-good exit
сейчас — pve-LionART/Telekom 195.26.30.163. Non-NetBird машины НИИКН не
откроют НСПД до установки NetBird.

Добавлен отчёт для руководства НИИКН (projects/niikn/nspd-incident-report.md).
This commit is contained in:
dttb
2026-04-21 11:07:20 +03:00
parent 0e054aaf97
commit 9a203fef4a
7 changed files with 289 additions and 26 deletions

View File

@@ -147,6 +147,18 @@ FakeIP диапазон (198.18.0.0/15) направляется через Open
Клиенты получают DNS 192.168.1.50 (dnsmasq → sing-box FakeIP).
### DNS override для NSPD (bypass через NetBird, см. [[../../decisions/2026-04-21-niikn-nspd-netbird-route]])
Чтобы `nspd.gov.ru` **не попадал** в FakeIP sing-box (он в community-list `russia_outside`), dnsmasq делегирует этот домен напрямую в 8.8.8.8:
```bash
uci add_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
uci commit dhcp
/etc/init.d/dnsmasq restart
```
После этого клиенты получают реальные IP `2.63.246.71-76`, которые попадают в NetBird route `2.63.246.0/24 → pve-LionART`.
## Как работает FakeIP схема
1. Клиент запрашивает DNS для `instagram.com` → получает FakeIP `198.18.0.239`