Project

General

Profile

Bug #11005

IPv6 Prefix Delegation not requested if no interfaces set to track6

Added by Chris Linstruth about 1 month ago. Updated 20 days ago.

Status:
Closed
Priority:
Normal
Category:
DHCP (IPv6)
Target version:
Start date:
10/24/2020
Due date:
% Done:

100%

Estimated time:
Affected Version:
Affected Architecture:

Description

Like #4544.

It appears that the bits to request a PD from upstream are not placed into /var/etc/dhcp6c_wan.conf unless the WAN is configured for DHCP6 with a PD and there is at least one interface set to track6.

With WAN set to DHCP6 and a /56 PD but without an interface set to track6:

interface vtnet1 {
    send ia-na 0;    # request stateful address
    send ia-pd 0;    # request prefix delegation
    request domain-name-servers;
    request domain-name;
    script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please
};
id-assoc na 0 { };

With WAN set to DHCP6 and a /56 PD and an interface set to track6:

interface vtnet1 {
    send ia-na 0;    # request stateful address
    send ia-pd 0;    # request prefix delegation
    request domain-name-servers;
    request domain-name;
    script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please
};
id-assoc na 0 { };
id-assoc pd 0 {
    prefix ::/56 infinity;
    prefix-interface vtnet0 {
        sla-id 0;
        sla-len 8;
    };
};

Associated revisions

Revision 13fde8fa (diff)
Added by Renato Botelho about 1 month ago

Fix #11005: Allow to request PD with no track ifs

Allow DHCP6 to solicit PD even when no interfaces are tracking

History

#1 Updated by Jim Pingle about 1 month ago

It could be changed again but what's the point of requesting a PD if nothing can use it? The DHCPv6 client won't do anything with the prefix if it isn't used on a track interface, and we don't have any code that is capable of using the PD prefix(es) outside of interface assignment yet.

#2 Updated by Renato Botelho about 1 month ago

  • Status changed from New to Feedback
  • Assignee set to Chris Linstruth
  • Target version set to 2.5.0

It should be fixed after reverting #4544

#3 Updated by Chris Linstruth about 1 month ago

Thanks. I'll check the next build.

It could be changed again but what's the point of requesting a PD if nothing can use it? The DHCPv6 client won't do anything with the prefix if it isn't used on a track interface, and we don't have any code that is capable of using the PD prefix(es) outside of interface assignment yet.

Things can use it. The logs can be checked to get the current PD and it can be assigned to things like OpenVPN, statically to interfaces, a PD in the DHCPv6 server, routed downstream, etc. As long as it is requested and routed it can be used. Everything but the interfaces have to be manually updated if the PD changes anyway. No reason to burn a /64 on the firewall just to trigger the PD when it is not necessary.

#4 Updated by Chris Linstruth about 1 month ago

  • Category deleted (DHCP (IPv6))
  • Assignee deleted (Chris Linstruth)
  • Target version deleted (2.5.0)
  • Affected Architecture All added

This still does not work. Looking at that patch looks like the exact behavior I am describing was added again, checking to be sure there is at least one tracked interface before adding the PD bits. I am not sure why that was not working before but the PD code was definitely not added to the conf file in that case.

This is what is currently installed as dhcp6c_wan.comf with a PD and one track interface set:

interface vtnet1 {
    send ia-na 0;    # request stateful address
    send ia-pd 0;    # request prefix delegation
    request domain-name-servers;
    request domain-name;
    script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please
};
id-assoc na 0 { };
id-assoc pd 0 {
    prefix ::/56 infinity;
    prefix-interface vtnet0 {
        sla-id 0;
        sla-len 8;
    };
};

With the PD configured on WAN and no interfaces set to track I think we need something like:

interface vtnet1 {
    send ia-na 0;    # request stateful address
    send ia-pd 0;    # request prefix delegation
    request domain-name-servers;
    request domain-name;
    script "/var/etc/dhcp6c_wan_script.sh"; # we'd like some nameservers please
};
id-assoc na 0 { };
id-assoc pd 0 {
    prefix ::/56 infinity;
};

#5 Updated by Jim Pingle about 1 month ago

  • Category set to DHCP (IPv6)

#6 Updated by Renato Botelho about 1 month ago

  • Assignee set to Renato Botelho
  • Target version set to 2.5.0

Resolved now.

#7 Updated by Renato Botelho about 1 month ago

  • % Done changed from 0 to 100

#8 Updated by Chris Linstruth 20 days ago

  • Status changed from Feedback to Closed
  • Assignee changed from Renato Botelho to Chris Linstruth
  • % Done changed from 100 to 0
  • Affected Architecture deleted (All)

This seems to work great now. Thank you.

#9 Updated by Chris Linstruth 20 days ago

  • Subject changed from PD not requested if no interfaces set to track6 to IPv6 Prefix Delegation not requested if no interfaces set to track6

#10 Updated by Chris Linstruth 20 days ago

  • % Done changed from 0 to 100

#11 Updated by Chris Linstruth 20 days ago

  • Assignee changed from Chris Linstruth to Renato Botelho

Also available in: Atom PDF