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
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
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