Hi Wido, I assume that flouting ip will not work grate with ingress/egress acl on VR.
>From regular ACS user perspective: I have Instance with dualstack its running web app on 443. I want to swap instances for whatever reason. In case of IPv4 change d-nat rule. In case of IPv6 if flouting IP was not created upfront he will need to change dns entry that usually has 24h ttl. Inconvenience degradation in experience. >From ACS admin perspective: I don’t want to have these tickets in helpdesk. You needed to create another flouting IP that it would be seamless- will not work as answer. On 2021/07/19 09:05:54, Wido den Hollander <w...@widodh.nl> wrote: > > > Op 16-07-2021 om 21:46 schreef Kristaps Cudars: > > Hi Wido, > > > > Your proposal is to sacrifice ability to reassign IPv6 to instance, have > > internal domain prefix, and list/db in ACS what IPv6 has been assigned to > > what instance and go with RA and SLAAC. For route signaling to switch use > > BGP/OSPFv3 or manual pre-creation. > > > > You can still list the IPs which have been assigned. You'll know exactly > what IPv6 address a VM has because of the prefix + MAC. Privacy > Extensions need to be disabled in the VM. > > This already works in CloudStack in Shared Networks in this way. > > Using secondary IPs you can always have 'floating' IPv6 addressess. > > Wido > > > Option with RA and managed flag that DHCPv6 is in use to support preset > > information and ability to create route information from ACS is not an > > option as DHCPv6 its failing? > > > > > > On 2021/07/16 15:17:42, Wido den Hollander <w...@widodh.nl> wrote: > >> > >> > >> Op 16-07-2021 om 16:42 schreef Hean Seng: > >>> Hi Wido, > >>> > >>> In current setup, each Cloudstack have own VR, so in this new IPv6 > >>> subnet > >>> allocation , each VR (which have Frr) will need to have peering with ISP > >>> router (and either BGP or Static Route) , and there is 1000 Acocunts, it > >>> will 1000 BGP session with ISP router , Am I right for this ? or I > >>> understand wrong . > >>> > >> > >> Yes, that is correct. A /56 would also be sufficient or a /60 which is > >> enough to allocate a few /64 subnets. > >> > >> 1000 BGP connections isn't really a problem for a proper router at the > >> ISP. OSPF(v3) would be better, but as I said that's poorly supported. > >> > >> The ISP could also install 1000 static routes, but that means that the > >> ISP's router needs to have those configured. > >> > >> http://docs.frrouting.org/en/latest/ospf6d.html > >> (While looking up this URL I see that Frr recently put in a lot of work > >> in OSPFv3, seems better now) > >> > >>> I understand IPv6 is different then IPv4, and in IPv6 it suppose each > >>> devices have own IP. It just how to realize in easy way. > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> On Fri, Jul 16, 2021 at 8:17 PM Wido den Hollander <w...@widodh.nl> wrote: > >>> > >>>> > >>>> > >>>> Op 16-07-2021 om 05:54 schreef Hean Seng: > >>>>> Hi Wido, > >>>>> > >>>>> My initial thought is not like this, it is the /48 at ISP router, and > >>>> /64 > >>>>> subnet assign to AdvanceZoneVR, AdvanceZoneVR responsible is > >>>>> distribule IPv6 ip (from the assigned /64 sunet) to VM, and not routing > >>>>> the traffic, in the VM that get the IPv6 IP will default route to ISP > >>>>> router as gw. It can may be a bridge over via Advancezone-VR. > >>>>> > >>>> > >>>> How would you bridge this? That sounds like NAT? > >>>> > >>>> IPv6 is meant to be routed. Not to be translated or bridged in any way. > >>>> > >>>> The way a made the drawing is exactly how IPv6 should work in a VPC > >>>> environment. > >>>> > >>>> Traffic flows through the VR where it can do firewalling of the traffic. > >>>> > >>>>> However, If do as the way described in the drawing, then i suppose will > >>>> be > >>>>> another kind of virtual router going to introduce , to get hold the /48 > >>>> in > >>>>> this virtual router right ? > >>>>> > >>>> > >>>> It can be the same VR. But keep in mind that IPv6 != IPv4. > >>>> > >>>> The VR will get Frr as a new daemon which can talk BGP with the upper > >>>> network to route traffic. > >>>> > >>>>> After this, The Advance Zone, NAT's VR will peer with this new IPv6 VR > >>>>> for getting the IPv6 /64 prefix ? > >>>>> > >>>> > >>>> IPv4 will be behind NAT, but IPv6 will not be behind NAT. > >>>> > >>>>> If do in this way, then I guess you just only need Static route, with > >>>>> peering ip both end as one /48 can have a lot of /64 on it. And > >>>> hardware > >>>>> budgeting for new IPv6-VR will become very important, as all traffic > >>>>> will > >>>>> need to pass over it . > >>>>> > >>>> > >>>> Routing or NAT is the same for the VR. You don't need a very beefy VR > >>>> for this. > >>>> > >>>>> It will be like > >>>>> > >>>>> ISP Router ------ > (new IPV6-VR ) ---- > AdvanceZone-VR ----> VM > >>>>> > >>>>> Relationship of (new IPv6 VR) and AdvanceZone-VR , may be considering on > >>>>> OSPF instead of BGP , otherwise few thousand of AdvanceZone-VR wil have > >>>>> few thousand of BGP session. on new-IPv6-VR > >>>>> > >>>>> Also, I suppose we cannot do ISP router. -->. Advancezone VR direct, , > >>>>> otherwise ISP router will be full of /64 prefix route either on BGP( > >>>>> Many > >>>>> BGP Session) , or Many Static route . If few thousand account, ti > >>>>> will > >>>>> be few thousand of BGP session with ISP router or few thousand static > >>>> route > >>>>> which is not possible . > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Thu, Jul 15, 2021 at 10:47 PM Wido den Hollander <w...@widodh.nl> > >>>> wrote: > >>>>> > >>>>>> But you still need routing. See the attached PNG (and draw.io XML). > >>>>>> > >>>>>> You need to route the /48 subnet TO the VR which can then route it to > >>>>>> the Virtual Networks behind the VR. > >>>>>> > >>>>>> There is no other way then routing with either BGP or a Static route. > >>>>>> > >>>>>> Wido > >>>>>> > >>>>>> Op 15-07-2021 om 12:39 schreef Hean Seng: > >>>>>>> Or explain like this : > >>>>>>> > >>>>>>> 1) Cloudstack generate list of /64 subnet from /48 that Network admin > >>>>>>> assigned to Cloudstack > >>>>>>> 2) Cloudsack allocated the subnet (that generated from step1) to > >>>> Virtual > >>>>>>> Router, one Virtual Router have one subniet /64 > >>>>>>> 3) Virtual Router allocate single IPv6 (within the range of /64 > >>>>>>> allocated to VR) to VM > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> On Thu, Jul 15, 2021 at 6:25 PM Hean Seng <heans...@gmail.com > >>>>>>> <mailto:heans...@gmail.com>> wrote: > >>>>>>> > >>>>>>> Hi Wido, > >>>>>>> > >>>>>>> I think the /48 is at physical router as gateway , and subnet > >>>>>>> of > >>>> /64 > >>>>>>> at VR of Cloudstack. Cloudstack only keep which /48 prefix > >>>>>>> and > >>>>>>> vlan information of this /48 to be later split the /64. to VR. > >>>>>>> > >>>>>>> And the instances is getting singe IPv6 of /64 IP. The VR is > >>>>>>> getting /64. The default gateway shall goes to /48 of physical > >>>>>>> router ip . In this case ,does not need any BGP router . > >>>>>>> > >>>>>>> > >>>>>>> Similar concept as IPv4 : > >>>>>>> > >>>>>>> /48 subnet of IPv6 is equivalent to current /24 subnet of IPv4 > >>>> that > >>>>>>> created in Network. > >>>>>>> and /64 of IPv6 is equivalent to single IP of IPv4 assign to > >>>>>>> VM. > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> On Thu, Jul 15, 2021 at 5:31 PM Wido den Hollander < > >>>> w...@widodh.nl > >>>>>>> <mailto:w...@widodh.nl>> wrote: > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> Op 14-07-2021 om 16:44 schreef Hean Seng: > >>>>>>> > Hi > >>>>>>> > > >>>>>>> > I replied in another thread, i think do not need > >>>>>>> implement > >>>>>>> BGP or OSPF, > >>>>>>> > that would be complicated . > >>>>>>> > > >>>>>>> > We only need assign IPv6 's /64 prefix to Virtual > >>>>>>> Router > >>>>>>> (VR) in NAT > >>>>>>> > zone, and the VR responsible to deliver single IPv6 to > >>>>>>> VM > >>>> via > >>>>>>> DHCP6. > >>>>>>> > > >>>>>>> > In VR, you need to have Default IPv6 route to Physical > >>>>>>> Router's /48. IP > >>>>>>> > as IPv6 Gateway. Thens should be done . > >>>>>>> > > >>>>>>> > Example : > >>>>>>> > Physical Router Interface > >>>>>>> > IPv6 IP : 2000:aaaa::1/48 > >>>>>>> > > >>>>>>> > Cloudstack virtual router : 2000:aaaa:200:201::1/64 > >>>>>>> with > >>>>>>> default ipv6 > >>>>>>> > route to router ip 2000:aaaa::1 > >>>>>>> > and Clodustack Virtual router dhcp allocate IP to VM , > >>>>>>> and > >>>>>>> VM will have > >>>>>>> > default route to VR. IPv6 2000:aaaa:200:201::1 > >>>>>>> > > >>>>>>> > So in cloudstack need to allow user to enter , IPv6 > >>>>>>> gwateway , and > >>>>>>> > the /48 Ipv6 prefix , then it will self allocate the > >>>>>>> /64 > >>>> ip > >>>>>>> to the VR , > >>>>>>> > and maintain make sure not ovelap allocation > >>>>>>> > > >>>>>>> > > >>>>>>> > >>>>>>> But NAT is truly not the solution with IPv6. IPv6 is > >>>>>>> supposed > >>>> to > >>>>>> be > >>>>>>> routable. In addition you should avoid DHCPv6 as much as > >>>>>>> possible as > >>>>>>> that's not really the intended use-case for address > >>>>>>> allocation > >>>>>>> with IPv6. > >>>>>>> > >>>>>>> In order to route an /48 IPv6 subnet to the VR you have a > >>>>>>> few > >>>>>>> possibilities: > >>>>>>> > >>>>>>> - Static route from the upperlying routers which are > >>>>>>> outside > >>>> of > >>>>>>> CloudStack > >>>>>>> - BGP > >>>>>>> - OSPFv3 (broken in most cases!) > >>>>>>> - DHCPv6 Prefix Delegation > >>>>>>> > >>>>>>> BGP and/or Static routes are still the best bet here. > >>>>>>> > >>>>>>> So what you do is that you tell CloudStack that you will > >>>>>>> route > >>>>>>> 2001:db8::/48 to the VR, the VR can then use that to split > >>>>>>> it > >>>> up > >>>>>>> into > >>>>>>> multiple /64 subnets going towards the instances: > >>>>>>> > >>>>>>> - 2001:db8::/64 > >>>>>>> - 2001:db8:1::/64 > >>>>>>> - 2001:db8:2::/64 > >>>>>>> ... > >>>>>>> - 2001:db8:f::/64 > >>>>>>> > >>>>>>> And go on. > >>>>>>> > >>>>>>> In case of BGP you indeed have to tell the VR a few things: > >>>>>>> > >>>>>>> - It's own AS number > >>>>>>> - The peer's address(es) > >>>>>>> > >>>>>>> With FRR you can simply say: > >>>>>>> > >>>>>>> neighbor 2001:db8:4fa::179 remote-as external > >>>>>>> > >>>>>>> The /48 you need to have at the VR anyway in case of > >>>>>>> either a > >>>>>>> static > >>>>>>> route or BGP. > >>>>>>> > >>>>>>> We just need to add a NullRoute on the VR for that /48 so > >>>>>>> that > >>>>>>> traffic > >>>>>>> will not be routed to the upper gateway in case of the VR > >>>> can't > >>>>>>> find a > >>>>>>> route. > >>>>>>> > >>>>>>> Wido > >>>>>>> > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > On Wed, Jul 14, 2021 at 8:55 PM Alex Mattioli > >>>>>>> > <alex.matti...@shapeblue.com > >>>>>>> <mailto:alex.matti...@shapeblue.com> > >>>>>>> <mailto:alex.matti...@shapeblue.com > >>>>>>> <mailto:alex.matti...@shapeblue.com>>> wrote: > >>>>>>> > > >>>>>>> > Hi Wido, > >>>>>>> > That's pretty much in line with our thoughts, thanks > >>>> for > >>>>>>> the input. > >>>>>>> > I believe we agree on the following points then: > >>>>>>> > > >>>>>>> > - FRR with BGP (no OSPF) > >>>>>>> > - Route /48 (or/56) down to the VR > >>>>>>> > - /64 per network > >>>>>>> > - SLACC for IP addressing > >>>>>>> > > >>>>>>> > I believe the next big question is then "on which > >>>>>>> level > >>>>>>> of ACS do we > >>>>>>> > manage AS numbers?". I see two options: > >>>>>>> > 1) Private AS number on a per-zone basis > >>>>>>> > 2) Root Admin assigned AS number on a domain/account > >>>> basis > >>>>>>> > 3) End-user driven AS number on a per network basis > >>>> (for > >>>>>>> bring your > >>>>>>> > own AS and IP scenario) > >>>>>>> > > >>>>>>> > Thoughts? > >>>>>>> > > >>>>>>> > Cheers > >>>>>>> > Alex > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > -----Original Message----- > >>>>>>> > From: Wido den Hollander <w...@widodh.nl > >>>>>>> <mailto:w...@widodh.nl> <mailto:w...@widodh.nl > >>>>>>> <mailto:w...@widodh.nl>>> > >>>>>>> > Sent: 13 July 2021 15:08 > >>>>>>> > To: dev@cloudstack.apache.org > >>>>>>> <mailto:dev@cloudstack.apache.org> > >>>>>>> <mailto:dev@cloudstack.apache.org > >>>>>>> <mailto:dev@cloudstack.apache.org>>; > >>>>>>> > Alex Mattioli <alex.matti...@shapeblue.com > >>>>>>> <mailto:alex.matti...@shapeblue.com> > >>>>>>> > <mailto:alex.matti...@shapeblue.com > >>>>>>> <mailto:alex.matti...@shapeblue.com>>> > >>>>>>> > Cc: Wei Zhou <wei.z...@shapeblue.com > >>>>>>> <mailto:wei.z...@shapeblue.com> > >>>>>>> > <mailto:wei.z...@shapeblue.com > >>>>>>> <mailto:wei.z...@shapeblue.com>>>; Rohit Yadav > >>>>>>> > <rohit.ya...@shapeblue.com > >>>>>>> <mailto:rohit.ya...@shapeblue.com> > >>>>>>> <mailto:rohit.ya...@shapeblue.com > >>>>>>> <mailto:rohit.ya...@shapeblue.com>>>; > >>>>>>> > Gabriel Beims Bräscher <gabr...@pcextreme.nl > >>>>>>> <mailto:gabr...@pcextreme.nl> > >>>>>>> > <mailto:gabr...@pcextreme.nl <mailto: > >>>> gabr...@pcextreme.nl > >>>>>>>>> > >>>>>>> > Subject: Re: IPV6 in Isolated/VPC networks > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > On 7/7/21 1:16 PM, Alex Mattioli wrote: > >>>>>>> > > Hi all, > >>>>>>> > > @Wei Zhou<mailto:wei.z...@shapeblue.com > >>>>>>> <mailto:wei.z...@shapeblue.com> > >>>>>>> > <mailto:wei.z...@shapeblue.com > >>>>>>> <mailto:wei.z...@shapeblue.com>>> @Rohit > >>>>>>> > Yadav<mailto:rohit.ya...@shapeblue.com > >>>>>>> <mailto:rohit.ya...@shapeblue.com> > >>>>>>> > <mailto:rohit.ya...@shapeblue.com > >>>>>>> <mailto:rohit.ya...@shapeblue.com>>> and myself are > >>>>>>> investigating how > >>>>>>> > to enable IPV6 support on Isolated and VPC networks > >>>>>>> and > >>>>>>> would like > >>>>>>> > your input on it. > >>>>>>> > > At the moment we are looking at implementing FRR > >>>> with > >>>>>>> BGP (and > >>>>>>> > possibly OSPF) on the ACS VR. > >>>>>>> > > > >>>>>>> > > We are looking for requirements, recommendations, > >>>>>>> ideas, rants, > >>>>>>> > etc...etc... > >>>>>>> > > > >>>>>>> > > >>>>>>> > Ok! Here we go. > >>>>>>> > > >>>>>>> > I think that you mean that the VR will actually > >>>>>>> route > >>>> the > >>>>>>> IPv6 > >>>>>>> > traffic and for that you need to have a way of > >>>>>>> getting > >>>> a > >>>>>>> subnet > >>>>>>> > routed to the VR. > >>>>>>> > > >>>>>>> > BGP is probably you best bet here. Although OSPFv3 > >>>>>>> technically > >>>>>>> > supports this it is very badly implemented in Frr > >>>>>>> for > >>>>>>> example. > >>>>>>> > > >>>>>>> > Now FRR is a very good router and one of the fancy > >>>>>>> features it > >>>>>>> > supports is BGP Unnumered. This allows for auto > >>>>>>> configuration of BGP > >>>>>>> > over a L2 network when both sides are sending Router > >>>>>>> Advertisements. > >>>>>>> > This is very easy for flexible BGP configurations > >>>>>>> where > >>>>>>> both sides > >>>>>>> > have dynamic IPs. > >>>>>>> > > >>>>>>> > What you want to do is that you get a /56, /48 or > >>>>>>> something which is > >>>>>>> > >/64 bits routed to the VR. > >>>>>>> > > >>>>>>> > Now you can sub-segment this into separate /64 > >>>>>>> subnets. > >>>>>>> You don't > >>>>>>> > want to go smaller then a /64 is that prevents you > >>>>>>> from > >>>>>>> using SLAAC > >>>>>>> > for IPv6 address configuration. This is how it works > >>>> for > >>>>>>> Shared > >>>>>>> > Networks now in Basic and Advanced Zones. > >>>>>>> > > >>>>>>> > FRR can now also send out the Router Advertisements > >>>>>>> on > >>>>>>> the downlinks > >>>>>>> > sending out: > >>>>>>> > > >>>>>>> > - DNS servers > >>>>>>> > - DNS domain > >>>>>>> > - Prefix (/64) to be used > >>>>>>> > > >>>>>>> > There is no need for DHCPv6. You can calculate the > >>>>>>> IPv6 > >>>>>>> address the > >>>>>>> > VM will obtain by using the MAC and the prefix. > >>>>>>> > > >>>>>>> > So in short: > >>>>>>> > > >>>>>>> > - Using BGP you routed a /48 to the VR > >>>>>>> > - Now you split this into /64 subnets towards the > >>>>>>> isolated networks > >>>>>>> > > >>>>>>> > Wido > >>>>>>> > > >>>>>>> > > Alex Mattioli > >>>>>>> > > > >>>>>>> > > > >>>>>>> > > > >>>>>>> > > > >>>>>>> > > >>>>>>> > > >>>>>>> > > >>>>>>> > -- > >>>>>>> > Regards, > >>>>>>> > Hean Seng > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> Regards, > >>>>>>> Hean Seng > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> -- > >>>>>>> Regards, > >>>>>>> Hean Seng > >>>>> > >>>>> > >>>>> > >>>> > >>> > >>> > >> >