Configuring DHCP Options
With VPC, it’s possible to configure the virtual DHCP server to pass some DHCP options. This can be useful to easily configure your instances from a single place.
The following options are available:
- [DHCP Option 6] DNS Servers.
- [DHCP Option 42] NTP Servers.
- [DHCP Option 119] Domain Search List.
Warning
These DHCP options apply globally to the entire instance, not just the VPC interface. For example, depending on your instance configuration, all DNS queries may be forwarded to the DNS server set in the VPC config.
Set DHCP Options when creating a VPC
You can create a VPC directly with DHCP options configured.
$ exo networking vpc create my-vpc --dns-server 8.8.8.8 --dns-server 1.1.1.1 --ntp-server 162.159.200.1 --ntp-server 216.239.35.0 --domain-search myorg.internal --domain-search exoscale.gva2.internal
✔ Creating VPC "my-vpc"... 0s
┼──────────────┼────────────────────────────────────────────────────────────┼
│ VPC │ │
┼──────────────┼────────────────────────────────────────────────────────────┼
│ ID │ ebd4b6c9-3a10-4850-983f-2411b650fa1f │
│ Name │ my-vpc │
│ Description │ │
│ Default │ false │
│ Zone │ ch-gva-2 │
│ Created At │ 2026-10-27 15:32:22 +0000 UTC │
│ DHCP options │ │
│ │ DNS Servers 8.8.8.8, 1.1.1.1 │
│ │ NTP Servers 162.159.200.1, 216.239.35.0 │
│ │ Domain Search myorg.internal, exoscale.gva2.internal │
│ │ │
│ Labels │ n/a │
│ Subnets │ - │
┼──────────────┼────────────────────────────────────────────────────────────┼
Then you can create a subnet and attach an instance to it.
$ exo networking vpc subnet create my-vpc my-subnet --address-family inet4 --address-space private --ipv4-block 10.0.0.0/24
✔ Creating Subnet "my-subnet"... 0s
┼────────────────┼──────────────────────────────────────┼
│ VPC SUBNET │ │
┼────────────────┼──────────────────────────────────────┼
│ ID │ 22a213de-8805-4d85-a0d2-ec0f01833bc6 │
│ Name │ my-subnet │
│ Description │ │
│ Zone │ ch-gva-2 │
│ Created At │ 2026-10-27 15:52:55 +0000 UTC │
│ Address Family │ inet4 │
│ Address Space │ private │
│ IPv4 Block │ 10.0.0.0/24 │
│ Labels │ n/a │
│ Instances │ - │
┼────────────────┼──────────────────────────────────────┼
$ exo compute instance attach-to-subnet my-instance my-vpc my-subnet
✔ Attaching instance "my-instance" to Subnet "my-subnet"... 3s
┼─────────────────────────────────────────┼──────────────────────────────────────┼
│ COMPUTE INSTANCE │ │
┼─────────────────────────────────────────┼──────────────────────────────────────┼
│ ID │ 325b1bc1-5867-4c28-8aa0-d4ed49441e8f │
│ Name │ my-instance │
│ Creation Date │ 2026-10-27 15:50:18 +0000 UTC │
│ Instance Type │ standard.medium │
│ Template │ Linux Ubuntu 26.04 LTS 64-bit │
│ Zone │ ch-gva-2 │
│ Anti-Affinity Groups │ n/a │
│ Deploy Target │ - │
│ Security Groups │ default │
│ Private Instance │ No │
│ Elastic IPs │ n/a │
│ Public IP │ inet4 │
│ IP Address │ 85.217.162.215 │
│ IPv6 Address │ - │
│ Vpc │ my-vpc │
│ Vpc Subnets │ my-subnet 10.0.0.143 │
│ Private Networks │ n/a │
│ Ip Forwarding │ false │
│ SSH Keys │ mykey │
│ Disk Size │ 50 GiB │
│ State │ running │
│ Labels │ n/a │
│ Secure Boot │ false │
│ Tpm │ false │
│ Reverse DNS │ │
│ Application-Consistent Snapshot enabled │ false │
┼─────────────────────────────────────────┼──────────────────────────────────────┼
Finally you can verify that the DHCP options are correctly propagated to the instances. For instances using systemd-networkd as network manager you can do:
$ networkctl status eth1
● 3: eth1
Link File: /usr/lib/systemd/network/99-default.link
Network File: /run/systemd/network/zzzz-dracut-default.network
State: routable (configured)
Online state: online
Type: ether
Path: pci-0000:00:06.0
Driver: virtio_net
Vendor: Red Hat, Inc.
Model: Virtio network device
Alternative Names: enp0s6
ens6
enx0e000006432f
Hardware Address: 0e:00:00:06:43:2f
MTU: 1500 (min: 68, max: 65535)
QDisc: mq
IPv6 Address Generation Mode: eui64
Number of Queues (Tx/Rx): 2/2
Auto negotiation: no
Address: 10.0.0.143 (DHCPv4 via 10.0.0.1)
fe80::c00:ff:fe06:432f
DNS: 8.8.8.8
1.1.1.1
Search Domains: myorg.internal
exoscale.gva2.internal
NTP: 162.159.200.1
216.239.35.0
Activation Policy: up
Required For Online: yes
DHCPv4 Client ID: 0e:00:00:06:43:2f
DHCPv6 Client DUID: DUID-EN/Vendor:0000ab11b02448dc497bb0e5
Oct 27 15:54:11 my-instance systemd-networkd[1004]: eth1: Configuring with /run/systemd/network/zzzz-dracut-default.network.
Oct 27 15:54:11 my-instance systemd-networkd[1004]: eth1: Link UP
Oct 27 15:54:11 my-instance systemd-networkd[1004]: eth1: Gained carrier
Oct 27 15:54:11 my-instance systemd-networkd[1004]: eth1: DHCPv4 address 10.0.0.143/32 acquired from 10.0.0.1
Oct 27 15:54:13 my-instance systemd-networkd[1004]: eth1: Gained IPv6LL
Set DHCP Options of an existing VPC
Warning
For the moment, you can only update DHCP Options on VPCs with no instance attached. Support for all VPCs is coming soon.
# Update the VPC to keep only one domain search
$ exo networking vpc update my-vpc --domain-search myorg.internal
┼──────────────┼─────────────────────────────────────────────────┼
│ VPC │ │
┼──────────────┼─────────────────────────────────────────────────┼
│ ID │ ebd4b6c9-3a10-4850-983f-2411b650fa1f │
│ Name │ my-vpc │
│ Description │ │
│ Default │ false │
│ Zone │ ch-gva-2 │
│ Created At │ 2026-10-27 15:32:22 +0000 UTC │
│ DHCP options │ │
│ │ DNS Servers 8.8.8.8, 1.1.1.1 │
│ │ NTP Servers 162.159.200.1, 216.239.35.0 │
│ │ Domain Search myorg.internal │
│ │ │
│ Labels │ n/a │
│ Subnets │ │
│ │ my-subnet 10.0.0.0/24 │
│ │ │
┼──────────────┼─────────────────────────────────────────────────┼
Limits
The DHCP options are subject to the following limits per VPC:
- DNS Servers: maximum 5 allowed.
- NTP Servers: maximum 5 allowed.
- Domain Search List: limited to 255 octets post RFC3397 compression.