Para entornos de servidores donde las IP fijas raramente tienen cambios, pasamos de utilizar Network Manager a Networkd mediante el uso de netplan…
El método más antiguo consiste en la edici??n del fichero /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameserver 8.8.4.4
Pero podemos utilizar un fichero YAML con netplan, comprobaremos el estado de los servicios para conocer cuales están en uso:
systemctl status systemd-networkd
systemctl status NetworkManager
Estando en funcionamiento aparecerán como «active (running)», hablamos de entornos de servidor sin entornos gráfico (repito), buscamos el fichero de configuraci??n o creamos uno nuevo en el directorio /etc/netplan/00-installer-config.yaml o similar:
network:
version: 2
renderer: networkd
ethernets:
#eth0:
lan:
match:
macaddress: "74:56:XX:XX:XX:XX"
set-name: lan
dhcp4: false
addresses: [192.168.1.200/24]
#gateway4: 192.168.1.1
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
addresses: [8.8.4.4, 8.8.8.8]
Lo que hemos especificado en este caso, es el cambio de nombre de la interface de red, asociándolo con la MAC de la tarjeta, en equipos con varias es bastante sencillo. Igualmente el parámetro para indicar la puerta de enlace («gateway4») pasará a estar obsoleto con lo que utilizamos la nueva nomenclatura.
Para estar seguros que hemos configurado correctamente el fichero podemos comprobarlo:
sudo netplan generate -debug
/etc/netplan/00-installer-config.yaml:4:3: Error in network definition: unknown key 'ehternets'
ehternets:
^
Cuando estamos seguros que todo es correcto, aplicamos:
netplan apply
Aprovechamos para deshabilitar NetworkManager:
sudo systemctl stop NetworkManager.service
sudo systemctl disable NetworkManager.service
sudo systemctl stop NetworkManager-wait-online.service
sudo systemctl disable NetworkManager-wait-online.service
sudo systemctl stop NetworkManager-dispatcher.service
sudo systemctl disable NetworkManager-dispatcher.service
Si no utilizamos IPv6 tambíen:
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
Aunque este cambio no es permanente, editaremos para que lo sea:
sudo nano /etc/default/grub
Modificando/añadiendo la opción:
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"
Guardamos y aplicamos:
sudo update-grub
??Terminamos? Espera, nos queda aclarar la resolución de nombres DNS… si abrimos el ficheros /etc/resolv.conf
# This is /run/systemd/resolve/stub-resolv.conf managed by man:systemd-resolved(8).
# Do not edit.
#
# This file might be symlinked as /etc/resolv.conf. If you're looking at
# /etc/resolv.conf and seeing this text, you have followed the symlink.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs should typically not access this file directly, but only
# through the symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a
# different way, replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.
nameserver 127.0.0.53
options edns0 trust-ad
search .
Observamos que todas las peticiones DNS se canalizan a través de un servidor interno en la IP 127.0.0.53:
dig www.mainmind.com
; <<>> DiG 9.18.18-0ubuntu0.22.04.2-Ubuntu <<>> www.mainmind.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58376
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;www.mainmind.com. IN A
;; ANSWER SECTION:
www.mainmind.com. 300 IN A 104.21.91.223
www.mainmind.com. 300 IN A 172.67.180.211
;; Query time: 103 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Thu Jun 06 12:57:33 CEST 2024
;; MSG SIZE rcvd: 77
Si todo es correcto, ya tenemos nuestras tarjetas de red configuradas en entorno de servidor mediante netplan/networkd desde consola