So I have a KVM host that also runs an apache server with some yum repos.
The VM guests are connected to the default virtual network, which is configured to offer DHCP and forwarding with NAT on virbr0 (192.168.12.1).
The guests can successfully access the yum repos on the host by IP address, so for example curl 192.168.122.1/repo1
returns the content without problems. But I'd like to have the guests be able to reach the web server on the host by name rather IP address.
I added the desired name record to the host's /etc/hosts
file and libvirt's dnsmasq service seems to be serving that correctly to the guests since nslookup and dig successfully resolve the name on the guests:
[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
But curl/ping/etc still fail:
[root@localhost ~]# curl repo
curl: (6) Couldn't resolve host 'repo'
While a request via ip address works:
[root@localhost ~]# curl 192.168.122.1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of /</title>
[...]
Same with 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
I tried adding repo 192.168.122.1
to the guests' /etc/hosts
files but still no dice. Also tried changing guests' /etc/nsswitch.conf
with both:
hosts: files dns
and
hosts: dns files
I've read the relevant libvirt documentation and I'm not sure where else to learn more about this and be able to move forward with it.