Linux Professional Institute Learning Logo.
Pasar al contenido principal
  • Inicio
    • Todos los recursos
    • LPI Learning Materials
    • Conviértete en colaborador
    • Publishing Partners
    • Conviértase en un Publishing Partner
    • Acerca de nosotros
    • FAQ
    • Colaboradores
    • Roadmap
    • Contáctenos
  • LPI.org
109.2 Lección 1
Tema 105: Shells y scripts
105.1 Personalizar y usar el entorno de shell
  • 105.1 Lección 1
  • 105.1 Lección 2
  • 105.1 Lección 3
105.2 Personalizar y escribir scripts sencillos
  • 105.2 Lección 1
  • 105.2 Lección 2
Tema 106: Interfaces de usuario y escritorios
106.1 Instalar y configurar X11
  • 106.1 Lección 1
106.2 Escritorios gráficos
  • 106.2 Lección 1
106.3 Accesibilidad
  • 106.3 Lección 1
Tema 107: Tareas administrativas
107.1 Administrar cuentas de usuario y de grupo y los archivos de sistema relacionados con ellas
  • 107.1 Lección 1
  • 107.1 Lección 2
107.2 Automatizar tareas administrativas del sistema mediante la programación de trabajos
  • 107.2 Lección 1
  • 107.2 Lección 2
107.3 Localización e internacionalización
  • 107.3 Lección 1
Tema 108: Servicios esenciales del sistema
108.1 Mantener la hora del sistema
  • 108.1 Lección 1
  • 108.1 Lección 2
108.2 Registros del sistema
  • 108.2 Lección 1
  • 108.2 Lección 2
108.3 Conceptos básicos del Agente de Transferencia de Correo
  • 108.3 Lección 1
108.4 Gestión de la impresión y de las impresoras
  • 108.4 Lección 1
Tema 109: Fundamentos de redes
109.1 Fundamentos de los protocolos de Internet
  • 109.1 Lección 1
  • 109.1 Lección 2
109.2 Configuración de red persistente
  • 109.2 Lección 1
  • 109.2 Lección 2
109.3 Resolución de problemas básicos de red
  • 109.3 Lección 1
  • 109.3 Lección 2
109.4 Configuración DNS en el lado del cliente
  • 109.4 Lección 1
Tema 110: Seguridad
110.1 Tareas de administración de seguridad
  • 110.1 Lección 1
110.2 Configuración de la seguridad del sistema
  • 110.2 Lección 1
110.3 Protección de datos mediante cifrado
  • 110.3 Lección 1
  • 110.3 Lección 2
How to get certified
  1. Tema 109: Fundamentos de redes
  2. 109.2 Configuración de red persistente
  3. 109.2 Lección 1

109.2 Lección 1

Certificación:

LPIC-1

Versión:

5.0

Tema:

109 Fundamentos de redes

Objetivo:

109.2 Configuración de red persistente

Lección:

1 de 2

Introducción

En cualquier red TCP/IP, cada nodo debe configurar su adaptador de red para que coincida con los requisitos de la red, de lo contrario no podrán comunicarse entre sí. Por lo tanto, el administrador del sistema debe proporcionar la configuración básica para que el sistema operativo sea capaz de configurar la interfaz de red adecuada, así como de identificarse a sí mismo y las características básicas de la red cada vez que se inicie.

Las configuraciones de red son agnósticas con respecto a los sistemas operativos, pero estos últimos tienen sus propios métodos para almacenar y aplicar estas configuraciones. Los sistemas Linux confían en las configuraciones almacenadas en archivos de texto plano bajo el directorio /etc para hacer aparecer la conectividad de red durante el arranque. Merece la pena conocer cómo se utilizan estos archivos para evitar la pérdida de conectividad debido a una mala configuración local.

La interfaz de red

Interfaz de red es el término con el que el sistema operativo se refiere al canal de comunicación configurado para trabajar con el hardware de red conectado al sistema, como un dispositivo Ethernet o Wi-Fi. La excepción a esto es la interfaz loopback, que el sistema operativo utiliza cuando necesita establecer una conexión consigo mismo, pero el propósito principal de una interfaz de red es proporcionar una ruta a través de la cual se pueden enviar datos locales y recibir datos remotos. A menos que la interfaz de red esté correctamente configurada, el sistema operativo no podrá comunicarse con otras máquinas de la red.

En la mayoría de los casos, la configuración correcta de la interfaz se define por defecto o se personaliza durante la instalación del sistema operativo. Sin embargo, a menudo es necesario revisar o incluso modificar estos ajustes cuando la comunicación no funciona correctamente o cuando el comportamiento de la interfaz requiere una personalización.

Hay muchos comandos de Linux para listar qué interfaces de red están presentes en el sistema, pero no todos están disponibles en todas las distribuciones. El comando ip, es parte del conjunto básico de herramientas de red incluidas en todas las distribuciones de Linux y puede ser utilizado para listar las interfaces de red. El comando completo para mostrar las interfaces es ip link show:

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether 00:16:3e:8d:2b:5b brd ff:ff:ff:ff:ff:ff

Si está disponible, también se puede utilizar el comando nmcli device:

$ nmcli device
DEVICE      TYPE      STATE      CONNECTION
enp3s5      ethernet  connected  Gigabit Powerline Adapter
lo          loopback  unmanaged  --

Los comandos mostrados en los ejemplos no modifican ninguna configuración del sistema, por lo que pueden ser ejecutados por un usuario sin privilegios. Ambos comandos listan dos interfaces de red: lo (la interfaz loopback) y enp3s5 (una interfaz ethernet).

Las computadoras de mesa y las portátiles con Linux suelen tener dos o tres interfaces de red predefinidas, una para la interfaz virtual de bucle invertido y las otras asignadas al hardware de red por el sistema. Los servidores y dispositivos de red con Linux, en cambio, pueden tener decenas de interfaces de red, pero los mismos principios se aplican a todos ellos. La abstracción proporcionada por el sistema operativo permite configurar las interfaces de red utilizando los mismos métodos, independientemente del hardware subyacente. Sin embargo, conocer los detalles sobre el hardware subyacente de una interfaz puede ser útil para entender mejor lo que ocurre cuando la comunicación no funciona como se espera. En un sistema en el que hay muchas interfaces de red disponibles, podría no ser obvio cuál corresponde a wi-fi y al ethernet. Por esta razón, Linux utiliza una convención de nomenclatura de interfaces que ayuda a identificar qué interfaz de red corresponde a cada dispositivo y puerto.

Nombres de interfaces

Las antiguas distribuciones de Linux nombraban las interfaces de red ethernet como eth0, eth1, etc., numeradas según el orden en que el kernel identifica los dispositivos. Las interfaces inalámbricas se llamaban wlan0, wlan1, etc. Sin embargo, esta convención de nomenclatura, no aclara qué puerto ethernet específico coincide con la interfaz eth0, por ejemplo. Dependiendo de cómo se detectara el hardware, era incluso posible que dos interfaces de red intercambiaran sus nombres después de un reinicio.

Para superar esta ambigüedad, los sistemas Linux más recientes emplean una convención de nomenclatura predecible para las interfaces de red, estableciendo una relación más estrecha entre el nombre de la interfaz y la conexión de hardware subyacente.

En las distribuciones de Linux que utilizan el esquema de nomenclatura systemd, todos los nombres de interfaz comienzan con un prefijo de dos caracteres que significa el tipo de interfaz:

en

Ethernet

ib

InfiniBand

sl

Serial line IP (slip)

wl

Wireless local area network (WLAN)

ww

Wireless wide area network (WWAN)

De mayor a menor prioridad, el sistema operativo utiliza las siguientes reglas para nombrar y numerar las interfaces de red:

  1. Nombra la interfaz según el índice proporcionado por la BIOS o por el firmware de los dispositivos integrados, por ejemplo, eno1.

  2. Designa la interfaz según el índice de la ranura PCI express, tal y como lo indica la BIOS o el firmware, por ejemplo ens1.

  3. Nombra la interfaz según su dirección en el bus correspondiente, por ejemplo enp3s5.

  4. Designa la interfaz con la dirección MAC de la misma, por ejemplo enx78e7d1ea46da.

  5. Nombra la interfaz utilizando la convención heredada, por ejemplo eth0.

Es correcto suponer, que la interfaz de red enp3s5 se denominó así porque no se ajustaba a los dos primeros métodos de denominación, por lo que se utilizó en su lugar su dirección en el bus y la ranura correspondientes. La dirección del dispositivo 03:05.0, encontrada en la salida del comando lspci, revela el dispositivo asociado:

$ lspci | fgrep Ethernet
03:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)

Las interfaces de red son creadas por el propio kernel de Linux, pero hay muchos comandos que se pueden utilizar para interactuar con ellas. Normalmente, la configuración se realiza de forma automática y no es necesario cambiar la configuración manualmente. Sin embargo, con el nombre de la interfaz, es posible indicarle al kernel cómo proceder para configurarla si es necesario.

Gestión de interfaces

A lo largo de los años, se han desarrollado varios programas para interactuar con las características de red proporcionadas por el núcleo de Linux. Aunque el antiguo comando ifconfig todavía se puede utilizar para realizar configuraciones y consultas simples de las interfaces, ahora está obsoleto debido a su limitado soporte de las interfaces que no son Ethernet. El comando ifconfig fue sustituido por el comando ip, que es capaz de gestionar muchos otros aspectos de las interfaces TCP/IP, como rutas y túneles.

Las muchas capacidades del comando ip pueden ser excesivas para la mayoría de las tareas ordinarias, por lo que existen comandos auxiliares para facilitar la activación y configuración de las interfaces de red. Los comandos ifup y ifdown pueden utilizarse para configurar las interfaces de red basándose en las definiciones de las interfaces que se encuentran en el fichero /etc/network/interfaces. Aunque pueden ser invocados manualmente, estos comandos se ejecutan normalmente de forma automática durante el arranque del sistema.

Todas las interfaces de red gestionadas por ifup y ifdown deben estar listadas en el fichero /etc/network/interfaces. El formato utilizado en el fichero es sencillo: las líneas que comienzan con la palabra auto se utilizan para identificar las interfaces físicas que se van a activar cuando se ejecute ifup con la opción -a. El nombre de la interfaz debe seguir a la palabra auto en la misma línea. Todas las interfaces marcadas como auto se activan en el momento del arranque, en el orden en que aparecen en la lista.

Warning

Los métodos de configuración de red utilizados por ifup y ifdown no están estandarizados en todas las distribuciones de Linux. CentOS, por ejemplo, mantiene la configuración de las interfaces en archivos individuales en el directorio /etc/sysconfig/network-scripts/ y el formato de configuración utilizado en ellos es ligeramente diferente del formato utilizado en /etc/network/interfaces.

La configuración real de la interfaz se escribe en otra línea, empezando por la palabra iface, seguida del nombre de la interfaz, el nombre de la familia de direcciones que utiliza la interfaz y el nombre del método utilizado para configurar la interfaz. El siguiente ejemplo muestra un fichero de configuración básico para las interfaces lo (loopback) y enp3s5:

auto lo
iface lo inet loopback

auto enp3s5
iface enp3s5 inet dhcp

La familia de direcciones debe ser inet para redes TCP/IP, pero también hay soporte para redes IPX (ipx), y redes IPv6 (inet6). Las interfaces Loopback utilizan el método de configuración loopback. Con el método dhcp, la interfaz utilizará la configuración IP proporcionada por el servidor DHCP de la red. Los ajustes de la configuración de ejemplo permiten la ejecución del comando ifup utilizando el nombre de la interfaz enp3s5 como argumento:

# ifup enp3s5
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/enp3s5/00:16:3e:8d:2b:5b
Sending on   LPF/enp3s5/00:16:3e:8d:2b:5b
Sending on   Socket/fallback
DHCPDISCOVER on enp3s5 to 255.255.255.255 port 67 interval 4
DHCPOFFER of 10.90.170.158 from 10.90.170.1
DHCPREQUEST for 10.90.170.158 on enp3s5 to 255.255.255.255 port 67
DHCPACK of 10.90.170.158 from 10.90.170.1
bound to 10.90.170.158 -- renewal in 1616 seconds.

En este ejemplo, el método elegido para la interfaz enp3s5 fue dhcp, por lo que el comando ifup llamó a un programa cliente DHCP para obtener la configuración IP del servidor DHCP. Del mismo modo, el comando ifdown enp3s5 se puede utilizar para apagar la interfaz.

En redes sin servidor DHCP, se puede utilizar el método static en su lugar y proporcionar la configuración IP manualmente en /etc/network/interfaces. Por ejemplo:

iface enp3s5 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

Las interfaces que utilizan el método static no necesitan una directiva auto correspondiente, ya que se activan siempre que se detecta el hardware de la red.

Si la misma interfaz tiene más de una entrada iface, entonces todas las direcciones y opciones configuradas se aplicarán al abrir esa interfaz. Esto es útil para configurar tanto direcciones IPv4 como IPv6 en la misma interfaz, así como para configurar múltiples direcciones del mismo tipo en una sola interfaz.

Nombres locales y remotos

Una configuración TCP/IP que funcione es sólo el primer paso hacia la plena usabilidad de la red. Además de poder identificar los nodos de la red por sus números IP, el sistema debe ser capaz de identificarlos con nombres más fáciles de entender por los seres humanos.

El nombre con el que se identifica el sistema es personalizable y es una buena práctica definirlo, incluso si la máquina no está destinada a unirse a una red. El nombre local suele coincidir con el nombre de red de la máquina, pero esto no es necesariamente cierto siempre. Si el fichero /etc/hostname existe, el sistema operativo utilizará el contenido de la primera línea como nombre local, que a partir de entonces se llamará simplemente hostname. Las líneas que comienzan con # dentro de /etc/hostname son ignoradas.

El fichero /etc/hostname puede editarse directamente, pero el nombre de la máquina también puede definirse con el comando hostnamectl. Cuando se suministra con el subcomando set-hostname, el comando hostnamectl tomará el nombre dado como argumento y lo escribirá en /etc/hostname:

# hostnamectl set-hostname storage
# cat /etc/hostname
storage

El nombre de host definido en /etc/hostname es el nombre de host estático, es decir, el nombre que se utiliza para inicializar el nombre de host del sistema en el arranque. El nombre de host estático puede ser una cadena de forma libre de hasta 64 caracteres. Sin embargo, se recomienda que conste sólo de caracteres ASCII en minúsculas y sin espacios ni puntos. También debe limitarse al formato permitido para las etiquetas de nombres de dominio DNS, aunque esto no es un requisito estricto.

El comando hostnamectl puede establecer otros dos tipos de nombres de host además del nombre de host estático:

Pretty hostname

A diferencia del nombre de host estático, este otro nombre puede incluir todo tipo de caracteres especiales. Se puede utilizar para establecer un nombre más descriptivo para el equipo, por ejemplo, “LAN Shared Storage”:

# hostnamectl --pretty set-hostname "LAN Shared Storage"
Transient hostname

Se utiliza cuando el nombre de host estático no está establecido o cuando es el nombre localhost por defecto. El nombre de host transitorio es normalmente el nombre establecido junto con otras configuraciones automáticas, pero también puede ser modificado por el comando hostnamectl, por ejemplo

# hostnamectl --transient set-hostname generic-host

Si no se utiliza la opción --pretty ni --transient, los tres tipos de nombres de host se establecerán con el nombre dado. Para establecer el nombre de host estático, pero no los "pretty" y "transient", se debe utilizar la opción --static. En todos los casos, sólo el nombre de host estático se almacena en el fichero /etc/hostname. El comando hostnamectl también se puede utilizar para mostrar varios bits de información descriptiva y de identidad sobre el sistema en ejecución:

$ hostnamectl status
     Static hostname: storage
     Pretty hostname: LAN Shared Storage
  Transient hostname: generic-host
           Icon name: computer-server
             Chassis: server
          Machine ID: d91962a957f749bbaf16da3c9c86e093
             Boot ID: 8c11dcab9c3d4f5aa53f4f4e8fdc6318
    Operating System: Debian GNU/Linux 10 (buster)
              Kernel: Linux 4.19.0-8-amd64
        Architecture: x86-64

Esta es la acción por defecto del comando hostnamectl, por lo que el subcomando status puede ser omitido. En cuanto al nombre de los nodos de la red remota, hay dos formas básicas que el sistema operativo puede implementar para hacer coincidir nombres y números IP: utilizar una fuente local o utilizar un servidor remoto para traducir los nombres en números IP y viceversa. Los métodos pueden ser complementarios entre sí y su orden de prioridad se define en el archivo de configuración Name Service Switch: /etc/nsswitch.conf. Este fichero es utilizado por el sistema y las aplicaciones para determinar no sólo las fuentes de coincidencias nombre-IP, sino también las fuentes de las que puede obtener información de servicios de nombres en una serie de categorías, llamadas bases de datos.

La base de datos hosts lleva la cuenta del mapeo entre nombres de host y direcciones IPs. La línea dentro de /etc/nsswitch.conf que comienza con hosts define los servicios responsables de proporcionar las asociaciones para ello:

hosts: files dns

En esta entrada de ejemplo, files y dns son los nombres de servicio que especifican cómo funcionará el proceso de búsqueda de nombres de host. En primer lugar, el sistema buscará coincidencias en los archivos locales, y luego preguntará al servicio DNS por las coincidencias.

El archivo local para la base de datos de hosts es /etc/hosts, un simple archivo de texto que asocia direcciones IP con nombres de host, una línea por dirección IP, por ejemplo:

127.0.0.1 localhost

El número de IP 127.0.0.1 es la dirección por defecto de la interfaz loopback, de ahí su asociación con el nombre localhost.

También es posible vincular alias opcionales a la misma IP. Los alias pueden proporcionar ortografías alternativas, nombres de host más cortos y deben añadirse al final de la línea, por ejemplo:

192.168.1.10 foo.mydomain.org foo

Las reglas de formato para el archivo /etc/hosts son:

  • Los campos de la entrada están separados por cualquier número de espacios en blanco y/o caracteres de tabulación.

  • El texto desde un carácter # hasta el final de la línea es un comentario y se ignora.

  • Los nombres de host sólo pueden contener caracteres alfanuméricos, signos menos y puntos.

  • Los nombres de host deben comenzar con un carácter alfabético y terminar con un carácter alfanumérico.

Las direcciones IPv6 también pueden añadirse a /etc/hosts. La siguiente entrada se refiere a la dirección IPv6 loopback:

::1 localhost ip6-localhost ip6-loopback

Tras la especificación del servicio files, la especificación dns indica al sistema que solicite a un servicio DNS la asociación nombre/IP deseada. El conjunto de rutinas responsables de este método se llama resolver y su fichero de configuración es /etc/resolv.conf. El siguiente ejemplo muestra un /etc/resolv.conf genérico que contiene entradas para los servidores DNS públicos de Google:

nameserver 8.8.4.4
nameserver 8.8.8.8

Como se muestra en el ejemplo, la palabra clave nameserver indica la dirección IP del servidor DNS. Sólo se requiere un servidor de nombres, pero se pueden indicar hasta tres servidores de nombres. Los complementarios se utilizarán como reserva. Si no hay entradas de servidor de nombres, el comportamiento por defecto es utilizar el servidor de nombres de la máquina local.

El resolvedor puede configurarse para añadir automáticamente el dominio a los nombres antes de consultarlos en el servidor de nombres. Por ejemplo:

nameserver 8.8.4.4
nameserver 8.8.8.8
domain mydomain.org
search mydomain.net mydomain.com

La entrada dominio establece midominio.org como nombre de dominio local, por lo que las consultas de nombres dentro de este dominio podrán utilizar nombres cortos relativos al dominio local. La entrada search tiene un propósito similar, pero acepta una lista de dominios para probar cuando se proporciona un nombre corto. Por defecto, sólo contiene el nombre del dominio local.

Ejercicios guiados

  1. ¿Qué comandos se pueden utilizar para enumerar los adaptadores de red presentes en el sistema?

  2. ¿Cuál es el tipo de adaptador de red cuyo nombre de interfaz es wlo1?

  3. ¿Qué papel juega el archivo /etc/network/interfaces durante el arranque?

  4. ¿Qué entrada en /etc/network/interfaces configura la interfaz eno1 para obtener su configuración IP con DHCP?

Ejercicios de exploración

  1. ¿Cómo podría usarse el comando hostnamectl para cambiar sólo el nombre de host estático de la máquina local a firewall?

  2. ¿Qué detalles, además de los nombres de host, pueden ser modificados por el comando hostnamectl?

  3. ¿Qué entrada en /etc/hosts asocia los nombres firewall y router con la IP 10.8.0.1?

  4. ¿Cómo se podría modificar el archivo /etc/resolv.conf para enviar todas las peticiones DNS a 1.1.1.1?

Resumen

Esta lección cubre cómo hacer cambios persistentes en la configuración de la red local usando archivos y comandos estándar de Linux. Linux espera que las configuraciones TCP/IP estén en lugares específicos y puede ser necesario cambiarlas cuando las configuraciones por defecto no son apropiadas. La lección pasa por los siguientes temas:

  • Cómo identifica Linux las interfaces de red.

  • La activación de interfaces durante el arranque y la configuración IP básica.

  • Cómo el sistema operativo asocia los nombres con los hosts.

Los conceptos, comandos y procedimientos abordados fueron:

  • Convenciones de nomenclatura de interfaces.

  • Listado de interfaces de red con ip y nmcli.

  • Activación de interfaces con ifup y ifdown.

  • El comando hostnamectl y el archivo /etc/hostname.

  • Archivos /etc/nsswitch.conf, /etc/hosts y /etc/resolv.conf.

Respuestas a los ejercicios guiados

  1. ¿Qué comandos se pueden utilizar para enumerar los adaptadores de red presentes en el sistema?

    Comandos ip link show, nmcli device y el legado ifconfig.

  2. ¿Cuál es el tipo de adaptador de red cuyo nombre de interfaz es wlo1?

    El nombre comienza con wl, por lo que es un adaptador de LAN inalámbrica.

  3. ¿Qué papel juega el archivo /etc/network/interfaces durante el arranque?

    Tiene las configuraciones utilizadas por el comando ifup para activar las interfaces correspondientes durante el arranque.

  4. ¿Qué entrada en /etc/network/interfaces configura la interfaz eno1 para obtener su configuración IP con DHCP?

    La línea iface eno1 inet dhcp.

Respuestas a los ejercicios de exploración

  1. ¿Cómo podría usarse el comando hostnamectl para cambiar sólo el nombre de host estático de la máquina local a firewall?

    Con la opción --static: hostnamectl --static set-hostname firewall.

  2. ¿Qué detalles, además de los nombres de host, pueden ser modificados por el comando hostnamectl?

    hostnamectl también puede establecer el icono por defecto de la máquina local, su tipo de chasis, la ubicación y el entorno de despliegue.

  3. ¿Qué entrada en /etc/hosts asocia los nombres firewall y router con la IP 10.8.0.1?

    La línea 10.8.0.1 firewall router.

  4. ¿Cómo se podría modificar el archivo /etc/resolv.conf para enviar todas las peticiones DNS a 1.1.1.1?

    Utilizando nameserver 1.1.1.1 como su única entrada de servidor de nombres.

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

Siguiente lección

109.2 Configuración de red persistente (109.2 Lección 2)

Leer la próxima lección

Linux Professional Insitute Inc. Todos los derechos reservados. Visite el sitio web de Learning Materials: https://learning.lpi.org
Este trabajo está registrado bajo la Licencia Internacional Creative Commons Attribution-NonCommercial-NoDerivatives 4.0

LPI es una organización sin fines de lucro.

© 2022 Linux Professional Institute (LPI) es la organización global de certificación y apoyo académico para profesionales de código abierto. Con más de 200,000 titulares de certificación, es el primer y más grande organismo de certificación no comercial del mundo para Linux y Open Source. LPI cuenta con profesionales certificados en más de 180 países, realiza exámenes en varios idiomas y tiene cientos de socios de capacitación.

Nuestro propósito es hacer que las oportunidades económicas y creativas estén disponibles para todos, haciendo que el conocimiento de código abierto y la certificación sea universalmente accesible.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contáctenos
  • Política de privacidad y cookies

¿Detecta un error o desea ayudar a mejorar esta página? Por favor háznoslo saber.

© 1999–2022 The Linux Professional Institute Inc. Todos los derechos reservados.