
これがその場合です。 avahi経由で複数のドメインを公開するホームサーバーがあります。
Avahiとresolvctlはクライアント(ubuntu 22)にインストールされます。
ファイルから/etc/nsswitch.conf
- hosts: files mdns4_minimal [NOTFOUND=return] dns
.これは正常に見えます。
しかし、
$ avahi-resolve -n whoami.homeserver.local
whoami.homeserver.local 192.168.0.4
しかし、PingやCurlでアドレスを解決しようとすると
$ curl whoami.homeserver.local
curl: (6) Could not resolve host: whoami.homeserver.local
UPD:面白いです。homeserver.local
デフォルト名はpingによって正しく解決されました。
答え1
mDNSを介して3つのタグ名を解決しようとしています。
通常、mdns4_minimal
2つのタグ名のみが解析されます。
バラよりlibnss-mdnsパーサーライブラリのソースコード:
// If mdns_allow_file is NULL, then this implements the "local" SOA
// check and two-label name checks similarly to the algorithm
// described at https://support.apple.com/en-us/HT201275. This means
// that if a unicast DNS server claims authority on "local", or if the
// user tries to resolve a >2-label name, we will not do mDNS resolution.
言及されたAppleサポート文書はもう存在しませんが、archive.orgで見ることができます。。
ここで言及されているのは、mdns_allow_file
ビルド時間設定可能${sysconfdir}/mdns.allow
(通常/etc/mdns.allow
)を表します。このファイルが存在するかどうかをテストしますmdns4_minimal
。存在する場合、より広いmDNSルックアップが許可されます。これがない場合、デフォルトでは<single_label>.local
フォームの2つのラベル名のみがmDNSを介して照会されます。local.
一般的なDNS SOAレコードが見つかると、検索もスキップされます。
mDNSが導入されたとき、多くの組織はすでに内部DNS階層を.local
または.organization.local
。
mDNS 使用の割り当てに関する問題を最小限に抑えるために、妥協点に達しました。デフォルトでは、mDNSは、より広い使用のために特に有効にしない限り、終わる二重.local
ラベル名でのみ機能します。.local
これにより、3つ以上のタグで終わる名前を以前のように解決できますが、.local
mDNS / Zeroconf / BonjourのためにmDNS / Zeroconf / Bonjourで終わる2つのタグ名が保持されます。.local
文書が整理されていないようですが、有益なコミットメッセージのサポートを追加:
バージョン0.5以降で利用可能な
nss-mdns
単純な設定ファイルがあります。このファイルには、改行で区切られた有効なドメインサフィックスが含まれています。 # で始まるコメントと同様に、空行は無視されます。ドメインサフィックスに関係なく、すべての名前に対してmDNSルックアップを有効にするには、次の行のみを追加します(バージョン<= 0.4の動作モードに似ています)。/etc/mdns.allow
.local
*
nss-mdns
# /etc/mdns.allow *
構成ファイルが存在しない、または読み取れない場合の動作は、次の
nss-mdns
内容を含む構成ファイルを読み取るのと同じです。# /etc/mdns.allow .local. .local
つまり、で終わるホスト名だけが
.local
mDNSを介して解決されます。構成ファイルが存在するが空の場合、mDNS 名検索は完全に無効になります。
読書名前がmDNSルックアップを許可するかどうかを決定する関数のソースコード/etc/mdns.allow
else
ファイルが存在しない場合(最も外側の if...then...else
セクションの分岐)にのみ、二重ラベル制限が適用されることを示します。明らかに、2ラベルヒューリスティックはmdns.allow
論文が実装されてから10年後に追加されました。
したがって、3 つのラベルで構成される mDNS 名が機能し、他のすべての名前がそのまま機能するようにするには、次のコンテンツを含む/etc/mdns.allow
ファイルを生成する必要があります。
.local.
.local