Table of Contents

Configurar IP estática en Arch Linux

Comprobar si dhcpcd está activado.

systemctl is-enabled dhcpcd

Identificar el nombre de las interfaces de red.

ip addr

Crear el fichero de configuración para la interfaz seleccionada (enp2s0): /etc/conf.d/network\@enp2s0

address=192.168.178.50
netmask=24
broadcast=192.168.178.255
gateway=192.168.178.1

Crear el fichero /etc/systemd/system/network\@.service

[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
 
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network@%i
 
ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev %i
ExecStart=/usr/bin/ip route add default via ${gateway}
 
ExecStop=/usr/bin/ip addr flush dev %i
ExecStop=/usr/bin/ip link set dev %i down
 
[Install]
WantedBy=multi-user.target

La configuración de IP estática debe iniciarse al arrancar el sistema.

systemctl enable network@enp2s0

Parar y desactivar el inicio DHCPCD en el arranque del sistema.

systemctl stop dhcpcd.service
systemctl disable dhcpcd.service

Configurar IP estática y desactivar DHCP en Arch ARM Linux (Raspberry)

Editar “/etc/systemd/network/eth0.network” para desactivar DHCP y establecer una IP estática.

[Match]
Name=eth0

[Network]
Address=192.168.178.50/24
Gateway=192.168.178.1
DNS=8.8.8.8
DNS=8.8.4.4
systemctl enable systemd-networkd

Desactivar netctl.

# Identificar estado
systemctl list-unit-files | grep -i netctl
 
# Desactivar si se encuentra activado.
systemctl disable netctl@eth0.service

Salida de systemctl cuando todo está correcto.

systemctl list-unit-files | grep -i netctl
netctl-auto@.service                   disabled
netctl-ifplugd@.service                disabled
netctl-sleep.service                   disabled
netctl.service                         disabled
netctl@.service                        static  
 
systemctl status netctl
● netctl.service - (Re)store the netctl profile state
   Loaded: loaded (/usr/lib/systemd/system/netctl.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
 
systemctl status systemd-networkd
● systemd-networkd.service - Network Service
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; enabled; vendor preset: enabled)
   Active: active (running) since lun 2015-02-22 15:40:22 CET; 2 months 1 days ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 149 (systemd-network)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-networkd.service
           └─149 /usr/lib/systemd/systemd-networkd
 
feb 22 15:40:21 pipich systemd[1]: Starting Network Service...
feb 22 15:40:22 pipich systemd-networkd[149]: Enumeration completed
feb 22 15:40:22 pipich systemd[1]: Started Network Service.
feb 22 15:40:23 pipich systemd-networkd[149]: eth0: Gained carrier

Desactivar IPv6 en Arch ARM (Raspberry) (Opcional).

Editar el fichero /boot/cmdline.txt para desactivar IPv6: Opción “ipv6.disable=1”

root=/dev/mmcblk0p2 rw rootwait console=ttyAMA0,115200 console=tty1 selinux=0 plymouth.enable=0 smsc95xx.turbo_mode=N dwc_otg.lpm_enable=0 kgdboc=ttyAMA0,135200 elevator=noop ipv6.disable=1

Configurar IPs estáticas / ejecutar comandos en DHCPCD (dhcpcd-hooks)

Mediante dhcpcd es posible configurar direcciones IPs adicionales estáticas desde su propio fichero de configuración. Pero existen dos scripts que pueden ser ejecutados por dhcpcd si estos existen en sus respectivas rutas. Mediante estos scripts se podría también operar sobre la red y agregar IPs, eliminar IPs, agregar rutas, etc.

Los scripts hook del sistema se encuentran en “/usr/lib/dhcpcd/dhcpcd-hooks” y los definidos por el usuario deben estar en “/etc/dhcpcd.enter-hook” y “/etc/dhcpcd.exit-hook”. La instalación por defecto suministra scripts para configurar “/etc/resolv.conf” y el nombre del host. Cada distribución puede incluir más o menos extras a ficha configuración básica, por ejemplo para configurar ntp o ypbind.

Cuando dhcpcd-run-hooks se ejecuta, carga /etc/dhcpcd.enter-hook y cualquier script que se encuentre en /usr/lib/dhcpcd/dhcpcd-hooks en un orden léxico y finalmente /etc/dhcpcd.exit-hook. Por lo tanto, si se quieren hacer algunos retoques una vez configurada por dhcpcd las interfaces, esos scripts son una manera de poder hacerlo. Muy útiles cuando se obtiene cierta información incompleta o erronea de una red IPv6 o servidor de DHCP no demasiado bien configurado.

Enlace de interés: https://wiki.archlinux.org/index.php/systemd-networkd