← Back to team overview

cloud-init team mailing list archive

Re: [OpenStack][Neutron] Metadata over IPv6


On Wed, Mar 18, 2020 at 11:29 AM Bence Romsics <bence.romsics@xxxxxxxxx>

> Hi Everyone,
> I'm also from OpenStack, just wanted to add an idea and a question.
> > > - In what order should cloud-init try ipv6 and ipv4?
> > >    - cloud-init would prefer to know which one it should use so we
> don't timeout on an endpoint that isn't there.
> >
> > I would say that it it could be checked what IP addresses are configured
> in the guest OS already and use correct one if only one type of addresses
> is there. If there would be both IPv4 and IPv6, it could try IPv4 first as
> it is like that now. What do You think about such solution?
> Alternatively we may delay this decision by adding a new data source
> 'OpenStackIPv6' and then the cloud image builder can order 'OpenStack'
> and 'OpenStackIPv6' in datasource_list as they see fit.

This could help.  cloud-init would very much like to distinguish which
datasource to use via
non-network indication.  Cloud-init currently detects that it should use
OpenStack datasource
via DMI table values.  As I mentioned just recently in another reply; this
isn't perfect for
non-x86 architectures, and it may be heavy handed to modify the DMI string
emitted for
VMs who just happen to be running on ipv6 enabled metadata service clouds.

> My question relates to the use of link-local addresses as it is also
> commented on review.opendev.org. With my limited IPv6 experience, a
> URL with a link-local address but without a zone is incomplete, right?
> This is incomplete: http://[fe80::a9:fe:a9:fe]/. On the other hand
> this is complete: http://[fe80::a9:fe:a9:fe%25eth0]/. At the time of
> configuring cloud-init nobody will be able to predict the
> guest-internal interface names. Is it okay for cloud-init to take the
> incomplete address and discover the interface(s) to be used?

cloud-init already uses a deterministic heuristic to pick the "best"
on which to reach metadata service.  Cloud-init will supply the interface
when accessing the ipv6 metadata URL.

> Thank you,
> Bence Romsics
> rubasov on freenode