[libvirt] Adding ips and routes to type="ethernet" devices

Ruben Kerkhof ruben at rubenkerkhof.com
Mon Jul 18 17:48:33 UTC 2016


Hi all,

I've been playing with the recently added support for adding ips and
routes to a type"ethernet" kind of device.
My goal is to get rid of bridging and use host routes (/32) combined
with Bird for a pure layer3 setup.
Something similar to what https://www.projectcalico.org/ is doing

Instead of p2p addresses with peers they use device routes (ip route
add 192.168.0.1/32 dev vnet0) combined with static arp entries.

I am a bit stuck though. I've created the vm with a tap device:

 <interface type='ethernet'>
            <mac address='00:1a:4a:1b:d9:cc'/>
            <model type='virtio'/>
            <rom bar="off"/>
            <source>
                <ip address='192.168.42.41' family='ipv4'
peer='192.168.42.42' prefix='32'/>
                <route family='ipv4' address='192.168.100.0'
prefix='24' gateway='192.168.42.42'/>
            </source>
</interface>

After starting, the link stays down and no ips or routes are being created:

root at test1: ~# ip link show dev vnet0
15: vnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode
DEFAULT qlen 1000
    link/ether fe:1a:4a:1b:d9:cc brd ff:ff:ff:ff:ff:ff
root at test1: ~# ip route show
default via 10.10.5.1 dev br1010
10.10.5.0/24 dev br1010  proto kernel  scope link  src 10.10.5.2

I feel like I'm missing a step. Who is responsible for setting the
link up, it this libvirtd, qemu, or do I need to write a qemu-ifup
script?

Any help is greatly appreciated.

Kind regards,

Ruben Kerkhof




More information about the libvir-list mailing list