===== Configurar IP estática en Arch Linux =====
* **IP estática**: 192.168.178.50
* **Router** / **Puerta de enlace**: 192.168.178.1
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]]