macOS 26 はカスタム DNS 設定(`.internal` を含む)を破壊します。

2026/03/20 0:06

macOS 26 はカスタム DNS 設定(`.internal` を含む)を破壊します。

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

macOS 26.3.1 は、IANAルートゾーンにリストされていないトップレベルドメイン(TLD)— 例:.internal、.test、*.home.arpa、および .emflocal のようなカスタムゾーン — に対して暗黙的に DNS 解決を無効化する回帰が導入されました。
mDNSResponder はこれらのクエリを捕捉し、それらをマルチキャスト DNS とみなし、

/etc/resolver/
で指定されたユニキャストネームサーバーに転送しません。その結果、システムレベルのツール(ping、curl、socket.getaddrinfo() など)は「Unknown host」エラーを報告しますが、
scutil --dns
は解決器設定がアクティブであると表示し、誤った正確性感覚を与えます。

この回帰は macOS 25.x 26.3.0 から 26 にアップグレードした直後に発生し、RFC 6761 を違反しています。RFC 6761 は .test をローカルテスト用に予約しており、通常の DNS 解決を要求します。標準的な IANA 登録 TLD(例:google.com)はデフォルト解決器経由で正常に解決され続けます。ローカル解決器への直接クエリ(

dig @127.0.0.1 …
)は正しい IP アドレスを返しますが、システムアプリケーションはそれらを無視します。

回避策としては

/etc/hosts
に静的エントリを追加する方法しかなく、Docker コンテナのような動的環境には実用的ではありません。この問題は Feedback Assistant(ID 22280434)で報告されており、現在プライベート TLD を使用したローカル開発ワークフロー(dnsmasq +
/etc/resolver/
、Docker Desktop コンテナ名解決、Vagrant/Tailscale VPN クライアント、および *.cluster.local を使用する Kubernetes ツール)を脅かしています。

本文

問題概要

macOS 26 は、IANA ルートゾーンに登録されていないすべてのトップレベルドメイン(TLD)について、

/etc/resolver/
に設定されたドメイン別 DNS リゾルバを静かに破棄します。
mDNSResponder はこれらのクエリをマルチキャスト DNS(mDNS)として処理し、リゾルバファイルで指定されたユニキャストネームサーバーを参照しません。このため、macOS 25 では正常に動作していたローカル開発やプライベートネットワークの DNS ワークフローが中断します。


背景

  • /etc/resolver/
    はドメイン別 DNS 設定を可能にする仕組みです。
    :
    internal
    という名前のファイルに
    nameserver 127.0.0.1
    を記述すると、
    *.internal
    のクエリはすべてローカルネームサーバーへ転送されます。
  • この機能は man 5 resolver に文書化され、macOS 10.6 以降安定して使用されています。
  • 開発者はしばしばプライベートドメインを回答するローカル DNS サーバー(例:dnsmasq, bind, unbound)を稼働させます。

対象マシンでは Homebrew でインストールした

dnsmasq
が次のように設定されています:

# /opt/homebrew/etc/dnsmasq.d/test.conf
address=/probe.example-private/127.0.0.1

リゾルバファイルは

example‑private
のクエリをローカルサーバーへ転送します。


再現手順

ステップコマンド期待される結果
1
brew services start dnsmasq
127.0.0.1:53
で dnsmasq が稼働
2
dig @127.0.0.1 probe.example-private A +short
127.0.0.1
3
sudo sh -c 'echo "nameserver 127.0.0.1" > /etc/resolver/example-private'
リゾルバファイル作成
4
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
DNS キャッシュをフラッシュし、mDNSResponder を再起動
5`scutil --dnsgrep -A4 "example-private"`
6
ping -c1 probe.example-private
失敗 – “Unknown host”
7
python3 -c "import socket; print(socket.getaddrinfo('probe.example-private',80))"
失敗
[Errno 8] nodename nor servname provided, or not known

期待される動作

ping、curl、ブラウザ、あるいは

getaddrinfo()
を呼び出す任意のアプリケーションは、dnsmasq の
address=
指令と
/etc/resolver/example-private
によって定義されたルートを経由し、
probe.example-private
127.0.0.1
へ解決するべきです。macOS 25 ではこの挙動が確認できていました。


実際の挙動

  • すべての解決試行が “Unknown host” で失敗します。
  • DNS トラフィックは
    dnsmasq
    に届きません(tcpdump でポート 53 のパケットはゼロ)。
  • mDNSResponder は内部的に「No Such Record」の応答を返し、TTL が非常に大きい値(約108,002 秒)となります。

証拠例:

dns-sd -G v4 probe.example-private
Timestamp     A/R  Flags         IF  Hostname                      Address  TTL
11:42:03.617  Add  40000002       0  probe.example-private.        0.0.0.0  108002   No Such Record

対象 TLD(失敗するもの)

TLD状態備考
.internal
壊れたIETF ドラフトの特別用途 TLD。macOS 25 では機能していた
.test
壊れたRFC 6761 §6.2 – ローカルテスト用に予約
.home.arpa
壊れたRFC 8375 – 居住型プライベートネットワーク
.lan
壊れた一般的な慣習だが IANA で登録されていない
未登録 TLD(例:
.emflocal
壊れたIANA ルートゾーンに存在しない

IANA に正式登録された TLD(例:

google.com
,
bbc.co.uk
)は引き続き機能します。


回避策

唯一確実な回避策は

/etc/hosts
に手動でエントリを追加することです。これにより mDNSResponder をバイパスできますが、動的環境には非現実的であり、変更ごとに sudo が必要になります。


影響

  • /etc/resolver/
    (例:dnsmasq +
    *.test
    ,
    *.local
    ,
    *.internal
    )を利用したローカル開発 DNS ワークフローが中断します。
  • Docker Desktop、Vagrant、Tailscale、VPN クライアント、および Kubernetes のローカルツールがプライベート TLD 用に生成するリゾルバ設定は無音で失敗します。
  • scutil --dns
    でリゾルバ構成を確認できても、ログやエラーメッセージなしに解決失敗が発生します。

環境

項目
macOS バージョン26.3.1 (Darwin 25.3.0, Build 25D771280a)
アーキテクチャApple Silicon (arm64)
dnsmasqHomebrew インストール、127.0.0.1:53 でリッスン
回帰発生時期macOS 25.x の直前の夜間アップデート後に発生

参考文献

  • man 5 resolver
    /etc/resolver/
    に関する macOS ドキュメント。
  • RFC 6761 – 特別用途ドメイン名(
    .test
    ,
    .localhost
    ,
    .invalid
    ,
    .example
    )。
  • RFC 8375
    home.arpa
    の特別用途。
  • IETF draft‑ietf-dnsop-interneti-mdn
    .internal
    の提案。

Apple Feedback Assistant へのリンク
https://feedbackassistant.apple.com/feedback/22280434(ログインが必要)

同じ日のほかのニュース

一覧に戻る →

2026/03/20 5:33

コックピットは、サーバー用のウェブベースのグラフィカルインターフェイスです。

## Japanese Translation: **Cockpit** は、Linux 管理者がオペレーティングシステムから直接サーバーを管理できる軽量でブラウザベースのインターフェイスです。OS 内で動作し、Debian、Fedora、および RHEL など主要なディストリビューションに対応しており、コンテナの起動、ストレージやネットワークの設定、ログの確認、ブラウザを離れずにターミナルとグラフィカルコントロール間で切替えなどが可能です。 ユーザーは Cockpit からでも従来のシェルからでもサービスをシームレスに開始・停止でき、端末で発生したエラーは自動的に Cockpit のジャーナルインターフェイスに表示されます。 プロジェクトはリモート管理もサポートしており、ユーザーは SSH 経由で Cockpit がインストールされた他のマシンを追加・管理できるため、ホスト切替が簡単です。コミュニティサポートは Matrix チャネル(#cockpit:fedoraproject.org)とメールリストで提供されます。ドキュメントにはツールの使い方だけでなくコードベースへの貢献方法も網羅しており、ガイディングプリンシプル、リリースノート、およびプライバシーポリシーが含まれています。 複数の Linux ディストリビューションにわたる統一で使いやすい GUI を提供することで、Cockpit はサーバー管理を効率化し、ドキュメントと活発なコミュニケーションチャネルを通じて継続的な開発者貢献を促進することを目指しています。

2026/03/19 22:05

**Astral が OpenAI に参入**

## Japanese Translation: **(欠落していた詳細を補完)** ### 要約 Astral は、オープンソースの Python ツールを存続させつつ OpenAI の Codex チームに参加することに合意し、そのツールチェーンをモダンな Python 開発の中心に位置付けました。この取引は Astral の創業者が発表し、Python エコシステムの生産性を少なくとも 1 % 向上させる高レバレッジ戦略を強調しています。Ruff(高速リンター)、uv(依存関係解決ツール)、ty といった人気ツールへの継続的なサポートが含まれ、これらを Codex の AI コーディングアシスタントに統合する計画です。Astral のツールチェーンはゼロから数億件の月間ダウンロードへと成長し、Accel が主導した Casey Aylward 氏によるシード資金調達と Andreessen Horowitz が牽引した Jennifer Li 氏によるシリーズ B 資金調達で支えられています。創業者は Astral チームのユーザー重視の製品品質に感謝し、今後も高い基準を維持するとともに、ユーザーの信頼への感謝を表明しました。買収後、Astral はオープンソース提供物の開発を継続し、それらを Codex と統合し、ソフトウェアエンジニアリングにおける影響力を拡大します。これにより、開発者・企業・広範なエコシステムは、生産性を加速させる AI 強化型の堅牢な Python ユーティリティ―基盤となるツールセット―を享受できます。

2026/03/20 2:16

Google、未認証Androidアプリをサイドロードするための新しい24時間プロセスを発表

## Japanese Translation: Googleは2025年後半にAndroid向けの開発者認証プログラムを開始し、開発者が認証されていない場合はサイドロードされたアプリをブロックすることでマルウェアリスクを低減することを目指します。開発者は本人確認書類を提出し、アプリ署名キーをアップロードし、25ドルの手数料を支払う必要があります。 ユーザーは「未認証パッケージを許可」オプションを有効にして認証を回避できます。設定方法は、ビルド番号を7回タップして開発者向けオプションを解除し、スイッチを切り替えてPIN/パスワードで確認し、デバイスを再起動します。その後24時間待ち、次に「一時的に許可」または「無期限に許可」を選択します。24時間の遅延は、高度なソーシャルエンジニアリング攻撃を抑止するためです。 Googleは非Playソースからマルウェアに遭遇する確率が約50倍高いと引用し、このプログラムでそのリスクを低減すると主張しています。検証機能はすでにAndroid 16.1(2025年後半にリリース)に組み込まれており、全てのサポート対象デバイスで利用可能です。実施開始はブラジル、シンガポール、インドネシア、タイで2025年9月から行われ、2026年には世界中へ展開されます。 このプログラムは手数料などのハードルを追加するため、制裁対象国の開発者にとって不利になる可能性がありますが、Googleはその方針がそのような開発者を排除することを意図していないとし、検証済み開発者リストを非永続化に保ち法的課題を回避すると述べています。プライバシー擁護派は検証済み開発者のデータベースについて懸念を示し続けています。

macOS 26 はカスタム DNS 設定(`.internal` を含む)を破壊します。 | そっか~ニュース