[ovs-dev] [PATCH RFC v1] ovn: add SLAAC support for IPv6

Ben Pfaff blp at ovn.org
Fri Jul 29 17:57:13 UTC 2016


On Fri, Jul 29, 2016 at 05:21:32PM +0800, Zong Kai Li wrote:
> On Thu, Jul 28, 2016 at 2:04 PM, Ben Pfaff <blp at ovn.org> wrote:
> > On Wed, Jul 27, 2016 at 04:02:11PM +0800, Zong Kai LI wrote:
> >> This patch introduces(from north to south):
> >> - OVN NB DB:
> >>  * mtu(integer) column for Logical_Switch, used by Router Advertisement
> >>    (RA) message MTU option.
> >>  * slaac(bool) column for Logical_Router_Port to specify the IPv6 networks
> >>    on a rotuer port is in SLAAC mode or not, if it has IPv6 networks. [1]
> >> - ovn-northd:
> >>    New table ls_in_ra_rsp to install RA responder flows, which matching
> >>    Router Solicitation (RS) packets and have actions such as:
> >>    action=(ra(fd80:1234::/64,2001:db8::/64,1450,fa:16:3e:12:34:56);
> >>            outport = inport; inport = ""; output;) [2]
> >>    while 'ra' is new action. The RA responder flows are built on logical
> >>    switch pipeline per each logical switch. [3]
> >> - ovn-controller:
> >>    New action 'ra' has ordered parameters and uses 'continuation'.[4]
> >>    The ordered parameters including: at least 1 IPv6 prefix, 1 MTU,
> >>    and 1 ether address. They will be used in prefix information option(s),
> >>    MTU option, SLL option for RA packet.
> >> - lib/packet:
> >>  * compose_ra to compose a RA packet with 1 prefix information
> >>    option, 1 MTU option and 1 SLL option.
> >>  * insert_ra_prefix_opt insert a prefix information option into a RA
> >>    packet.
> >>
> >> [1] A logical switch may have different IPv6 subnets using DHCPv6 or SLAAC,
> >> so set 'slaac' as Logical_Switch column will not work well. Adding 'slaac'
> >> as Logical_Router_Port may not be a good solution, but it works for now.
> >>
> >> [2] SLAAC is the first aim of this patch, but not RA responder. So it wont
> >> take care of lots of flags or options in RA packet.
> >> A further work will try to support those flags or options.
> >>
> >> [3] This works for case (a) all logical switch IPv6 subnets attached onto the
> >> same router port, which OpenStack Neutron using this way. And it won't need
> >> flows to route RS packets to router ports which is necessary for installing
> >> RA responder flows on logical router pipeline.
> >> A further work will replace this by installing RA responder flows on logical
> >> router pipeline, which will support case (b) logical switch have IPv6 subnets
> >> in SLAAC mode attached onto different router ports.
> >>
> >> [4] Ordered parameters isn't a friendly way to use 'ra' action, it will be
> >> fixed with [2].
> >> From my side, it's fine to use 'continuation' for case (a) in [3]. But for
> >> case (b) in [3], since RS packet will be dispatched several router ports,
> >> which means ovn-controller will compose several RA packets for one RS packet,
> >> I'm not sure whether it's good to keep use 'continuation'.
> >>
> >> Signed-off-by: Zong Kai LI <zealokii at gmail.com>
> >
> > The commit message here is so detailed that I can't figure out what the
> > actual goal is.  What is SLAAC and how does it benefit the user or
> > administrator?
> >
> > Justin has been working on IPv6 support so I'm adding him in case he has
> > comments.
> >
> > Thanks,
> >
> > Ben.
> 
> Hi, Ben.
> Sorry for unclear commit message, I've fixed some details of this RFC
> patch, and will try to rewrite the commit message, to make it clear
> and easy to get.
> 
> SLAAC is short for stateless address autoconfiguration, it's one the
> address configuration method for IPv6 (another is DHCPv6).
> 
> SLAAC is simpler than DHCPv6. After configure an IPv6 prefix/CIDR for
> a subnet, people can attach the subnet onto a router, then all
> VMs/VIFs on subnet can get IPv6 address under the IPv6 prefix/CIDR. By
> this people may not need DHCPv6. This is helpful and friendly for
> people who is not familiar with IPv6.
> 
> SLAAC need router advertisement, so I implement it in this patch, but
> just a basic version, not like what Numan did in native DHCP, many
> options get supported there.

Thanks.  I'll look forward to the next version.



More information about the dev mailing list