ネットワーク / パス 2026 年 5 月 18 日

2026-05-18 ProxyMac Mac mini リージョン切替後の DNS / HTTP クライアントキャッシュ:API がまだ誤った POP から出るとき

ProxyMac エンジニアリングチーム 2026-05-18 約 17 分で読めます

レンタルした Mac mini M4 のデフォルト SSH東京 から シンガポール へ移し、あるいは プロキシ出口ノードのパターン に沿って ssh -D の SOCKS を切り替えた—それでもベンダー管理画面は JP の POP ヘッダのまま、遅延ヒストグラムは西へ動かず、QA は「リージョンフラグが変わっていない」と主張します。mini が嘘をついているわけではありません。ノート PC 側のリゾルバと HTTP スタックが、前の世界をキャッシュしているのです。 本稿は (1) 経路変更を証明しなければならないチーム向けの読者フィルタ、(2) DNS TTL の神話と温かい HTTP/2 プールを切り分ける症状マトリクス(3) OS・ブラウザ・言語ランタイム・否定 DNS の四層キャッシュ、数値ガードレール付きの9 ステップのフラッシュ手順 (4)、コピペ可能な curl --resolve の証跡 (5)、DNS と OpenClaw の企業 HTTP_PROXY が食い違うときの落とし穴 (6)、および HTTPSVC と否定キャッシュの罠をまとめます。ベンダー起票の前に スプリット DNS の解決失敗IPv6 Happy Eyeballs と突き合わせてください。経路選定は MTR リージョン診断、SKU は 料金、SSH の証跡テンプレは ヘルプセンター を参照します。

ProxyMac のリージョン変更後に DNS と HTTP キャッシュを積極的に破棄すべき人

成功基準に HTTP 応答ヘッダcf-rayx-amz-cf-popserver-timing)、古いエッジに束縛された TLS セッションチケット、リゾルバ経路から推定される 送信元国 を表示する SaaS 管理画面が含まれる人—単に「SSH の遅延が下がった」だけではありません。mini に ping しただけで SOCKS やスプリットトンネル VPN 越しに公開 API を呼んだことがなければ本稿はスキップして構いません。mini が移動したあともノート PC から CDN や LLM エッジをベンチマークするなら、読み進めてください。

  • 定量ゲート:curl -s https://ipinfo.io/json が新しい国なのに、curl -sI https://api.vendor.example10 分以内に前の大陸の POP コードを印字し続けるなら、クライアント側キャッシュ系の不具合であり、ProxyMac のルーティング欠陥ではありません。
  • 自動化ゲート:長寿命の Node や Python プロセスを再利用する CI Runner はプロセス内 DNS プールを継承します。リージョンローテーション後は明示的にプロセスを回収してください。
  • セキュリティゲート:企業の DNS over HTTPS 構成プロファイルは、VPN クライアントがポリシーを更新するまで mini の移動を上書きし続けることがあります—リゾルバ記事 を参照してください。

症状マトリクス:POP は誤りでも HTTP 200 で ping は「健全」

観測できること 想定される層 最初の一手
dig は新しい AAAA、ベンダーヘッダは古い POP HTTP/2 コネクションプールまたは TLS セッションキャッシュ ブラウザプロファイルを再起動するか、一度 --http1.1 で新しい TCP を強制する
TTL 失効から数秒経っても dig が古い RRSet mDNSResponder / OS キャッシュ 許可された範囲でリゾルバキャッシュをフラッシュし、dscacheutil -q host -a name api.vendor.example で検証する
Java/JVM サービスだけ誤り、curl は正しい JVM InetAddress キャッシュ テスト JVM のみ networkaddress.cache.ttl=0 を設定し、サービスを再起動する
タイポ修正後も断続的に NXDOMAIN 否定キャッシュ 否定 TTL を待つか、一時的にリゾルバを切り替える

層の積み重ね:OS リゾルバ対ブラウザ対ランタイム対コネクションプール

現代的なスタックはプロセス寿命のあいだに何度も名前を解決します。macOS では mDNSResponder が RR TTL とプラットフォーム方針に従って肯定・否定の答えをキャッシュします。Chromium 系ブラウザはさらに一段キャッシュを重ね、UDP パスがリージョン変更後も生きていると QUIC や HTTP/3 セッションを再利用します。Node の dns.lookuplookup フックを設定しない限り、プールごとに getaddrinfo を一度しか呼ばないことがあります。単一の fetch または undici プールを再利用する OpenClaw ゲートウェイも同じ危険を抱えます—mini を移したあとは、特に 企業 HTTP_PROXY の plist エンコード と併用する場合、ゲートウェイプロセスを再起動して外向き TLS が新しいリゾルバビューに再バインドするようにしてください。

証跡の規律:チケットには curl -v の詳細ログと dig +subnet=0.0.0.0/0 の出力の両方を保管してください。ヘッダ証拠なしの「遅い気がする」はベンダーに退けられます。

9 ステップのキャッシュフラッシュ手順

  1. ベースラインのヘッダ:DNS に触る前に、3 つのベンダーエンドポイントで curl -sI を取得する。
  2. SSH 経路の証明:SSH 越しに scutil --get ComputerName で意図した mini にいることを確認する—プロンプト文言だけではない。
  3. リゾルバのフラッシュ:サポート対象の macOS では、セキュリティチームが承認したドキュメント化されたフラッシュコマンドを実行する—チケットで管理者パスワードを推測しない。
  4. ブラウザのコールドスタート:Chromium/Firefox/Safari を完全終了し、1 サイクルだけ「ウィンドウを再度開く」を無効にする。
  5. SOCKS の再バインド:古い ssh -D の PID を終了し、lsof -nP -iTCP:1080 で確認してから新しいトンネルを開く—SSH 安定化ガイド に従う。
  6. ランタイムの回収:CI ではジョブのシェルだけでなく Node、Python、JVM のワーカーを再起動する。
  7. 対照実験:次節の curl --resolve で、新しい IP クラスからベンダーエッジに到達できることを証明する。
  8. ソーク:2 rps で 200 回の逐次 HTTPS プローブを走らせ、POP コードが収束するか確認する。
  9. ロールバックメモ:フラッシュがキャプティブポータルを壊した場合は、ゲスト Wi-Fi ガイド に沿って VPN 再接続順序を記録する。
決して 本番の cron に curl --resolve を焼き込まない—一時的な証明にだけ使い、切り分け後は上書きを外して将来の DNS 事故を隠さないようにする。

curl --resolve と dscacheutil のレシピ

/etc/hosts を編集せずに古い答えを迂回したいとき、単一コマンド向けに権威 IP を固定します。

curl -v --resolve api.vendor.example:443:203.0.113.44 https://api.vendor.example/healthz

macOS では dscacheutil -q host -a name api.vendor.example と組み合わせ、ユーザランドキャッシュが何を信じているかを表示します。dscacheutil が dig @8.8.8.8 と食い違うなら、スプリットトンネル VPN か DoH クライアントがまだステアしている—リゾルバの切り分け に戻る。

OpenClaw と外向き HTTP クライアント:launchd の背後にあるキャッシュの罠

モデル API を呼ぶ LaunchAgent は、しばしば 1 つの undici または axios の agent を数時間生かしたままにします。リージョン間で mini を移したあとも、イベントループワーカーを回収しない限り、ブート時に得た DNS 答えを再利用し続けることがあります。回収とあわせ、HTTP プロキシ launchd 記事NO_PROXY 衛生を明示的に守り、localhost MCP トラフィックが古い企業リゾルバ経路を継承しないようにしてください。

落とし穴:否定キャッシュ、SVCB/HTTPS レコード、anycast のドリフト

NXDOMAIN は否定としてキャッシュされます—最初のタイポが数分間オートメーションを汚染します。新しい HTTPS RR タイプは A レコードとは異なる QUIC エンドポイントへクライアントを誘導できます。ツールが A/AAAA だけを見ていると幽霊を追います。BGP が動いても anycast フロントは TCP セッションを遠方 POP に張り付けたままにすることがあります—移動を証明できるのは新しい接続だけです。

dig api.vendor.example HTTPS +short

よくある質問

ProxyMac で JP から SG に移しただけでは DNS TTL を待てば足りますか?権威 TTL は全世界の伝播速度を決めますが、ノート PC はローカルキャッシュと温かい HTTP プールを保持します。TTL だけ待つのではなく、層ごとにフラッシュしてください。

curl は新リージョンなのに Chrome の CDN 国が古いのはなぜですか?スタックが異なります。curl は新しい TCP 接続を開きがちで、Chrome は古いエッジに束縛された HTTP/2 や QUIC セッションを再利用します。

本番スモークに curl --resolve は安全ですか?単一コマンド向けの診断上書きであり証明には優れますが、ローテーション監視なしに自動化へコミットするのは危険です。

クロスリージョンのキャッシュ実験のアンカーに ProxyMac Mac mini が向く理由

HK / JP / KR / SG / US でレンタルした Mac mini M4 は、リージョンごとに 予測可能な出口 IP クラス を与え、POP ヘッダを地理と相関させられます。ネイティブ macOS のリゾルバ挙動は開発者ノートと一致し、シングルテナント CPU は隣接ノイズなく長時間の curl ソークに向きます。ここでキャッシュの算術を検証したら、短命の CI IP を推測する代わりに、料金が透明な第二ノードへ同じプレイブックを昇格させられます。

証跡でリージョン切替を毎回証明する

DNS キャッシュ · HTTP/2 プール · HK / JP / KR / SG / US