Gráfico de esquema de red informática

Cómo configurar el entorno de red en Debian desde una terminal

 
 

Índice General

  1. Introducción
  2. Configurar el entorno de red desde la interfaz de línea de comandos (CLI)
  3. Comprobar la configuración del entorno de red

 

  1. Introducción (Volver al índice General)
    En este artículo, para configurar el entorno de red en Debian, utilizaremos el método de configuración desde la interfaz de línea de comandos (CLI). Este método no solo es válido para Debian, sino también para cualquier distribución Linux basada en Debian.

    Si te interesan los métodos para la configuración del entorno de red con interfaz gráfica, pincha aquí para ver el artículo publicado en </ZeppelinuX> llamado: Cómo configurar el entorno de red en Debian con interfaz gráfica.

    Además, en </ZeppelinuX> se publicó el artículo ¿Dónde guarda la configuración NetworkManager?, que explica brevemente qué es NetworkManager.

  2.  

  3. Configurar el entorno de red desde la interfaz de línea de comandos (CLI) (Volver al índice General)
       

    • Cómo conocer el nombre de nuestra interfaz de red (Volver al índice General)
      Antes de pasar a configurar el entorno de red, hemos de conocer el nombre de nuestra interfaz de red.
      Dependiendo de la antigüedad de nuestro sistema operativo y de si son tarjetas de red cableadas o inalámbricas, los nombres de estas varían:

      • En sistemas antiguos:
        • Las interfaces de red cableada tendrán nombres del tipo eth0, eth1, etc.
        • Las interfaces de red inalámbrica tendrán nombres del tipo wlan0, wlan1, etc.
      • En sistemas actuales:
        • Las interfaces de red cableada tendrán nombres del tipo enp3s0, ens33, eno1, etc.
        • Las interfaces de red inalámbrica tendrán nombres del tipo wlp1s0, wlxe894f60bcef6, etc.

       
      Para conocer el nombre de las interfaces de red, podemos utilizar varios comandos:

      1. Utilizando el comando ip
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        
        $ ip addr
        1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
            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
            inet6 ::1/128 scope host 
               valid_lft forever preferred_lft forever
        2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000    link/ether 7c:05:07:10:1f:45 brd ff:ff:ff:ff:ff:ff
            inet 192.168.1.4/24 brd 192.168.1.255 scope global dynamic eno1
               valid_lft 81236sec preferred_lft 81236sec
            inet6 fe80::ee44:7f49:ca5b:b85d/64 scope link 
               valid_lft forever preferred_lft forever

        La línea 8 indica que el nombre de la interfaz de red cableada del ejemplo es eno1.

      2. Utilizando el comando ifconfig
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        
        $ sudo ifconfig
        [sudo] password for usuario: 
        eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500        inet 192.168.1.4  netmask 255.255.255.0  broadcast 192.168.1.255
                inet6 fe80::ee44:7f49:ca5b:b85d  prefixlen 64  scopeid 0x20<link>
                ether 7c:05:07:10:1f:45  txqueuelen 1000  (Ethernet)
                RX packets 266871  bytes 323755934 (308.7 MiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 87242  bytes 15092450 (14.3 MiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
                device interrupt 20  memory 0xf7100000-f7120000  
         
        lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
                inet 127.0.0.1  netmask 255.0.0.0
                inet6 ::1  prefixlen 128  scopeid 0x10<host>
                loop  txqueuelen 1  (Local Loopback)
                RX packets 41660  bytes 16320629 (15.5 MiB)
                RX errors 0  dropped 0  overruns 0  frame 0
                TX packets 41660  bytes 16320629 (15.5 MiB)
                TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

        La línea 3 indica que el nombre de la interfaz de red cableada del ejemplo es eno1.

      3. Utilizando el comando nmcli
        Con el comando nmcli connection show se obtiene una descripción general de los perfiles de conexión activos.

        1
        2
        3
        
        $ nmcli connection show
        NOMBRE              UUID                                  TIPO             DISPOSITIVO 
        Wired connection 1  0bc1e9cb-14c4-4839-99dc-c14c7a1ba654  802-3-ethernet   eno1

        La línea 3 indica que el nombre de la interfaz de red cableada del ejemplo es eno1.

    •  

    • Entendiendo el fichero /etc/network/interfaces (Volver al índice General)
      Mientras que en el fichero /etc/udev/rules.d/70-persistent-net.rules están los nombres de las interfaces de red físicas, en el fichero /etc/network/interfaces se definen los nombres lógicos de las interfaces de red, a los que se les asociará una configuración determinada. El comando ifup se encarga de asociar una interfaz física con una interfaz lógica.

      Las líneas que contiene este fichero pueden ser de diferentes tipos. Vamos a ver las más utilizadas:

      • Línea auto: Indica la interfaz de red física que se activará con el comando ifup -a, que se ejecuta cada vez que arranca el sistema. Por lo tanto indica que interfaces de red se activarán en el inicio del sistema de forma automática. Se pueden poner tantas líneas de este tipo como sean necesarias y en una sola línea pueden ir más de una interfaz física, separadas con un espacio.
        auto eth0 eth1
        auto eth2

        En las líneas anteriores la interfaz física eth0 se asocia con la configuración que posea la interfaz lógica eth0, la eth1 con la eth1, etc.

      • Línea allow-auto: Equivalente a la línea auto. Las interfaces de red de esta línea se activarán con el comando ifup –allow=auto.
      • Línea allow-hotplug: Similar a la línea auto, con la diferencia que las interfaces físicas que aparecen en estás líneas se activan con eventos hotplug, como pueden ser la conexión del cable de red o la detección de la tarjeta por el Kernel del sistema operativo. Las interfaces de red de esta línea se activarán con el comando ifup –allow=hotplug.
        allow-hotplug eth0 eth1
        allow-hotplug eth2

        En las líneas anteriores la interfaz física eth0 se asocia con la configuración que posea la interfaz lógica eth0, la eth1 con la eth1, etc.

      • Línea iface: Definen nombres lógicos de interfaces de red y su configuración. Las líneas iface tienen la siguiente sintaxis:
        iface  <config_name>  <address_family>  <method_name>
           <option1> <value1>
           <option2> <value2>
           ...

        donde:

        • <config_name>: Será un nombre lógico de interfaz de red.
        • <address_family>: Normalmente contiene el valor inet para especificar una configuración IPv4, pero también puede ser inet6 para especificar una configuración IPv6 o ipx para especificar una configuración IPX.
        • <method_name>: Indica el método de configuración de la interfaz y depende del valor de <address_family>, para el caso de la familia inet los métodos son:
          • loopback: Solo se usa para la interfaz lo (loopback).
          • dhcp: Se usa para asignar direcciones IP dinámicas. El método dhcp tiene las siguientes opciones con el mismo significado que aparece en la siguiente tabla:
            • hwaddress.
            • pre-up, up, post-up.
            • pre-down, down, post-down.
          • static: Se usa para asignar direcciones IP fijas o estáticas.
            El método static tiene las siguientes opciones:
            OpciónEjemploDescripción
            address dirección_IPaddress 192.168.1.20 Establece la dirección IP. (obligatorio)
            netmask máscara netmask 255.255.255.0Establece la máscara de la dirección IP. (obligatorio)
            gateway dirección_IPgateway 192.168.1.1Establece la puerta de enlace. En un equipo sólo puede haber una puerta de enlace, o lo que es lo mismo, sólo puede haber una regla por defecto de enrutamiento. Esta opción se asociará a la línea iface cuya ip se corresponde con la ip de salida de la regla por defecto en la tabla de enrutamiento.
            network dirección_IP_rednetwork 192.168.1.0Establece la dirección de la red a la que pertenece la dirección IP.
            broadcast dirección_IP_de_broadcast broadcast 192.168.1.255Establece la dirección de broadcast (difusión) de la red.
            hwaddress tipo_interfaz dirección_MAChwaddress ether 00:50:56:c0:a0:f8Establece la dirección MAC de la tarjeta. Para las tarjetas ethernet se debe poner la palabra ether como tipo de la interfaz.
            pre-up comandopre-up echo "Hola mundo"Ejecuta comando antes de que la tarjeta se configure con el comando ifup. Si el comando falla, ifup aborta, imprime un mensaje de error y la tarjeta no se marca como configurada.
            up comandoup sleep 2 ; route add -net 169.255.0.0/16 gw 192.168.1.1 dev eth0Ejecuta comando durante la configuración de la tarjeta con el comando ifup.
            post-up comandopost-up route add...Ejecuta comando después de que la tarjeta se configure con el comando ifup. Si el comando falla, ifup aborta, imprime un mensaje de error y la tarjeta no se marca como configurada aunque haya sido configurada.
            pre-down comandopre-down route del -net 169.255.0.0/16 eth0Ejecuta comando antes de que la tarjeta se desconfigure con el comando ifdown. Si el comando falla, ifdown aborta, imprime un mensaje de error y la tarjeta se marca como desconfigurada aunque no haya sido desconfigurada.
            down comandodown sleep 2 ; route del...Ejecuta comando durante la desconfiguración de la tarjeta con el comando ifdown.
            post-down comando post-down echo...Ejecuta comando después de que la tarjeta se desconfigure con el comando ifdown. Si el comando falla, ifdown aborta, imprime un mensaje de error y la tarjeta no se marca como desconfigurada.
            Las opciones pre-up, up, post-up, pre-down, down, post-down, tienen las siguientes características:

            • Son opcionales.
            • Son opciones válidas para cualquier familia (<address_family>) y método (<method_name>).
            • Pueden repetirse cuantas veces queramos.
            • Se ejecutan cada una en su momento, y dentro del mismo tipo, en el orden que aparecen en el fichero.
            • Se puede asegurar que siempre se ejecute correctamente el comando, ya que a este le podemos añadir el sufijo «|| true» creando una lista condicional OR (el comando true no hace nada y tiene como código de salida el valor 0, false es el comando contrario, además de no hacer nada, tiene como código de salida el valor 1).
      • Línea mapping: Define cómo se asociará automáticamente una interfaz física a una lógica de entre un grupo de estas.
      • Las líneas que comienzan con # son comentarios.
      • Las líneas que acaban con \ extienden la configuración a la línea siguiente.

       
      Las dos primeras líneas del fichero /etc/network/interfaces deben ser:

      auto lo
      iface lo inet loopback

      Estas líneas activan la interfaz lo (loopback), normalmente usada para tareas de diagnóstico de conectividad y validez de los protocolos de comunicación.
       
      Si quieres más información sobre la configuración del archivo /etc/network/interfaces, puedes ver la página del manual con el siguiente comando:

      $ man interfaces
    •  

    • Cómo asignar una IP dinámica (Volver al índice General)
      La asignación dinámica la realizaremos por DHCP. El servidor DHCP asigna una IP fija o dinámica a todos los ordenadores y dispositivos que se conecten a él sin que el usuario tenga que hacer nada. El servidor DHCP se encargará de configurar la dirección IP, la máscara de subred (mask), la puerta de enlace (gateway), los servidores DNS, etc.

      Para asignar una IP dinámica a nuestro equipo, en primer lugar, editaremos el archivo /etc/network/interfaces. En este ejemplo utilizaremos el editor de texto plano nano, ejecutando el siguiente comando:

      $ sudo nano /etc/network/interfaces

      A continuación presentamos el contenido de /etc/network/interfaces para una configuración dinámica (DHCP):

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces(5).
       
      source /etc/network/interfaces.d/*
       
      # The loopback network interface
      auto lo
      iface lo inet loopback
       
      # Interfaz de red (eth0)
      auto eth0
      allow-hotplug eth0
      iface eth0 inet dhcp
      • La línea 13 define el nombre lógico de la interfaz de red eth0, la address_family que es inet y el método de configuración de la interfaz que es dhcp.

      Para IPv6, agregue también la siguiente línea iface:

      iface eth0 inet6 dhcp

      Una vez finalizada la edición del archivo, tendremos que reiniciar la red. Para ello, ejecutaremos el siguiente comando:

      $ sudo systemctl restart NetworkManager

      Si nuestro sistema no utiliza systemd como sistema de inicio de Linux, puedes mirar el artículo Cómo reiniciar la red desde la línea de comandos en Linux, publicado en ZeppelinuX.

    •  

    • Cómo asignar una IP estática (Volver al índice General)
      Una IP estática asignada a un dispositivo nunca cambia. Si no disponemos de un servidor DHCP o si por otra razón necesitamos asignar una IP fija o estática, tendremos que realizar los siguientes pasos. En este ejemplo utilizaremos el editor de texto plano nano, ejecutando el siguiente comando:

      $ sudo nano /etc/network/interfaces

      A continuación presentamos el contenido de /etc/network/interfaces para una configuración estática o manual:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      
      # This file describes the network interfaces available on your system
      # and how to activate them. For more information, see interfaces(5).
       
      source /etc/network/interfaces.d/*
       
      # The loopback network interface
      auto lo
      iface lo inet loopback
       
      # Interfaz de red eth0
      auto eht0
      allow-hotplug eth0
      iface eth0 inet static        address   192.168.1.20        netmask   255.255.255.0        network   192.168.1.0        broadcast 192.168.1.255        gateway   192.168.1.1
      • La línea 13 define el nombre lógico de la interfaz de red eth0, la address_family que es inet y el método de configuración de la interfaz que es static.
      • La línea 14 define la IP que tendrá nuestro equipo.
      • La línea 15 define la máscara de subred.
      • La línea 16 define la IP del nombre de red.
      • La línea 17 define la IP de difusión (broadcast).
      • La línea 18 define la IP de la puerta de enlace (gateway).

       
      Una vez finalizada la edición del archivo, tendremos que reiniciar la red. Para ello, ejecutaremos el siguiente comando:

      $ sudo systemctl restart NetworkManager

      Si nuestro sistema no utiliza systemd como sistema de inicio de Linux, puedes mirar el artículo Cómo reiniciar la red desde la línea de comandos en Linux, publicado en ZeppelinuX.

    •  

    • Configurar los servidores DNS (Volver al índice General)
      Si necesitamos configurar los servidores DNS y dominios de búsqueda, tendremos que editar el archivo /etc/resolv.conf. Para ello, ejecutaremos el siguiente comando:

      $ sudo nano /etc/resolv.conf

      A continuación presentamos el contenido de /etc/resolv.conf con dos servidores DNS y dominios de búsqueda:

      1
      2
      3
      4
      5
      
      # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
      #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
      nameserver 1.1.1.1    nameserver 8.8.8.8search zeppelinux.es zeppelinux.net

      Puedes mirar el artículo Configuración del archivo /etc/resolv.conf, publicado en ZeppelinuX para saber más.

  4.  

  5. Comprobar la configuración del entorno de red (Volver al índice General)
    Tras las modificaciones en los archivos anteriores, o por cualquier otro motivo, podremos comprobar la configuración del entorno de red con los siguientes comandos:

    • Obtener la IP, máscara y dirección de broadcast
      Estos datos los podemos obtener con el comando ip:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      
      $ ip addr
      ...
      ...
      2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
          link/ether 7c:05:07:10:1f:45 brd ff:ff:ff:ff:ff:ff
          inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic eno1       valid_lft 77755sec preferred_lft 77755sec
          inet6 fe80::ee44:7f49:ca5b:b85d/64 scope link 
             valid_lft forever preferred_lft forever
      ...

       
      También podemos obtener la información anterior con el comando ifconfig:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
      $ sudo ifconfig
      [sudo] password for karfer: 
      eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
              inet 192.168.1.20  netmask 255.255.255.0  broadcast 192.168.1.255        inet6 fe80::ee44:7f49:ca5b:b85d  prefixlen 64  scopeid 0x20<link>
              ether 7c:05:07:10:1f:45  txqueuelen 1000  (Ethernet)
              RX packets 347458  bytes 276769374 (263.9 MiB)
              RX errors 0  dropped 0  overruns 0  frame 0
              TX packets 172457  bytes 87011483 (82.9 MiB)
              TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
              device interrupt 20  memory 0xf7100000-f7120000
      ...
      ...

      Nota: En las nuevas distribuciones de Linux, para ejecutar el comando ifconfig tendremos que instalar paquete net-tools y ejecutar con su –

    • Obtener la puerta de enlace (gateway)
      Aquí utilizaremos el comando ip route:

      1
      2
      
      $ ip route |grep default
      default via 192.168.1.1 dev eno1 proto static metric 100
    • Obtener información más detallada
      El paquete NetworkManager contiene el comando nmcli para ejecutar desde la línea de comandos:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      
      $ nmcli device show
      GENERAL.DISPOSITIVO:                    eno1
      GENERAL.TIPO:                           ethernet
      GENERAL.HWADDR:                         7C:05:07:10:1F:45GENERAL.MTU:                            1500
      GENERAL.ESTADO:                         100 (conectado)
      GENERAL.CONEXIÓN:                       Wired connection 1
      GENERAL.CON-RUTA:                       /org/freedesktop/NetworkManager/ActiveConnection/1
      WIRED-PROPERTIES.PORTADOR:              encendido
      IP4.DIRECCIÓN[1]:                       192.168.1.20/24
      IP4.PUERTA DE ENLACE:                   192.168.1.1
      IP4.DNS[1]:                             1.1.1.1
      IP4.DNS[2]:                             8.8.8.8
      IP6.DIRECCIÓN[1]:                       fe80::ee44:7f49:ca5b:b85d/64
      IP6.PUERTA DE ENLACE:                   --
      ...
      ...

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
 
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.