検索意図:大会前後に「サイトは速く大容量だけ遅い」が出やすい理由

learn.microsoft.com で読むテキスト中心のページやインデックス、検索結果はホストやパスによっては別の CDN に振られる一方、体感では軽量に見えることがあります。対してVisual Studio Installer が引き寄せるワークロードやコンポーネント本体は、単一の名前に見えてもログを追うと別ホストへのリダイレクト広域 CDNリージョン差のあるエッジ名へ分岐することが珍しくありません。Microsoft Build 2026 に近い春〜初夏は、開発者イベントの視聴・復習とツールチェーン刷新が重なるため、この層別の転送が同時多発しやすく、半ルーター構成での策略の食い違いも露わになりやすいです。

そこでまずは RTT やノード単体の評価より前に、(A) 同一フローの数秒〜数分間に並ぶ接続ログで、FQDN と Policy が揃っているか、(B) 購読ルールセットの広い MATCH が意図せず先に評価されていないか、を確認するのが費用対効果が高いです。サブスクとルールの前提がまだ整理できていない場合はそちらから合わせると、この稿の順序とも噛み合いやすくなります。

通信の層:ドキュメント・マーケット・インストーラ・認証

ざっくり次のような帯に分けます。(1) 読むコンテンツlearn.microsoft.com、および関連ドキュメント・ラーニングパス。(2) 製品サイトとインストーラ制御visualstudio.microsoft.com 周辺、VS Installer が参照する構成メタ。(3) 大容量バイト列の取得download.visualstudio.microsoft.com ほかログに現れる CDN 由来のホスト。(4) アカウントおよびライセンスの検証login.microsoftonline.com に代表される IdP への往復、ときどきSCCM や企業プロキシの話とは別レイヤーですが名前が並ぶ環境があります。

ここでの典型の失敗は、(1)(2) だけ PROXY で速く、(3)(4) の一方が細い uplink に直撃する DIRECT、またはその逆、(3) にだけ過負荷のノードに載せ続ける、というレイヤーの割れ目です。CDN のエッジ名はタイミングや地域ごとに変わります。以下のコード断片やドメイン例は自環境のログに現れた名前へ置換する前提の雛形です。

Teams・Copilot 稿とのシナリオ差

Teams が主に扱うのは会議 signallingRTCデスクトップ版の CDN、M365 と絡んだ添付ファイルであり、イベントシーズンのビルドとは別に会議ログと WebSocket が前面に立ちやすいです。GitHub CopilotGitHub Models は、IDE と models.github.aigithub.com と Microsoft ログイン連携が複雑になりがちであり、プラグインチェーンの短命な接続の束として観ます。それに対し本稿の対象は、長時間転送になりやすいインストーラ開発者サイトのレイテンシ感が主役です。同一社名でもサービス単位でのドメイン集合は異なりますので、検索での混同だけは避けるのが安全です。

症状とログの見え方

再現中に Mihomo 系クライアントの接続一覧を開き、learn.microsoftvisualstudiodownload.visualstudiomicrosoft.comazureedgeakamai などでフィルタします。docs 側のホストだけがPROXY、ダウンロード経路だけがDIRECT と続くときは、画面上は「サイトは問題ない」のに転送キューだけ極端に遅く感じられることがあります。VS Installer が途中でサイズだけ伸びなくなる場合でも、ログのタイムスタンプ単位で並んだ行同士が同じノードへ向いているかを見ると判断が早いです。

fake-ip 環境では、ブラウザで開いた開発者サイトとステージングされたセットアップ実行ファイルで、解決済みのアドレス解釈が食い違うと、繰り返しだけ失敗ログが残ります。この場合はDNS と出口の両方で一つの整合表に寄せる、という考えで後述します。

DNS と名前解決:Mihomo の DNS と整列させる

マイクロソフト系でも見かけ上同じサイトでも別の権威側に質問すると別エッジに振られることがあります。nameserver-policy など DNS セクションの仕組みを使い、learn.microsoft.com と、実ログに繰り返し現れるダウンロード用ホスト同じリゾルバー系列で追いやすくするのも手です。細部は使用中の Mihomo の版に合わせてください。Windows の詳細設定側でブラウザとシステムの DoH/プライベート DNS が二重にかかっていると、ログに「解決だけおかしい」行が増えやすくなります。切り分けのときは一時的に名前解決の経路を一つに寄せ、その上で経路だけを二分します。

汎用の症状整理はトラブルシューティング全般の記事にも譲りますが、開発者コンテンツの取得ではIPv6 と IPv4 が混線することもまれに問題になります。ルールは合っているのに接続だけ別出口に見えるときは、この辺も含めます。

ルール順:広い microsoft 行が先に評価されていないか

購読に含まれるDOMAIN-SUFFIX,microsoft.com 相当が巨大に先頭にあると、自分で追記した開発者サイト専用の行より先に評価され、その後の転送だけ別ルールへ落ちる、という並びになりがちです。対策は、(1) 今回ログに確実に出ていた FQDN を上の方へ積む、(2) 策略グループ を「開発ツールチェーン」「一般ブラウザ利用」などに名前で分離して追いやすくする、(3) FINAL の前にある GEOIP などが開発者サイトに不要な側へ振っていないか、を確認することです。同じ名前が矛盾したノードへ向けられていないかをログで最終確認すると安心です。

ルール例(参考スニペット)

下は説明目的の YAML 断片であり、環境により無効であったり名前が変わります。コピペ即投入はしないでください。

# Replace FQDNs with those from your Mihomo logs; avoid shadowing subscriptions
rules:
  - DOMAIN-SUFFIX,learn.microsoft.com,MS_DOCS_PROXY
  - DOMAIN-SUFFIX,visualstudio.microsoft.com,MS_VS_SITE
  - DOMAIN-SUFFIX,download.visualstudio.microsoft.com,MS_VS_CDN_MATCH
  - DOMAIN-SUFFIX,visualstudio.com,MS_VS_CDN_MATCH
  - DOMAIN-SUFFIX,login.microsoftonline.com,MS_LOGIN
  - DOMAIN-SUFFIX,microsoft.com,MS_CATCHALL
  - MATCH,FALLBACK_GROUP

MS_VS_CDN_MATCHDIRECT にするか PROXY に揃えるかは自分の uplink とノード別の帯域によります。まずは取得の成否だけを優先するなら、同一ワークロード関連の名前をすべて同じ出口に載せてから速度の最適化を足す順が扱いやすく、メタだけ通って本体が宙に浮く状態だけは避けるのが主眼です。

VS Installer と暗号化コンテンツ:署名チェック側のログ

Visual Studio Installer は起動〜構成取得の過程で、リストとハッシュ検証や時刻確認に絡む複数ホストへ触れます。一部だけ証明書検証タイムアウトが出るとき、実際にはISP の直経路のみで解決済みだったホストだけプロキシに逃がしていることがあります。ログで証明書失効リスト(CRL)相当の名前CDN とは別レイヤーの小さな転送が並ぶか確認し、その塊でも Policy が揃うようにします。

エンタープライズ向けの規約環境とは別に、自分のワークステーションのみを対象として許容された開発者コンテンツに限り接続経路を最適化する、という運用であることが前提です。

TUN とシステムプロキシ

ブラウザからの閲覧はシステムプロキシ経由でも、インストーラがUAC 昇格後の別プロセスになり環境変数やプロファイルを読まず直結へ落ちる構成もあり得ます。その場合TUN モードやTUN に関する導入手順での取り込みが有効になります。常時オンが難しい環境では、(1) まず QUIC の扱い(ブラウザを Chromium 経由にしているときは Chromium 側)(2)DNS の整合(3)ルール順、の順に潰したあとだけ TUN を検討すると迷いが減りやすいです。

切り分けのすすめ方(短い順から)

  1. learn.microsoft.com の軽いページだけを読み込み、その直後に VS Installer が触る名前をログへ残す。
  2. 一覧に現れた開発者サイト系ホストすべてが同様の Policy とノードになるか並べて比べる。
  3. 小さめのコンポーネントでダウンロードが終わり切るか試し、その間のログを保存する。
  4. 問題がなくなったら本番規模のワークロード取得へ進む。
  5. それでも繰り返すときは、fake-ip と純 DNS モードの切り替えだけを隔離環境で対照試験する。
  6. 必要な場合のみ TUN で同一ユーザーセッションではないプロセスを含めて統合する。

いったん Clash を停止して直経路のみで症状が消えるかだけを見てから、プロキシ必須の運用に戻してください。

関連:Google/Android と Apple の開発者サイト稿

同種のレイヤーの切り分けはGoogle と Android のプレビュー取得にも当てはまります。Google I/O と developer.android.com およびWWDC と Xcode/Apple Developer CDN の稿とも考え方の枠は共通です。マルチプラットフォーム両方いじるときはルールセットの名前衝突にだけ注意してください。

本稿は、正当な利用条件のもとでの公式インストーラとドキュメントへの接続を前提としています。ボリュームライセンスの回避や許可されていない鏡への誘導を助ける意図はありません。記載ホストや製品構成は変更され得ます。

まとめ

Microsoft Build 2026 前後のVisual Studiolearn.microsoft.com の利用増加時には、開発者コンテンツ層とマイクロソフト開発者 CDN と呼べる転送経路が、Clash のログ上で別々のノードへ割り当てられているケースがあります。DNS とルール順を揃え、接続一覧で名前と Policy を横並び確認し、必要なら TUN でレイヤーを統合する、という流れならイベント準備での不必要な試行時間を減らしやすいです。可視化のしやすい Mihomo 互換クライアントでは、ログとポート設計が一枚で追えるので、複雑になりがちな半プロキシ運用とも相性が良いタイプがあります。

ルール試行やノード検証で手間を増やしたくない場合でも、統一された UI と接続一覧が揃っているクライアントから試すことで見落としが減ります。→ Clash を無料ダウンロードして、開発者サイトとインストーラの出口をログで一枚にそろえたうえで、もう一度 Visual Studio と learn を試す