On 1/3/13 3:20 AM, "Hugo Trippaers" <htrippa...@schubergphilis.com> wrote:

>
>
>> -----Original Message-----
>> From: John Kinsella [mailto:j...@stratosec.co]
>> Sent: Wednesday, January 02, 2013 10:05 PM
>> To: cloudstack-dev@incubator.apache.org
>> Subject: Re: [ASFCS41] IPv6 Support
>> 
>> Good comments - keep 'em coming!
>> 
>> On Jan 2, 2013, at 1:01 AM, Hugo Trippaers
>> <htrippa...@schubergphilis.com> wrote:
>> > Technically this is a very sound idea, but scale needs to be
>>discussed.
>> Having static assignments in a database like we do for IPv4 could have
>> potential impact as the address space available is multitudes bigger
>>than in
>> IPv4. Technically one can have 18.446.744.073.709.551.616 hosts in a
>>single
>> /64 network, you don't want to be doing a database query on such a
>>table to
>> lookup the IP for a host. (Not that it's very reasonable to assume this
>>we
>> would ever see networks this size) My thinking was more geared to using
>> SLAAC for determining  addressing to get this burden away from
>>cloudstack
>> management server, but this would make other configuration like the
>> firewall a lot more difficult. The other issue with using DHCPv6 is the
>>pseuso
>> addressing that a lot of systems use a the moment, lots of relatively
>>short
>> lived IPv6 addresses on an interface in addition to the one IPv6
>>address that
>> is based on the modified EUI-64. This might be a feature that we would
>>want
>> to encourage for security reasons, but again this makes firewalls
>>potentially
>> more difficult.
>> 
>> I'd think if you saved the addresses in numeric form (vs string) it
>>wouldn't be
>> too bad...interesting convo at
>> http://stackoverflow.com/questions/420680/how-to-store-ipv6-compatible-
>> address-in-a-relational-database
>
>Agreed, still querying a huge table is going to be a performance impact.
>Especially if you take into account that if more tenant are in a network
>more changes will happen making the load increase above linear.

I think John's point was that you could store only the addresses that have
been allocated, along with a row for the range / cidr block. This is the
current approach for isolated guest networks for example.

>
>> 
>> How SLAAC works in an IaaS - I don't have a good answer there, yet.
>>Seems
>> like having a daemon sniff for advertisements/requests/responses could
>>be
>> one way...
>
>I don't have the solution yet, but I like the thinking about the daemon.
>I think you could even just query the neighbor tables on the VR, they
>should be up2date at all times.
>
>> 
>> >> This is a big feature, but I think the Basic zone is the easiest for
>>now.
>> >
>> > I would vote for thinking up a good solution for both and doing the
>> advanced zone in one go. But that is very simply because my use case is
>>for
>> advanced networking together with IPv6, we do not use basic networking
>>in
>> any of our deployments.
>> 
>> +1
>> 
>> >> NAT in the VR seems like a firewall, but a true statefull firewall
>>in the VR
>> could do the same while the Instances still have publicly routeable IPv6
>> addresses.
>> > I think we should focus on true statefull firewalls. This would
>>encourage
>> people to think more on security and allows the use of IPv6 privacy
>> extensions right from the host.
>> 
>> +1
>> 
>> > That said, simply enabling IPv6 will not "fix" the problem until
>>there is a
>> widespread adoption of IPv6 by endusers. Still let's not play the
>>chicken and
>> egg game, but fix IPv6 in CloudStack and take the lead.
>> 
>>  +11 :)
>> 
>> >> 3       UI / UX Requirements
>> >> All fields (input fields and display fields) that take IP Addresses
>>would
>> need to support both IPv4 and IPv6
>> > I think it's bigger than this. Do we need service offerings to tell
>>if a network
>> should have IPv6, IPv4 or both? In that case we need to be able to tell
>>what
>> kind of addressing needs to be configured and how. Depending on the
>> solution we choose we need configuration for the static routes and
>>mappings
>> to public addresses. It probably also ties in with the multiple address
>>per nic
>> configuration and this also has UI implications. We would need
>>configuration
>> screens to configure privacy extensions (ipsec, replacing the VPNs).
>>Firewall
>> configurations will become more complex and might need additional
>>screens
>> for IPv6 statefull firewall configuration. Also the exisiting network
>> configuration might need to be tuned to the type of networking, we don't
>> need to give the user the possibility to configure portforwarding on an
>>IPv6
>> only network for example.
>> >
>> > In addition simple stuff like the count for available public IP
>>addresses
>> might need to be revisited to make the difference between IPv4 and IPv6
>> clear in the UI.
>> 
>> I'm thinking as this is a pretty major change, we should have a separate
>> branch for development and (a large amount of) testing...
>> 
>
>+1 This is a major feature when done right and requires a lot of testing.
>As we are going to be touching a huge part of the code with theis we have
>to take in account that we have to make unittests for those parts as well
>as most are missing.

If you see the subtasks for CLOUDSTACK-452, you can see that I've split it
to make it more manageable. I feel that tackling the simplest usecase can
help further clarify the fog around SLAAC vs DHCPv6  and issues around
routing.
--
Chiradeep

Reply via email to