2026-05-18 Cache client DNS et HTTP après changement de région ProxyMac Mac mini : quand les API sortent encore du mauvais POP
Vous avez enfin déplacé votre SSH par défaut d’un Mac mini M4 loué à Tokyo vers Singapour, ou vous avez fait tourner les SOCKS ssh -D selon les modèles de nœud de sortie proxy—pourtant les tableaux de bord éditeurs affichent encore des en-têtes POP JP, les histogrammes de latence refusent d’aller vers l’ouest, et la QA affirme que « le drapeau région n’a pas basculé ». La mini ne ment pas : le résolveur et la pile HTTP de votre portable ont mis en cache l’univers précédent. Ce guide livre (1) un filtre d’audience pour les équipes qui doivent prouver un changement de chemin, (2) une matrice des symptômes séparant mythes TTL DNS et pools HTTP/2 chauds, (3) un gâteau à quatre couches (OS, navigateur, runtime langage, DNS négatif), (4) un runbook de purge en neuf étapes avec garde-fous numériques, (5) des reçus curl --resolve copier-coller, (6) les pièges OpenClaw proxy d’entreprise quand DNS et HTTP_PROXY divergent, plus les risques autour de HTTPSVC et du cache négatif. Croisez avec échecs résolveur split DNS et IPv6 Happy Eyeballs avant d’ouvrir des tickets éditeur. Choix de chemin : diagnostic régional MTR ; SKU : tarifs ; reçus SSH : aide.
Qui doit purger activement les caches DNS et HTTP après un changement de région ProxyMac
Toute personne dont les critères de succès incluent des en-têtes de réponse HTTP (cf-ray, x-amz-cf-pop, server-timing), des tickets de session TLS liés à une ancienne arête, ou des consoles SaaS affichant le pays source déduit du chemin résolveur—pas seulement « la latence SSH a baissé ». Si vous n’avez fait que ping la mini sans jamais appeler d’API publiques via SOCKS ou VPN split-tunnel, vous pouvez sauter ce guide ; si vous benchmarkiez des arêtes CDN ou LLM depuis le portable pendant que la mini bougeait, poursuivez.
- Seuil quantitatif : si
curl -s https://ipinfo.io/jsonmontre le nouveau pays maiscurl -sI https://api.vendor.exampleimprime encore un code POP de l’ancien continent dans les 10 minutes, vous avez un bug de classe cache client—pas un défaut de routage ProxyMac. - Seuil automatisation : les runners CI qui réutilisent des processus Node ou Python longue durée héritent de pools DNS in-process ; recyclez explicitement après rotation de région.
- Seuil sécurité : les profils DNS over HTTPS d’entreprise sur macOS peuvent écraser votre migration mini tant que le client VPN n’a pas rafraîchi la politique—voir article résolveur.
Matrice des symptômes : mauvais POP mais HTTP 200 et pings « sains »
| Observable | Couche probable | Première action |
|---|---|---|
dig montre un nouvel AAAA, l’en-tête éditeur reste sur l’ancien POP |
Pool de connexions HTTP/2 ou cache de session TLS | Redémarrer le profil navigateur ou ajouter --http1.1 une fois pour forcer un nouveau TCP |
dig montre encore l’ancien RRSet quelques secondes après expiration TTL |
mDNSResponder / cache OS | Vider le cache résolveur si autorisé ; vérifier avec dscacheutil -q host -a name api.vendor.example |
| Seuls les services Java/JVM sont faux ; curl correct | Cache InetAddress JVM | Mettre networkaddress.cache.ttl=0 uniquement sur JVM de test ; redémarrer le service |
| NXDOMAIN intermittent après correction de faute de frappe | Cache négatif | Attendre le TTL négatif ou changer temporairement de résolveur |
Gâteau en couches : résolveur OS vs navigateur vs runtime vs pools
Les stacks modernes résolvent les noms plusieurs fois sur la durée de vie du processus. Sous macOS, mDNSResponder met en cache réponses positives et négatives selon TTL RR et politique plateforme. Les navigateurs dérivés de Chromium ajoutent une autre couche et réutilisent QUIC ou HTTP/3 quand les chemins UDP survivent au changement de région. Le dns.lookup de Node peut n’appeler getaddrinfo qu’une fois par pool sans hooks lookup. Les passerelles OpenClaw qui réutilisent un seul pool fetch ou undici partagent le même risque—après déplacement de la mini, redémarrez le processus passerelle pour que les handshakes TLS sortants se rebindent à la nouvelle vue résolveur, surtout combinés à l’encodage HTTP_PROXY d’entreprise dans la plist.
curl -v et les sorties dig +subnet=0.0.0.0/0—les éditeurs rejettent « ça rame » sans preuve d’en-tête.
Runbook de purge de cache en neuf étapes
- En-têtes de base : capturer
curl -sIsur trois endpoints éditeur avant de toucher au DNS. - Prouver le chemin SSH : confirmer la mini visée avec
scutil --get ComputerNamevia SSH—pas seulement le texte d’invite. - Purge résolveur : sur builds macOS supportés, exécuter la commande de purge documentée approuvée par la sécurité—ne jamais deviner des mots de passe admin dans les tickets.
- Démarrage à froid navigateur : quitter totalement Chromium/Firefox/Safari ; désactiver « rouvrir les fenêtres » pour un cycle.
- Rebind SOCKS : tuer les anciens PID
ssh -D; vérifier aveclsof -nP -iTCP:1080avant d’ouvrir un nouveau tunnel selon le guide stabilité SSH. - Recycle runtime : redémarrer les workers Node, Python ou JVM dans la CI—pas seulement le shell d’étape.
- Expérience de contrôle : utiliser
curl --resolve(section suivante) pour prouver l’arête éditeur joignable depuis la nouvelle classe d’IP. - Soak : lancer 200 sondes HTTPS séquentielles à 2 r/s et vérifier la convergence des codes POP.
- Note rollback : si la purge casse les portails captifs, documenter l’ordre de reconnexion VPN selon le guide Wi-Fi invité.
curl --resolve dans un cron de prod—usage temporaire de preuve uniquement, puis retirer les overrides pour ne pas masquer de futurs incidents DNS.
Recettes curl --resolve et dscacheutil
Pour contourner des réponses obsolètes sans éditer /etc/hosts, épinglez l’IP autoritaire pour une seule commande :
curl -v --resolve api.vendor.example:443:203.0.113.44 https://api.vendor.example/healthz
Associez dscacheutil -q host -a name api.vendor.example sous macOS pour afficher ce que le cache userland croit maintenant. Si dscacheutil n’est pas d’accord avec dig @8.8.8.8, le VPN split-tunnel ou le client DoH oriente encore—retour à la triage résolveur.
OpenClaw et clients HTTP sortants : pièges de cache derrière launchd
Les LaunchAgents qui appellent des APIs modèle gardent souvent un agent undici ou axios vivant des heures. Après migration de la mini entre régions, le processus peut encore réutiliser des réponses DNS obtenues au boot tant que le worker de boucle d’événements n’est pas recyclé. Combinez le recycle avec l’hygiène explicite NO_PROXY de l’article proxy HTTP launchd pour que le trafic MCP localhost n’hérite pas de vieux chemins résolveur d’entreprise.
Pièges : cache négatif, enregistrements SVCB/HTTPS et dérive anycast
Les réponses NXDOMAIN se mettent en cache négativement—votre première faute de frappe empoisonne l’automatisation pendant des minutes. Les nouveaux types RR HTTPS peuvent orienter vers des endpoints QUIC différents des enregistrements A ; si vos outils ne regardent que A/AAAA, vous chassez des fantômes. Les fronts anycast peuvent aussi laisser des sessions TCP épinglées à un POP distant même quand le BGP bouge—seule une nouvelle connexion prouve le mouvement.
dig api.vendor.example HTTPS +short
FAQ
Passer de JP à SG sur ProxyMac suffit-il d’attendre le TTL DNS seul ? Le TTL autoritaire gouverne la propagation mondiale, mais les portables gardent caches locaux et pools HTTP chauds. Purgez par couches au lieu d’attendre seulement le TTL.
Pourquoi curl montre la nouvelle région alors que Chrome affiche encore l’ancien pays CDN ? Stacks différents : curl ouvre souvent un TCP neuf tandis que Chrome réutilise des sessions HTTP/2 ou QUIC liées à l’ancienne arête.
curl --resolve est-il sûr pour des smoketests de prod ? Override de diagnostic pour une commande—excellent pour preuves, risqué s’il est commité en automatisation sans surveillance de rotation.
Pourquoi le Mac mini ProxyMac est le bon ancrage pour des expériences de cache inter-régions
Des nœuds Mac mini M4 loués en HK / JP / KR / SG / US offrent des classes d’IP de sortie prévisibles par région pour corréler en-têtes POP et géographie, un comportement de résolveur macOS natif identique aux portables développeurs, et un CPU mono-locataire pour de longs soaks curl sans voisins bruyants. Une fois la mathématique de cache validée ici, promouvez les mêmes playbooks vers des second nœuds aux tarifs transparents plutôt que deviner sur des IP CI éphémères.
Prouvez chaque changement de région avec des preuves
Cache DNS · pools HTTP/2 · HK / JP / KR / SG / US