← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1786169] Re: DVR: Missing fixed_ips info for IPv6 subnets

 

Reviewed:  https://review.openstack.org/590157
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=c6aac9041f98f971cd1362bee2768a04bbe5cf1d
Submitter: Zuul
Branch:    master

commit c6aac9041f98f971cd1362bee2768a04bbe5cf1d
Author: Dongcan Ye <hellochosen@xxxxxxxxx>
Date:   Thu Aug 9 07:16:51 2018 +0000

    DVR: Add IPv6 csnat port address correctly
    
    If router gateway info update, in l3_dvr_db will receive events,
    We will get subnets from router attached DVR port, if exists
    multiple IPv6 slaac-enabled subnets, previous code will create
    csnat port form one of the IPv6 subnets.
    This is inconsistency with router interface
    udpate in _update_snat_v6_addrs_after_intf_update.
    
    This patch adds all IPv6 subnets if the distributed
    router port have multiple IPv6 subnets.
    
    Change-Id: I02ffed238897ebc91b96aebb7f94ed90b7613769
    Closes-Bug: #1786169


** Changed in: neutron
       Status: In Progress => Fix Released

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

Title:
  DVR: Missing fixed_ips info for IPv6 subnets

Status in neutron:
  Fix Released

Bug description:
  Reproduce Steps:

  preconditions: DVR and DVR_SNAT enabled.

  1. Create router, network, IPv4 subnet 
  # neutron router-create test_router
  # neutron net-create test_net
  # neutron subnet-create test_net 40.40.40.0/24 --name test_v4_subnet

  2. Create two SLAAC-enabled subnets
  # neutron subnet-create --ip-version 6 --ipv6_address_mode=dhcpv6-stateless --ipv6_ra_mode=dhcpv6-stateless test_net fdf8:f53b:82e4::51/64
  # neutron subnet-create --ip-version 6 --ipv6_address_mode=slaac --ipv6_ra_mode=slaac test_net fdf8:f84c:82e4::51/64

  3. Attach those subnets(one v4 subnet and two v6 subnets) to router
  # neutron router-interface-add test_router test_v4_subnet
  # neutron router-interface-add test_router V6_SUBNET1_ID
  # neutron router-interface-add test_router V6_SUBNET2_ID

  4. Then set gateway for the router.
  # neutron router-gateway-set test_router EXTERNAL_NETWORK

  The CSNAT router interface for IPv6 will get fixed ip from one of the
  IPv6 subnets.

  
  If we set gateway for the router first, and then attach interface to the router.
  The CSNAT router interface for IPv6 will get fixed ip from both IPv6 subnets.
  In this situation, the csnat IPv6 address will update in _update_snat_v6_addrs_after_intf_update[1] after internal interface added.

  So we also need to process correctly for multiple IPv6 subnets.

  [1]
  https://github.com/openstack/neutron/blob/master/neutron/db/l3_dvr_db.py

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


References