web-dev-qa-db-ja.com

DNSサーバーはローカルホスト名を解決できません

RHEL6.4 vmにApacheサーバーをセットアップしようとしていますが、dnsmasqが何らかの理由でホスト名を認識できないため、セットアップできません。

nslookup rhel64.example.com
Server:         xxx.xxx.xx.1
Address:        xxx.xxx.xx.1#53

server can't find rhel64.exmple.com: NXDOMAIN

/etc/hosts

xxx.x.x.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf

; generated by /sbin/dhclient-script
search novalocal example.com
nameserver xxx.xxx.xx.1

私の問題を解決するために見なければならないことがあれば、私に知らせてください。別のDNSサーバーを使用できません。

DNSサーバーを変更せずにdnsmasqでホスト名を解決する方法を探しています。

3
pt18cher

サーバーのIPアドレスは修正されると思います。 /etc/hostsには

127.0.0.1  localhost
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
xxx.x.x.1  rhel64.example.com rhel64

localhostは、127.0.0.1または:: 1以外のアドレスを指すことはできません。必要に応じて、固定アドレスのホストを/etc/hostsに追加します。

動的アドレスの場合、/etc/dnsmasq.confに正しいドメインが設定されていることを確認し、リクエストでホスト名が送信されていることを確認してください。 dnsmasq.leasesディレクトリにある/var/libファイルを確認して確認してください。ドメインはこのように指定する必要があります。

domain=example.com

または、dnsmasq.confファイルまたは/etc/ethersで固定アドレスを指定できます。このような行は、MACアドレスaa.bb.cc.dd.ee.ff192.0.2.1にマッピングします。上記のように、DNS名は/etc/hostsで指定されます。

 aa.bb.cc.dd.ee.ff     192.0.2.1

編集:私が使用する診断はincludeです。

ホストでgetentを実行し、dnsmasqを実行します。

 getent hosts rhel64

これにより、hostsファイルに入力した値、またはDNSによって返された値が返されます。それが機能する場合は、Hostコマンドを使用してアドレスを検索してください。ホストが利用できない場合は、nslookupを使用します。これらのコマンドを試してください。 (dnsmasqサーバーとApacheサーバーが同じホスト上にあるようです。

 hosts rhel64.
 hosts rhel64.example.com.
 hosts rhel64.  localhost
 hosts rhel64.example.com.  localhost
 hosts rhel64.  rhel64. 
 hosts rhel64.example.com.  rhel64.
 hosts rhel64.  rhel64.example.com.
 hosts rhel64.example.com.  rhel64.example.com.

どのコマンドが失敗し、どのように失敗するかが問題の判別に役立つはずです。また、dnsmasqがすべてのIPアドレスをリッスンしていることを確認することもできます。

問題を診断する場合:rhel64.のリクエストはドメインで修飾されていないホスト名に対するものであり、rhel64.example.com.に対するリクエストは完全修飾名に対するものです。名前の最後のドットは、リゾルバーに検索リストのドメインを試行しないように指示します。 2番目のホスト名が指定されている場合、/etc/resolv.confにリストされているネームサーバーをオーバーライドします。この場合、/etc/resolv.confのサーバー、ローカルホストアドレス(127.0.0.1または:: 1)、DNSから検索されたホスト名のアドレス、および検索された完全修飾名のアドレスを使用しました名前からサーバー。名前の最初の検索が失敗した場合、最後の2つのサーバーは機能しません。

 netstat -an | grep :53

編集:あなたの投稿をもう一度読んで、DHCPからあなたのアドレスを取得していることに気づきました、固定IPアドレスを設定することに関するメモはUnixスタイルのDHCPサーバーに適用されます。これらは、おそらくxxx.x.x.1のルーターであるdchp-serverに適用する必要があります。これはサーバーのアドレスではありません。コマンドifconfigまたは新しいコマンドip addrを使用して、現在のIPアドレスを取得できるはずです。これは、/ etc/hostsファイルのホスト名と一致する必要があるアドレスです。

ルーターにアクセスできない場合は、DHCPを取得してDNSサービスを更新することができます。 DHCP構成ファイルに次のエントリを追加します。option fqdn.fqdn rhel64.example.com;またはオプションfqdn.fqdn rhel64;

エントリを追加したら、dhclientプロセスを再起動する必要があります。コマンドを試してください

Sudo dhclient -r
Sudo dhclient

それ以外の場合は、インターフェースまたはネットワーク設定全体を再起動する必要があります。

4
BillThor