CentOS 7で「host -vホスト名」コマンドを機能させる

CentOS 7で「host -vホスト名」コマンドを機能させる

新しいCentOS 7をインストールしました。インストール中にcenta.home.localをホスト名として指定しました。

ソフトウェアの1つは、「host -v centa」出力を確認してサーバー上のサーバーのIPアドレスを見つける必要があります。残念ながら、IPアドレスが見つかりません。

[user1@centa ~]$ ifconfig | grep inet
        inet 192.168.101.128  netmask 255.255.255.0  broadcast 192.168.101.255
        inet6 fe80::20c:29ff:fe00:f049  prefixlen 64  scopeid 0x20<link>
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
[user1@centa ~]$ hostname
centa.home.local
[user1@centa ~]$ hostname -d
home.local
[user1@centa ~]$ hostnamectl status
   Static hostname: centa.home.local
         Icon name: computer-vm
           Chassis: vm
        Machine ID: b2d53d8cc49e486f980d0f8461c415e2
           Boot ID: e2dbffd536434cc4ba530a17e8b186d6
    Virtualization: vmware
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-514.el7.x86_64
      Architecture: x86-64
[user1@centa ~]$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain
::1         localhost localhost.localdomain
192.168.101.128 centa.home.local centa
[user1@centa ~]$ cat /etc/resolv.conf 
# Generated by NetworkManager
search localdomain home.local
nameserver 192.168.101.2
[user1@centa ~]$ host -v centa
Trying "centa.localdomain"
Trying "centa.home.local"
Trying "centa"
Host centa not found: 3(NXDOMAIN)
Received 98 bytes from 192.168.101.2#53 in 136 ms
[user1@centa ~]$ 

答え1

ユーティリティhostはDNS検索を実行するため、使用しません/etc/hosts。これは、成功するには、ホストが一部のDNSサーバーに存在する必要があることを意味します。
ここに質問があるので、この DNS レコードを DNS サーバー (192.168.101.2 のレコード) に追加することはオプションではないと仮定します。幸いにもNetworkManagerを使用しているので、実際にこの問題をかなり簡単に解決できます(のコメント付き行に表示されます/etc/resolv.conf)。

解決策は、dnsmasqを有効にして設定することです。 dnsmasq は localhost で実行される DNS フォワーダです。再帰的なルックアップやキャッシュ結果などの簡単な操作を実行できます。 NetworkManagerには/etc/hostsdnsmasq管理機能が組み込まれています。だから使い方はとても簡単です。

構成

/etc/hostsdnsmasqのNetworkManagerのデフォルト設定はこの機能を有効にしないため、設定部分はdnsmasqにレコードを提供するように指示しています。

/etc/NetworkManager/dnsmasq.d/hosts.conf次の内容でファイルを作成します。

addn-hosts=/etc/hosts

〜できるようにする

セクションにパラメータを追加すると有効になりますdns = dnsmasq。たとえば、[main]/etc/NetworkManager/NetworkManager.conf

[main]
dns = dnsmasq

これを実行したら、NetworkManagerを再起動します(経由systemctl restart NetworkManager.service)。

使用法

これで、指す項目が/etc/resolv.conf1つしかないことがわかります。ネームサーバーを検索するために使用されるすべてのツールは、最終的にdnsmasqを押してからレコードを受信する必要があります。にレコードがない場合、検索はアップストリームDNSサーバーに転送されます。 (192.168.101.2).nameserver127.0.0.1/etc/resolv.conf/etc/hosts/etc/hosts

関連情報