Назад | Перейти на главную страницу

Гости не могут получить доступ к хост-серверу KVM по имени, хотя nslookup и dig возвращают правильную запись

Итак, у меня есть хост KVM, на котором также работает сервер apache с некоторыми репозиториями yum.

Гости виртуальных машин подключены к виртуальной сети по умолчанию, которая настроена для поддержки DHCP и пересылки с NAT на virbr0 (192.168.12.1).

Гости могут успешно получить доступ к репозиториям yum на хосте по IP-адресу, например curl 192.168.122.1/repo1 возвращает контент без проблем. Но я бы хотел, чтобы гости могли подключаться к веб-серверу на хосте по имени, а не по IP-адресу.

Я добавил желаемую запись имени в хост /etc/hosts file и служба dnsmasq libvirt, похоже, правильно обслуживает гостей, поскольку nslookup и dig успешно разрешают имя на гостях:

[root@localhost ~]# nslookup repo
Server:     192.168.122.1
Address:    192.168.122.1#53

Name:   repo
Address: 192.168.122.1

[root@localhost ~]# dig repo

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6 <<>> repo
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55938
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;repo.              IN  A

;; ANSWER SECTION:
repo.           0   IN  A   192.168.122.1

;; Query time: 0 msec
;; SERVER: 192.168.122.1#53(192.168.122.1)
;; WHEN: Tue Sep 17 02:10:46 2013
;; MSG SIZE  rcvd: 38

Но curl / ping / etc все еще не работает:

[root@localhost ~]# curl repo
curl: (6) Couldn't resolve host 'repo'

Пока работает запрос через ip адрес:

[root@localhost ~]# curl 192.168.122.1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 [...]

То же самое с ping:

[root@localhost ~]# ping repo
ping: unknown host repo
[root@localhost ~]# ping 192.168.122.1
PING 192.168.122.1 (192.168.122.1) 56(84) bytes of data.
64 bytes from 192.168.122.1: icmp_seq=1 ttl=64 time=0.110 ms
64 bytes from 192.168.122.1: icmp_seq=2 ttl=64 time=0.146 ms
64 bytes from 192.168.122.1: icmp_seq=3 ttl=64 time=0.191 ms
^C
--- 192.168.122.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2298ms
rtt min/avg/max/mdev = 0.110/0.149/0.191/0.033 ms

Я пробовал добавить repo 192.168.122.1 для гостей /etc/hosts файлы, но все еще нет кости. Также пробовал менять гостей ' /etc/nsswitch.conf с обоими:

hosts:      files dns

и

hosts:      dns files

Я прочитал соответствующую документацию по libvirt и не уверен, где еще можно узнать об этом больше и продвинуться дальше.

Работает ли добавление следующего в / etc / hosts для гостей: 192.168.122.1 repo ? (вы сказали, что добавили repo 192.168.122.1)

Что в твоем /etc/resolv.conf на гостей?

Вам также следует оставить /etc/nsswitch.conf с участием hosts: files dns

Вместо того, чтобы вручную изменять конфигурацию клиента DNS, вы должны использовать адресацию сеть libvirt для управления полным доменным именем как для гостевой ОС, так и для хоста.

выполнить команду virsh net-edit default и добавил следующую строфу в элемент <network> в вашем контексте именования:

<domain name="example.com"></domain>
<dns>
  <forwarder addr="8.8.8.8"/>
  <host ip='192.168.122.1'>
    <hostname>repo</hostname>
  </host>
</dns>

Добавьте его в / etc / hosts хоста, а не гостя.

Чтобы он работал через DNS, настройте как доменные имена, так и имена хостов, например host1.internal.domain.com (domain = internal.domain.com).

Вы должны изменить /etc/sysconfig/network (NISDOMAIN=), /etc/resolv.conf (search, domain), /etc/sysconfig/network-scripts/ifcfg-xxx (DOMAIN=,HOSTNAME= (FQDN)), /etc/hostname (FQDN) соответственно.