Tiny 11をMicrosoftと通信させない名前解決変更

Tiny 11をMicrosoftと通信させない名前解決変更

システム要件を満たさない低スペックのPCでWindows 11を使うと、2022年前半頃までは比較的快適で寧ろWindows 10より軽いくらいだったのですが、その後は更新の度に挙動が怪しく、プチフリーズ・長時間フリーズが多発するようになった。古いインストールメディアでインストールし直すと更新するまでは軽く普通に使えるので最新版にするのがマズいらしい。そして2023年2月になってシステム要件を満たさないPCでは画面の右下に警告が表示されるという話が出ている。重かったり停まったり警告が出たりで、いよいよ全く使い物にならないOSになってしまいました。

と、思ってたら、標準のWindows 11からいろいろ省いて軽量化したTiny 11というものが登場しました。Tiny 11はシステム起動後に操作可能になるまでの時間が圧倒的に短くて動作も軽め。テレメトリの送信も少なめ?少し使ってみた範囲では純正のWindows 11よりは遥かに良さそう。ただし、メモリの使用量はどこかのウェブで見たような1GBを下回る使用量ということはなくて2GB程度、純正Windows 11より寧ろ多いくらい。(b2版の話です)
怪しさが無いわけではないのでメインPC用としての使用は全く勧められないものの、2015年頃より前の低スペックPCでWindows 11を使いたいならこのような軽量版でないともう無理でしょう。

ところで、システム要件を満たさない低スペックPCにTiny 11をインストールすると動作が軽いのですが、Windowsを更新すると微妙に重くなるようです。特にWindows起動後のシステムビジーが長くなるようです。せっかくの軽量版Windowsが台無しです。Tiny 11では更新そのものを控えた方が良さそうです。しかし、Tiny 11は標準でWindows Updateが有効になっているので油断すると更新しようとします。
今回は、Tiny 11の通信を調べてMicrosoftと通信させないようにします。ファイヤウォールで通信を遮断するのではなく、名前解決の対処だけで十分そうです。これをWindows側ではなくLANのDNSサーバで行います。DNSサーバで対応しておけばTiny 11をインストールし直しても複数のPCにインストールしても対応不要なのでラクです。

Tiny 11をMicrosoftと通信させない名前解決変更 1
Tiny 11をいつものシステム要件を満たさない古い低スペノートPCにインストールしてみました。これはtiny11 b2(no sysreq)です。
Windows 11 Proエディションで22H2アップデート適用相当です。スクショ撮影時点では日本語適用済みで最新状態への更新も行っています。(この更新が失敗だと思ったのでこの記事を作成することになりました)

Tiny 11をMicrosoftと通信させない名前解決変更 2
ルーター辺りでtcpdumpやWiresharkで通信内容を調べるというのが普通なのでしょうが、名前解決だけを調べたいということであればWindowsではDNSQuerySnifferが簡単で便利。(ただしシステム起動完了までは録れません)パケットキャプチャ用のドライバが別途必要です。Wiresharkインストールで一緒に入るPcapドライバで良いです。
インターネットに繋がる側のネットワークインターフェイスのIPアドレスで待ち受けます。「0.0.0.0」を選択するとキャプチャできないのでご注意ください。稼働中にそのPCで何らかの名前解決が発生すると1行追加されます。左端列のHost Nameは名前解決しようとしているホスト名です。画像の右端列のIPアドレスがその正引きしたIPアドレスです。0.0.0.0になっているのは、既にLANのDNSで書き換えているからです。DNSで何もしていなければ本来のIPアドレスが表示されている筈です。この画像ではMicrosoft系の全ての通信先のホストのIPアドレスが0.0.0.0になるように対応済みです。その方法が以下。

Tiny 11 b2の通信相手(Microsoft)

  • slscr.update.microsoft.com
  • fe2cd.update.microsoft.com
  • fe2cr.update.microsoft.com
  • fe3cr.update.microsoft.com
  • fe3cr.delivery.mp.microsoft.com
  • kv801.prod.do.dsp.mp.microsoft.com
  • cp801.prod.do.dsp.mp.microsoft.com
  • settings-win.data.microsoft.com
  • settings-win.data.mp.microsoft.com
  • geo.prod.do.dsp.mp.microsoft.com
  • geover.prod.do.dsp.mp.microsoft.com
  • download.windowsupdate.com
  • ctldl.windowsupdate.com
  • go.microsoft.com
  • wdcp.microsoft.com
  • wdcpalt.microsoft.com
  • cxcs.microsoft.com
  • www.msftconnecttest.com
  • windows.msn.com
  • time.windows.com
  • dns.msftncsi.com
  • www.bing.com
  • login.live.com
  • dmd.metaservices.microsoft.com
  • displaycatalog.mp.microsoft.com
  • storecatalogrevocation.storequality.microsoft.com
  • tsfe.trafficshaping.dsp.mp.microsoft.com
  • fd.api.iris.microsoft.com
  • watson.events.data.microsoft.com
  • msedge.api.cdp.microsoft.com
  • edge.microsoft.com
  • edgeassetservice.azureedge.net
  • a-ring.msedge.net
  • k-ring.msedge.net
  • spo-ring.msedge.net
  • dual-s-ring.msedge.net
  • s-ring.msedge.net
  • fp-vs-nocache.azureedge.net
  • config.edge.skype.com
  • static-ecst.licdn.com
  • msedge.b.tlu.dl.delivery.mp.microsoft.com
  • msedge.f.dl.delivery.mp.microsoft.com
  • nav.smartscreen.microsoft.com
  • nav-edge.smartscreen.microsoft.com
  • smartscreen-prod.microsoft.com
  • 2.au.download.windowsupdate.com
  • 3.au.download.windowsupdate.com
  • 4.au.download.windowsupdate.com
  • 7.au.download.windowsupdate.com
  • 9.au.download.windowsupdate.com

漏れはあるでしょうが、1日ほど通信を録って調べた範囲ではMicrosoft側の通信相手はこれらのホストでした。リスト以外にfootprintdns.com,azureedge.usのホストが複数(多数)ありますが省略しています。
この内、footprintdns.com,azureedge.net,azureedge.us,msedge.net,microsoft.com,windowsupdate.comのサブドメインはunboundでは纏めることができます。
Tiny 11は純正Windowsとは異なりテレメトリの送信が少なめのようです。

Unboundで名前解決の設定を行う

これらのホスト/ドメインのIPアドレスを0.0.0.0に書き換えるunbound用ルールは以下です。(IPアドレス書き換え部分だけです)
    local-zone: "footprintdns.com." redirect
    local-data: "footprintdns.com. A 0.0.0.0"
    local-zone: "azureedge.net." redirect
    local-data: "azureedge.net. A 0.0.0.0"
    local-zone: "azureedge.us." redirect
    local-data: "azureedge.us. A 0.0.0.0"
    local-zone: "msedge.net." redirect
    local-data: "msedge.net. A 0.0.0.0"
    local-zone: "microsoft.com." redirect
    local-data: "microsoft.com. A 0.0.0.0"
    local-zone: "windowsupdate.com." redirect
    local-data: "windowsupdate.com. A 0.0.0.0"

#   local-data: "www.msftconnecttest.com. IN A 0.0.0.0"
    local-data: "windows.msn.com. IN A 0.0.0.0"
    local-data: "time.windows.com. IN A 0.0.0.0"
    local-data: "dns.msftncsi.com. IN A 0.0.0.0"
    local-data: "www.bing.com. IN A 0.0.0.0"
    local-data: "login.live.com. IN A 0.0.0.0"
    local-data: "config.edge.skype.com. IN A 0.0.0.0"
    local-data: "static-ecst.licdn.com. IN A 0.0.0.0"
サブドメインを纏めると少なくすっきりしたルールになりました。www.msftconnecttest.comの行をコメントにしていますが理由は次。

Tiny 11をMicrosoftと通信させない名前解決変更 3
上の通信相手の内、www.msftconnecttest.comはWindowsがインターネットとの疎通を確認するために利用しているようです。そのIPアドレスを0.0.0.0にするとインターネットとの疎通ができないという判断になるようです。インターネットとの接続がないという判断であっても実際にはインターネットと通信ができるようですが、文字通り通信不能になることもあるようです。この辺りの挙動はよく判りません。そこで、上のルールではwww.msftconnecttest.comは普通に名前解決できるようコメントにしています。

time.windows.comはWindowsの時刻合わせに使われます。ただし、Windowsは他のNTPサーバでも時刻合わせが可能なのでこのtime.windows.comは通信できないようにして問題ないと思われます。 参照: Windows 10の時刻同期設定

関連記事: