Commit 70b191be authored by Vitaly Lipatov's avatar Vitaly Lipatov

docs: add IPv6/NAT66 config for ikev2.hetzner and ikev2.vdska, add vdska VDS section

- CT 677 (ikev2.hetzner.egw): IPv6 via IPsec with NETMAP 2a03:5a00:c:20::/118 <-> ::c00/118 - CT 693 (ikev2.vdska.egw): IPv6 via IPsec with NETMAP, MASQUERADE on VDS (shared /47) - Add IPv6/NAT66 reference table with all NETMAP-enabled containers - Add vdska VDS section (Ubuntu 24.04, IPv6 forwarding, swanctl path) - Add swanctl IPv6 traffic selector config example - Update egw client IPs, add 10.20.30.x addresses to routers Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
parent cf4f0a71
......@@ -112,6 +112,22 @@ graph LR
**CT 673 (amneziawg):** DPI провайдера (petrosvyaz/ether3) блокирует data-пакеты AmneziaWG через 91.232.225.1 — handshake проходит, но TCP/данные не передаются. Смена порта и параметров обфускации (Jc, S1-S4) не помогает. Работает через .130 (ikev2.beget) или .124 (gre.beget).
**CT 677 (ikev2.hetzner.egw):** IPv6 через IPsec-туннель с NAT66 (NETMAP). Tunnel p2p: `2a01:4f9:c010:cf42:43::2/112` (контейнер) ↔ `::1/112` (VDS). NETMAP: `2a03:5a00:c:20::/118``2a01:4f9:c010:cf42::c00/118`. MASQUERADE для остального IPv6. Выходной IPv6: `2a01:4f9:c010:cf42:43::2`. Персистентность: `ip6tables-nat66.service`.
**CT 693 (ikev2.vdska.egw):** IPv6 через IPsec-туннель с NAT66 (NETMAP). Tunnel p2p: `2a0d:6c2:25:42::2/112` (контейнер) ↔ `::1/112` (VDS). NETMAP: `2a03:5a00:c:20::/118``2a0d:6c2:25::c00/118`. MASQUERADE для остального IPv6. Выходной IPv6: `2a0d:6c2:25::3` (MASQUERADE на VDS, shared /47 subnet). Персистентность: `ip6tables-nat66.service` + `ip6tables-save` на VDS.
**Xray-контейнеры (CT 684, CT 674):** Xray работает на уровне приложения (VLESS/REALITY), ICMP через xray0 не проходит. Для работы ping используется policy routing — ICMP-трафик направляется через 91.232.225.1 (провайдер) вместо туннеля:
```ini
# /etc/systemd/network/eth0.network.d/override.conf
[Route]
Gateway = 91.232.225.1
Table = 100
[RoutingPolicyRule]
IPProtocol = icmp
Table = 100
```
### Работающие (ogw — DPI обход без туннеля)
| CTID | Имя | IP | Технология |
......@@ -125,8 +141,8 @@ graph LR
| CTID | Имя | IP | Default via | Назначение |
|------|-----|----|-------------|------------|
| 516 | igw.etersoft.ru | 91.232.225.13 | 91.232.225.1 (провайдер) | Основной трафик через апстрим, выборочно через туннели |
| 528 | egw.etersoft.ru | 91.232.225.14 | 91.232.225.122 (gre.hetzner.egw) | Весь трафик через туннели |
| 516 | igw.etersoft.ru | 91.232.225.13, 10.20.30.13 | 91.232.225.1 (провайдер) | Основной трафик через апстрим, выборочно через туннели |
| 528 | egw.etersoft.ru | 91.232.225.14, 10.20.30.14 | 91.232.225.122 (gre.hetzner.egw) | Весь трафик через туннели |
### VPN-серверы (клиентский доступ)
......@@ -138,6 +154,13 @@ graph LR
| — | vpn.office.etersoft.ru | 91.232.225.22 | igw (91.232.225.13) | OpenVPN (tun0) + WireGuard (wg0) |
| — | evpn.eterfund.ru | 91.232.225.181 | 91.232.225.1 (напрямую) | OpenVPN (tun0) |
### Клиенты egw (на aspetos, трафик через egw)
| CTID | Имя | IP | Шлюз | Назначение |
|------|-----|----|------|------------|
| 150 | epm-update | 91.232.225.38 | 91.232.225.14 (egw) | Сборка/тестирование epm |
| 320 | epm-sisyphus | 91.232.225.39 | 91.232.225.14 (egw) | Сборка/тестирование epm (Sisyphus) |
### Прочие
| CTID | Имя | IP | Назначение |
......@@ -180,6 +203,39 @@ graph LR
iptables -t nat -A POSTROUTING -s 91.232.225.0/24 -o gre1 -j MASQUERADE
```
### IPv6 / NAT66 (NETMAP)
Некоторые egw-контейнеры поддерживают IPv6 через NAT66 (NETMAP) — 1:1 трансляция офисного IPv6-префикса `2a03:5a00:c:20::/118` в уникальный /118 на каждом VDS. Это позволяет каждому офисному хосту иметь уникальный IPv6 на каждом выходном шлюзе.
| Контейнер | VDS | Tunnel p2p | NETMAP (офис ↔ VDS) | Выходной IPv6 |
|-----------|-----|------------|---------------------|---------------|
| ovpn.hetzner (.118) | hetzner | `:27::/112` tun0 | `::800/118` | `2a01:4f9:c010:cf42:27::2` |
| openconnect.hetzner (.112) | hetzner | `:28::/112` vpns | `::400/118` | `2a01:4f9:c010:cf42:28::*` |
| gre.hetzner (.122) | hetzner | `fd32::/126` gre1 | `::/118` | GRE link-addr |
| ikev2.hetzner (.120) | hetzner | `:43::/112` ipsec0 | `::c00/118` | `2a01:4f9:c010:cf42:43::2` |
| ikev2.vdska (.131) | vdska | `2a0d:6c2:25:42::/112` ipsec0 | `2a0d:6c2:25::c00/118` | `2a0d:6c2:25::3` (MASQUERADE) |
**Hetzner:** /64 маршрутизируется целиком на VDS, поэтому любой адрес из /64 доступен напрямую. NETMAP-диапазоны и tunnel p2p — подсети внутри `2a01:4f9:c010:cf42::/64`.
**Vdska:** /47 — shared L2 subnet (провайдер), NDP только для `2a0d:6c2:25::3`. Поэтому на VDS нужен MASQUERADE (`ip6tables -t nat -A POSTROUTING -o ens18 -s 2a0d:6c2:25:42::/112 -j MASQUERADE`) + `net.ipv6.conf.all.forwarding=1`.
**Конфигурация NAT66 на контейнере (пример ikev2.hetzner .120):**
```bash
# PREROUTING: входящий с VDS-адресом → офисный адрес
ip6tables -t nat -A PREROUTING -i ipsec0 -d 2a01:4f9:c010:cf42::c00/118 -j NETMAP --to 2a03:5a00:c:20::/118
# POSTROUTING: офисный адрес → VDS-адрес
ip6tables -t nat -A POSTROUTING -o ipsec0 -s 2a03:5a00:c:20::/118 -j NETMAP --to 2a01:4f9:c010:cf42::c00/118
# Fallback MASQUERADE для трафика без NETMAP
ip6tables -t nat -A POSTROUTING -o ipsec0 -j MASQUERADE
```
Персистентность: `ip6tables-nat66.service` (oneshot, enabled).
**IKEv2 swanctl:** Traffic selectors должны включать IPv6:
```
local_ts = 0.0.0.0/0, ::/0
remote_ts = 0.0.0.0/0, ::/0
```
## Сервисы на VDS
### hetzner (135.181.95.108)
......@@ -205,6 +261,16 @@ iptables -t nat -A POSTROUTING -s 91.232.225.0/24 -o gre1 -j MASQUERADE
| :1194 | OpenVPN (UDP) | VPN-сервер |
| :8443 | Xray (REALITY) | VLESS |
### vdska (217.177.44.55)
- ОС: Ubuntu 24.04
- IPv6: `2a0d:6c2:25::3/47` (shared L2 subnet)
- IPv6 forwarding: включён (`net.ipv6.conf.all.forwarding=1`, `/etc/sysctl.d/99-ipv6-forward.conf`)
- IPsec (IKEv2): ipsec0, XFRM if_id=42, `10.10.10.1/30` + `2a0d:6c2:25:42::1/112`
- ipsec0 конфиг: systemd-networkd (`/etc/systemd/network/50-ipsec0.network` + `50-ipsec0.netdev`)
- ip6tables: MASQUERADE `2a0d:6c2:25:42::/112` → ens18 (persist: `/etc/iptables/rules.v6`)
- swanctl: `/etc/swanctl/conf.d/site-to-site.conf` (**не** `/etc/strongswan/`)
## Мониторинг
Telegraf → InfluxDB → Grafana на telegraf.office.etersoft.ru (CT 682, 10.20.30.130).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment