Когда рабочий телефон Феликса зазвонил в два часа ночи, Келли перекатилась с другого края кровати, толкнула его в плечо и прошипела:
- Какого чёрта ты не выключил его, когда ложился спать?
- Такого, что я на дежурстве, - ответил он.
- Ты ж не врач, черт подери, - она пихнула его ногой, пока он на краю кровати натягивал штаны. - Всего лишь сисадмин.
- Такая у меня работа.
- Они пашут на тебе, как на проклятом. Сам знаешь, что я права, - сказала она. - Господи, ты же теперь отец и не должен убегать из дома каждую ночь только потому, что у кого-то кончилась порнуха. Не бери трубку.
Он знал, что она права, но взял трубку.
- Основные маршрутизаторы недоступны. BGP недоступен, - сообщил механический голос. Системному монитору наплевать на грубости, так что Феликс выругался и почувствовал себя немного лучше.
- Может, удастся разобраться отсюда...
В теории, он мог залогиниться к бесперебойнику серверной и перезагрузить роутеры. Сам UPS располагался в другом сетевом блоке с отдельными роутерами, подключёнными к собственным источникам бесперебойного питания.
- За пять лет нашего брака у тебя ни разу не получилось что-нибудь исправить отсюда, - Келли уже сидела на кровати, словно мутная тень на фоне спинки.
Тут она ошибалась: он постоянно что-то чинил из дома, только делал это тихо, так что она просто не помнила. С другой стороны, в её словах была доля правды. Записи Феликса свидетельствовали, что после часа ночи исправить что-то без поездки в дата-центр почему-то не выходило. Закон Вселенского Извращенства или просто - Закон Феликса.
Через пять минут Феликс был за рулём. Решить проблему из дома не удалось, потому, что сеть с независимыми маршрутизаторами тоже отключилась. В прошлый раз такое случилось, когда какой-то идиот-строитель ковшом экскаватора перебил магистральный кабель, ведущий к дата-центру. В итоге Феликс на неделю присоединился к полусотне взбешённых сисадминов, которые с края получившейся ямы на чём свет стоит материли несчастных рабочих, пока те день и ночь соединяли десять тысяч порванных проводов.
Его телефон звонил в машине ещё два раза. Он позволил мобильнику заглушить магнитолу и через хорошие колонки прослушал новые автоматические сообщения о недоступности других важных элементов инфраструктуры сети. Потом позвонила Келли.
- Привет, - ответил он.
- Не подлизывайся, я ж по голосу всё понимаю.
Он невольно улыбнулся.
- Есть не подлизываться.
- Я люблю тебя, Феликс, - сказала она.
- А я от тебя с ума схожу, Келли. Возвращайся в кровать.
- 2.0 проснулся.
Пока малыш был в утробе, его звали Бетой, а когда отошли воды, Феликс выбежал из офиса с воплем: "Отправлен на золото!" Они стали называть его 2.0 ещё до того, как затих его первый крик. "Маленький засранец просто рождён для того, чтобы титьку сосать."
- Извини, что разбудил тебя, - сказал он.
Он почти доехал до дата-центра. В два часа ночи на дороге - ни души. Перед въездом в подземный гараж Феликс притормозил, чтобы договорить.
- Дело не в том, что разбудил, - объяснила она. - Ты там уже семь лет работаешь, у тебя три помощника. Отдай телефон им. Ты своё отъездил.
- Не люблю просить своих подчинённых о том, чего не стал бы делать сам.
- Ну пожалуйста, хватит, - попросила она. - Ненавижу просыпаться одна. Я всю ночь скучаю по тебе.
- Келли...
- Я больше не злюсь. Просто скучаю по тебе - вот и всё. С тобой мне снятся хорошие сны.
- Ну ладно, - сказал он.
- И всё?
- Именно. Всё. Не могу думать о том, что без меня тебе снятся плохие сны, да и своё я действительно уже отработал. Теперь буду выезжать только на один ночной вызов перед выходными.
- У сисадминов не бывает выходных, - засмеялась Келли.
- У этого - будут, - пообещал он.
Феликс зарулил в подземную парковку, предварительно прислонив магнитный ключ к считывателю, а затем и свой мутный зрачок - к сканеру сетчатки, чтобы тот насладился видом его невыспавшегося глазного яблока. По пути в серверную он вытряс из автомата гуараново-медафонильный энергетический батончик и убийственный искуственный кофе в чашке-непроливайке. Запихнув в себя и то, и другое, он позволил биометрическому замку изучить свою руку. Наконец, дверь с шипением отворилась, обдув его воздухом из шлюза, и Феликс оказался в святилище.
Там был хаос. Машинный зал рассчитан на то, чтобы в нём могли развернуться два или три сисадмина, не больше, а каждый оставшийся кубический сантиметр отдан жужжащим серверным стойкам, маршрутизаторам и приводам. Сегодня в серверной оказались зажаты не менее двух десятков сисадминов. Типичное сборище: чёрные футболки с малопонятными надписями и животы, свисающие через ремни с пристёгнутыми на них мобильниками и инструментами.
Обычно в серверной так холодно, что можно замёрзнуть, но такое скопление людей выделяло потоки тепла, перегревавшие небольшое замкнутое пространство. Когда Феликс вошёл, пять или шесть человек подняли головы и изобразили подобие улыбки на лице. Пара поприветствовала его по имени. Феликс подобрал живот и протиснулся к стойке своей компании - Ardent.
- Феликс, - позвал его Вэн, который не должен был дежурить этой ночью.
- Что ты тут делаешь? - спросил Феликс, - Хочешь, чтобы мы завтра на работе оба убитые были?
- Что? А. Тут мой собственный сервер. Когда он отвалился примерно в 1:30, меня разбудил его процесс-монитор. Надо было позвонить и сказать, что я сюда еду - не пришлось бы тебе тащиться.
Личный сервер Феликса, который он делил с пятью друзьями, стоял этажом ниже. Ему стало интересно, не отключился ли и его комп тоже.
- Что случилось?
- Массированная атака флэш-червя. Какой-то урод с эксплойтом нулевого дня, похоже, заставил все Windows в сети прощупывать каждый блок IP по методу Монте-Карло. Включая IPv6. Доступ к админскому интерфейсу больших цисок идёт по v6, и если к ним присасывается более десяти зондов, они падают. В итоге почти все пункты межсетевого обмена лежат. С DNS тоже свистопляска - очень может быть, что они ещё с прошлой ночи стали распространять испорченную информацию. Ах да, а ещё есть компонент, который прочёсывает адресную книгу и рассылает по почте и мессенджерам вполне себе убедительные сообщения, заводит разговор с помощью бота вроде Eliza, натасканного на письмах из почтового ящика, и уговаривает открыть трояна.
- Пипец.
- Ага.
Вэн был сисадмином типа Б: под два метра ростом, длинные волосы, завязанные в хвост, большой прыгающий кадык. На его костлявой груди висела футболка с надписью "ВЫБЕРИ ОРУЖИЕ". Чуть пониже был нарисован ряд D&D-шных многогранных костей. Сам Феликс относился к типу А: лишних тридцать килограмм и ухоженная, но густая бородища, скрывающая лишние подбородки. На его футболке красовалась надпись HELLO CTULHU, под которой обнаруживался кавайный безротый Ктулху в стиле Hello Kitty.
Вэн и Феликс познакомились пятнадцать лет назад в Usenet-е, потом встретились уже в реале на фринетовской пивопойке, вместе ездили на пару стартрековских конвентов. В конце-концов Феликс позвал Вэна работать под своим началом в Ardent. Вэн был надёжен и пунктуален. Он получил диплом инженера-электротехника и хранил стопку блокнотов на пружине, в которые методично вносил каждое предпринятое действие, отмечая дату и время.
- На этот раз дело даже не в ПМКК, - сказал Вэн. Почтовые трояны относились к категории ПМКК, то есть проблемы с Прослойкой Между Креслом и Клавиатурой. Если бы люди были достаточно умны и не открывали подозрительные вложения, такие трояны давно остались бы в прошлом. Но к червям, сожравшим маршрутизаторы Cisсo, юзвери отношения не имели. Проблема была в некомпетентных программистах.
- Да, опять в Microsoft напортачили, - сказал Феликс, - Если я на работе в два часа ночи, виноваты либо ПМКК, либо мелкомягкие.
***
В итоге они просто отсоединили эти проклятые роутеры от интернета. Не сам Феликс, конечно, хотя у него руки чесались сделать это и перезагрузить их, отрубив интерфейсы, работающие по IPv6. Это сделала парочка абсолютно непохожих друг на друга BOFH-ов. Чтобы получить доступ к админской, они должны были одновременно провернуть в замочных скважинах два ключа - прямо как часовые в ракетных шахтах. 95 процентов внешнего траффика Канады проходило через это здание. С безопасностью тут было покруче, чем в большинстве ракетных шахт.
Феликс и Вэн поднимали ардентовские серваки по одному. Их сразу же принимались бомбить черви - перевести маршрутизаторы в рабочее состояние значило подвергнуть нижестоящие сегменты сети атаке. Каждая машина в Сети или утопала в червях, или атаковала сама, или делала то и другое сразу. После сотни таймаутов Феликсу удолось достучаться до Bugtraq и NIST, чтобы скачать несколько патчей для ядра, которые должны были облегчить нагрузку от атак червя на его машины.
Было уже десять утра, и он был готов сожрать хоть задницу дохлого медведя, но нашёл в себе силы перекомпилировать ядра и вернуть компы в строй. Длинные пальцы Вэна летали по административной клавиатуре, когда он, высунув кончик языка, прогонял на машинах тесты на загруженность.
- У Гридо было двести дней аптайма, - сказал Вэн.
Greedo был самым старым сервером в стойке, работавшим ещё с тех дней, когда они называли компы именами персонажей из "Звёздных войн". Потом новые машины стали именовать в честь смурфов, а когда смурфы закончились, в ход пошли персонажи из Макдональдлэнд - начиная с ноута Вэна, который окрестили "Майором Макчизом".
- Гридо восстанет из пепла, - ободрил Вэна Феликс. - У меня там внизу "четвёрка", которая уже пять лет пашет. Сердце разрывается её ресетить.
- Начерта тебе 486?
- Просто так. Но у кого же поднимется рука выключить машину с пятилетним аптаймом? Это ж как собственную бабушку усыпить.
- Жрать хочу, - пробурчал Вэн.
- Знаешь, что я тебе скажу? - ответил Феликс. - Сейчас мы поднимем твой комп, потом мой. Я отвезу тебя в "Лейквью Ланч", и мы позавтракаем пиццей, а потом я дам тебе отгул на весь оставшийся день.
- Замётано, - ответил Вэн, - Чувак, мы, салаги, тебя недостойны. Тебе бы нас в яму загнать и лупить, как другие начальники делают. Только этого мы и заслуживаем.
***
- Твой мобильник, - сказал Вэн.
Феликс выбрался из внутренностей "четвёрки", которая никак не хотела включаться. Он выпросил лишний блок питания у ребят, которые занимались спамом и пытался запихнуть его на место. Вэн подал ему телефон, который Феликс уронил, когда пытался добраться до задней стенки компьютера.
- Привет, Кел, - сказал он. На заднем плане из трубки было слышно какое-то странное сопение. Помехи что ли? 2.0 плескается в ванне? - Келли?
Линия сдохла. Он попытался перезвонить, но у него ничего не вышло - ни гудков, ни предложения оставить голосовое сообщение. В конце-концов телефон выдал "Ошибку сети".
Феликс тихонько выругался и пристегнул мобильник обратно на пояс. Наверное, Келли хотела узнать, когда он вернётся домой или попросить его чего-нибудь прикупить для семьи. Оставит голосовое сообщение.
Когда телефон зазвонил вновь, Феликс проверял блок питания. Он оторвал трубку от ремня и ответил.
- Келли, ну что такое? - он попытался очистить свой голос от раздражения и других подобных эмоций. Он чувствовал себя виноватым: грубо говоря, он был совершенно свободен с тех пор, как ардентовские сервера вернулись в онлайн. Три последних часа он занимался исключительно личными делами (даже если и собирался стрясти деньги за них с компании).
В трубке послышались рыдания.
- Келли? - он почувствовал, как кровь отлила от его лица, а ноги онемели.
- Феликс, - сказала она едва различимо сквозь слёзы, - Он мёртв, господи, он мёртв!
- Кто? Кто, Келли?
- Уилл.
Уилл? он задумался. Что ещё за чёрт побери... - Он сел на колени. В свидетельстве о рождении они вписали имя "Уильям", хотя всё время потом называли его 2.0. Феликс издал болезненный стон.
- Мне плохо, - произнесла она. - Я даже стоять не могу. О, Феликс, я так тебя люблю!
- Келли? Что происходит?
- Все, все... - сказала она, - По телевизору осталось только два канала. Боже, Феликс, за окном как в "Рассвете мертвецов"... - Он услышал, как её вырвало. Связь стала ухудшатся, размывая звуки того, как её тошнит, словно по эхоплексу.
- Никуда не уходи, Келли! - крикнул он, и сигнал оборвался. Феликс набрал 911, но мобильник снова выдал ошибку сети, не успел он подтвердить набор.
Он выхватил Майора Макчиза из рук Вэна, воткнул в него сетевой кабель "четвёрки", запустил "Файрфокс" из командной строки и нагуглил сайт городской полиции. Быстро, но без мандража, нашёл веб-форму для заявок. Феликс никогда не терял головы. Он решал проблему, а паника проблем не решает.
Феликс нашёл онлайновую форму и вписал туда детали своего с Келли разговора, словно заполняя багрепорт. Его пальцы быстро бегали по клавишам, его описания были детальными. Наконец, он нажал "отправить".
Вэн читал через его плечо.
- Феликс... - начал он.
- Господи, - произнёс Феликс. Он сидел на полу админской и медленно приводил мысли в порядок. Вэн взял ноутбук и попытался зайти на какие-нибудь новостные сайты, но все они выдавали таймаут. Было невозможно сказать точно, почему так происходило, из-за того ли, что произошло нечто ужасное, или потому, что Сеть сдалась под напором сверхчервя.
- Мне нужно домой, - сказал Феликс.
- Я сяду за руль, - ответил Вэн, - а ты будешь дозваниваться своей жене.
Они добрались до лифтов. Тут было одно из немногих окон здания, иллюминатор из толстого пуленепробиваемого стекла. Пока лифт шёл, они решили заглянуть в него. Маловато машин для среды. А полицейских больше обычного что ли?..
- О господи... - Вэн ткнул пальцем в стекло.
Башня CN, возвышавшаяся над городом, словно огромная игла из слоновой кости, виднелась вдали к востоку от них. Она накренилась, словно палка, воткнутая в мокрый песок. Двигалась ли она? Двигалась. Сначала медленно, а потом всё быстрее и быстрее, башня падала по направлению к северо-востоку, на деловой квартал. Секунду спустя она надломилась и рухнула вниз. Ударная волна сначала докатилась до их мозгов и только потом до ушей, когда затрясло всё здание. Над местом происшествия поднялось облако пыли, а падающая башня продолжала прошивать одно здание за другим, и грохот не утихал.