- Launchpad Entry: NovaSpec:multinic-libvirt
- Created: Ilya Alekseyev
- Contributors: Eldar Nugaev, Ilya Alekseyev
We need support for multiple network interfaces per instance for libvirt. Our vision based on http://wiki.openstack.org/multi-nic specification. with some additions.
This is implementation same functionality as in https://blueprints.launchpad.net/nova/+spec/multi-nic for libvirt. Multiple NIC for libvirt allows users to have instances connected to several networks. Implementation of this blueprint is first step in add support multi-nics for libvirt.
I. libvirt connection changes changes in libvirt_con.to_xml() propagate NIC data I. firewall rules changes All firewall drivers would be changed to support multiple networks per instance. iptable rules should be changed. I. network managers changes
- FlatManager: open question - seems it is not required to be changed, but we need to check it
- FlatDHCPManager should be changed to support multiple networks
- VlanManager should be changed to support multiple networks
I. template changes Add support of several NICs to template:
#!highlight xml #for $nic in $nics <interface type='bridge'> <source bridge='$nic.bridge_name'/> <mac address='$nic.mac_address'/> <!-- <model type='virtio'/> CANT RUN virtio network right now --> <filterref filter="nova-instance-$nic.name"> <parameter name="IP" value="$nic.ip_address" /> <parameter name="DHCPSERVER" value="$nic.dhcp_server" /> #if $getVar('extra_params', False) $nic.extra_params #end if #if $getVar('ra_server', False) <parameter name="RASERVER" value="$nic.ra_server" /> #end if </filterref> </interface> #end for
We need both unit and integration tests. Second is more important.