16 KiB
Executable File
title, created, updated, type, namespace, tags, related
| title | created | updated | type | namespace | tags | related | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Kraken Network & Infra | 2026-05-23 | 2026-09-23 | tech | personal |
|
|
Kraken Network & Infra
🔴 SSH-доступ: ходим по .14 (провод). .15 ОТКЛЮЧЁН (обновлено 2026-09-23)
ssh kraken # → DNS отдаёт .14 (провод) ✅
ssh kraken@192.168.1.14 # → провод, основной путь
Alex (2026-09-23): «.15 это wifi, мы по .14 ходим». WiFi wlan0 в итоге выключен —
.15 больше не выдаётся.
| Интерфейс | IP | MAC | Роль |
|---|---|---|---|
| eth0 | 192.168.1.14/24 |
2c:cf:67:64:03:f3 |
primary, default metric 100 |
| wlan0 | — (DOWN) | 2c:cf:67:64:03:f4 |
отключён 2026-09-23 |
🔴 192.168.1.15 НЕ мёртвый — прежний вывод «.15 мёртвый» был ложным (один
таймаут принят за факт). Причина обрывов ssh — не адрес:
- перегрузка sshd после ребута (
load average: 4.69); - 🔴
sudoбез< /dev/nullрвёт соединение — любая sudo-команда по SSH; - тяжёлый
jqв одной строке сssh(json 180 KB) — обрыв.
Обход: короткие команды, тяжёлое — файлом-скриптом, sudo … < /dev/null.
🔴 DNS-имя kraken указывало на WiFi — ✅ РЕШЕНО (без ребута роутера)
Причина: dhcp_staticlist нёс имя kraken у обоих интерфейсов, плюс
/jffs/configs/dnsmasq.conf.add имел address=/kraken/192.168.1.15.
БЫЛО: <2C:CF:67:64:03:F3>192.168.1.14>kraken> ← eth0
<2C:CF:67:64:03:F4>192.168.1.15>kraken> ← wlan0, дубль имени
address=/kraken/192.168.1.15 ← жёстко на WiFi
СТАЛО: <2C:CF:67:64:03:F3>192.168.1.14>kraken>
<2C:CF:67:64:03:F4>192.168.1.15> ← имя снято
address=/kraken/192.168.1.14 ← на провод
🔴 Питфолл: живая DHCP-лиза ПЕРЕБИВАЕТ address= — но решается БЕЗ ребута роутера.
Рабочий лиз-файл dnsmasq лежит в /tmp/var/lib/misc/dnsmasq.leases (не в /var/lib/),
и service restart_dnsmasq не убивает процессы — старый ответ остаётся в памяти.
Фикс: почистить /tmp-файл + killall -9 dnsmasq + service restart_dnsmasq.
✅ Проверено 2026-09-23: dig +short kraken → 192.168.1.14, ребут роутера не делали.
Как проверить:
ssh -i ~/.ssh/id_rsa admin@192.168.1.1 'grep kraken /etc/dnsmasq.conf' # применённый
ssh -i ~/.ssh/id_rsa admin@192.168.1.1 'cat /tmp/var/lib/misc/dnsmasq.leases' # рабочий файл
dig +short kraken @192.168.1.1
Бэкапы: /jffs/dhcp_staticlist.bak.20260923-214309,
/jffs/configs/dnsmasq.conf.add.bak.20260923-214309.
Полный разбор — скилл home-network-config § «РЕШЕНО БЕЗ РЕБУТА»,
personal/plans/lampac-watched-to-watchlist §8.3.1.
✅ ASUS 192.168.1.1 по SSH работает: ssh -i ~/.ssh/id_rsa admin@192.168.1.1
(не root@). Правки DNS/nvram — по SSH, веб-UI не нужен.
SSH Access
ssh kraken@192.168.1.14
SSH alias kraken резолвится через ~/.ssh/config (proxy-команда: если есть
10.99.0.2 — идём на 10.99.1.2, иначе nc kraken 22 → DNS → .15).
⚠️ WG-туннель с Mac сейчас не поднят (10.99.0.2 нет) → уходит в LAN-ветку.
Актуальная сеть (уточнено 2026-09-23)
✅ У Кра́кена ДВА MAC — по одному на интерфейс. Прежняя запись «
.15числится за eth0, отдельного WiFi-MAC в ARP нет» неверна: eth0 =…:f3, wlan0 =…:f4(подтвержденоip -br addrиdhcp_staticlist).
| Интерфейс | IP | MAC | Uplink role |
|---|---|---|---|
| eth0 (Ethernet, Gigabit RPi5 rp1-gem/macb) | 192.168.1.14/24 (DHCP) |
2c:cf:67:64:03:f3 |
primary — default via 192.168.1.1, metric 100 |
| wlan0 (WiFi) | — DOWN (адрес снят 2026-09-23) | 2c:cf:67:64:03:f4 |
отключён |
- ✅ eth0 линк на 2026-09-22 = 1000 Mbit/s full duplex (
ethtool eth0:Speed: 1000Mb/s,Duplex: Full,Link detected: yes, master-slave status: slave). Роутерный порт (Port 3) тоже1000FD. Гигабит восстановлен после замены патч-корда 2026-09-04. - Router/gateway:
192.168.1.1(f0:79:59:77:9b:70). eth0 MAC соответствует static lease в доке family/how-to/openmediavault-rpi5. - ⚠️ Ранее эта заметка утверждала «wlan0 = .15 primary» — устарело (см. таблицу выше).
Измерения латентности через роутер (2026-09-22)
Снято с Rasputin (OpenWrt, 192.168.6.1, WAN 192.168.1.50 — см. family/how-to/rasputin-router):
Rasputin → Кра́кен eth 192.168.1.14: 0.499 / 0.639 / 0.897 ms 10/10, 0% loss
Rasputin → Кра́кен 192.168.1.15: 0.444 / 0.641 / 1.037 ms 10/10, 0% loss
С Mac (192.168.1.57, Wi-Fi en0 802.11ac 5GHz 80MHz):
Mac → роутер 192.168.1.1: 0.622 / 1.006 / 1.308 ms 0% loss
Mac → ТВ 192.168.1.70: 0.596 / 2.295 / 26.874 ms 0% loss (через Wi-Fi ТВ)
Mac → Кра́кен 192.168.1.15: 1.321 / 3.169 / 4.233 ms 0% loss
🔴 Пропускная способность (throughput) нигде не измерена — все цифры выше это латентность (RTT), не скорость. 1000FD в robocfg/ethtool — это link speed, согласованная скорость линка, а НЕ реальные Мбит/с. Три разных величины, которые легко спутать:
| Мера | Инструмент | Что отвечает |
|---|---|---|
| Link speed | ethtool / robocfg / sysfs speed |
согласованная скорость линка (потолок) |
| Throughput | iperf3 |
реальные Мбит/с через линк |
| Интернет | speedtest | что даёт провайдер |
Состояние iperf3 (2026-09-22):
Распутин: iperf3 3.17.1 ✅ (opkg install iperf3)
Кра́кен: iperf3 3.12 ✅ (apt-get install iperf3)
Mac: НЕ установлен
⚠️ На OpenWrt в комплекте уже были libiperf3 и python3-iperf3 — это библиотеки, не бинарь. Проверять which iperf3, а не opkg list-installed | grep iperf.
Замер ещё НЕ сделан. Блокер: sshd на Распутине отказал (Connection refused при живом пинге). Партнёр готов, на Кра́кене сервер поднят на :5201. Команды:
# на Кра́кене
nohup iperf3 -s -p 5201 > /tmp/iperf3s.log 2>&1 &
# на Распутине
iperf3 -c 192.168.1.14 -p 5201 -t 10
⚠️ Гигабитный линк физически даёт максимум ~940–950 Мбит/с (оверхед Ethernet). На NanoPi R5S реальный потолок может быть ниже — упрётся в CPU.
Проверка скорости линка — команды (проверено 2026-09-22)
# Кра́кен (RPi5, ethtool есть)
ssh kraken 'ethtool eth0 | grep -E "Speed|Duplex|Link detected"'
# ТВ (webOS, ethtool НЕТ → только sysfs)
ssh -i ~/.ssh/id_rsa root@192.168.1.70 'cat /sys/class/net/eth0/speed; cat /sys/class/net/eth0/duplex'
# Роутер Бишкек (Merlin) — скорость порта свитча
ssh admin@192.168.1.1 'robocfg show'
# Rasputin (OpenWrt) — скорость WAN
ssh root@192.168.6.1 'cat /sys/class/net/eth0/speed'
🔴 robocfg show на Merlin показывает 1000FD по порту, но это НЕ значит, что партнёр на гигабите. Порт 4 показывал 1000FD, при этом USB-адаптер Mac отдавал 100baseTX — рассинхрон. Доверять надо цифре на клиенте (ethtool / /sys/class/net/*/speed), а robocfg — только как второе мнение.
ETH-линк ТВ: 100 Мбит — это ПОТОЛОК ЖЕЛЕЗА ТВ (уточнено 2026-09-22)
ТВ 192.168.1.70 (MAC ac:5a:f0:25:11:c6) подключён кабелем, и его eth0 держит 100 Mbit/s full duplex (подтверждено чтением /sys/class/net/eth0/speed → 100).
🔴 Это предел сетевой карты телевизора, а НЕ кабеля. Проверено с заведомо гигабитным патч-кордом — ТВ всё равно отдаёт 100 и больше не даёт. Не диагностировать как «битый/полуживой кабель», не менять патч-корд, не искать гигабит: модель физически не умеет.
⚠️ Ранняя версия этой заметки (2026-09-04) объясняла 100M «downshift из-за плохого провода» по аналогии с Kraken — это была неверная гипотеза. Причина у ТВ другая: ограничение самой сетевой карты. У Kraken причина была своя (патч-корд, заменён 2026-09-04 → линк 1000 full, подтверждено 2026-09-22). Не переносить вывод с одного устройства на другое.
⚠️ На роутере порт ТВ «мигает» между состояниями в течение сессии: сначала MAC ТВ виден на Port 1 (DOWN в robocfg, но MAC присутствует в FDB моста br0), затем порт ТВ переехал в Port 4 (1000FD). То есть кабель ТВ перекладывали. Вывод о линке всегда проверять заново — он менялся прямо в ходе диагностики.
⚠️ Порт 1 у Merlin может показывать DOWN и одновременно держать MAC клиента в brctl showmacs br0. Это не противоречие в данных — это признак, что интерфейс был перенесён; MAC удерживается ageing-таймером FDB. Не строить вывод на одном robocfg.
Хранилище Kraken — USB (проверено 2026-09-04)
Единственный диск sda (Toshiba MQ01UBB200, 1.8TB) подключён напрямую в порт USB3/SS RPi5, НЕ через хаб — Sysfs путь /.../xhci-hcd.0/usb2/2-1, speed 5000 Mbps. lsusb -t: Dev 2 на Bus 02 (5000M). Линк USB3 настоящий (не USB2).
Скорость чтения диска ~95 МБ/с (dd direct + buffered, по remux-файлу): это не USB-узкое место, а физический предел 5400rpm 2.5" ноутбучного HDD (максимум ~100–110 МБ/с на внешних дорожках). Для сравнения потолок USB2 ≈ 35–40 МБ/с. USB3.0 линк подтверждён (5000M). Вывод: для скорости >200 МБ/с нужен SSD/7200rpm, текущий механик упрется в ~95–110 МБ/с.
Хабы (Super Top 1-1.2, Huasheng «USB2.0 HUB» 1-1) висят на Bus 01 (USB2, 480M) и пустые — к ним ничто не подключено.
Монтирование: /dev/sda1 (ext4, UUID 6194539b-03e0-4f33-986b-4da09834e82f) → /srv/dev-disk-by-uuid-6194539b-...; старый путь 49e8f586... — symlink на него.
Клиент — LG webOS TV (192.168.1.75 WiFi / 192.168.1.70 Ethernet) (проверено 2026-09-04)
По SSH root@192.168.1.75 или root@192.168.1.70 (~/.ssh/config .75, id_rsa; выводит post-quantum warning — ок). Host LGwebOSTV, ядро 4.4.84 armv7 (webOS). ТВ имеет два MAC: WiFi 54:77:87:ce:fb:b3, Ethernet ac:5a:f0:25:11:c6 (этот = static lease в роутере .75).
Состояние на конец сессии 2026-09-04: ТВ переведён на провод (пользователь воткнул патч-корд в роутер) → WiFi wlan0 DOWN, eth0 UP. После этого IP сменился: проводной интерфейс получил 192.168.1.70 (старый .75 больше не отвечает, ping 100% loss). ⚠️ eth0 ТВ линк = 100 Mbit/s full duplex (carrier up, speed=100) — то есть тот же downshift на 100M, какой был у Kraken (см. ниже). Провод 100M медленнее, чем WiFi (867 PHY ≈ 400+ реальных Мбит/с) → переключение на полуживой кабель — регресс., если не поменять патч-корд ТВ↔роутер на рабочий гигабитный.
Сводка по линкам ТВ (до переключения на провод, WiFi .75):
- Wi-Fi клиент был: SSID ASUS5, BSSID
f0:79:59:77:9b:74, канал 153 / 5765MHz / width 80MHz (5 GHz, 802.11ac), signal -53 dBm (отличный), TX link rate 867.0 MBit/s PHY (2-поток 80MHz AC — потолок карты), txpower 15 dBm. - Реальный TCP-пропуск ≈ 50–60% PHY ≈ 400–500 Мбит/с при таком сигнале — это в разы больше 99 Мбит/с remux'а, так что WiFi ТВ не узкое место. Торможение 4K сохранялось и на WiFi, и позже подтверждено на сотне-проводе.
Forensics торможения (проведено вживую при воспроизведении Project Hail Mary, Direct Play):
- Транскода НЕТ: 0 ffmpeg-процессов,
/config/transcodesпуст, CPU Kraken load ~0.1 — сервер простаивает. - Сервер отдаёт всего ~21 Мбит/с (eth0 tx) при файле ~27 Мбит/с — сеть и диск с запасом ×10+.
- Wi-Fi ТВ-интерфейс за время стрима: rx_crc_errors=0, tx_retries delta=0, signal постоянно -53 dBm — радио чистое, не деградирует.
- Вывод: все сетевые/дисковые/радио-счётчики чисты, линки имеют запас, а Direct Play НИЗКОбитрейтного (24-27 Мбит/с) 4K всё равно подёргивается → причина в программном декодере/буфере клиента «Jellyfin for WebOS 1.2.2», а не в инфраструктуре. См. arr-stack-kraken «Известные проблемы». Плюс если смотреть через провод — линк ТВ сейчас 100M (тоже слабое место для remux).
WireGuard Topology
Split-tunnel: Eagle ↔ VPS ↔ Kraken. Full details: tech/wireguard-vpn.
- Eagle:
10.99.0.2, Kraken:10.99.1.2, VPS relay:10.99.0.1/10.99.1.1 wg-auto.shon Eagle (LaunchDaemon) — up when off home Wi-Fi, down at home- VPS as relay; two interfaces (wg0/wg1) avoid hairpin forwarding
Media Volume Mount Paths
Docker containers on Kraken mount media from NAS over NFS/SMB.
Paths were documented here — check docker-compose files in
/opt/media-toolbox-kraken for current mount config.