Page MenuHomeVyOS Platform

DHCPv6 relay requires address when it shouldn't
Closed, InvalidPublicBUG

Description

VyOS docs for a DHCPv6-relay say:

set service dhcpv6-relay listen-interface <interface>
set service dhcpv6-relay upstream-interface <interface> address <server>

This doesn't work. It errors with:

Must set at least one listen and upstream interface addresses.
[[service dhcpv6-relay]] failed

I've tried it in 1.3-rolling-202010241529 and 1.2.6-S1

It does work when an ipv6 address for the listen-interface is specified.

This means, in the least, that docs should be updated to reflect this.

I still can't determine whether ISC or Wide is used for dhcpv6 relays, but I've read through some docs and it sounds like an upstream interface doesn't have to be specified for it to work with either ISC or Wide.

Man page for ISC dhcp says (emphasis mine) :

-u [address%]ifname

Specifies the ‘‘upper’’ network interface for DHCPv6 relay mode: the interface to which queries from clients and other relay agents should be forwarded. At least one -u option must be included in the command line when running in DHCPv6 mode. The interface name ifname is a mandatory parameter. The destination unicast or multicast address can be specified by address%; if not specified, the relay agent will forward to the DHCPv6 All_DHCP_Relay_Agents_and_Servers multicast address.

and

-l [address%]ifname[#index]
Specifies the ‘‘lower’’ network interface for DHCPv6 relay mode: the interface on which queries will be received from clients or from other relay agents. At least one -l option must be included in the command line when running in DHCPv6 mode. The interface name ifname is a mandatory parameter. The link address can be specified by address%; if it isn’t, dhcrelay will use the first non-link-local address configured on the interface. The optional #index parameter specifies the interface index.

Wide DHCPv6-relay man page (ubuntu's) says:

-s serveraddr
        Specifies the DHCPv6 server address to relay packets to.  If not specified, packets
        are relayed to ff05::1:3`(All DHCPv6 servers).

and:

-r relay-IF
         Specifies the interface on which messages to servers are sent.  When omitted, the
         same interface as interface will be used.  When multiple interface are specified,
         this option cannot be omitted.

From my research, an <address> shouldn't be mandatory neither for upstream-interface nor for listen-interface . This is especially important in the case of dynamic IPv6 allocation (such as mine).

Details

Difficulty level
Unknown (require assessment)
Version
1.2.6-S1
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

I don't understand how DHCP relays work, esp in a pfsense environment. Not worth looking at this.