Итак, у меня есть хост 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) соответственно.