Хабрахабр

[Перевод] Интернет убыточных вещей

Зовите детишек! Сейчас дядя Андрей расскажет рождественскую страшилку об NTP (Network Time Protocol).

Отправитель представился как ведущий инженер-программист компании NetThings UK Ltd. Почти два года назад, в понедельник 16 января 2017 года, в нашу систему баг-репортов BitFolk поступил интересный тикет от постороннего лица.

119. Тема: запрос NTP на IP 85. 232 80.

Привет,

119. Это может показаться странным, но мне нужно настроить сервер NTP по IP-адресу 85. 232. 80.

Что такого особенного в адресе 85.119.80.232? Это IP-адрес одного из NTP-серверов для обслуживания наших клиентов. За несколько недель до этого тикета сервер также был частью проекта NTP Pool.

В конце декабря 2016 года я вывел NTP-серверы BitFolk из общественного пула и заблокировал их для посторонних.
Я так поступил, потому что из-за бага Snapchat NTP на них пошёл необычно большой трафик. Здесь важное слово «был». На самом деле это не вызвало каких-то огромных проблем, просто такой объём трафика выталкивал полезную информацию из базы сохранения сетевого потока Jump фиксированного размера, а я не хотел разбираться с этим во время праздников, поэтому просто отключил публичный доступ к сервису.

Эта статья попала на Hacker News, и там в нескольких комментариях просили вкратце объяснить, что такое NTP, поэтому я добавил этот нетехнический раздел. Если вы знаете технологию, то можете пропустить его.

При использовании нескольких разных компьютеров некоторые из них выдают неточный результат, некоторые могут быть сломаны или вести себя враждебно, но протокол способен распознать «неправильные» часы и учитывать только результат от более точного большинства. Network Time Protocol — это средство, с помощью которого компьютер может использовать несколько других компьютеров, часто со всего интернета в совершенно разных сетях под управлением разных администраторов, чтобы точно определить текущее время.

Они называются серверами Stratum 1. Предполагается, что NTP используется в иерархическом порядке: к нескольким серверам напрямую подключено аппаратное обеспечение для определения точного времени: атомные часы, GPS и т. д. Серверы второго уровня устанавливают своё время по серверам Stratum 1, обслуживают гораздо больше клиентов и так далее.

В вашей собственной компании мог стоять один или два таких сервера, но на самом деле приходилось сверяться по крайней мере с 3−7 серверами, и лучше от разных организаций. В прошлые времена бывало трудно найти доступные серверы NTP. Но по мере роста интернета количество запросов росло, в том числе от коммерческих компаний и частных лиц. В университетской среде было проще: вы могли поговорить с коллегами и обменяться доступом к NTP.

Через простой веб-интерфейс желающие добавляли в пул собственные NTP-серверы: они коллективно обслуживались в общей зоне DNS с некоторыми базовыми средствами для распределения нагрузки. На помощь пришёл проект NTP Pool. Частному лицу позволялось указать три имени из пула, и он бесплатно получал три разных (постоянно меняющихся) сервера NTP.

Они перечисляют проекту небольшой взнос — и получают зону DNS, выделенную для их продукта, так что администраторам пула проще направлять трафик. Предполагалось, что коммерческие компании будут обращаться в отдельную «зону вендоров».

NetThings UK Ltd. К сожалению, многие компании не затрудняли себя изучением этих тонкостей и просто использовали общую зону пула. На самом деле этот бесплатный сервис пожертвовала в общий пул компания BitFolk, а из-за временных неудобств услугу отключили. пошла ещё дальше в очень неправильном направлении — и взяла IP-адрес из пула, просто используя его напрямую и предполагая, что он всегда будет доступен.

Возвращаясь к нашей истории…

Ведущий инженер-программист продолжил:

Либо через текущего владельца IP-адреса, либо через миграцию текущей машины на другой адрес, чтобы мы могли арендовать 85. Недавно службу NTP отключили, и мне интересно знать, есть ли какая-то возможность запустить её снова по указанному IP-адресу. 80. 119. 232.

Хм…

Я понимаю, что это странная просьба, но могу заверить вас, что она искренняя.

Очевидно, что 85.119.80.232 используют все наши клиентами как резолвер и NTP-сервер. Просить их всех изменить конфигурацию, чтобы отдать адрес в аренду NetThings UK Ltd. — это не вариант. Поэтому я просто убрал файрвол, так что 85.119.80.232 снова стал работать для NetThings UK Ltd., пока мы не выясним, что можно сделать.

Затем я задал несколько уместных вопросов, чтобы определить объём услуг, которые придётся предоставить:

  • Сколько клиентов у вас используют этот сервер?
  • Вы знаете их IP-адреса?
  • Когда им нужен NTP-сервер и как долго?
  • Можно ли их заставить правильно использовать пул (через зону вендоров)?

Ответы на некоторые вопросы оказались весьма разочаровывающими.

К сожалению, достаточно большое количество оборудования (~500 единиц с еженедельными вызовами NTP) работает по роумингу GPRS SIM. Сервер частично используется нашей производственной системой, где изначально установлены RTC. Мы также не можем удалённо обновить прошивку на этих устройствах, поскольку у них квота по трафику 5 МБ в месяц. Я не знаю, можно ли в этом случае полагаться на исходный IP-адрес APN для настройки файрвола (я проверю). Мы можем обновить их локально, но для этого потребуются месяцы, а не недели.

Судя по всему, NetThings UK Ltd производила термостаты с дистанционным управлением, контроллеры освещения для больших торговых площадей и т. д. Похоже, им в прошивку записали один из IP-адресов BitFolk, и эти устройства нельзя было идентифицировать или удалённо обновить.

И да, в любом случае без внешнего источника времени часы этих устройств начнут заметно смещаться в течение двух недель.

Кстати, они решили свою проблему с жёстко прописанным IP-адресом, подняв локально на своём заводе IP-адрес BitFolk, чтобы установить начальную дату/время.

Признаюсь, на тот момент возникло небольшое искушение идентифицировать эти устройства, выдать им совершенно неправильные данные — и посмотреть, начнут ли некоторые магазины включать и выключать свет в странное время суток.

Это приводит к потоку запросов в одно и то же время каждое воскресенье около 19:45. Вызовы NTP у нас запускает еженедельный крон без балансировки нагрузки на стороне клиента.

Да, они заставили каждое из своих неопознанных устройств стучать на жёстко закодированный IP-адрес в течение двухминутного интервала каждый воскресный вечер.

На самом деле их 500 девайсов никогда не отличались от фонового шума. Ведущий инженер-программист очень волновался, что они стали причиной того избыточного потока, о котором я упоминал ранее, но я заверил, что это определённо баг Snapchat. Они делали это более двух лет, прежде чем возникла проблема. Оказалось, что полтысячи запросов SNTP — довольно лёгкая нагрузка.

Конечно, я отметил их везение, что мы быстро заметили проблему, иначе всё могло закончиться как в деле Netgear против университета Висконсина [когда устройства Netgear зафлудили запросами университетский NTP-сервер — прим. пер.].

Мне очень, очень жаль, если мы стали причиной ваших проблем. Я чувствую себя очень, очень плохо из-за этого.

Прощён. Должен отметить, что на протяжении всего этого времени с ведущим инженером было приятно работать.
Вообще-то BitFolk предоставляет клиентам NTP-сервис из любезности, это не платная услуга. В конце концов, кто будет за неё платить, если существует общественный пул? Для коммерческой компании правильно поддерживать пул, подписавшись на вендорскую зону.

оказались в затруднительном положении, и запрет на доступ к NTP-серверу нанесёт им серьёзный финансовый урон. Но NetThings UK Ltd. Потенциально я мог бы попросить много денег в тот момент, но я чувствовал (без сомнения, в ущерб своему карману), что это просто неправильно.

Для начала я предложил заплатить мне за два часа консультаций, чтобы покрыть уже проделанную работу по внесению изменений в файрвол.

Конечно, я не трачу по часу в месяц на возню с NTP, но такое нестандартное отклонение от моей обычной работы требовало определённого вознаграждения. Кроме того, я предложил оплачивать один час консультаций в месяц в течение 12 месяцев для покрытия расходов на продолжение работы сервера NTP.

Я очень хотел отметить, что это не навсегда:

Похоже, вы сейчас в затруднительном положении, и есть соблазн взимать с вас максимальную сумму (во всяком случае, намного больше, чем £840 + НДС), но мне это кажется несправедливым. Наконец, это штрафная санкция. Если вам в конечном итоге придётся продлить эту услугу, это будет означать, что мы не взимали с вас достаточно, и мы увеличим цену. Тем не менее, предоставление услуг NTP третьим лицам — не наш бизнес, поэтому мы ожидаем, что контракт закончится в течение 12 месяцев.

Это кажется разумным?

NetThings UK Ltd. с радостью согласилась на такое предложение.

Вы спасли меня от огромного количества дурацкой и бесполезной работы. Ещё раз спасибо за информацию и помощь. У нас достаточно времени, чтобы всё исправить.

В дальнейшем я общался с ведущим инженером-программистом лишь однажды. Остальная переписка велась с финансовым персоналом, главным образом потому, что NetThings UK Ltd. не любила вовремя оплачивать счета.

оплатила с опозданием три из четырёх счетов. За год NetThings UK Ltd. В каждом случае я постарался взимать с них установленную законом пеню за просрочку платежа.

Когда 2017 год подошёл к концу, я спросил ведущего инженера-программиста, как ситуация с нашим IP-адресом в прошивке их устройств, насколько успешно они решили проблему?

Осталось обновить ещё один проект, после чего производство новых единиц с такими прошивками будет полностью прекращено. Если вкратце, в большинстве наших продуктов удалось избавиться от использования фиксированного IP-адреса. Поэтому, отвечая на ваш вопрос: да, нам по-прежнему потребуется услуга в январе 2018 года. Но у нас по-прежнему в продакшне около 1000 единиц, которые нелегко обновить: они продолжат отправлять еженедельные NTP-запросы на фиксированный IP-адрес.

Это было слегка печально, ведь год назад было «около 500» устройств. Несмотря на все усилия в течение года, число, похоже, удвоилось.

За два месяца я их предварительно уведомил, что цена удвоится. Одного этого достаточно для увеличения платы, что я всё равно собирался сделать из-за регулярных просрочек платежей с их стороны.

Примерно через 15 недель после сообщения об удвоении цены финансовый директор NetThings UK Ltd. спросил, почему это произошло, одновременно сообщив о переводе одного из просроченных платежей:

Date: Wed, 21 Feb 2018 14:59:42 +0000

Уже оплатили, но не могли бы вы пояснить, почему цена удвоилась?

Я был очень рад снова подробно объяснить, почему она удвоилась. Финансовый директор в ответ попытался договориться о фиксированной цене на год, на что я согласился при условии оплаты за год авансом.

Если хотят гарантий, на мой взгляд, они должны заплатить за это, сделав один годовой платёж. Моё обоснование состояло в том, что увеличение цены произошло в основном из-за просроченных платежей с их стороны: они отнимают слишком много времени, поэтому в случае сохранения квартальной оплаты мне нужна возможность взимать больше в случае необходимости.

Ответа не последовало, так что платежи продолжались на ежеквартальной основе.

20 ноября 2018 года мы получили письмо от Deloitte:

Netthings Limited – In Administration (“The Company”)

Номер компании: SC313913

Прекращение деятельности

Компания прекратила деятельность с 15 ноября 2018 года.

Расследование

В рамках наших обязанностей Управляющего имуществом мы расследуем, какие активы принадлежат компании и какие средства можно восстановить для кредиторов, а также каким образом велась деятельность компании.

А потом 21 декабря:

Средств для распределения среди необеспеченных кредиторов нет, поэтому собрание созываться не будет. В соответствии с пунктом 51(1)(б) закона «О несостоятельности и банкротстве» 1986 года, Управляющий имуществом не обязан созывать собрание кредиторов кроме случаев, когда у компании достаточно средств для распределения среди необеспеченных кредиторов или если встреча требуется по форме SADM_127 необеспеченными кредиторами с 10% и более стоимости долга.

К счастью, их единственный неоплаченный счет был за обслуживание с ноября, так что всё было оплачено.
Вот такая история NetThings UK Ltd, смелого покорителя Интернета вещей, который думал, что общественный пул NTP — просто неотъемлемая часть интернета и каждый может использовать его бесплатно, достаточно выбрать наугад один IP-адрес и зашить его в тысячи своих устройств, которые распространяются по всей стране без возможности удалённого обновления.

Этой веры в сочетании с инновационным нежеланием ни за что вовремя платить, к сожалению, оказалось недостаточно, чтобы сохранить платёжеспособость.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»