On 10/03/2012 10:08 PM, Gene Czarcinski wrote:
OK, either I have taken a stupid pill and am missing something basic or routed network do not work.

I assume that, if they did work, it would be in more or less that same manner as a nat network as far as ping'ing, ssh'ing, etc. to another real host on the same real LAN as the virtualization host. At least that is what I believe I should expect.

I use routed networks, but they require some extra work. The docs [1] say that "This is a variant on the default network which routes traffic from the virtual network to the LAN without applying any NAT. It requires that the IP address range be pre-configured in the routing tables of the router on the host network." (emphasis mine) The way I read into this is that you are responsible for routing packets yourself. The docs say that you have to use IP addresses that are visible by the host and external machines and configure your routing table, so that it forwards packets to the VMs. I am not sure how to do that, but I have a different solution -- I use a pair of IP addresses for each VM: external (real and configured on the host) and internal. Then I have a SNAT + DNAT pair of iptables rules that expose the VM to the outside world in a manner similar to the one used in DMZ setups:

ubuntu@thehost:~$ sudo iptables -t nat -L -n
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination        
DNAT       all  --  0.0.0.0/0            X.Y.Z.120           to:10.1.1.2

...

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination        
SNAT       all  --  10.1.1.2             0.0.0.0/0            to:X.Y.Z.120

I am not sure if anyone else is doing the SNAT/DNAT thing to routed networks, but it's been working quite nicely for me so far.

Best,
Hristo

[1] http://libvirt.org/formatnetwork.html#examplesRoute