Неделя 32 // Точка присутствия
Объект «Северный», транзитный узел на границе связи. Холодная пайка, отвалившаяся силовая дорожка, заблокированный порталом cron и канифоль против системы.
Густой туман с реки пах мхом и сырой землей. Старый УАЗик мягко покачивался на ухабах грунтовой дороги, проложенной вдоль полуразрушенных деревянных срубов. В наушниках глухо чеканил ритм Skinny Puppy — темная, плотная электроника идеально ложилась на этот пейзаж.
Мы приехали к объекту «Северный». Трехэтажный короб из темного бетона, заброшенный еще в девяностые, стоял на отшибе, среди бурьяна. Формально — территория города, фактически — глухая периферия, где связь держалась исключительно на наших плечах.
— Нам нужно снять логи и прогнать тесты с транзитного коммутатора, — Михалыч посветил фонарем на обшарпанную дверь. — Из Центрального Хаба пришел запрос. Если до полуночи узел не подтвердит статус, они автокритом заблокируют весь сегмент.
Мы поднялись на второй этаж. В бывшей операторской пахло озоном, пылью и старой изоляцией. В центре комнаты высилась стойка: современные оптические модули Корпорации соседствовали с ржавыми клеммниками эпохи проводных телефонов.
Окисел и код
Я подключил сервисный ноутбук к консольному порту. Терминал отозвался, но линк на внешнем порту так и не поднялся. Индикатор питания на блоке ввода искрил и гас.
— Влажность, — коротко сказал Санёк, поднося мультиметр к контактам. — На плате ввода силовая дорожка отслоилась, холодная пайка. Окислилась от времени и отвалилась.
Вот она, реальность: высокие технологии уперлись в отвалившуюся пайку на старой плате. Никаких катастроф — обычный технический затык.
— Запитывай станцию, — я достал из кейса газовый паяльник и скальпель.
Пока Санёк держал фонарь, я аккуратно зачистил окислившийся пятак на печатной плате, снял слой лака и залудил контакт. Запах канифоли смешался с холодным воздухом заброшки. Точечное касание жалом, тонкая перемычка из провода МГТФ — и блок питания тихо загудел. На лицевой панели коммутатора зажглась цепочка диодов. Физический уровень был восстановлен. Оставался логический.
# Попытка добавить задачу в системный планировщик:
$ crontab -e
Error: cron daemon is disabled by Corporate Security Policy (Policy #104-B).
Офисные параноики из Службы Безопасности заблокировали cron на всех мобильных терминалах. Но мне нужно было каждые три минуты отправлять пакетами метрики на серваки в Центр, иначе сессия сбрасывалась. Сидеть и нажимать Enter вручную полтора часа на морозе не входило в мои планы.
Двадцать лет в IT и чтение хакерских манифестов научили простому правилу: любая система имеет обходной путь. Я открыл vim и за две минуты набросал скрипт-заглушку:
#!/bin/bash
while true; do
./send_telemetry.sh
sleep 180
done &
Замаскировав процесс под стандартный поток мониторинга температуры, я отправил его в фон. На экране побежали строки:
[OK] Remote node sync: SUCCESS. Telemetry delivered.
В Центральном Хабе кто-то за сотни километров отсюда получил наши метрики. Узел ожил.
Порт назначения
Около двух ночи я вернулся в свой частный дом. Тихо тикал счетчик, за окном шумели старые деревья. Рабочий день закончился, тикет был закрыт, корпоративные демоны укрощены.
Я налил в тяжелый граненый стакан грамм двестипятьдесят густой, темно-янтарной травяной настойки местной сборки. Она обжигала горло терпким холодом и лесом, моментально снимая физический гул в ногах и напряжение в пальцах после работы с паяльником.
Включив старенький монитор, я привычным сочетанием клавиш запустил клиент и зашел в давным-давно знакомый киберпанк-чат. Этому ламповому текстовому узлу было сто лет в обед, но он все еще жил.
Я сделал глубокий глоток настойки и набрал первое сообщение:
«Привет, консольщики. Опять латал дыры в телекоме на краю географии. Корпоратский cron лечится кривым while-циклом, а оптика держится на канифоли и честном слове. Как вы там в своих мегаполисах?»
Я сидел и смотрел, как бегут ники. Прошло три года, как я впервые попал сюда, но я помнил историю каждого аватара, каждый почерк. В этом месте, среди обрывков логов, старых мемов и ночных споров об арч-линуксе и Gibson-е, исчезало ощущение изоляции. Ты понимал, что даже на этой глухой периферии ты — часть одного большого провода.
Настойка грела, настроение поднималось, и меня, как обычно, понесло. Я начал наваливать в чат свой фирменный суровый юмор с полевых выездов, щедро пересыпанный байками про кабельные колодцы и тупость центрального офиса.
Спустя десять минут веселья в окне ввода выскочило системное сообщение:
You have been muted for 60 minutes. Reason: Excessive rowdiness / possible trolling.
Я усмехнулся и откинулся на спинку кресла, сделав последний глоток. Опять кто-то из новых модераторов принял мое приподнятое рабочее настроение за хамство или токсичность. Они просто не понимали — здесь не было ни капли зла. Я слишком любил и уважал этот чат, чтобы кого-то обижать. Но бан — это пустяки. Через час молчание спадет, а народ в канале всё равно поймет, кто это прошел по линии.
За окном в абсолютной темноте хутора тихо шумел ветер. На рабочем терминале ровно мерцал зеленый светодиод.
Сеть работала. И мы всё еще были в ней.