ネットワークに接続した新しく構築されたFedora 20サーバーがあります。 VirtualBox ホストで実行される仮想サーバーです。すべてがうまくいくようですが、名前解決に問題があります。
(名前解決は、別のハードウェア上のWindowsサーバー上のネットワーク上の他のすべてのコンピュータに提供されます。)
コマンドラインから外部ホストを確認できますunix.stackexchange.com
。たとえば、私が試した他のすべての外部ホストと同様に、この問題をうまく解決してpingできます。
しかし、私のローカルネットワーク(私たちが呼ぶ名前xyz.local
)は異なります。私のF20システムのネットワークインターフェースはDOMAIN=xyx.local
ネットワークスクリプトにあります(以下のスクリプト全体)。たとえば、コマンドラインでは解析できserver-01
ますがserver-01.xyz.local
。
たとえば、標準名は長い形式なので、別名の短い形式を解析できますが、その別名で正常に解決されますが、解析またはping mysql
解析するlinux-04.xyz.local
ことはできません。mysql.xyz.local
linux-04.xyz.local
明らかに私は何かを見逃しています。誰でも提案できますか?
/etc/hosts には、127.0.0.1 の標準 localhost エントリのみが含まれます。
/etc/resolv.confは次のとおりです。
#Generated by Network Manager
search xyz.local
nameserver 192.168.xxx.xxx
私のインターフェーススクリプトは
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="Wired connection 1"
UUID=<uuid>
ONBOOT=yes
IPADDR0=192.168.xxx.xxx
PREFIX0=24
GATEWAY0=192.168.xxx.xxx
DNS1=192.168.xxx.xxx
HWADDR=<mac>
DOMAIN=xyz.local
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
答え1
問題の一部は、NetworkManagerを介して自動的に生成される検索パスによって発生する可能性があります。
search xyz.local
この行は実際には次のようになります。
search xyz.local.
最後の期間は DNS リゾルバに停止するよう指示するので重要です。したがって、次の操作は実行されません。
mysql.xyz.local.xyz.local
ピリオドを手動で追加して一時的にホスト名を解決すると、これを確認できます。
$ nslookup mysql.xyz.local.
このドメインを広範囲に解析
この問題を解決するには、ドメインがxyz.local.
。
/etc/nsswitch.conf
ホスト名を解決するために使用される方法はファイルによって制御されます/etc/nsswitch.conf
。 NSS表記法はName Service Switchingを意味し、その詳細についてはマニュアルページで確認できますman nss
。
以下は、ホスト名を解決する方法を制御するファイル内の行です。
$ grep ^hosts /etc/nsswitch.conf
hosts: files dns mdns4_minimal
まず、私のローカルファイルを見て、次に/etc/hosts
DNSを照会します。
答え2
この問題は、nsswitch.confファイルのキーワード "mdns4_minimal"が原因で発生します。このキーワードは、local で終わるすべてのコンテンツが mdns を使用して照会される必要があることをパーサーに通知します。そのキーワードを削除する(通常は角かっこで囲まれた他のオプションと一緒に)十分です。
詳細は私にあります。郵便はがき
nslookupがすべての問題を解決する理由は、nsswitch.confを見つけるのではなく、/etc/resolv.confを直接使用するためです。一方、Pingは最初にnsswitch.confを見て、そこに記録された内容を使用して名前を解決する検証者に依存します。