ノードと遅延 2026年4月14日

DNS リゾルバとスプリットホライズンの落とし穴:クラウド Mac mini へ SSH ホスト名が失敗するとき(2026)

ProxyMac エンジニアリングチーム 2026年4月14日 約14分で読了

HK、JP、KR、SG、US の専用 Mac mini は到達できるはずなのに、クライアント側の macOS や Windows がホスト名を誤った IP、NXDOMAIN、またはルーティングできない IPv6 に解決してしまうことがあります。この 2026 年版ガイドは、パスワード誤りやファイアウォールを既に除外したチーム向けです。失敗マトリクスを辿り、システム・VPN・DoH ヘルパーなどリゾルバの積み重ねを比較し、インシデントチャンネルに貼れる9 ステップのランブックを示します。トンネルをポリシーが握る場合は ゼロトラスト VPN ルーティングと併せ、DNS の答えが妥当になったら MTR 診断と組み合わせてください。

DNS で痛む人—「クラウドが遅い」ではない

症状は三類型です。即時の NXDOMAIN(SSH が 1 秒未満で落ちる)、30〜75 秒のハング(リゾルバのタイムアウト階段)、成功が不安定(Wi‑Fi VLAN ごとに社内ビューが変わる)。スプリットトンネル VPN の開発者は多く、ノート PC が突然社内 DNS を優先し、プロバイダのホスト名をブラックホールやキャプティブポータル用 IP に書き換えます。運用チームは、ラップトップと同じ検索ドメインを転送しない Kubernetes ノードから /etc/resolv.conf を継承した CI ランナーでも苦しみます。

  • 午後だけで オフィス有線消費者向け VPN企業 ZTNA を切り替えるハイブリッド勤務者。
  • DNS-over-HTTPS ヘルパーをグローバルに入れ、UI の手がかりなしに macOS のリゾルバ優先度を並べ替える自動化ホスト。
  • 企業の search domain があるときだけ解決する短い名前を使う ssh エイリアスをコピーした人。

失敗マトリクス:症状 → DNS 仮説 → 証拠

症状有力な DNS 原因証明コマンド/シグナル典型的な修正の型
ssh: Could not resolve hostname が即時権威またはスタブが再帰拒否による NXDOMAIN壊れたネットワークと正常ネットワークで dig Adig AAAA を比較FQDN 例外を追加するか競合する検索サフィックスを無効化
バナー前にハングし、その後は動くデュアルスタック:AAAA を先に試し IPv6 経路がブラックホール一度 ssh -4 で実行し、AAAA の答えを確認Match で IPv4 を優先するか v6 ルーティングを修正
LTE では動くがオフィス Wi‑Fi で失敗スプリットホライズンの社内ゾーンが公開レコードを覆う両経路で scutil --dns を取得プロバイダゾーン向けの IT フォワーダ迂回
DNS TTL 変更後にランダムにセッション切断短い TTL と anycast ローテーションと厳格な CheckHostIP低冗長 ssh -v で名前の再解決に伴う再鍵交換を確認ホスト鍵ピン留めを緩めるか安定した踏み台名を使う

macOS のリゾルバ積み重ね:レースで勝つのは誰か

すべてのフラグを暗記するより順序を理解することが重要です。現行 macOS では scutil --dns がリゾルバのセグメントを表示します:インタフェース固有、VPN 提供、システム既定。ブラウザが DoH を使っても CLI はシステム経路のままかもしれません。セキュリティエージェントが getaddrinfo を横取りすれば、そうとも限りません。開発者が実際に使う VLAN ごとにスタックを記録してください。

スタックの種類SSH/scp への影響チケットに残すログ
純粋な ISP DHCPベースライン。すべての劣化はまずここと比較先頭リゾルバのスクリーンショットと dig の TTL
企業 VPN の DNS プッシュ検索ドメインの並べ替えが多い。「未知」の公開 SaaS に NXDOMAIN を入れることもVPN プロファイル名とスプリットトンネルのオン/オフ
ローカル DoH/「セキュア DNS」エージェントエージェントが libc を迂回すると dig @resolver と乖離しうるベンダー名・バージョン・ポリシー ID
macOS クイック取得: VPN の切り替え前後で scutil --dns | head -n 80 を実行。出力を MTR のスクリーンショットの横に置けば、ネットワークとアプリの管轄争いが収まります。

9 ステップの DNS ランブック(Linux クライアントにも使える)

  1. 変数を固定: 正確な ssh の argv、クライアント OS のパッチ、Wi‑Fi SSID または Ethernet ドック型番、VPN のオン/オフを記録。
  2. 二重に解決: 壊れたノートから AAAAACNAME 連鎖の順引きを実行。dig+json に対応していれば JSON で保存。
  3. VPN オフのカフェ等で比較(ポリシーが許す範囲で)し、スプリットホライズンを切り分け。
  4. IPv4 のみで試験: ssh -4 と、macOS のネットワーク設定でインタフェース順が壊れた IPv6 トンネルを好むか確認。
  5. 検索リストを点検: ~/.ssh/config から短名を外す。踏み台を標準化するなら FQDN と CanonicalizeHostname を推奨。
  6. 逆引きの期待を検証: サーバ側で UseDNS が有効な構成では PTR のノイズがセッションを殺すことがある—ヘルプセンターのガイドと併用。
  7. IT にフォワーダ方針を確認: ホスト名と、コンソールの割当から期待する正しい公開 IP を示す。
  8. 修正後、移行期間だけ TTL を一時的に下げ悪い答えを早く流す—その後は保守的な TTL に戻す。
  9. 成果物をアーカイブパス診断の横に置く。次の採用担当が同じ 3 時間の Zoom を繰り返さないように。
セキュリティ注意: 本番ホスト名を公開ペーストビンに貼らない。シリアルは伏せ、完全な文字列は社内チケットだけに残す。

議論を止める 3 つの数字

  • 5 秒は人が「SSH が固まった」と感じる心の閾値で、クライアントは別のリゾルバ経路をまだ試していることがあります。パケットキャプチャのタイムスタンプに合わせてください。
  • 300 秒は消費者 DNS でよくある正答キャッシュ TTL のオーダーです。プロバイダが anycast エッジを回すと、意図的にフラッシュしない限り、すべてのノートが新しい A レコードで揃うまでその程度かかることがあります。
  • ProxyMac の5 リージョンは、実施したリゾルバ試験の横に HK/JP/KR/SG/US と書くべきだという意味です。将来の自分はシンガポールのベアメタルと東京をどのオフィスが使ったか覚えていません。

DNS はレイヤ 7 の意味論で、その下の経路は 企業 VPN 方針が既に形作ったものの上に載ります。答えが安定したら MTR で到達性を検証し、DNS の真実RTT の現実の両方に合うリージョンを 料金ページから確保してください。

よくある質問

ping は通るのに ssh user@hostname が止まるのはなぜ? キャッシュ層が異なり、場合によっては sshd 設定の逆引きです。常に digssh -vvv のタイムスタンプを突き合わせてください。

IP を ~/.ssh/config に直書きすべき? 一次切り分けには可。リージョン移行時に唯一の恒久策にするのは避けた方がよいです。

ブラウザの DoH は SSH に効く? 直接は稀。ただし企業エージェントがスタックを並べ替えることがあります。思い込みより scutil --dns を信頼してください。

DNS のドラマのあとも ProxyMac の Mac mini が合う理由

リゾルバが真実を言い始めたら、その努力に報いる金属が欲しくなります。Apple Silicon M4 の Mac mini はビルドと自動化に単一テナントで予測可能な性能を与え、ネイティブ macOS のリゾルバ挙動は開発者がローカルで直すのと同じです。HK/JP/KR/SG/US に配置でき、API の近さと DNS の近さを揃えられます。ProxyMac のモデル—SSH と VNCヘルプセンターで文書化—により、ユーザーが不満を言うのと同じネットワークから再現し、スプリントが終われば環境を下げ、所有ハードに遊休 DNS ゾーンを抱え込まなくて済みます。

DNS が真実を言ったあとでリージョンを選ぶ

リゾルバとパスデータが揃ったら HK/JP/KR/SG/US の Mac mini