локальный поиск DNS, не работающий, несмотря на все, находится в/etc/hosts

Я запускаю Ubuntu (12.04) на Виртуальном Поле и хочу, чтобы моя машина смогла к поиску свое собственное имя хоста, тот же способ, которым другой VMs сделает в этой сети (я пытаюсь создать виртуальный кластер). Нет никакого сервера DNS, IP присвоены VirtualBox, и я просто отображаю их в/etc/hosts.

Название машины является node1, и у меня есть/etc/hosts как этот:

user@node1-VirtualBox:~$ cat /etc/hosts
127.0.0.1   localhost 
192.168.56.103  node1-VirtualBox.cs.ucl.ac.uk node1-VirtualBox
#10.0.2.15  node1-VirtualBox

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Таким образом, я принял бы это

  1. Полностью определенное имя хоста было бы node1-VirtualBox.cs.ucl.ac.uk
  2. node1 и node1-VirtualBox.cs.ucl.ac.uk решили бы к 192.168.56.103 (и наоборот)

От имени хоста я получаю это:

$hostname ->  node1-VirtualBox   (OK)

$hostname --fqdn -> node1-VirtualBox.cs.ucl.ac.uk (OK)

$hostname --A -> node1.local node1.cs.ucl.ac.uk (OK i guess)

имя хоста выглядит многообещающим, но когда я пытаюсь получить IP-адреса с помощью хоста, оно не работает...

user@node1-VirtualBox:~$ host -v -t A node1-VirtualBox
Trying "node1-VirtualBox.cs.ucl.ac.uk"
Trying "node1-VirtualBox"
Host node1-VirtualBox not found: 3(NXDOMAIN)
Received 110 bytes from 127.0.0.1#53 in 1 ms

user@node1-VirtualBox:~$ host -v -t A 192.168.56.103
Trying "103.56.168.192.in-addr.arpa"
Host 103.56.168.192.in-addr.arpa. not found: 3(NXDOMAIN)
Received 108 bytes from 127.0.0.1#53 in 2 ms

Какая-либо идея, почему это не работает? Из того, что я читал и вижу в конфигурации, если DNS сделан на localhost, это должно просто проверить/etc/hosts..., и все там, правильно? И SSH работает, таким образом, ясно этот файл корректен?


Ниже моей конфигурации:

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat group:          compat shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4 networks:       files

protocols:      db files services:       db files ethers:         db files rpc:            db files

netgroup:       nis

resolv.conf:
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1
search cs.ucl.ac.uk

ifconfig:
eth0      Link encap:Ethernet  HWaddr 08:00:27:da:a1:bc  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:feda:a1bc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:169 errors:0 dropped:0 overruns:0 frame:0
          TX packets:176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:123968 (123.9 KB)  TX bytes:21551 (21.5 KB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:99:65:51  
          inet addr:192.168.56.103  Bcast:192.168.255.255  Mask:255.255.0.0
          inet6 addr: fe80::a00:27ff:fe99:6551/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0
          TX packets:252 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:78333 (78.3 KB)  TX bytes:71866 (71.8 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:12527 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12527 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:23857104 (23.8 MB)  TX bytes:23857104 (23.8 MB)

После смерти:

Хорошо, оказывается, что команда "хоста", не решая была небольшим количеством отвлекающего маневра для моей исходной проблемы - это не могло работать, потому что это не изучает/etc/hosts, как объяснено в ответах ниже.

Первичным размещением было отсутствие канонического имени хоста т.е. hostname --fqdn возвращал localhost. Для фиксации его, у меня должно было быть это: 192.168.56.103 node1-VirtualBox.cs.ucl.ac.uk node1-VirtualBox как вторая строка в моем/etc/hosts.

Однако для того, чтобы заставить его на самом деле работать я должен был перезапустить свои машины и переустановить Cloudera на моем кластере.

2
задан 6 February 2015 в 14:57

2 ответа

Вы делаете все правильно как вставление записей /etc/hosts, адрес сервера в /etc/resolv.conf, /etc/nsswitch.conf взгляды, хорошие также.

Проблема, которую Вы имеете, происходит из-за понимания очень конкретного термина "сервер имен". Все команды раньше разрешали IP-адрес к имени хоста и наоборот использовали адреса сервера имен от /etc/resolv.conf если не упомянуто явно. Вы поместили nameserver 127.0.0.1 который не является допустимым сервером имен, потому что он не настроен как сервер имен. Это там из-за dnsmasq который действует как ловец DNS (и сервер DHCP), но host, dig, nslookup возьмите данные из допустимого, настроенного сервера имен только.

Как host, nslookup, dig команды будут использовать "сервер имен", упомянутый в /etc/resolv.conf (если не указано), разрешение сетевых имен не будет работать с помощью них в случае. Хотя программы то использование /etc/nsswitch.conf или читайте /etc/hosts разрешит имя хоста к IP-адресам и наоборот.

Если Вы хотите разрешить имена хостов от /etc/hosts Вы должны использовать getent. Например, для разрешения "node1-VirtualBox" Вам нужна следующая команда:

getent hosts node1-VirtualBox
1
ответ дан 2 December 2019 в 05:08

host/nslookup управляют попыткой утилит разрешить запросы DNS непосредственно с помощью серверов имен. Они не используют/etc/hosts. Но приложения делают. Например, ping должен работать. Таким образом, "проверьте с помощью ping-запросов node1-VirtualBox", должен решить к 192.168.56.103 в Вашем случае. Что Вы хотите сделать точно?

0
ответ дан 20 November 2019 в 02:07

Другие вопросы по тегам:

Похожие вопросы: