---
title: How to configure IPv6 virtual machines with Proxmox on Elastic Metal
description: This guide explains how to configure IPv6 virtual machines on Proxmox on Elastic Metal, including how to find and configure the IPv6 gateway.
tags: elastic-metal ipv6 virtual-machine proxmox
dates:
  validation: 2025-08-05
  posted: 2024-07-30
---
import Requirements from '@macros/iam/requirements.mdx'


When you install your server with a virtualization solution like Proxmox, you can create multiple virtual machines on the physical server and configure them to use flexible IPv6 addresses.

This guide covers the steps for configuring the network interfaces on different distributions inside a virtual machine on a Proxmox host using flexible IPv6 addresses on Elastic Metal servers.

<Message type="tip">
  The DNS cache server (nameserver) may vary depending on the physical location of your server. Refer to our [network information documentation](/account/reference-content/scaleway-network-information/#dns-cache-servers-and-ntp-servers) to find the IPv6 addresses to use with your machine.
</Message>

<Requirements />

- A Scaleway account logged into the [console](https://console.scaleway.com)
- [Owner](/iam/concepts/#owner) status or [IAM permissions](/iam/concepts/#permission) allowing you to perform actions in the intended Organization
- An [Elastic Metal server](/elastic-metal/how-to/create-server/) with a hypervisor (Proxmox) installed
- A [flexible IPv6](/elastic-metal/how-to/order-flexible-ip/)
- A [virtual MAC address](/elastic-metal/how-to/add-virtual-mac-address/)

## Finding your IPv6 gateway

1. Log into the virtual machine using SSH.
2. Identify the network interface:
   ```bash
   ip a
   ```
   Take note of the interface name (e.g., `ens18`).
3. Find the IPv6 gateway:
   ```bash
   ip -6 route
   ```
   Look for the line specifying the default route:
   ```
   default via fe80::xxxx:xxxx:xxxx:xxxx dev ens18 proto static metric 1024 onlink
   ```
   The `fe80::xxxx:xxxx:xxxx:xxxx` part is the link-local IPv6 gateway address.

## Ubuntu - Configuration with Netplan

1. Open the Netplan configuration file:
    ```bash
    sudo nano /etc/netplan/01-netcfg.yaml
    ```
2. Configure the network settings:
    ```yaml
    network:
      version: 2
      renderer: networkd
      ethernets:
        ens18:
          dhcp4: false
          dhcp6: false
          accept-ra: no
          addresses:
            - FLEXIBLE_IPv4/32
            - "FLEXIBLE_IPv6/64"
          routes:
            - to: 0.0.0.0/0
              via: 62.210.0.1
              on-link: true
            - to: "::/0"
              via: "LINK_LOCAL_IPv6_GATEWAY"
              on-link: true
          nameservers:
            addresses:
              - 51.159.47.28
              - 51.159.47.26
    ```
    Replace the placeholders with actual values.
3. Apply the configuration:
    ```bash
    sudo netplan apply
    ```

## Debian

1. Edit the network interfaces file:
    ```bash
    sudo nano /etc/network/interfaces
    ```
2. Configure the network interface:
    ```plaintext
    auto ens18
    iface ens18 inet static
      address FLEXIBLE_IPv4
      netmask 255.255.255.255
      gateway 62.210.0.1
    iface ens18 inet6 static
      address FLEXIBLE_IPv6
      netmask 64
      gateway LINK_LOCAL_IPv6_GATEWAY
    ```
3. Set the DNS resolver:
    ```bash
    sudo nano /etc/resolv.conf
    ```
4. Add the following lines:
    ```plaintext
    nameserver 51.159.47.28
    nameserver 51.159.47.26
    ```
5. Activate the network configuration:
    ```bash
    sudo ifup ens18
    ```

## CentOS

1. Edit the network script file:
    ```bash
    sudo nano /etc/sysconfig/network-scripts/ifcfg-ens18
    ```
2. Configure the network interface:
    ```ini
    DEVICE=ens18
    BOOTPROTO=none
    ONBOOT=yes
    USERCTL=no
    IPV6INIT=yes
    PEERDNS=yes
    TYPE=Ethernet
    NETMASK=255.255.255.255
    IPADDR=FLEXIBLE_IPv4
    IPV6ADDR=FLEXIBLE_IPv6
    GATEWAY=62.210.0.1
    DNS1=51.159.47.28
    DNS2=51.159.47.26
    ARP=yes
    HWADDR=virtual:mac:address
    ```
3. Enable the network interface:
    ```bash
    sudo ifup ens18
    ```

## Debugging Configuration Issues

If your IPv6 configuration does not work, try the following:

1. Check the interface configuration:
   ```bash
   ip a
   ip route
   ip -6 route
   ```
2. Run a ping test:
   ```bash
   ping -6 google.com
   ```
3. Verify DNS resolution:
   ```bash
   dig google.com
   dig -6 google.com
   ```
4. Check firewall settings:
   ```bash
   sudo iptables -L -v -n
   sudo ip6tables -L -v -n
   ```
5. Restart network services:
   ```bash
   sudo systemctl restart systemd-networkd
   ```
6. Verify the link-local address:
   ```bash
   ip -6 addr show dev ens18
   ping -6 LINK_LOCAL_IPv6_GATEWAY
   ```

