Choses non rentables

Appelez les enfants! L'oncle Andrey va maintenant raconter l'histoire d'horreur de Noël sur NTP (Network Time Protocol).

Il y a près de deux ans, le lundi 16 janvier 2017, un billet intéressant d'un étranger est arrivé dans notre système de rapports de bogues BitFolk . Sender s'est présenté comme ingénieur logiciel principal chez NetThings UK Ltd.

Objet: demande NTP sur IP 85.119.80.232

Salut

Cela peut sembler étrange, mais je dois configurer le serveur NTP par l'adresse IP 85.119.80.232 .

Quelle est la particularité de 85.119.80.232 ? Il s'agit de l'adresse IP de l'un des serveurs NTP pour servir nos clients. Quelques semaines avant ce ticket, le serveur faisait également partie du projet NTP Pool .

Voici le mot important «était». Fin décembre 2016, j'ai retiré les serveurs NTP BitFolk du pool public et les ai bloqués pour les étrangers.

Je l'ai fait parce que, à cause du bogue Snapchat NTP, une quantité inhabituellement importante de trafic leur est allée. En fait, cela n'a pas causé d'énormes problèmes, juste un tel volume de trafic a poussé des informations utiles de la base de stockage réseau Jump d'une taille fixe, et je ne voulais pas m'en occuper pendant les vacances, alors j'ai simplement désactivé l'accès public au service.

NTP?


Cet article est apparu sur Hacker News , et là, dans quelques commentaires, ils m'ont demandé d'expliquer brièvement ce qu'est le NTP, j'ai donc ajouté cette section non technique. Si vous connaissez la technologie, vous pouvez l'ignorer.

Le Network Time Protocol est un moyen par lequel un ordinateur peut utiliser plusieurs autres ordinateurs, souvent sur Internet sur des réseaux complètement différents sous le contrôle de différents administrateurs, pour déterminer avec précision l'heure actuelle. Lorsque vous utilisez plusieurs ordinateurs différents, certains d'entre eux donnent un résultat inexact, certains peuvent être cassés ou se comporter de manière hostile, mais le protocole peut reconnaître la «mauvaise» horloge et ne prendre en compte que le résultat d'une majorité plus précise.

On suppose que NTP est utilisé dans un ordre hiérarchique: le matériel pour déterminer l'heure exacte est directement connecté à plusieurs serveurs: horloges atomiques, GPS, etc. Ils sont appelés serveurs Stratum 1. Les serveurs de deuxième niveau définissent leur heure sur les serveurs Stratum 1, ils servent beaucoup plus clients et ainsi de suite.

Dans le passé, il était difficile de trouver des serveurs NTP abordables. Dans votre propre entreprise, un ou deux de ces serveurs pouvaient être installés, mais en réalité vous deviez consulter au moins 3 à 7 serveurs, et mieux de différentes organisations. C'était plus facile dans le milieu universitaire: on pouvait parler avec des collègues et échanger l'accès au NTP. Mais avec la croissance d'Internet, le nombre de demandes de renseignements a augmenté, notamment auprès d'entreprises commerciales et de particuliers.

Le projet NTP Pool est venu à la rescousse. Grâce à une interface Web simple, ceux qui le souhaitent pouvaient ajouter leurs propres serveurs NTP au pool: ils étaient collectivement servis dans une zone DNS commune avec quelques moyens de base pour l'équilibrage de charge. Un individu a été autorisé à spécifier trois noms dans le pool, et il a reçu gratuitement trois serveurs NTP différents (en constante évolution).

On a supposé que les sociétés commerciales s’appliqueraient à une «zone de fournisseurs» distincte. Ils transfèrent une petite contribution au projet - et obtiennent la zone DNS allouée à leur produit, ce qui facilite la gestion du trafic par les administrateurs de pool.

Malheureusement, de nombreuses entreprises n'ont pas pris la peine d'étudier ces subtilités et ont simplement utilisé l'espace piscine commun. NetThings UK Ltd. est allé encore plus loin dans une très mauvaise direction - et a pris l'adresse IP du pool, en l'utilisant directement et en supposant qu'elle sera toujours disponible. En fait, ce service gratuit a été donné à la piscine partagée par BitFolk, et en raison d'inconvénients temporaires, le service a été désactivé.

Revenons à notre histoire ...

Ils veulent ... quoi?


Un ingénieur logiciel de premier plan a poursuivi:

Récemment, le service NTP a été désactivé et je suis intéressé de savoir s'il existe un moyen de le redémarrer à l'adresse IP spécifiée. Soit via le propriétaire actuel de l'adresse IP, soit via la migration de la machine actuelle vers une autre adresse afin que nous puissions louer 85.119.80.232 .

Hmm ...

Je comprends que cette demande est étrange, mais je peux vous assurer qu'elle est sincère.

Ça ne marchera pas


Évidemment, 85.119.80.232 utilisé par tous nos clients comme résolveur et serveur NTP. Demandez-leur tous de se reconfigurer pour louer l'adresse à NetThings UK Ltd. - ce n'est pas une option. Je viens donc de supprimer le pare-feu, alors 85.119.80.232 recommencé à travailler pour NetThings UK Ltd. jusqu'à ce que nous trouvions ce qui peut être fait.

J'ai ensuite posé quelques questions pertinentes pour déterminer l'étendue des services qui devraient être fournis:

  • Combien de clients utilisez-vous ce serveur?
  • Connaissez-vous leurs adresses IP?
  • Quand ont-ils besoin d'un serveur NTP et pour combien de temps?
  • Peuvent-ils être obligés d'utiliser correctement le pool (via la zone des fournisseurs)?

Plus profondément dans la forêt


Les réponses à certaines questions ont été très décevantes.

Le serveur est partiellement utilisé par notre système de production, où RTC a été initialement installé. Malheureusement, un nombre assez important d'équipements (~ 500 unités avec des appels NTP hebdomadaires) fonctionne sur l'itinérance GPRS SIM. Je ne sais pas s'il est possible dans ce cas de s'appuyer sur l'adresse IP d'origine de l'APN pour configurer le pare-feu (je vérifierai). Nous ne pouvons pas non plus mettre à jour à distance le firmware de ces appareils, car ils ont un quota de trafic de 5 Mo par mois. Nous pouvons les mettre à jour localement, mais cela prendra des mois, pas des semaines.

Apparemment, NetThings UK Ltd a produit des thermostats télécommandés, des contrôleurs d'éclairage pour de grandes surfaces de vente au détail, etc. Il semble qu'ils aient écrit l'une des adresses IP BitFolk dans le firmware, et ces appareils n'ont pas pu être identifiés ou mis à jour à distance.



Et oui, dans tous les cas, sans source de temps externe, les horloges de ces appareils commenceront à bouger sensiblement d'ici deux semaines.

Soit dit en passant, ils ont résolu leur problème avec une adresse IP codée en dur en augmentant localement leur adresse IP BitFolk localement dans leur usine pour définir la date / heure de début.



J'avoue qu'à cette époque, il y avait une légère tentation d'identifier ces appareils, de leur donner des données complètement incorrectes - et de voir si certains magasins allumaient et éteignaient les lumières à une heure étrange de la journée.

Hebdomadaire ??


Les appels NTP de notre part démarrent les couronnes hebdomadaires sans équilibrage de charge côté client. Il en résulte un flux de demandes à la même heure tous les dimanches vers 19h45.

Oui, ils ont fait frapper chacun de leurs appareils non identifiés sur une adresse IP codée en dur pendant un intervalle de deux minutes chaque dimanche soir.



L'ingénieur logiciel principal était très inquiet qu'ils aient causé l'excès de flux que j'ai mentionné plus tôt, mais j'ai assuré que c'était définitivement un bug Snapchat. En fait, leurs 500 appareils ne différaient jamais du bruit de fond. Il s'est avéré qu'un demi-millier de requêtes SNTP représentent une charge assez légère. Ils l'ont fait pendant plus de deux ans avant que le problème ne se pose.

Bien sûr, j'ai noté leur chance que nous ayons rapidement remarqué le problème, sinon tout pourrait se terminer comme dans l'affaire Netgear contre l'Université du Wisconsin [lorsque les appareils Netgear ont inondé le serveur NTP universitaire de demandes - env. trans.].

Je me sens très, très mal à cause de cela. Je suis vraiment désolé si nous avons causé vos problèmes.

Pardonné. Je dois noter que pendant tout ce temps, ce fut un plaisir de travailler avec un ingénieur de premier plan.

Nous avons conclu un accord


En fait, BitFolk fournit aux clients un service NTP par courtoisie, ce n'est pas un service payant. Après tout, qui paiera pour cela s'il y a une piscine publique? Il est juste pour une entreprise commerciale de maintenir un pool en s'abonnant à la zone fournisseur.

Mais NetThings UK Ltd. étaient dans une situation difficile, et une interdiction d'accès au serveur NTP leur causera de graves dommages financiers. Potentiellement, je pouvais demander beaucoup d'argent à ce moment-là, mais je sentais (sans aucun doute, au détriment de ma poche) que c'était tout simplement faux.

Pour commencer, j'ai proposé de me payer deux heures de consultation pour couvrir le travail déjà effectué pour apporter des modifications au pare-feu.

De plus, j'ai suggéré de payer une heure de consultations par mois pendant 12 mois pour couvrir les coûts de la poursuite du fonctionnement du serveur NTP. Bien sûr, je ne passe pas une heure par mois à discuter avec NTP, mais un tel écart non standard par rapport à mon travail habituel nécessitait un certain montant.

Je voulais vraiment noter que ce n'est pas pour toujours:

Enfin, c'est une amende. Vous semblez être dans une situation difficile en ce moment, et il y a une tentation de vous facturer le montant maximum (en tout cas, bien plus que 840 £ + TVA), mais cela me semble injuste. Cependant, la fourniture de services NTP à des tiers n'est pas notre affaire, nous prévoyons donc que le contrat prendra fin dans les 12 mois. Si vous devez éventuellement étendre ce service, cela signifiera que nous n'avons pas facturé suffisamment pour vous, et nous augmenterons le prix.

Cela vous semble-t-il raisonnable?

NetThings UK Ltd. a accepté avec plaisir une telle offre.

Merci encore pour l'information et l'aide. Vous m'avez sauvé d'une énorme quantité de travail stupide et inutile. Nous avons assez de temps pour tout réparer.

Des bosses sur la route


À l'avenir, je n'ai parlé à un ingénieur logiciel de premier plan qu'une seule fois. Le reste de la correspondance était avec le personnel financier, principalement parce que NetThings UK Ltd. Je n'aimais pas payer les factures à temps.

NetThings UK Ltd. au cours de l'année payé en retard trois des quatre factures. Dans chaque cas, j'ai essayé de leur imposer une pénalité légale pour retard de paiement.

Des résultats décevants de l'année


À la fin de l'année 2017, j'ai demandé au principal ingénieur logiciel, comment se passait notre adresse IP dans le firmware de leurs appareils, comment ont-ils réussi à résoudre le problème?

En bref, la plupart de nos produits ont réussi à se débarrasser de l'utilisation d'une adresse IP fixe. Il reste à mettre à jour un autre projet, après quoi la production de nouvelles unités avec un tel firmware sera complètement arrêtée. Mais nous avons encore environ 1 000 unités en production qui ne sont pas faciles à mettre à jour: elles continueront d'envoyer des demandes NTP hebdomadaires à une adresse IP fixe. Par conséquent, répondant à votre question: oui, nous aurons toujours besoin du service en janvier 2018.

C'était un peu triste, car il y a un an, il y avait «environ 500» appareils. Malgré tous les efforts déployés tout au long de l'année, le nombre semble avoir doublé.

Cela suffit à lui seul pour augmenter les frais, ce que j'allais encore faire en raison de retards réguliers dans les paiements de leur part. Depuis deux mois, je les avise au préalable que le prix va doubler.

Voulez-vous discuter?


Environ 15 semaines après avoir annoncé avoir doublé le prix, NetThings UK Ltd. CFO a demandé pourquoi cela s'était produit, tout en signalant simultanément le transfert de l'un des paiements tardifs:

Date: mer.21 févr.2018 14:59:42 +0000

Déjà payé, mais pourriez-vous expliquer pourquoi le prix a doublé?

J'étais très heureux d'expliquer à nouveau en détail pourquoi elle avait doublé. En réponse, le directeur financier a tenté de convenir d'un prix fixe pour l'année, ce que j'ai accepté, sous réserve d'un paiement à l'avance pour l'année.

Mon raisonnement était que l'augmentation des prix était principalement due à des retards de paiement de leur part: ils prennent trop de temps, donc si j'économise le paiement trimestriel, je dois pouvoir facturer plus si nécessaire. S'ils veulent des garanties, à mon avis, ils doivent payer pour cela en effectuant un paiement annuel.

Il n'y a eu aucune réponse, les paiements se sont donc poursuivis tous les trimestres.

C’est la fin du conte


Le 20 novembre 2018, nous avons reçu une lettre de Deloitte :

Netthings Limited - En administration («La Société»)

Numéro d'entreprise: SC313913

[...]

Cessation d'activité

La société a cessé ses activités le 15 novembre 2018.

Enquête

Dans le cadre de nos responsabilités de gestionnaire d'actifs, nous recherchons quels actifs appartiennent à l'entreprise et quels fonds peuvent être restitués aux créanciers, et comment l'entreprise a été menée.

Et puis le 21 décembre:

Conformément à l'alinéa 51 (1) b) de la Loi sur la faillite et l'insolvabilité de 1986, le gestionnaire d'actifs n'est pas tenu de convoquer une assemblée des créanciers à moins que la société n'ait suffisamment de fonds à distribuer aux créanciers chirographaires ou si une assemblée est requise sous la forme de SADM_127 par les créanciers chirographaires. avec 10% ou plus du coût de la dette. Il n'y a pas de fonds à répartir entre les créanciers chirographaires, par conséquent, l'assemblée ne sera pas convoquée.

Heureusement, leur seule facture impayée était pour le service depuis novembre, donc tout a été payé.



C'est l'histoire de NetThings UK Ltd, un courageux conquérant de l'Internet des objets, qui pensait que le pool NTP public était simplement une partie intégrante d'Internet et que tout le monde pouvait l'utiliser gratuitement, il suffit de sélectionner au hasard une adresse IP et de la protéger dans des milliers de ses appareils qui sont distribués dans pays sans possibilité de mise à jour à distance.

Cette foi, combinée à une réticence innovante à payer à temps pour quoi que ce soit, n'était malheureusement pas suffisante pour maintenir la solvabilité.

Source: https://habr.com/ru/post/fr434422/


All Articles