Заменил 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).
7.7 KiB
date, type, status, tags
| date | type | status | tags | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-04-21 | decision | ACTIVE |
|
2026-04-21: Обход блокировки nspd.gov.ru через NetBird Network Route
Заменяет 2026-04-20-niikn-nspd-bypass-via-lionart (WG-туннель, откачен) и промежуточную попытку через socat+DNAT+hosts (утро 2026-04-21, не сработала из-за FakeIP в sing-box на OpenWrt).
Проблема
НСПД блокирует по WAF публичный IP НИИКН 85.235.181.190 (MTS Customers_P2P_B16, AS8359). Подробности корневой причины — 2026-04-20-niikn-nspd-bypass-via-lionart.
Почему предыдущие попытки не сработали
WG-туннель НИИКН↔LionART (откачен 2026-04-20)
Работал технически, но совпал с побочными изменениями (отключение podkop-fakeip route, смена DHCP DNS) → сотрудники пожаловались на общее замедление. Откачен.
socat + DNAT + hosts (попытка 2026-04-21 утро, не полетела)
Схема: hosts: 195.26.30.163 nspd.gov.ru → DNAT на MikroTik LionART (src=85.235.181.190 → 10.253.1.253:4443) → socat TCP4-LISTEN:4443 → nspd.gov.ru:443.
Почему не сработала:
- OpenWrt 192.168.1.50 (podkop/sing-box) FakeIP-ил весь домен
nspd.gov.ruи поддомены в198.18.0.0/15. Windows получал FakeIP, шёл через podkop → awg0 (Финляндия), куда НСПД вообще не пускал. - Auth-поддомены (
sso.nspd.gov.ru) не были в hosts → ломалась авторизация даже когда главная открывалась. - Дублирующий Ethernet-маршрут
2.63.246.0/24 via 192.168.1.1с metric=1 конкурировал с wt0 при последующей попытке NetBird-route.
Итоговое решение — NetBird Network Route + DNS override на OpenWrt
[Windows НИИКН] DNS запрос → 192.168.1.50 (OpenWrt dnsmasq)
↓ dnsmasq server=/nspd.gov.ru/8.8.8.8 (минует sing-box FakeIP 127.0.0.42)
↓ ответ: 2.63.246.71-76 (реальные IP)
[Windows НИИКН] routing table: 2.63.246.0/24 → wt0 (NetBird, metric=1)
↓ WireGuard → 100.70.128.49 (pve-LionART)
[pve-LionART 10.253.1.253] NetBird FORWARD + MASQUERADE
↓ default gateway 10.253.1.1
[MikroTik LionART 10.253.1.1] NAT masquerade на WAN
↓ src=195.26.30.163 (Telekom /27)
[НСПД 2.63.246.0/24] HTTP 200 ✅ (вкл. sso / auth / api субдомены)
Ключевое отличие от WG-схемы 2026-04-20
- Только подсеть
2.63.246.0/24идёт через туннель, не весь интернет → общий traffic не замедляется. - NetBird push доставляет маршрут на все 50 пиров в группе
Allавтоматически → ничего устанавливать на Windows-машины НИИКН. - Удалённые сотрудники (Мексика, Казахстан) получают фикс автоматически.
Конфигурация
1. NetBird Network Route (через API)
TOKEN='nbp_YTEmAVpS0hLhnTeJ09q3wYaC0AAXjN21NPvM' # из 2026-04-16-unifi-migration-peredelki
curl -X POST -H "Authorization: Token $TOKEN" -H "Content-Type: application/json" \
https://api.netbird.io/api/routes \
-d '{
"description": "NSPD bypass (2.63.246.0/24 → pve-LionART WAN 195.26.30.163)",
"network_id": "nspd-bypass",
"enabled": true,
"peer": "cuisnd3l0ubs73bsbbl0",
"network": "2.63.246.0/24",
"metric": 9999,
"masquerade": true,
"groups": ["cqgcidrl0ubs73f2hgf0"]
}'
| Поле | Значение |
|---|---|
| Route ID | d7ji3ajl0ubs73a92s40 |
| Peer (exit) | cuisnd3l0ubs73bsbbl0 = pve-LionART (100.70.128.49) |
| Groups | cqgcidrl0ubs73f2hgf0 = All (50 пиров) |
| Masquerade | true (NetBird ставит iptables MASQUERADE для WG→WAN SNAT) |
2. OpenWrt 192.168.1.50 — dnsmasq DNS override
Sing-box podkop FakeIP-ит весь nspd.gov.ru через community-list russia_outside. Решение — делегировать nspd.gov.ru на 8.8.8.8 напрямую, минуя sing-box:
# ssh root@192.168.1.50
uci add_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
uci commit dhcp
/etc/init.d/dnsmasq restart
После этого dnsmasq для запросов *.nspd.gov.ru идёт на 8.8.8.8, не на 127.0.0.42:53 (sing-box).
Проверка:
nslookup nspd.gov.ru 192.168.1.50
# Должно вернуть 2.63.246.71-76, не 198.18.0.x
3. Клиенты — ничего делать не нужно
- NetBird-пиры в группе
Allполучают маршрут2.63.246.0/24 → wt0автоматически. - Клиенты LAN НИИКН получают реальные IP НСПД через OpenWrt dnsmasq.
- Если на машине остались старые hosts-записи
195.26.30.163 nspd.gov.ruот снесённой попытки — убрать (браузер иначе пойдёт на 195.26.30.163:443, там никто не слушает).
Cleanup старого socat-пути (выполнено 2026-04-21)
# pve-LionART
systemctl disable --now nspd-socat.service
rm /etc/systemd/system/nspd-socat.service
systemctl daemon-reload
# MikroTik LionART
/ip firewall nat remove [find comment="NSPD socat bypass for NIIKN"]
# Windows 192.168.1.202 — hosts почищен вручную через WinRM
Диагностика
Проверить NetBird route на клиенте
Get-NetRoute -DestinationPrefix "2.63.246.0/24"
# Должно быть: InterfaceAlias=wt0, RouteMetric=1
Find-NetRoute -RemoteIPAddress 2.63.246.71
# Должно: InterfaceAlias=wt0
Проверить DNS (не должен быть FakeIP)
Resolve-DnsName nspd.gov.ru -Server 192.168.1.50 -DnsOnly
# Должно: 2.63.246.71-76, НЕ 198.18.0.x
Проверить трафик на pve-LionART
ssh root@pve-LionART 'tcpdump -i wt0 -n "dst net 2.63.246.0/24" -c 10'
Откат
NetBird route
curl -X DELETE -H "Authorization: Token $TOKEN" \
https://api.netbird.io/api/routes/d7ji3ajl0ubs73a92s40
OpenWrt DNS override
uci del_list dhcp.@dnsmasq[0].server='/nspd.gov.ru/8.8.8.8'
uci commit dhcp
/etc/init.d/dnsmasq restart
Риски и ограничения
- NetBird зависимость — если daemon упадёт на клиенте, маршрут
2.63.246.0/24пропадёт и запросы уйдут через обычный WAN → WAF block. - OpenWrt зависимость — если OpenWrt 192.168.1.50 упадёт, DNS
nspd.gov.ruвернётся к FakeIP (или перестанет резолвиться). Остальной интернет не ломается. - Cert-pinning — НСПД использует сертификат Минцифры. NetBird не трогает TLS, end-to-end между клиентом и НСПД. Проблем быть не должно.
- Росреестр разблочит 85.235.181.190 (заявка 8-800-100-34-34) — тогда можно удалить NetBird route и dnsmasq override, НСПД заработает напрямую.
Теги
#niikn #mmfb #lionart #netbird #nspd #bypass #dns #fix