Configuración de red en Linux — teoría con ip, ifcfg y resolv.conf (y la IP que desapareció al reiniciar)

En la segunda práctica de redes conseguí que mi estación hiciera ping a la pasarela a la primera. ip addr add, ip route add, ping, todo verde. Apagué el ordenador contento. A la semana siguiente lo encendí, hice ping… y nada: la tarjeta no tenía IP. Todo lo que había configurado se había evaporado. La lección: las órdenes ip cambian la red ahora, en memoria; lo que quieres que sobreviva a un reinicio va en un archivo de configuración.

En el artículo de vi editamos el ifcfg-enp2s0 sin saber del todo qué significaba cada línea. Hoy lo descubrimos: cómo ver la red de una máquina Linux, cómo configurarla al momento con ip y cómo dejarla fija con ifcfg y /etc/resolv.conf. Después, en la práctica, montamos una estación entera.

El laboratorio de este tema

Configurar la red de tu propio ordenador para hacer pruebas es la forma más rápida de quedarte sin internet. Por eso todo lo de este artículo se ha ejecutado en un laboratorio virtual aislado: tres máquinas simuladas dentro de un mismo Linux con network namespaces (cada una tiene su propia pila de red) unidas por cables virtuales (veth). Reproduce el montaje de las prácticas de IC2: una estación, una pasarela y el router del aula.

El laboratorio de este temaLa estación (enp2s0, 10.110.7.4/24) se conecta a la pasarela (enp2s0 10.110.7.1 y enp3s0 10.110.1.7), que reenvía paquetes hacia el router del aula (10.110.1.1).red del puesto 7: 10.110.7.0/24red del aula: 10.110.1.0/24Estaciónenp2s010.110.7.4/24Pasarelaenp2s0 10.110.7.1enp3s0 10.110.1.7reenvía (ip_forward=1)Router del aulaenp2s010.110.1.1/24  puerta de enlace de la estación→ resto de la red
La estación solo ve directamente su red; para llegar al router necesita a la pasarela como puerta de enlace.

La estación es el puesto 7: su red es la 10.110.7.0/24 y su IP será la 10.110.7.4. La pasarela tiene dos tarjetas, una en cada red, y reenvía paquetes de una a otra. Todas las salidas que verás son reales, de una única ejecución.

Como las tarjetas son virtuales, en las salidas aparecerán dos detalles que en el aula no verás: un sufijo @if49 (el número de la tarjeta del otro extremo del cable) y link-netns pasarela (en qué máquina está ese otro extremo). Las órdenes se dan como root (prompt #): cambiar la red exige ser administrador. Los tiempos de ping y los números de tarjeta te saldrán distintos.

Cuatro ideas antes de teclear

  • Interfaz (tarjeta): la puerta de la máquina a una red. lo es especial: la loopback, la propia máquina (127.0.0.1).
  • Dirección IP y máscara: 10.110.7.4/24 dice «soy la 10.110.7.4 y mi red son las direcciones que comparten los primeros 24 bits». /24 es lo mismo que la máscara 255.255.255.0: 8 + 8 + 8 + 0 = 24 bits a 1. Mi red va de 10.110.7.0 a 10.110.7.255.
  • Puerta de enlace (gateway): la máquina de mi red a la que mando todo lo que no es de mi red. Aquí, la pasarela 10.110.7.1.
  • DNS: el servidor que traduce nombres a IP. Se configura en /etc/resolv.conf.

Cómo se llaman las tarjetas

Antes las tarjetas se llamaban eth0, eth1 (cableadas) y wlan0 (inalámbricas). El problema: el número dependía del orden en que el sistema las detectaba al arrancar, y la que hoy era eth1 mañana podía ser eth0. Ahora el nombre dice qué es y dónde está:

ParteSignificaEjemplo
en / wlEthernet (cable) / WLAN (wifi)
p<bus>s<slot>posición física en el bus PCIenp2s0: Ethernet, bus 2, ranura 0
o<índice>integrada en la placaeno1
loloopback, la propia máquina

Así, wlp9s0 es la wifi del bus 9, ranura 0. El nombre no cambia de un arranque a otro.

La orden ip: ver la red

La orden moderna es ip (del paquete iproute2). Su forma es:

ip [opciones] objeto orden

El objeto es de qué hablas: link (las tarjetas), address (las IP), route (las rutas). Se puede abreviar: address, addr y a son lo mismo. Si no pones orden, se sobreentiende show. Las opciones van antes del objeto: -br (resumen, una línea por tarjeta), -s (estadísticas), -c (colores). Y ip address help te enseña la ayuda de cada objeto.

Esta es la estación recién encendida, sin nada configurado:

# @lab base
# Una estación recién encendida: la tarjeta existe, pero está apagada y sin IP
ip link                           # objeto link: las tarjetas y su estado
ip addr                           # objeto address: lo mismo y además las IP
ip -br addr                       # -br (brief): una línea por tarjeta
ip route                          # la tabla de rutas: vacía

La sesión real:

# ip link
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
50: enp2s0@if49: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 08:00:27:a1:07:04 brd ff:ff:ff:ff:ff:ff link-netns pasarela
# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
50: enp2s0@if49: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 08:00:27:a1:07:04 brd ff:ff:ff:ff:ff:ff link-netns pasarela
# ip -br addr
lo               UNKNOWN        127.0.0.1/8 
enp2s0@if49      DOWN           
# ip route

Leámosla por partes:

  • ip link enseña dos tarjetas: lo y enp2s0. La de red tiene state DOWN y en sus flags falta UP: está apagada.
  • ip addr repite lo mismo y añade las IP: lo tiene 127.0.0.1/8, enp2s0 no tiene ninguna (no hay línea inet).
  • ip -br addr lo resume en una tabla: nombre, estado, direcciones.
  • ip route no imprime nada: la tabla de rutas está vacía. Esta máquina no sabe llegar a ningún sitio.

ip -br addr es la orden que más vas a usar. En una línea ves si la tarjeta está UP y qué IP tiene.

Para que la estación hable con la pasarela hacen falta tres pasos: encender la tarjeta, darle IP con máscara y, para salir de su red, una puerta de enlace.

# @lab base
ip link set enp2s0 up                    # encender la tarjeta
ip addr add 10.110.7.4/24 dev enp2s0     # IP y máscara (/24 = 255.255.255.0)
ip addr show enp2s0                      # solo esa tarjeta
ip route                                 # el núcleo ha añadido una ruta solo
ping -c 3 10.110.7.1                     # la pasarela, en mi misma red
ping -c 1 10.110.1.1                     # el router, en OTRA red
ip route add default via 10.110.7.1      # puerta de enlace: lo que no sea de mi red, a la pasarela
ip route
ping -c 3 10.110.1.1                     # ahora sí

La sesión real:

# ip link set enp2s0 up
# ip addr add 10.110.7.4/24 dev enp2s0
# ip addr show enp2s0
54: enp2s0@if53: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 08:00:27:a1:07:04 brd ff:ff:ff:ff:ff:ff link-netns pasarela
    inet 10.110.7.4/24 scope global enp2s0
       valid_lft forever preferred_lft forever
# ip route
10.110.7.0/24 dev enp2s0 proto kernel scope link src 10.110.7.4 
# ping -c 3 10.110.7.1
PING 10.110.7.1 (10.110.7.1) 56(84) bytes of data.
64 bytes from 10.110.7.1: icmp_seq=1 ttl=64 time=0.342 ms
64 bytes from 10.110.7.1: icmp_seq=2 ttl=64 time=0.064 ms
64 bytes from 10.110.7.1: icmp_seq=3 ttl=64 time=0.043 ms

--- 10.110.7.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2050ms
rtt min/avg/max/mdev = 0.043/0.149/0.342/0.136 ms
# ping -c 1 10.110.1.1
ping: connect: Network is unreachable
# ip route add default via 10.110.7.1
# ip route
default via 10.110.7.1 dev enp2s0 
10.110.7.0/24 dev enp2s0 proto kernel scope link src 10.110.7.4 
# ping -c 3 10.110.1.1
PING 10.110.1.1 (10.110.1.1) 56(84) bytes of data.
64 bytes from 10.110.1.1: icmp_seq=1 ttl=63 time=0.386 ms
64 bytes from 10.110.1.1: icmp_seq=2 ttl=63 time=0.067 ms
64 bytes from 10.110.1.1: icmp_seq=3 ttl=63 time=0.072 ms

--- 10.110.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2039ms
rtt min/avg/max/mdev = 0.067/0.175/0.386/0.149 ms

Vamos línea a línea:

  1. ip link set enp2s0 up no imprime nada (en Linux, el silencio es éxito), pero ahora la tarjeta tiene UP,LOWER_UP: encendida y con cable.
  2. ip addr add 10.110.7.4/24 dev enp2s0 añade la IP. ip addr show enp2s0 la enseña en la línea inet.
  3. ip route ya no está vacío: el núcleo ha añadido solo la ruta 10.110.7.0/24 dev enp2s0. Al decirle «soy la .4 de una /24», entiende que las 256 direcciones de esa red se alcanzan directamente por enp2s0.
  4. ping -c 3 10.110.7.1 (3 paquetes) funciona: la pasarela está en mi red. ttl=64 es el valor de salida típico de Linux: el paquete no ha cruzado ningún router.
  5. ping -c 1 10.110.1.1 falla con Network is unreachable: el router está en otra red y la tabla no tiene ninguna ruta que lo cubra. El ping ni siquiera llega a enviar nada.
  6. ip route add default via 10.110.7.1 añade la ruta por defecto: «todo lo que no sepas dónde va, a la pasarela».
  7. Ahora el router contesta, con ttl=63: 64 − 1, porque el paquete ha atravesado un router (la pasarela) por el camino.

Aquí tienes la salida de ip addr show desmontada:

Cómo se lee ip addr show enp2s0La salida real de ip addr show enp2s0 con cada parte señalada: número y nombre, flags, estado UP, MAC (link/ether), IP con prefijo (inet) y validez.54: enp2s0@if53: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP …link/ether 08:00:27:a1:07:04 brd ff:ff:ff:ff:ff:ff link-netns pasarelainet 10.110.7.4/24 scope global enp2s0valid_lft forever preferred_lft forever1número y nombre12flags: UP = encendida, LOWER_UP = hay cable23estado34MAC de la tarjeta45IP / prefijo56válida siempre (no la dio un DHCP)6
Lo que más miras: state UP, la línea link/ether (MAC) y la línea inet (IP/prefijo).

Fíjate en que nuestra línea inet no tiene brd (dirección de difusión). ip solo la pone si se la pides con brd +, que la calcula a partir de la máscara (lo verás en los ejercicios).

Quiero…Orden
encender / apagar la tarjetaip link set enp2s0 up / down
cambiar la MAC (con la tarjeta en down)ip link set enp2s0 address 12:34:56:78:90:ab
añadir / quitar una IPip addr add 10.110.7.4/24 dev enp2s0 / ip addr del …
quitar todas las IP de la tarjetaip addr flush dev enp2s0
añadir / quitar la puerta de enlaceip route add default via 10.110.7.1 / ip route del default
ver qué camino tomaría un paqueteip route get 10.110.1.1

Olvidar el /24. ip addr add 10.110.7.4 dev enp2s0 pone /32: una red de una sola dirección. No se crea la ruta de la red y ni la pasarela contesta. Lo verás en directo en los ejercicios.

Deshacer: quitar la IP y apagar la tarjeta

Igual de importante es saber qué pasa al quitar cosas. Partimos de la estación ya configurada:

# @lab conf
ip addr del 10.110.7.4/24 dev enp2s0     # quitar la IP
ip route                                 # se van también las rutas que dependían de ella
ip addr add 10.110.7.4/24 dev enp2s0     # la ponemos otra vez
ip link set enp2s0 down                  # y ahora apagamos la tarjeta
ip -br addr                              # la IP sigue ahí, pero la tarjeta está DOWN
ip route
ping -c 1 10.110.7.1

La sesión real:

# ip addr del 10.110.7.4/24 dev enp2s0
# ip route
# ip addr add 10.110.7.4/24 dev enp2s0
# ip link set enp2s0 down
# ip -br addr
lo               UNKNOWN        127.0.0.1/8 
enp2s0@if61      DOWN           10.110.7.4/24 
# ip route
# ping -c 1 10.110.7.1
ping: connect: Network is unreachable

Dos cosas que sorprenden:

  • Al quitar la IP con ip addr del, ip route se queda vacío: la ruta de la red y la ruta por defecto dependían de esa IP y el núcleo las borra con ella. Si vuelves a poner la IP, la puerta de enlace hay que añadirla otra vez.
  • Al apagar la tarjeta con ip link set enp2s0 down, la IP sigue (ip -br addr la muestra junto a DOWN), pero las rutas desaparecen y el ping falla con Network is unreachable. Una tarjeta apagada es como un cable desenchufado.

ifconfig y route: las órdenes de antes

En muchos apuntes, tutoriales y máquinas antiguas verás ifconfig y route (paquete net-tools). Están obsoletas, pero conviene leerlas. Con la estación configurada:

# @lab conf
# Las órdenes antiguas (paquete net-tools) siguen funcionando en muchas máquinas
ifconfig enp2s0                   # lo mismo que ip addr show enp2s0, con otro formato
route -n                          # lo mismo que ip route, en forma de tabla

La sesión real:

# ifconfig enp2s0
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.110.7.4  netmask 255.255.255.0  broadcast 0.0.0.0
        ether 08:00:27:a1:07:04  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.110.7.1      0.0.0.0         UG    0      0        0 enp2s0
10.110.7.0      0.0.0.0         255.255.255.0   U     0      0        0 enp2s0

ifconfig da la misma información con otro formato: inet y netmask por separado (la máscara escrita entera, 255.255.255.0), ether para la MAC y contadores de paquetes. El broadcast 0.0.0.0 es lo que comentábamos: no pedimos dirección de difusión. route -n enseña la tabla de rutas: la línea 0.0.0.0 con Gateway 10.110.7.1 y el flag G es la ruta por defecto; la 10.110.7.0 con U y sin gateway es la red directa. -n pide números en lugar de nombres.

net-tools (antigua)iproute2 (actual)
ifconfigip addr (ip a)
ifconfig enp2s0 upip link set enp2s0 up
ifconfig enp2s0 192.168.0.2 netmask 255.255.255.0ip addr add 192.168.0.2/24 dev enp2s0
route -nip route
route add default gw 10.110.7.1ip route add default via 10.110.7.1

Temporal frente a permanente

Todo lo que hemos hecho con ip vive en la memoria del núcleo: funciona al instante y desaparece al reiniciar (la historia del principio). Para que la configuración sea permanente se escribe en archivos que el sistema lee al arrancar:

Configuración temporal frente a permanenteA la izquierda, las órdenes ip cambian la configuración del núcleo al momento pero se pierde al reiniciar. A la derecha, los archivos ifcfg y resolv.conf se leen al arrancar y vuelven a dar las mismas órdenes.TEMPORALórdenes ip (o ifconfig)  cambian el núcleo al momento, en memoria  efecto inmediato  se pierde al reiniciarPERMANENTEarchivos de configuraciónifcfg-enp2s0: IP, máscara, gateway, ONBOOT/etc/resolv.conf: servidores DNSal arrancar o con systemctl restart networknúcleoal arrancar, si ONBOOT=yes
Con ip pruebas; con el ifcfg lo dejas fijo. Lo normal: probar con ip y, cuando funciona, escribirlo en el archivo.

En CentOS (el sistema de las prácticas), cada tarjeta tiene su archivo /etc/sysconfig/network-scripts/ifcfg-<nombre>. Este es el de nuestra estación, con los datos que acabamos de probar a mano:

# @lab conf
cat ifcfg-enp2s0                  # la configuración permanente (en CentOS, en /etc/sysconfig/network-scripts/)
cat /etc/resolv.conf              # los servidores DNS que se preguntan
cat /etc/hosts                    # nombres que se resuelven sin preguntar a nadie
ping -c 2 router                  # un nombre en lugar de una IP

La sesión real:

# cat ifcfg-enp2s0
DEVICE=enp2s0
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.110.7.4
NETMASK=255.255.255.0
GATEWAY=10.110.7.1
# cat /etc/resolv.conf
nameserver 193.145.147.22
nameserver 193.145.138.100
nameserver 193.145.138.200
# cat /etc/hosts
127.0.0.1 localhost
10.110.7.4 estacion
10.110.7.1 pasarela
10.110.1.1 router
# ping -c 2 router
PING router (10.110.1.1) 56(84) bytes of data.
64 bytes from router (10.110.1.1): icmp_seq=1 ttl=63 time=0.372 ms
64 bytes from router (10.110.1.1): icmp_seq=2 ttl=63 time=0.065 ms

--- router ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1025ms
rtt min/avg/max/mdev = 0.065/0.218/0.372/0.153 ms

Las claves del ifcfg:

ClaveQué indicaValores
DEVICEel nombre de la tarjetaenp2s0
BOOTPROTOde dónde sale la IPnone (la del archivo), dhcp (la da un servidor), bootp
ONBOOTsi se activa al arrancaryes / no
IPADDRla IP10.110.7.4
NETMASKla máscara (o PREFIX=24)255.255.255.0
GATEWAYla puerta de enlace10.110.7.1
NETWORKla dirección de la red (opcional)10.110.7.0

Después de editar el archivo (con vi, claro), se aplica reiniciando el servicio de red: systemctl restart network. En el aula, además, se para y desactiva NetworkManager (systemctl stop NetworkManager y systemctl disable NetworkManager) para que no pise la configuración de los archivos.

El laboratorio de este artículo no es un CentOS, así que systemctl restart network no se ha ejecutado: el archivo se enseña como texto. En la práctica escribimos un script que hace exactamente lo que hace ese servicio con cada ifcfg, y lo ejecutamos de verdad.

Los otros dos archivos de la sesión:

  • /etc/resolv.conf: una línea nameserver por servidor DNS, que se prueban en orden. Son los de la universidad.
  • /etc/hosts: nombres que la máquina resuelve sola, sin preguntar a ningún DNS. Por eso ping -c 2 router funciona: el sistema mira primero /etc/hosts, encuentra 10.110.1.1 router y hace ping a esa IP (la salida dice PING router (10.110.1.1)).

ping: la prueba de que hay red

ping envía paquetes ICMP de «eco» y espera la respuesta. Lo que hay que mirar:

En la salidaSignifica
64 bytes from 10.110.7.1: icmp_seq=1 ttl=64 time=0.342 msha contestado; ttl baja 1 por cada router atravesado; time es el tiempo de ida y vuelta
3 packets transmitted, 3 received, 0% packet lossel resumen: aquí no se perdió ninguno
connect: Network is unreachableno hay ruta: falta la IP, la máscara o la puerta de enlace
Destination Host Unreachablehay ruta, pero la máquina a la que hay que entregar el paquete en tu red local no responde (o no existe)

En Linux, ping no para solo: usa -c N para enviar N paquetes, o Ctrl-C para cortarlo.

Errores típicos

ip addr add 10.110.7.4 dev enp2s0 pone /32. Escribe siempre /24 (o el prefijo que toque).

La IP está bien puesta pero la tarjeta sigue DOWN. Primero ip link set enp2s0 up.

El gateway tiene que ser alcanzable directamente. ip route add default via 10.110.1.1 desde la estación da Error: Nexthop has invalid gateway.

Lo que haces con ip desaparece al reiniciar. Cuando funcione, pásalo al ifcfg y pon ONBOOT=yes.

Las órdenes que cambian algo dan Operation not permitted. Mirar sí puedes como usuario normal.

Pruébalo en tu terminal

Estas órdenes son seguras: solo miran, y puedes darlas en tu propio Linux sin miedo. Así salieron en la estación, como usuario normal (prompt $):

# @lab conf
# @sergio
ip -br addr                              # mirar no necesita ser root
ip route
ping -c 3 127.0.0.1                      # lo: la propia máquina
ip addr add 10.110.7.9/24 dev enp2s0     # cambiar sí

La sesión real:

$ ip -br addr
lo               UNKNOWN        127.0.0.1/8 
enp2s0@if69      UP             10.110.7.4/24 
$ ip route
default via 10.110.7.1 dev enp2s0 
10.110.7.0/24 dev enp2s0 proto kernel scope link src 10.110.7.4 
$ ping -c 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.233 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.050 ms

--- 127.0.0.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2044ms
rtt min/avg/max/mdev = 0.043/0.108/0.233/0.087 ms
$ ip addr add 10.110.7.9/24 dev enp2s0
RTNETLINK answers: Operation not permitted

Qué observar:

  1. ip -br addr y ip route funcionan sin ser root: consultar la red no necesita permisos. En tu máquina verás tus tarjetas (probablemente una wlp… si usas wifi).
  2. En tu ip route, la línea default via … es tu router de casa o de la universidad: tu puerta de enlace.
  3. ping -c 3 127.0.0.1 siempre funciona si la pila de red está viva: es la propia máquina, a través de lo. Los tiempos son minúsculos.
  4. La última orden intenta cambiar algo y el núcleo se niega: RTNETLINK answers: Operation not permitted. No la des con sudo en tu ordenador si no quieres cambiar tu red de verdad.
  5. Prueba también cat /etc/resolv.conf: en muchos Linux de escritorio verás nameserver 127.0.0.53, un intermediario local (systemd-resolved) que reenvía las consultas a los DNS reales.

Resumen

ConceptoLo esencial
Nombresenp2s0 = Ethernet, bus 2, ranura 0; wl… wifi; lo la propia máquina
Verip -br addr, ip link, ip route, ip route get IP
Configurar al momentoip link set X up, ip addr add IP/24 dev X, ip route add default via GW
Deshacerip addr del, ip addr flush dev X, ip route del default, ip link set X down
Antiguasifconfig, route -n (net-tools, obsoletas)
Permanenteifcfg-X (BOOTPROTO, ONBOOT, IPADDR, NETMASK, GATEWAY) + systemctl restart network; DNS en /etc/resolv.conf
Comprobarping -c N: ttl, % packet loss, Network is unreachable

Tres ideas para llevarte:

  1. Tres pasos para tener red: tarjeta up, IP con máscara, puerta de enlace (que esté en tu red).
  2. ip cambia la red al momento y en memoria; el ifcfg con ONBOOT=yes la deja fija.
  3. Cuando algo falle, mira en orden: ip -br addr (¿UP? ¿IP/prefijo?), ip route (¿default?), ping a la pasarela y después más lejos.

En la práctica de configuración de red ponemos en marcha la estación paso a paso, arreglamos una mal configurada y convertimos el ifcfg en órdenes con un script. Con este tema se cierra la parte práctica de Linux de IC2; lo siguiente es la teoría de redes que hay detrás de todo esto.

Siguiente paso: prácticaConfiguración de red en Linux — práctica con una estación desde cero, otra mal configurada y un script que lee el ifcfg (y un ping que solo llegaba a medias)

¿Te ha servido este artículo? Así puedes apoyar SergioLearns →

Sigue aprendiendo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *