From 905b56563c8d7068997f326a494c7e211fedbcf5 Mon Sep 17 00:00:00 2001 From: Benedikt Rollik <brollik@online.net> Date: Fri, 31 Jan 2025 09:44:37 +0100 Subject: [PATCH] fix(ddx): netplan --- .../how-to/configure-debian-ubuntu.mdx | 107 +++++++++++------- 1 file changed, 68 insertions(+), 39 deletions(-) diff --git a/pages/dedibox-ip-failover/how-to/configure-debian-ubuntu.mdx b/pages/dedibox-ip-failover/how-to/configure-debian-ubuntu.mdx index 9ea47b5996..4177b66655 100644 --- a/pages/dedibox-ip-failover/how-to/configure-debian-ubuntu.mdx +++ b/pages/dedibox-ip-failover/how-to/configure-debian-ubuntu.mdx @@ -41,15 +41,14 @@ This page shows you how to configure a [failover IP](/dedibox-ip-failover/concep # The primary network interface auto eth0 iface eth0 inet static - address 195.154.123.123 - netmask 255.255.255.0 - gateway 195.154.123.1 + address 195.154.123.123 + netmask 255.255.255.0 + gateway 195.154.123.1 auto eth0:0 iface eth0:0 inet static address ip_failover netmask 255.255.255.255 ``` - <Message type="note"> The interface name `eth0` may vary, depending on your OS version and system configuration. Use the `ifconfig` command to determine the name of your primary network interface. </Message> @@ -59,43 +58,73 @@ This page shows you how to configure a [failover IP](/dedibox-ip-failover/concep ifup eth0:0 ``` -## Failover IP configuration on Ubuntu +## Failover IP configuration on Ubuntu (Netplan) -Since the release of version 18.04 (Bionic Beaver) Ubuntu has switched to [Netplan](https://netplan.io/) for the configuration of network interfaces. +Since Ubuntu 18.04, Netplan has been the default network configuration system. -It is a YAML-based configuration system, which simplifies the configuration process. +### Steps for Configuring Netplan with Failover IP -1. Connect to your Dedibox using SSH. -2. Open the Netplan configuration file of the main interface in a text editor, for example `nano`: - ``` - sudo nano /etc/netplan/01-netcfg.yaml - ``` -3. Edit the network configuration. The IP addresses have to be written with their [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation). The netmask is `/24` for the principal IP of the server and `/32` for each failover IP. Your configuration should look as in the following example: - ```yaml - network: - renderer: networkd - ethernets: - ensXX: - addresses: - - <FAILOVER_IP>/32 - routes: - - to: 62.210.0.1 - - to: default - via: 62.210.0.1 - nameservers: - addresses: - - 51.159.47.28 - - 51.159.47.26 # Replace the IP of the DNS cache server with the one located in the same physical location as your machine for optimal performance (https://www.scaleway.com/en/docs/account/reference-content/scaleway-network-information/#dns-cache-servers) - search: [] - version: 2 - ``` - <Message type="tip"> - * Make sure to respect the YAML standards when you edit the file, as it might not work if there is a syntax error in your configuration. - * You can find an extended list of [netplan configuration examples](https://github.com/canonical/netplan/tree/main/examples) in the official Canonical Netplan repository. - </Message> -4. Activate the new configuration by running the following command: - ``` - sudo netplan apply - ``` +1. Disable cloud-init network configuration: + ```bash + sudo mkdir -p /etc/cloud/cloud.cfg.d + echo 'network: {config: disabled}' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg + ``` +2. Backup and modify the existing Netplan configuration: + ```bash + sudo cp /etc/netplan/50-cloud-init.yaml /etc/netplan/01-myplan.yaml + sudo mv /etc/netplan/50-cloud-init.yaml /etc/netplan/50-cloud-init.yaml-backup + ``` +3. Update the Netplan Configuration + Edit `/etc/netplan/01-myplan.yaml` using `nano`: + ```yaml + network: + renderer: networkd + ethernets: + enp5s0: + critical: true + dhcp-identifier: mac + dhcp4: false + dhcp6: false + addresses: + - 51.111.222.333/24 # Server main IP (/24) + - 212.111.222.333/32 # Alternate IPs / IP redirects (/32) + - 212.111.222.334/32 + - 212.111.222.335/32 + routes: + - to: 0.0.0.0/0 + via: 62.210.0.1 + metric: 1 + on-link: true + nameservers: + addresses: + - 51.159.69.156 + - 51.159.69.162 + enp6s0: + dhcp4: true + dhcp4-overrides: + use-routes: false + routes: + - to: 10.88.0.0/13 # Use appropriate IP/gateway from DHCP + via: 10.89.23.129 + version: 2 + ``` +4. Run the following command to test the configuration: + ```bash + sudo netplan try + ``` + If everything works as expected, apply the configuration: + ```bash + sudo netplan apply + ``` + <Message type="warning"> + If there is an error in your configuration, it might render your network inaccessible. You may need to revert changes using KVM/IPMI access. + </Message> +### Additional Notes +- Ensure that indentation and formatting are correct to avoid YAML syntax errors. +- If networking issues persist, check logs using: + ```bash + sudo journalctl -u systemd-networkd --no-pager + ``` +- More Netplan examples can be found in the [official Canonical repository](https://github.com/canonical/netplan/tree/main/examples).