6 votes

Existe-t-il un moyen de détecter les serveurs de mise en cache?

Je dois découvrir s'il existe des serveurs de mise en cache OSX / iOS sur un tas de réseaux différents - et mettre en place un serveur de mise en cache là où c'est nécessaire. Mais comme le service de mise en cache sur un serveur Mac est assez opaque, il n'y a pas beaucoup d'informations disponibles sur son fonctionnement.

Je sais que s'il y a accès à un serveur, il est trivial de vérifier si la mise en cache est activée dans le logiciel du serveur. Je cherche, par exemple, un port à scanner, ou un indicateur qui est configuré sur les App Stores des appareils clients et qui peut être vérifié, ou quelque chose dans les journaux de pare-feu à rechercher. Il y a tellement peu d'informations disponibles que je ne peux pas dire exactement par où commencer.

J'ai un accès distant à au moins un Mac Mini headless sur chaque réseau.

6voto

Oskar Points 1242

Non directement avant Sierra sur macOS. Sur Sierra et ultérieur, exécutez le AssetCacheLocatorUtil à partir de n'importe quel shell unix (dans le terminal ou une autre application)

Nous avons même trouvé un moyen de savoir après coup si une mise à jour provenait du cache ou d'Apple du côté client en examinant les journaux au lieu de renifler les connexions et le trafic réseau.


Voici les détails pour Sierra et ultérieur.

Interrogez l'infrastructure de mise à jour d'Apple et vérifiez si des points de mise en cache locaux pour les mises à jour, les téléchargements d'applications et/ou les données iCloud sont présents, et vérifiez également la connectivité et le service

AssetCacheLocatorUtil

La page manuelle est plutôt bien écrite et couvre beaucoup de détails. Voici quelques observations d'avant l'existence de cet outil pour aider.

Les serveurs écoutent sur des ports quelque peu aléatoires – mes deux serveurs de mise en cache écoutent actuellement sur les ports 49558 et 51858

Je suppose que vous pourriez scanner tous les serveurs et essayer de déduire lesquels utilisent OS X server en général, puis sonder exhaustivement tous les ports plus élevés en supposant qu'un seul port plus élevé ouvert pourrait être un serveur de mise en cache.

Vous pouvez demander à un serveur de vous indiquer le port sur lequel il fonctionne :

sudo serveradmin fullstatus caching | grep Port

Les clients se connectent directement à Apple, Apple remarque l'adresse IP publique à partir de laquelle les requêtes sont émises. Il effectue ensuite deux vérifications :

  • quels serveurs se sont connectés et fonctionnent à partir de cette même adresse IP publique
  • y a-t-il des enregistrements PRS dans le DNS public pour l'adresse IP publique utilisée par le client et si un autre serveur de mise en cache pourrait servir cette adresse IP.

Il répond ensuite au client pour demander le contenu au(x) serveur(s) qui sont locaux à l'adresse IP. Si ce serveur de mise en cache n'a pas le contenu, il le demande et le transmet au client. Si le client ne reçoit pas le contenu, il y a un mécanisme de réessai pour obtenir le contenu directement depuis le CDN d'Apple, donc vous n'obtenez pas toujours les choses à partir des serveurs de mise en cache en fonction de mon expérience.

Vous pourriez également être en mesure de dresser une liste des serveurs ayant l'accès à distance activé - écoutant sur le port 311/asip-webadmin ou en collectant périodiquement le statut de chaque serveur :

sudo serveradmin settings info | grep enableRemoteAdministration

5voto

Prosper Points 1

Ouvrez un terminal et essayez AssetCacheLocatorUtil - je pense qu'il a été récemment introduit dans Sierra.

 NOM
         AssetCacheLocatorUtil -- Utilitaire pour rapporter les informations du service de mise en cache

    SYNOPSIS
         AssetCacheLocatorUtil

    DESCRIPTION
         AssetCacheLocatorUtil rapporte des informations relatives aux serveurs de mise en cache OS X Server s'exécutant sur la machine ou sur le réseau local.

         Les informations rapportées par AssetCacheLocatorUtil dépendent de l'utilisateur qui l'exécute. Il peut produire des résultats différents pour différents utilisateurs, y compris le superutilisateur. Cela dépend également de la configuration réseau actuelle et de la façon dont il est exécuté, en session GUI ou non.

         AssetCacheLocatorUtil rapporte les informations suivantes :

         Indication de disponibilité
                       Le système peut enregistrer une indication sur la présence ou non de serveur(s) de mise en cache sur le réseau local.
                       AssetCacheLocatorUtil affiche cette indication enregistrée si elle est disponible.

         Serveurs enregistrés
                       Le système peut enregistrer des informations sur les serveur(s) de mise en cache qu'il a précédemment trouvés sur le réseau local.
                       AssetCacheLocatorUtil affiche ces informations enregistrées si elles sont disponibles.

         Serveurs actualisés
                       AssetCacheLocatorUtil force le système à rechercher les serveurs de mise en cache sur le réseau local et à actualiser les informations enregistrées ci-dessus. Il affiche ensuite les résultats.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X