← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1357084] [NEW] IPv6 slaac is broken when subnet is less than /64

 

Public bug reported:

SLAAC and DHCPv6 stateless work only with subnets with mask /64 and more (/63, /62) because EUI-64 calculated IP takes 8 octets.
If subnet mask is /65, /66, .., /128 SLAAC/DHCP stateless should be disabled. 
API call for creating subnet with SLAAC/DHCP stateless and mask more than /64 should fail.

Example:
let's create net and subnet with mask /96:

$ neutron net-create 14
$ neutron subnet-create 14 --ipv6-ra-mode=slaac --ipv6-address-mode=slaac --ip-version=6 2003::/96 
Created a new subnet:
...
| allocation_pools  | {"start": "2003::2", "end": "2003::ffff:fffe"} |
| cidr              | 2003::/96                                      |
....                                   |
| gateway_ip        | 2003::1                                        |
...
| ipv6_address_mode | slaac                                          |
| ipv6_ra_mode      | slaac                                          |
...

Let's create port in this network:

$  neutron port-create 14 --mac-address=11:22:33:44:55:66
Created a new port:
...
| fixed_ips             | {"subnet_id": "1bfe4522-3b71-4e74-bb80-44c853ff868d", "ip_address": "2003::1322:33ff:fe44:5566"} |
...
| mac_address           | 11:22:33:44:55:66                                                                                |
...

As you see port gets IP 2003::1322:33ff:fe44:5566 which is not from
original network 2003::/96.

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: ipv6

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1357084

Title:
  IPv6 slaac is broken when subnet is less than /64

Status in OpenStack Neutron (virtual network service):
  New

Bug description:
  SLAAC and DHCPv6 stateless work only with subnets with mask /64 and more (/63, /62) because EUI-64 calculated IP takes 8 octets.
  If subnet mask is /65, /66, .., /128 SLAAC/DHCP stateless should be disabled. 
  API call for creating subnet with SLAAC/DHCP stateless and mask more than /64 should fail.

  Example:
  let's create net and subnet with mask /96:

  $ neutron net-create 14
  $ neutron subnet-create 14 --ipv6-ra-mode=slaac --ipv6-address-mode=slaac --ip-version=6 2003::/96 
  Created a new subnet:
  ...
  | allocation_pools  | {"start": "2003::2", "end": "2003::ffff:fffe"} |
  | cidr              | 2003::/96                                      |
  ....                                   |
  | gateway_ip        | 2003::1                                        |
  ...
  | ipv6_address_mode | slaac                                          |
  | ipv6_ra_mode      | slaac                                          |
  ...

  Let's create port in this network:

  $  neutron port-create 14 --mac-address=11:22:33:44:55:66
  Created a new port:
  ...
  | fixed_ips             | {"subnet_id": "1bfe4522-3b71-4e74-bb80-44c853ff868d", "ip_address": "2003::1322:33ff:fe44:5566"} |
  ...
  | mac_address           | 11:22:33:44:55:66                                                                                |
  ...

  As you see port gets IP 2003::1322:33ff:fe44:5566 which is not from
  original network 2003::/96.

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1357084/+subscriptions


Follow ups

References