Systemd-Networkd, un DHCP más rápido que DHCPCD

Foros

Systemd-Networkd es un demonio del sistema que maneja las configuraciones de red. Detecta y configura los dispositivos de red que aparecen; también puede crear dispositivos de red virtuales. Entre las ventajas de usar systemd-networkd en lugar de DHCPCD encontramos:

  • Mejora visible en el arranque del sistema (de 3 a 5 segundos)
  • Posibilidad de conectarse a WiFi/Ethernet a la vez y en caso de que desconectes una, no obtengas ningún problema de desconexión de red.
  • Mayor velocidad al momento de establecer una conexión a internet.

Uso básico

Para poder activar este servicio, deberá desactivar dhcpcd.service o cualquier otro demonio que tengas habilitado para este fin, luego deberá habilitar e iniciar los servicios systemd-networkd.service y systemd-resolved.service

systemctl enable systemd-networkd.service && systemctl start systemd-networkd.service
systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service

Configuración básica.

Todas las configuraciones deben guardarse en /etc/systemd/network/ en un fichero de extensión .network. Tenga en cuenta que aquí usaré los nombres wlp3s0 para referirme a la interfaz de red inalámbrica y enp2s0 para referirme a la cableada. Reemplace los nombres según sea su caso.

Interfaz cableada

Cree un fichero llamado /etc/systemd/network/20-wired.network con el siguiente contenido.

[Match]
Name=enp2s0

[Network]
DHCP=ipv4

Interfaz inalámbrica

Cree un fichero llamado /etc/systemd/network/20-wireless.network con el siguiente contenido.

[Match]
Name=wlp3s0

[Network]
DHCP=ipv4


Adicionalmente necesita crear un fichero llamado /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf con las configuraciones de la red a la que desea conectarse. Por favor lea este artículo. Normalmente se genera con el comando:

wpa_passphrase "Nombre de mi red" "Contraseña de la red" > /etc/wpa_supplicant/wpa_supplicant-wlp3s0.conf

Nota: Si la contraseña de su red contiene carácteres especiales, use comilla simple (') para encerrar la contraseña.

Una vez hecho eso, procedemos a habilitarlo con el comando:

systemctl enable [email protected]

Interfaz cableada e inalámbrica en la misma máquina.

Esta configuración habilitará una dirección IP DHCP para una conexión por cable e inalámbrica utilizando la directiva métrica para permitir que el kernel decida sobre la marcha cuál usar. De esta forma, no se observa un tiempo de inactividad o des-conexión cuando desenchufas tu cable de red o apagas el WiFi.

La métrica de ruta del kernel (igual que la configurada con ip) decide qué ruta usar para los paquetes salientes, en caso de que coincidan varias. Este será el caso cuando los dispositivos inalámbricos y por cable en el sistema tengan conexiones activas. Para romper el empate, el kernel usa la métrica. Si una de las conexiones finaliza, la otra automáticamente gana sin que exista un espacio sin configuración (las transferencias continuas pueden no tratar esto bien, pero eso está en una capa OSI diferente).

Siga los mismos pasos anteriores, pero en los archivos de configuración añada la opción RouteMetric a los archivos de configuración de esta manera.

Para wlp3s0:

[Match]
Name=wlp3s0

[Network]
DHCP=ipv4

[DHCP]
RouteMetric=20

Para enp2s0:

[Match]
Name=enp2s0

[Network]
DHCP=ipv4

[DHCP]
RouteMetric=10

Ahora, puede reiniciar su equipo y notará sustancialmente los cambios.

Acerca del autor

Especialista en Seguridad Informática bajo certificación OSCP, especialista en técnicas de privacidad y seguridad en la red, desarrollador back-end, miembro de la FSF y Fundador de Security Hack Labs. Entusiasta de la tecnología y amante de GNU/Linux. Twitter: @edu4rdshl XMPP/Email: [email protected].fsf.org