Configure an IPv6 Address
Last updated
Last updated
After assigning the primary IPv6 address, regardless of private or public IPv6, to your elastic compute instance, for some instances with certain images, you need to access the instance and configure the IPv6 to make it effective.
You need manually configure the IPv6 address after assigning the primary IPv6 address for the following images:
Windows
FreeBSD 14
Gentoo openrc
IPv6 addresses are not supported for the following images:
Windows
FreeBSD 14
Gentoo openrc
If you allocate additional IPv6 addresses to your instances, you also need to configure them on instances. The rules are concluded as follows:
Image | IPv4 & IPv6 Dual Stack | IPv6 Single Stack |
---|---|---|
Before configuring the IPv6 address, ensure the IPv6 service is enabled. Currently, you need to enable IPv6 service on the instance with FreeBSD 14 image.
See Enable IPv6 Service for detailed steps.
You can enable IPv6 service on the instance with FreeBSD 14 image as follows:
Configure your network interface to use IPv6. Run the following command to modify the /etc/rc.conf
configuration file.
sudo vi /etc/rc.conf
Press i
to enter edit mode. Add or update the following lines to enable IPv6 on your network interface.
ipv6_activate_all_interfaces="YES"
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Run the following command to restart your network and apply the configuration.
/etc/netstart restart
Configure the IPv6 addresses on your instances with the following images.
The assigned IPv6 address will take effect automatically but may be invalid after an instance reboot. Therefore, cloud-init
's ability to modify network interface files in the /etc/network/interfaces.d
directory must be disabled.
In the following example, default network interface configuration file is: /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
.
Execute the following command to open the configuration file of network interface.
sudo vi /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Configure the following information, save and exit.
network: {config: disabled}
Execute the following command to open the configuration file of network interface.
sudo vi /etc/network/interfaces.d/50-cloud-init
For Debian 10 and Debian 11, append the following information at the end.
iface ens1 inet6 dhcp
After modification, save and exit.
For Debian 9, append the following information at the end.
iface eth0 inet6 dhcp
After modification, save and exit.
Run the following command to reboot your instance.
sudo reboot
Configure DHCPv6
Open the network configuration file for your network interface (e.g., eth0
).
sudo nano /etc/sysconfig/network/ifcfg-eth0
Update the file with the following settings to enable DHCP for IPv6.
codeBOOTPROTO='dhcp'
LLADDR='52:54:00:13:50:20'
STARTMODE='auto'
Reboot the system to apply the changes.
sudo reboot
Manually Configure an IPv6 Address
Add the IPv6 address. Replace 2001:2:0:d38e:0:2::2
with your actual IPv6 address.
sudo ip -6 addr add dev eth0 2001:2:0:d38e:0:2::2/64
Add the default IPv6 route. Replace 2001:2:0:d38e::1
with your actual IPv6 gateway.
sudo ip -6 route add default via 2001:2:0:d38e::1
Make the IPv6 Address Configuration Persistent
Open the network configuration file for your network interface (e.g., eth0
).
sudo nano /etc/sysconfig/network/ifcfg-eth0
Modify the file to include both static IPv4 and IPv6 addresses.
BOOTPROTO='static'
LLADDR='52:54:00:c4:f9:2c'
STARTMODE='auto'
# Static IPv4 configuration
IPADDR_0='10.1.1.2/24'
# Static IPv6 configuration, use multiple lines for multiple addresses
IPADDR_1='2001:2:0:d38e:0:2::2/64'
Open the routes configuration file.
sudo nano /etc/sysconfig/network/routes
Add the default IPv4 and IPv6 routes.
default 10.1.1.1
default 2001:2:0:d38e::1
Preliminary Steps
Run the following command to open the network configuration file.
sudo vi /etc/rc.conf
Add the following lines to enable IPv6 address control and network interfaces.
ip6addrctl_policy="AUTO"
ip6addrctl_enable="YES"
ipv6_network_interface="auto"
ipv6_activate_all_interface=YES
Method 1: Configure DHCPv6
Add the following lines to accept IPv6 router advertisements and specify the DHCP client.
ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
dhclient_program="/usr/local/sbin/dual-dhclient"
Install the dual-dhclient
package to handle DHCPv6.
sudo pkg install dual-dhclient
Example configuration.
Your /etc/rc.conf
should look something like this.
growfs_enable="YES"
growfs_swap_size=0
cloudinit_enable="YES"
sshd_enable="YES"
ifconfig_vtnet0="DHCP"
hostname="host-1151000555997504712"
ip6addrctl_policy="AUTO"
ip6addrctl_enable="YES"
ipv6_network_interface="auto"
ipv6_activate_all_interface=YES
ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
dhclient_program="/usr/local/sbin/dual-dhclient"
Reboot the system to apply the changes.
sudo reboot
Method 2: Manual Configure an IPv6 Address
Replace the placeholders <your_ipv6_address_1>
, <your_ipv6_address_2>
, <subnet_prefix_length>
, and <subnet_gateway_ip>
with your actual network values.
Modify /etc/rc.conf
for single IPv6 address.
Add the following lines to manually set a single IPv6 address and default route.
ifconfig_vtnet0_ipv6="inet6 <your_ipv6_address> prefixlen <subnet_prefix_length> accept_rtadv"
ipv6_gateway_enable="YES"
ipv6_defaultrouter="<subnet_gateway_ip>"
Modify /etc/rc.conf
for multiple IPv6 addresses.
Add the following lines to manually set multiple IPv6 addresses and default route.
ifconfig_vtnet0_ipv6="inet6 <your_ipv6_address_1> prefixlen <subnet_prefix_length> accept_rtadv"
ifconfig_vtnet0_ipv6_alias0="inet6 <your_ipv6_address_2> prefixlen <subnet_prefix_length>"
ipv6_gateway_enable="YES"
ipv6_defaultrouter="<subnet_gateway_ip>"
Example configuration.
Your /etc/rc.conf
should look something like this.
growfs_enable="YES"
growfs_swap_size=0
cloudinit_enable="YES"
sshd_enable="YES"
ifconfig_vtnet0="DHCP"
hostname="host-1151000555997504712"
ip6addrctl_policy="AUTO"
ip6addrctl_enable="YES"
ipv6_network_interface="auto"
ipv6_activate_all_interface=YES
ifconfig_vtnet0_ipv6="inet6 2001:2:0:d38e:0:2::2 prefixlen 64 accept_rtadv"
ipv6_gateway_enable="YES"
ipv6_defaultrouter="2001:2:0:d38e::1"
Reboot the system to apply the changes.
sudo reboot
The network configuration is typically managed by Netplan.
Netplan configuration files are located in /etc/netplan/
. The file might be named something like 01-netcfg.yaml
or 50-cloud-init.yaml
. Run the following command to open the Netplan configuration file.
sudo vi /etc/netplan/01-netcfg.yaml
Add or modify the configuration. Here is an example.
network:
version: 2
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses:
- 2001:db8::1/64
- 2001:db8::2/64
gateway6: 2001:db8::ff
nameservers:
addresses:
- 2001:4860:4860::8888
- 2001:4860:4860::8844
Apply the Netplan configuration with the following command.
sudo netplan apply
The network configuration is typically managed through the /etc/network/interfaces
file or through NetworkManager.
Edit the Configuration File
Run the following command to open the network configuration file.
sudo vi /etc/network/interfaces
Add or modify the configuration. Here is an example.
auto eth0
iface eth0 inet static
address 192.0.2.1
netmask 255.255.255.0
gateway 192.0.2.254
iface eth0 inet6 static
address 2001:db8::1
netmask 64
gateway 2001:db8::ff
up /sbin/ip -6 addr add 2001:db8::2/64 dev eth0
Restart the networking service to apply the changes.
sudo systemctl restart networking
Use NetworkManager
You can use nmcli
or the graphical NetworkManager tool to configure the network settings.
Here is an example for nmcli
.
nmcli connection modify eth0 ipv6.method manual ipv6.addresses 2001:db8::1/64 ipv6.gateway 2001:db8::ff ipv6.dns "2001:4860:4860::8888,2001:4860:4860::8844"
nmcli connection up eth0
Configure DHCPv6
Run the following command to open the network interface configuration file. Replace eth0
with your actual network interface value.
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Press i
to enter insert mode, and add the following configuration.
IPV6INIT=yes
DHCPV6C=yes
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart the instance to apply the configuration changes.
sudo reboot
Configure DHCPv6
Run the following command to open the network interface configuration file. Replace eth0
with your actual network interface value.
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Press i
to enter insert mode, and add the following configuration.
IPV6INIT=yes
DHCPV6C=yes
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart the instance to apply the configuration changes.
sudo reboot
Modify the NetworkManager connection profile to configure IPv6 addresses.
Configure DHCPv6
Run the following command to open the cloud-init-eth0.nmconnection
file. Replace eth0
with your actual network interface identifier if necessary.
sudo vi /etc/NetworkManager/system-connections/cloud-init-eth0.nmconnection
Make sure the following settings are present under the [ipv6]
section.
[ipv6]
method=auto
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart NetworkManager to apply the changes.
sudo systemctl restart NetworkManager
Manually Configure an IPv6 Address
Run the following command to open the cloud-init-eth0.nmconnection
file. Replace eth0
with your actual network interface value.
sudo vi /etc/NetworkManager/system-connections/cloud-init-eth0.nmconnection
Modify the [ipv6]
section. Replace eth0
with your actual network interface name and use your specific IPv6 address, prefix length, and gateway.
[ipv6]
method=manual
addresses1=2001:db8::1/64
gateway=2001:db8::ff
dns=2001:4860:4860::8888;2001:4860:4860::8844;
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart NetworkManager to apply the IPv6 configuration.
sudo systemctl restart NetworkManager
Use the dhcpcd
package to configure DHCPv6.
Install the dhcpcd
package, which is a DHCP client daemon.
apk add dhcpcd
Enable dhcpcd
to start at boot and then start the service.
rc-update add dhcpcd default
rc-service dhcpcd start
Reboot the system to apply the configuration changes.
sudo reboot
Configure DHCPv6
By default, cloud-init
generates a DHCP configuration file located at /etc/systemd/network/10-cloud-init-eth0.network
. Open this file to verify the configuration.
sudo vi /etc/systemd/network/10-cloud-init-eth0.network
Make sure the following lines are present under the [Network]
section.
[Match]
Name=eth0
[Network]
DHCP=yes
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart the systemd-networkd service to apply the configuration.
sudo systemctl restart systemd-networkd
Configure an IPv6 Address
Run the following command to create or edit /etc/systemd/network
file.
sudo vi /etc/systemd/network/10-static-eth0.network
Add the following lines to the file. Replace eth0
with your actual network interface name and use your specific IPv6 address, prefix length, and gateway.
[Match]
Name=eth0
[Network]
Address=2001:db8::1/64
Gateway=2001:db8::ff
DNS=2001:4860:4860::8888 2001:4860:4860::8844
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart the systemd-networkd service to apply the static IPv6 configuration.
sudo systemctl restart systemd-networkd
Configure DHCPv6
Run the following command to open the network interface configuration file. Replace eth0
with your actual network interface value.
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Press i
to enter insert mode, and add the following configuration.
IPV6INIT=yes
DHCPV6C=yes
Press Esc
to exit edit mode. Type :wq
and press Enter
to save and exit.
Restart the instance to apply the configuration changes.
sudo reboot
Gentoo openrc supports DHCPv6 by default through configuration files located in /etc/init.d/net.*
. You can manually create the /etc/conf.d/net
file to configure IPv6 addresses.
Configure DHCPv6
Run the following command to create or edit /etc/conf.d/net
file.
sudo vi /etc/conf.d/net
Add configuration for DHCP.
config_eth0="dhcp"
Manual Configure an IPv6 Address
Run the following command to create or edit /etc/conf.d/net
file.
sudo vi /etc/conf.d/net
Add Configuration for IPv6. Replace with your actual network values.
config_eth0="2001:db8::1/64"
routes_eth0="default via 2001:db8::ff"
dns_servers_eth0="2001:4860:4860::8888 2001:4860:4860::8844"
Restart the network service.
sudo /etc/init.d/net.eth0 restart
Note: Enable IPv6 service first before configuration.