次のサブドメインを持つ Windows Server 2012 上に、Active Directory と DNS を備えたサーバーがあります。
ac: alm.local <--- 10.0.0.3
DNS ホスト:
javi.a.alm.local <---- 10.0.0.20
Windowsで解決する場合:
nslookup javi.a
server: localhost
address: 127.0.0.1
name: javi.a.alm.local
address: 10.0.0.20
しかし、Debian の場合:
nslookup javi.a
Server: 10.0.0.3
Address: 10.0.0.3 # 53
** server can't find javi.a: NXDOMAIN
なぜ解決しないのでしょうか?
resolv.conf:
nameserver 10.0.0.3
search alm.local
答え1
search
デフォルトでは、Linux リゾルバは、すでにドットが含まれているクエリ名にドメインを適用しません。そのためjavi.a
、FQDN として扱われ、ドメインはalm.local
追加されません。
この動作は を使用して変更できますndots
option
。これは、FQDN として扱われる名前に含まれるドットの最小数を指定します。デフォルトは です1
。
resolv.conf(5)
そうする前に、マニュアルページの警告も考慮する必要があります。
リゾルバクエリの数がドット ドット(デフォルトは1)を含む検索パスの各コンポーネントを順に使用して、一致するものが見つかるまで検索が行われます。複数のサブドメインがある環境では、以下をお読みください。オプション ndots:ん中間者攻撃やルート DNS サーバーへの不要なトラフィックを回避するために、以下の手順に従ってください。このプロセスは遅くなる可能性があり、リストされているドメインのサーバーがローカルでない場合は大量のネットワーク トラフィックが生成され、いずれかのドメインでサーバーが利用できない場合はクエリがタイムアウトになることに注意してください。
以下のドキュメントoptions ndots
:
名前に現れるドットの数のしきい値を設定します。レスポンスクエリ(3)(参照リゾルバ(3)) の最初の絶対検索が行われる前に、n が 1 に設定されます。n のデフォルトは 1 です。つまり、名前にドットが含まれている場合、検索リストの要素が追加される前に、その名前が絶対名として最初に試されます。このオプションの値は、自動的に 15 に制限されます。
(これは、名前が FQDN として試された後に検索ドメインで試されることを意味しますが、実際にはこれは発生しません。検索ドメインではまったく試されません。これが、今日ここに投稿した理由です。)
したがって、resolv.conf に以下を追加できます。
options ndots:2
また、ドットが 1 つの名前には検索ドメインが追加されますが、ドットが 2 つ以上ある名前には追加されません。マニュアル ページに記載されているように、必要に応じてこれを 15 まで設定できます。