DHCPv6 Option 59 (Boot File URL) is supported on Versa SD-WAN. The option is sent by the server in both the Advertise and Reply messages, delivering the TFTP boot file URL to the requesting client.
Enable Option 59 (boot-file-url) under the DHCPv6 options profile, then reference that profile from the DHCPv6 server/relay service:
config
dhcp6-options-profiles {
win-option6 {
dns-server [ 2001:172:18:12::221 ];
custom-options {
custom_code {
persistent false;
code 59;
type-value {
string tftp://[2001:db8::10]/bootfile.efi;
}
}
boot-file-url {
persistent true;
}
}
}
}
dhcp6-server-and-relay {
log-unmatched-requests false;
lef-profile Default-Logging-Profile;
ipv6-service-profiles {
dhcpv6-server-match {
dhcp-request-match {
networks [ LAN2 ];
}
dhcp-service-type {
allocate-address {
static {
address-type {
from-profile static_map1;
}
}
}
}
dhcp-log-settings {
log-new-allocations true;
log-renewals true;
}
options-profile win-option6;
}
}
}
A capture on the branch WAN interface confirms Option 59 (opt_59) is requested by the client and returned by the server in both the Advertise and Reply messages:
admin@SDWAN-Branch1-cli> tcpdump vni-0/3 filter "'port 546 or 547 -vvv'"
Starting capture on vni-0/3
tcpdump: listening on _vni_0_3, link-type EN10MB (Ethernet), capture size 2000 bytes
07:33:12.681209 52:0a:c0:ba:03:02 > 33:33:00:01:00:02, ethertype 802.1Q (0x8100), length 157: vlan 102, p 0, ethertype IPv6, (flowlabel 0xaec52, hlim 1, next-header UDP (17) payload length: 99) fe80::500a:c0ff:feba:302.546 > ff02::1:2.547: [udp sum ok] dhcp6 solicit (xid=d1056a (client-ID hwaddr/time type 1 time 841822345 520ac0ba0302) (option-request Client-FQDN opt_59 opt_60 DNS-server DNS-search-list) (elapsed-time 0) (Client-FQDN) (IA_NA IAID:3233415938 T1:3600 T2:5400 (IA_ADDR 2001:172:18:12::100 pltime:7200 vltime:10800)))
07:33:12.681227 52:0a:c0:ba:04:05 > 52:0a:c0:ba:03:02, ethertype 802.1Q (0x8100), length 241: vlan 102, p 0, ethertype IPv6, (flowlabel 0x6ab37, hlim 64, next-header UDP (17) payload length: 183) fe80::500a:c0ff:feba:405.547 > fe80::500a:c0ff:feba:302.546: [udp sum ok] dhcp6 advertise (xid=d1056a (client-ID hwaddr/time type 1 time 841822345 520ac0ba0302) (server-ID hwaddr/time type 1 time 841482358 520ac0ba0401) (IA_NA IAID:3233415938 T1:1000 T2:2000 (IA_ADDR 2001:172:18:12::100 pltime:2000 vltime:4000)) (DNS-server 2001:172:18:12::221) (Client-FQDN) (opt_59))
07:33:13.761229 52:0a:c0:ba:03:02 > 33:33:00:01:00:02, ethertype 802.1Q (0x8100), length 175: vlan 102, p 0, ethertype IPv6, (flowlabel 0xaec52, hlim 1, next-header UDP (17) payload length: 117) fe80::500a:c0ff:feba:302.546 > ff02::1:2.547: [udp sum ok] dhcp6 request (xid=c4489d (client-ID hwaddr/time type 1 time 841822345 520ac0ba0302) (server-ID hwaddr/time type 1 time 841482358 520ac0ba0401) (option-request Client-FQDN opt_59 opt_60 DNS-server DNS-search-list) (elapsed-time 0) (Client-FQDN) (IA_NA IAID:3233415938 T1:3600 T2:5400 (IA_ADDR 2001:172:18:12::100 pltime:7200 vltime:7500)))
07:33:13.761243 52:0a:c0:ba:04:05 > 52:0a:c0:ba:03:02, ethertype 802.1Q (0x8100), length 241: vlan 102, p 0, ethertype IPv6, (flowlabel 0x6ab37, hlim 64, next-header UDP (17) payload length: 183) fe80::500a:c0ff:feba:405.547 > fe80::500a:c0ff:feba:302.546: [udp sum ok] dhcp6 reply (xid=c4489d (client-ID hwaddr/time type 1 time 841822345 520ac0ba0302) (server-ID hwaddr/time type 1 time 841482358 520ac0ba0401) (IA_NA IAID:3233415938 T1:1000 T2:2000 (IA_ADDR 2001:172:18:12::100 pltime:2000 vltime:4000)) (DNS-server 2001:172:18:12::221) (Client-FQDN) (opt_59))
The client’s DHCPv6 lease file confirms the bootfile URL was received and applied:
versa@SDWAN-Client:~$ sudo ip netns exec Client1-Tenant2 cat /var/lib/dhcp/dhclient6.leases
default-duid "\000\001\000\0012-/7R\012\300\272\003\002";
lease6 {
interface "eth1.102";
ia-na c0:ba:03:02 {
starts 1788506809;
renew 1000;
rebind 2000;
iaaddr 2001:172:18:12::20 {
starts 1788506809;
preferred-life 2000;
max-life 4000;
}
}
option fqdn.encoded true;
option fqdn.server-update false;
option fqdn.no-client-update false;
option fqdn.fqdn "myhost-2001-172-18-12--20";
option fqdn.hostname "myhost-2001-172-18-12--20";
option dhcp6.client-id 0:1:0:1:32:2d:2f:37:52:a:c0:ba:3:2;
option dhcp6.server-id 0:1:0:1:32:28:0:76:52:a:c0:ba:4:1;
option dhcp6.name-servers 2001:172:18:12::221;
option dhcp6.bootfile-url "tftp://[2001:db8::10]/bootfile.efi";
DHCPv6 Option 59 (Boot File URL) works end-to-end on Versa SD-WAN: it is requested by the client, returned by the server in the Advertise and Reply messages, and correctly applied in the client’s lease as dhcp6.bootfile-url.