IPv6 support feature

Petr Sebek psebek at redhat.com
Wed Aug 7 10:03:26 UTC 2013


Hi all,

I started to work on IPv6 support for Ovirt. I created feature page [1] that describes every design decision that was made and current progress. This feature should basically allow Ovirt run on IPv6 protocol in the same way as it now works on IPv4. Every host, storage should be able to be IPv6 addressed. Every created network, network interface should be able to have IPv6 addresses.

Feature page [1] contains all changes, but here is some summary to talk about:

IPv6 support affects VDSM, VDSM-API, Ovirt-Engine GUI, Frontend, Backend, REST API.

In Vdsm works was already started and currently we are working on new shape of ifcfg configurator. We will add new class IPv6 to netmodels for address validation. Also will be need some changes in jsonRpcUtils.py.

We presented new attributes in VDSM-API schema for @NetworkOptions and @SetupNetworkNetAttributes:
ipv6addr - IPv6 address for static configuration
ipv6gateway - gateway for static configuration
ipv6autoconf - to use stateless autoconfiguration of IPv6 addresses
dhcpv6 - to use DHCPv6 service for IPv6 addresses and DNS services
Other records of api already using IPv6 attributes or handling address in string format, so in API shouldn't be more changes, but it needs testing.

Ovirt Engine GUI should accept IPv6 address in every place that accepts address, e.g. create new host. We also should be able to set network to be IPv6 ready. We do this by adding option to IPv6 static configuration, stateless autoconfiguration and DHCPv6. Every nic should also provide information about its IPv6 addresses. There are GUI designs at [1].

In Ovirt-Engine Frontend is need to change two classes that validate address string: IpAddressValidation and HostAddressValidation.

I'm not much aware of Ovirt-Engine Backend changes towards IPv6 so I would much appreciate any suggestion.

In REST API we will have to change Network and HostNic records to contain element "ips" instead of "ip". It will directly affect following actions: /api/networks/{network:id}|rel=update, /api/networks|rel=add, /api/hosts/{host:id}/nics/{nic:id}|rel=update, /api/hosts/{host:id}/nics/setupnetworks|rel=setupnetworks. There are few more records that contain field like "address" or "href" that should be tested, but the API needs no change.

Please also note that there still are some opened questions:
Should we provide option to add more than one IPv6 address to Edit Network static configuration? 
What is the meaning of having both IPv4 AND IPv6 address for the same network? E.g., if this is a migration network, which of the addresses should qemu use? 
How to handle multiple gateways with IPv6?
Should we allow DHCPv6 and stateless autoconfiguration at same time?

I would like to hear your reactions and suggestions to this new feature.

[1] http://www.ovirt.org/Features/IPv6_support

Thank you,

Petr Šebek,
Red Hat Ovirt networking team



More information about the Arch mailing list