新しい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/hosts
dnsmasq管理機能が組み込まれています。だから使い方はとても簡単です。
構成
/etc/hosts
dnsmasqの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.conf
1つしかないことがわかります。ネームサーバーを検索するために使用されるすべてのツールは、最終的にdnsmasqを押してからレコードを受信する必要があります。にレコードがない場合、検索はアップストリームDNSサーバーに転送されます。 (192.168.101.2).nameserver
127.0.0.1
/etc/resolv.conf
/etc/hosts
/etc/hosts