VK Cloud (MCS) — whitelist proxy ноды¶
Провайдер: VK Cloud (MCS — Mail.ru Cloud Solutions)
Console: https://cloud.vk.com
Auth: zobally@yandex.ru (Denis Boriskin), пароль в Vaultwarden
Project: mcs3162583767 (ca6d54369a4c42daa1a3be4bae10a28a)
OpenStack CLI: source credentials/vkcloud-openrc.sh && openstack ...
Дата сбора: 2026-04-16
Назначение¶
5 VM (4 prod srv-01/02/03/07 + 1 test) — российские IP-точки входа для whitelist-проксей (nftables DNAT через РФ к зарубежным VPN-серверам). Используются для обхода блокировок: РФ-IP → upstream VPN (AT/DE/NL и др.).
Итог консолидации (16 Apr 2026 — DONE)¶
10 VK + 1 test → 4 VK + 1 test. Все 10 floating IPs сохранены.
Финальная карта (5 VMs, 12 floating IPs)¶
| VM | Primary IP | Extra IPs | Ifaces | PBR tables |
|---|---|---|---|---|
| srv-01 | 212.233.123.88 (ens7) | 185.241.195.139 (eth0), 185.241.195.242 (ens8) | 3 | 200, 201 |
| srv-02 | 90.156.214.48 (ens3) | 212.111.86.181 (ens7 — NL proxy) | 2 | — (dual role, не тронут) |
| srv-03 | 90.156.213.143 (ens3) | 185.241.195.196 (ens7), 83.166.239.199 (ens8) | 3 | 200, 201 |
| srv-07 | 90.156.218.106 (ens3) | 83.166.238.168 (ens7) | 2 | 200 |
| test | 185.241.195.42 (ens3) | 185.241.195.81 (ens7) | 2 | 200 |
Удалённые VMs (srv-04, 05, 06, 08, 09, 10)¶
Экономия¶
| До | После | |
|---|---|---|
| Compute | 15 340 ₽/мес (10×1534) | 7 670 ₽/мес (5×1534) |
| Network/IP | ~2 280 ₽/мес | ~2 280 ₽/мес (IPs те же) |
| Итого | 17 620 ₽/мес | ~9 950 ₽/мес |
| Экономия | -7 670 ₽/мес (-43%) |
Технический рецепт (для повторения)¶
Для каждой миграции флоатинг-IP на другую VK Cloud VM:
openstack port create --network shiva_ext_network --fixed-ip subnet=<id> --security-group openall <port-name>openstack server add port <target-vm> <port-id>(hot-attach → ens8/ens7/eth0)- В VM:
ip link set <iface> up; ip addr add <internal>/24 dev <iface>+ netplan sysctl net.ipv4.conf.<iface>.rp_filter=2- PBR:
ip route add default via 10.0.0.1 dev <iface> src <internal> table <N>+ip rule add iif <iface> table <N>+ip rule add from <internal> table <N> openstack floating ip unset --port <old-fip>+openstack floating ip set --port <new-port> <fip>- Добавить в nftables:
iifname "<iface>" ip daddr <internal> tcp dport X dnat to upstream:port+oifname "<iface>" ct status dnat snat to <internal> nft list ruleset > /etc/nftables.confдля persist
Ключевые подводные камни:
- default SG устаревше-restrictive → нужно openall SG явно
- два default route с metric=100 → asymmetric routing → TCP handshake ломается
- нужен PBR: ip rule add iif <iface> table <N> чтобы reply трафик уходил через тот же интерфейс
- VK Cloud anti-spoofing на port_security → SNAT src должен совпадать с port's allowed IP
- rp_filter=1 дропает asymmetric → rp_filter=2 (loose)
CLI ограничения VK Cloud (важно для recovery)¶
| OpenStack action | VK policy |
|---|---|
server rescue |
❌ 403 Policy doesn't allow |
server remove volume (root) |
❌ 403 Can't detach root device |
server set --password |
✅ работает (qemu-guest-agent), НО PasswordAuthentication no в sshd |
server rebuild --key-name |
✅ работает, стирает root volume |
volume snapshot create --force |
✅ работает на in-use volume |
При потере SSH доступа — единственный CLI-only путь это rebuild с потерей конфигов. Альтернатива — noVNC console через браузер с паролем установленным через set --password.
Тариф (одинаковый для всех 5 VM)¶
| Параметр | Значение |
|---|---|
| Платформа | Intel Cascade Lake (Xeon Gen2) |
| vCPU | 1 шт. |
| RAM | 2048 МБ |
| Disk | 20 ГБ |
| Цена | 1 534 ₽/мес (≈51.13 ₽/день) |
Биллинг — апрель 2026 (1-15 Apr)¶
| Категория | Сумма |
|---|---|
| Compute (10 × 1 534 ₽) | 6 975.22 ₽ (за 14 дн.) |
| Floating IP / network | 1 100.87 ₽ |
| Доп. трафик / egress | 660.22 ₽ |
| Прочие сервисы | 73.27 ₽ |
| Итого за 15 дней | 8 809.58 ₽ |
| Экстраполяция на месяц | ~17 620 ₽ (≈587 ₽/день) |
Из них: - Компьют: 15 340 ₽/мес (10 нод × 1 534) - Сеть/IP/прочее: ~2 280 ₽/мес
Баланс¶
| Лицевой счёт (16 Apr) | 6 830.75 ₽ |
| Расход в день (до консолидации) | ~587 ₽ |
| Расход в день (после консолидации) | ~330 ₽ (5 VMs × 51 ₽ + сеть) |
| Runway после консолидации | ~21 день → до 2026-05-07 ✅ |
После консолидации расход почти в 2 раза меньше — баланса хватит до начала мая. Текущая таблица биллинга выше отражает расход ДО консолидации (1-15 Apr на 10 нод).
Список нод — снапшот ДО консолидации (на 16 Apr 21:08 MSK)¶
⚠️ Эта таблица отражает состояние до удаления 6 VMs. После консолидации остались только srv-01/02/03/07/test (см. карту выше). После миграций FIP трафик перераспределился между ними — нагрузка на каждой выросла, но запас по CPU/conntrack пока в норме.
| Hostname | IP (Float) | Uptime | CPU% (5m) | Mem% | Disk% | RX Mbps | TX Mbps | conntrack | TCP est | Заметки |
|---|---|---|---|---|---|---|---|---|---|---|
| whitelist-vk-01 | 212.233.123.88 | 22.3 d | 25.7 | 24.0 | 29.4 | 590 | 589 | 28 674 | 4 | ⚡ горячая, 50% всего трафика |
| whitelist-vk-02 | 90.156.214.48 | 1.0 d | 7.8 | 22.4 | 31.4 | 119 | 118 | 3 922 | 12 | 🆕 недавно перезагружена |
| whitelist-vk-03 | 90.156.213.143 | 22.3 d | 10.1 | 22.1 | 27.8 | 102 | 102 | 4 899 | 4 | |
| whitelist-vk-04 | 83.166.239.199 | 22.3 d | 7.7 | 22.1 | 27.7 | 74 | 74 | 4 003 | 4 | |
| whitelist-vk-05 | 83.166.238.168 | 22.3 d | 6.9 | 22.1 | 27.9 | 57 | 57 | 4 804 | 4 | |
| whitelist-vk-06 | 185.241.195.242 | 22.3 d | 7.7 | 22.6 | 27.3 | 97 | 97 | 4 202 | 5 | new float 9 Apr |
| whitelist-vk-07 | 90.156.218.106 | 22.3 d | 5.3 | 21.8 | 17.3 | 48 | 48 | 2 173 | 7 | |
| whitelist-vk-08 | 185.241.195.196 | 22.3 d | 0.7 | 20.6 | 17.5 | 0 | 0 | 10 | 4 | 💤 idle, 0 трафика — кандидат на ребаланс/вывод |
| whitelist-vk-09 | 185.241.195.139 | 22.3 d | 6.0 | 20.4 | 17.4 | 53 | 52 | 3 117 | 4 | new float 9 Apr |
| whitelist-vk-10 | 185.241.195.81 | 22.3 d | 3.7 | 20.4 | 17.2 | 16 | 16 | 1 810 | 4 | new float 9 Apr |
Σ: ~1.15 Gbps вход / 1.15 Gbps выход, 57 614 conntrack, ~9.5% средняя CPU.
Анализ vk-01 (горячая нода)¶
Несмотря на 590 Mbps × 2 — ноду не выкручивает:
| Метрика | Текущее | Лимит | Запас |
|---|---|---|---|
| conntrack | 24 406 | 131 072 | 5.4× |
| CPU (мгновенно) | 3.3% (sys+softirq) | 100% | 30× |
| NIC errors/dropped | 0 / 0 | — | чисто |
| NIC missed | 0 | — | чисто |
| Softnet drops | 0 | — | чисто |
| qdisc fq drops | 17 354 / 40 млрд (0.00004%) | — | per-flow shaping, не overload |
| Ring buffer RX/TX | 256 (max железа) | — | без переполнения |
Реалистичный потолок одной 1-vCPU ноды: ~1.5–2 Gbps до того как softirq упрётся в CPU0. Multi-queue NIC недоступен на 1 vCPU.
Особенности и инциденты¶
- 9 Apr 2026: массовая потеря floating IP — vk-06/08/09/10 получили новые IP (старые остались привязаны к удалённым флоат-аллокациям). См.
incidents/. - whitelist-vk-08 — idle 22 дня (0 conntrack, 0 трафика): кандидат на вывод или перебалансировку. Рекомендуется разлить часть нагрузки vk-01 (~590 Mbps) на vk-08.
- vpn-whitelist-de-01 / nl-01 / at-01 — старые YC ноды, DECOMMISSIONED (заменены на whitelist-vk-*).
Рекомендации¶
- Балансировка: перевести часть vless-маршрутов с vk-01 (590 Mbps) на vk-08 (0 Mbps) — экономии нет, но потолок дальше.
- vk-02: только 1 день uptime — выяснить причину последнего ребута (плановый или авария).
- Вывод vk-08: если редистрибуция не востребована, можно отключить → -1 534 ₽/мес.
- Floating IP audit: проверить, что все 10 IP оплачены (после инцидента 9 Apr).
Связанные страницы¶
- Whitelist архитектура — как nftables DNAT работает
- Камуфляж WL
- Инвентаризация серверов
- Провайдеры: TheHosting | MonoVM | DataPacket | LLhost | VDSina