> -----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. > > 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.