Traduction(s): English - Español - Français - Italiano - 简体中文


Prerrequisitos del lector: Para sacar el máximo patido de este artículo, entienda los siguientes conceptos antes de leer: herramientas básicas de línea de órdenes unix, editores de texto, DNS, TCP/IP, DHCP, máscara de red, puerta de enlace

Tabla de contenidos

Configurar una interfaz Ethernet

La mayor parte de la configuración de la red se puede hacer desde el archivo de configuración interfaces en /etc/network/interfaces. Aquí, usted puede dar a su tarjeta de red una dirección IP (o usar dhcp), establecer la información de enrutamiento, configurar el enmascaramiento IP, establecer las rutas por defecto y mucho más.

Recuerde añadir las interfaces que desée levantar durante el arranque del sistema a la linea 'auto'.

Véase man interfaces para más opciones.

Arrancar y detener interfaces

Los interfaces configurados con /etc/network/interfaces se pueden levantar y tumbar con las órdenes ifup e ifdown.

Algunas guías desactualizadas indican reiniciar el servicio de red para aplicar cambios a /etc/network/interfaces, no obstante esto ya no es necesario porque es posible no reiniciar todas las interfaces. Use ifup e ifdown para aplicar cambios a cada interfaz, por ejemplo, con un nombre de interfaz enp7s0:

# ifdown enp7s0 # ifup enp7s0

Nombres de interfaz de red

Ver NetworkInterfaceNames. Desde Stretch, por omisión los sistemas nuevos ya no usan la nomenclatura antigua como eth0, eth1, wlan0, wlan1... sino nombres basados en su localización hardware, como eno0, enp0s31f6, wlp1s7 (o en caso de dongles USB, su dirección MAC: enx2c56ac39ec0d).

Puede usted listar interfaces con: ls /sys/class/net

Varios ejemplos más abajo siguen empleando "eth0" como nombre de interfaz por omisión aunque es improbable que exista en un sistema moderno.

=== Actualizar y los nombres de interfaz de red ==

Stretch y Buster aún conservan soporte para la nomenclatura antigua mientras el fichero /etc/udev/rules.d/70-local-persistent-net.rules siga presente, pero los usuarios quedan avisados de que deben migrar antes de la actualización a Bullseye.

Utilizar DHCP para configurar la interfaz automáticamente

Si justo está utilizando DHCP entonces todo lo que necesita es algo como:

    auto eth0
    allow-hotplug eth0
    iface eth0 inet dhcp

Para DHCPv6 (utilizado para IPv6), agregue también la siguiente línea iface

    iface eth0 inet6 dhcp

Alternativamente, se puede autoconfigurar IPv6 utilizando autoconfiguración de dirección sin estado, o SLAAC (stateless address autoconfiguration), que se especifica utilizando auto en vez de dhcp en la línea de inet6:

    iface eth0 inet6 auto

Vea también IPv6PrefixDelegation.

Configurar la interfaz manualmente

Si usted la está configurando manualmente entonces algo como esto pondrá la puerta de enlace por defecto (red, difusión o broadcast y gateway o puerta de enlace son opcionales):

    auto eth0
    iface eth0 inet static
        address 192.0.2.7
        netmask 255.255.255.0
        gateway 192.0.2.254

Si usted también quiere añadir una dirección IPV6, agregue algo como:

    iface eth0 inet6 static
        address 2001:db8::c0ca:1eaf
        [parcial]netmask 255.255.255.0
        gateway 2001:db8::1ead:ed:beef

Véase man interfaces para más opciones.

Configurar la velocidad y bidireccionalidad dúplex

El que falle repetidamente la autonegociación es frecuentemente un síntoma de cableado defectuoso, así que investigue los problemas físicos antes de asumir que sean incompatibles los algoritmos de autonegociación de las interfaces. Si apaga la autonegociación y configura manualmente la velocidad y la bidireccionalidad entonces la interfaz compañera del otro cabo del cable asumirá que la ausencia de autonegociación indica una velocidad de 10Mbps y semi-bidireccionalidad o half-duplex. Para operar sin errores, si usted establece manualmente la velocidad y bidireccionalidad, se debe usted asegurar de que se configuran las mismas condiciones de velocidad y bidireccionalidad en la interfaz compañera.

Si pone a mano la velocidad y bidireccionalidad de su interfaz, hará falta hacer ciertos ejercicios de prueba y error. Aquí tiene los pasos básicos:


Levantar una interfaz sin dirección IP

Para crear una interfaz de red sin dirección IP utilice el método manual y use las órdenes pre-up y post-down para levantar o tirar la interfaz.

   iface eth0 inet manual
      pre-up ifconfig $IFACE up
      post-down ifconfig $IFACE down

Si la interfaz es una interfaz VLAN, las órdenes levantar/tirar deben de ejecutarse antes/después de los enlaces VLAN. (También usted tiene que instalar el paquete vlan.)

   iface eth0.99 inet manual
      post-up ifconfig $IFACE up
      pre-down ifconfig $IFACE down

Nota: Si usted crea la interfaz VLAN solo para ponerla en un puente o bridge, no hay necesidad de definir manualmente la interfaz VLAN. Sólo configure el puente, y la interfaz VLAN se creará automáticamente al crear el puente (véase abajo).

Definir los servidores de nombres (DNS)

Antes de que un ordenador pueda conectarse a un recurso de una red externa (por ejemplo, un servidor web), debe tener los medios para convertir cualquier nombre alfanumérico (p.ej. wiki.debian.org) en dirección de red numérica (p.ej. 140.211.166.4). (La Internet utiliza estas direcciones IP numéricas estructuradas como direcciones de red.)

La C library y otras bibliotecas de resolución buscan /etc/resolv.conf para tener una lista de servidores de nombres. En el caso más simple, ése es el archivo a editar para poner la lista de servidores de nombres. Pero note que otros programas para configuraciones dinámicas sobrescribirán alegremente ésos ajustes suyos:

  1. El programa resolvconf

  2. El demonio network-manager

  3. Clientes DHCP

En la mayoría de las situaciones, el archivo a editar es el de configuración para cada programa.

En las situaciones más complejas, utilizar resolvconf es verdaderamente el modo de hacer las cosas, a pesar de que en configuraciones más simples sea probablemente abrumador.

El archivo de configuración resolv.conf

El archivo de configuración resolv.conf en /etc/resolv.conf contiene información que permite a un ordenador conectado a una red resolver nombres a direcciones. (Nota: No confunda este archivo de configuración con el programa resolvconf, que desafortunadamente tiene un nombre casi idéntico.)

El archivo resolv.conf típicamente contiene las direcciones IP de los servidores de nombres (DNS name resolvers) que tratarán de traducir los nombres a direcciones para cualquier nodo disponible de la red. Habrá una o varias líneas que se parezcan a esto:

nameserver 12.34.56.78
nameserver 12.34.56.79

En este ejemplo, el sistema está utilizando servidores de nombres en las direcciones IP 12.34.56.78 y 12.34.56.79. Simplemente edite el archivo e introduzca las direcciones IP de los servidores de nombres que usted necesite utilizar tas cada nameserver. Añada más líneas nameserver si tiene más servidores de nombres. No utilice este método si tiene instalado el programa resolvconf.

El archivo de configuración resolv.conf tiene muchas otras opciones para definir cómo el resolutor busca los nombres. Véase man resolv.conf para más detalles.

El programa resolvconf

El programa resolvconf mantiene un seguimiento de la información del sistema sobre los servidores de nombres actualmente disponibles. No debería confundirse con el archivo de configuración resolv.conf, el cual desafortunadamente tiene un nombre casi déntico. El programa resolvconf es opcional en sistemas Debian.

El archivo de configuración resolv.conf contiene información sobre los servidores de nombres a utilizar por el sistema. Sin embargo, cuando múltiples programas necesitan modificar dinámicamente el archivo de configuración resolv.conf se pueden pisar unos a otros y quedarse desincronizado. El programa resolvconf soluciona ese problema. Actúa como intermediario entre programas que entreguen la información de servidor de nombres (p.e. clientes dhcp) y programas que utilicen la información de servidor de nombres (p.e. resolver).

Cuando el resolvconf está apropiadamente instalado, el archivo de configuración resolv.conf en /etc/resolv.conf se reemplaza por un enlace simbólico a /etc/resolvconf/run/resolv.conf y el resolutor utiliza en cambio el archivo de configuración que se genera dinámicamente por resolvconf en /etc/resolvconf/run/resolv.conf.

El programa resolvconf se necesita generalmente solo cuando un sistema tiene múltiples programas que necesiten modificar dinámicamente la información del servidor de nombres. En un sistema simple donde los servidores de nombres no cambian a menudo o se cambian por sólo un programa, el archivo de configuración resolv.conf es adecuado.

Si se instala el programa resolvconf , usted no debería editar el archivo de configuración resolv.conf manualmente ya que será cambiado dinámicamente por programas del sistema. Si necesita definir manualmente los servidores de nombres (como con la interfaz estática), añada una línea como la siguiente al archivo de configuración interfaces en /etc/network/interfaces.

dns-nameservers 12.34.56.78 12.34.56.79

Coloque la línea indentada dentro de la estrofa iface, p.e., justo tras la línea gateway. Introduzca las direcciones IP de los servidores de nombres que usted necesite utilizar detrás de dns-nameservers. Ponga todos ellos en una sola línea separados por espacios. No se olvide es "s" al final de dns-nameservers.

El programa resolvconf es un añadido bastante reciente en Debian y muchos programas más viejos necesitan actualizarse o reconfigurarse para trabajar correctamente con él. Si tiene usted problemas, véa /usr/share/doc/resolvconf/README. Tiene montones de información sobre cómo hacer que otros programas funcionen con resolvconf.

Configuración de DNS para NetworkManager

NetworkManager anulará los ajustes dhcp, sobrescribiendo resolv.conf incluso si usted ha configurado DNS en /etc/dhcp/dhclient.conf, p.e. causando que DNS busque primero el dominio local, el cual puede tener que parar antes de que continúe la resolución de DNS provocando largas esperas de resolución DNS. Usted puede hacerse una idea de cómo cree NetworkManager que deben ser los ajustes ejecutando nm-tool en la línea de comandos.

Puede configurar estos ajustes utilizando una GUI que lanza nm-connection-editor, actualmente (2015/01/22) está en Aplicaciones → Herramientas de sistema → Preferencias → Conexiones de red. Tras lanzar:

  1. Escoja una conexión (desde la pestaña cableado o inalámbrico) y pique Editar.
  2. Pique en la pestaña Ajustes de IPv4
  3. Escoja 'Sólo direcciones automáticas (DHCP)' en vez de 'Automático (DHCP)'.
  4. Introduzca los servidores DNS en el campo “Servidores DNS”, separados por espacias (p.e. 208.67.222.222 para OpenDNS).
  5. Pique “Guardar.”

NetworkManager guarda estos ajustes en /etc/NetworkManager/system-connections/nombre-de-conexión. Ejemplo /etc/NetworkManager/system-connections/Wired connection 1 :

[802-3-ethernet]
duplex=full
mac-address=XX:XX:XX:XX:XX:XX

[connection]
id=Wired connection 1
uuid=xxx-xxxxxx-xxxxxx-xxxxxx-xxx
type=802-3-ethernet
timestamp=1385213042

[ipv6]
method=auto

[ipv4]
method=auto
dns=208.67.222.222;
ignore-auto-dns=true

Ejecutar de nuevo nm-tool debería mostrar que NetworkManager ahora tiene la idea correcta de cómo el DNS suyo debería resolverse.

Configuración de cliente de DHCP

Ejemplo: dhclient3 utiliza /etc/dhcp/dhclient.conf. El ajuste que usted quiere es

supersede domain-name-servers 12.34.56.78, 12.34.56.79;

o quizás

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

Véase la página de manual dhclient.conf(5) para más detalles.

Puentear o Bridging

Puentear sitúa múltiples interfaces en el mismo segmento de red. Esto es muy habitual cuando se conecta un servidor a múltiples conmutadores para alta disponibilidad o con virtualización. En este último caso normalmente se utiliza para crear un puente en el host (p.e. dom0) y poner las interfaces virtuales de los invitados (domU) en el puente.

Ejemplo: Conecte un servidor a dos conmutadores (vía eth0 y eth1) definiendo bridge 0 y dé al servidor una dirección IP en esta subred:

auto br0
iface br0 inet static
        address 10.10.0.15
        netmask 255.255.255.0
        gateway 10.10.0.1
        bridge_ports eth0 eth1
        up /usr/sbin/brctl stp br0 on

Si un servidor está conectado a múltiples conmutadores entonces usted necesitará ejecutar el protocolo spanning tree (STP) para evitar bucles. Por tanto STP debe ser activado mediante una orden "up" como la mostrada arriba.

Ejemplo: Ajuste de Puente sin configuración de dirección IP address (utilícese "manual" en vez de "static") para "reenviar" una interfaz a una VM invitada. (La configuración del puente estático contiene sólo una interfaz física. La interfaz virtual se añadirá al puente cuando la VM se inicie.)

auto br1
iface br1 inet manual
        bridge_ports eth4
        up /usr/sbin/brctl setageing br1 0
        up /usr/sbin/brctl stp br0 off

Note: El puente de Linux sólo soporta STP, no RSTP (Rapid Spanning Tree). Por tanto soporta sólo los viejos costes de STP, no los nuevos costes de RSTP (véase Spanning_Tree_Protocol). Esto esta bien habitualmente con Conmutadores Cisco, pero p.ej. los Conmutadores Juniper utilizan los costes RSTP y por tanto eso puede llevar a diferentes cálculos de spanning tree y problemas de bucles. Se puede arreglar ajustado los costes manualmente, bien en el conmutador o en el servidor. Se prefiere ajustar el coste en el conmutador ya que Linux cambia a los costes por defecto cada vez que una interfaz se cae y levanta.

Puentear sin conmutación

Por defecto el puente de Linux funciona como un conmutador. Esto significa que, recuerda las direcciones MAC detrás del puerto de conmutación y si se conoce la dirección de destino MAC, los paquetes de datos son sólo reenviados a su respectivo puerto - de otro modo los paquetes seran difundidos.

En algunos ajustes eso es malo. Por ejemplo si el puente conecta dos interfaces troncales y se puede ver la misma dirección MAC desde ambas, dependiendo de la VLAN. Ya que el puente Linux no soporta VLANs (tablas de direcciones MAC dedicadas por cada VLAN), en dichos ajustes tiene usted que desactivar el aprendizaje de direcciones MAC y poner el puente en modo "puente" verdadero con:

        up /sbin/brctl setageing br0 0
        up /sbin/brctl stp br0 off

Cómo utilizar VLAN (dot1q, 802.1q, trunk) (Etch, Lenny)

Configuración manual

modprobe 8021q

apt-get install vlan

vconfig add eth0 222    # 222 es el número de VLAN
ifconfig eth0.222 up
ifconfig eth0.222 mtu 1496    #opcional si su NIC no soporta MTU 1504B
ifconfig eth0.222 10.10.10.1 netmask 255.255.255.0

Configuración de script inicial de red

Añada la línea a /etc/modules:

8021q

En /etc/network/interfaces añada el parámetro a la sección iface:

        vlan-raw-device eth0

El nombre de la interfaz debería ser el nombre bruto de la interfaz (el mismo que se especifica por vlan-raw-device), luego un punto, después la VLAN ID, por ejemplo eth0.100. Puede ser en cambio "vlan" luego la VLAN ID, por ejemplo vlan100. En cualquier caso, la VLAN ID está al otro final, y es en el único lugar que se configura.

Note: Si usted nombra sus interfaces VLAN como ethX.YYY, entonces no hay necesidad de especificar el vlan-raw-device, ya que el dispositivo bruto puede ser tomado del nombre de la interfaz.

P,e,:

auto eth0.222
iface eth0.222 inet static
        address 10.10.10.1
        netmask 255.255.255.0
        vlan-raw-device eth0

Puentes y VLANs

Si usted crea interfaces VLAN sólo para colocarlas en un puente, no se necesita definir las interfaces VLAN manualmente. Justo configure el puente, y la interfaz VLAN se creará automáticamente en creando el puente, p.e.:

auto br1
iface br1 inet manual
        bridge_ports eth0.99 eth1.99
        up /usr/sbin/brctl stp br0 on

Advertencias al utilizar puenteo y VLAN

#/etc/network/interfaces
auto eth0 bri0
iface eth0 inet static
        [parcial]address 10.10.10.1
        netmask 255.255.255.0
iface eth0.110 inet manual
        vlan-raw-device eth0
iface bri0 inet static
        address 192.168.110.1
        netmask 255.255.255.0
        bridge_ports eth0.110
        bridge_stp on
        bridge_maxwait 10

Si usted está utilizando un ajuste de VLAN puenteado, lo cual es útil para redes en entornos de virtualización, lleve cuidado de sólo vincular bien un dispositivo puente o bien dispositivos VLAN al dispositivo físico subyacente - como el arriba mostrado. Vincular la interfaz física (eth0) a un puente (p.e. bri1) mientras se utiliza la misma interfaz física en aparentemente diferentes VLANs resultará en que todos los paquetes permanezcan etiquetados. (Kernel más moderno que 2.6.37 y mayor que 3.2).

Como crear uniones tolerantes a fallos con VLAN (Etch)

NetworkConfiguration/debian_bonding.png

NetworkConfiguration/debian_bonding.dia

Cómo configurar un respaldo activo de servidor uniendo tres redes VLAN {vlan10,vlan20,vlan30} Debian sin SPOF sin VLAN nativas.

aptitude install vlan ifenslave-2.6

Configuración de Red

Configuración de ejemplo de interfaz de Conmutador Cisco

interface GigabitEthernet1/2
 description eth1
 switchport
 switchport trunk encapsulation dot1q
 switchport trunk allowed vlan 10,20,30
 switchport mode trunk
 no ip address
 no cdp enable
 spanning-tree portfast trunk

Unir con Respaldos activos o active backup

Cree un archivo /etc/modprobe.d/bonding.conf que conenga:

alias bond0 bonding
options bonding mode=active-backup miimon=100 downdelay=200 updelay=200 primary=eth1

/etc/network/interfaces

# La interfaz de red de ciclo cerrado loopback
auto lo
iface lo inet loopback
# La interfaz de red primaria
auto bond0
iface bond0 inet manual
        up ifconfig bond0 0.0.0.0 up
        slaves eth1 eth0
auto vlan10
iface vlan10 inet static
        address 10.10.10.12
        netmask 255.255.0.0
        vlan-raw-device bond0
        gateway 10.10.0.1
        dns-search hup.hu
        dns-nameservers 10.10.0.2
auto vlan20
iface vlan20 inet static
        address 10.20.10.12
        netmask 255.255.0.0
        vlan-raw-device bond0
auto vlan30
iface vlan30 inet static
        address 10.30.10.12
        netmask 255.255.0.0
        vlan-raw-device bond0

Múltiples direcciones IP en una Interfaz

Dar alias de interfaces permite a una interfaz tener múltiples direcciones IP. Esto es útil cuando se necesita tener visible más de un servidor vía la Internet. Note que los hosts virtuales pueden soportar múltiples servidores Apache con una sola dirección IP. Apache responde al nombre de dominio entregado por el cliente en la cabecera HTTP. En muchas otras situaciones, se necesita una IP externa para cada servidor que utilice un puerto.

Método clásico

Este texto de /etc/network/interfaces asigna tres direcciones IP a eth0.

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth0:0
allow-hotplug eth0:0
iface eth0:0 inet static
    address 192.168.1.43
    netmask 255.255.255.0

auto eth0:1
allow-hotplug eth0:1
iface eth0:1 inet static
    address 192.168.1.44
    netmask 255.255.255.0

Un alias de interfaz debería no tener "gateway" o "dns-nameservers";se admite asignación dinámica de IP.

La configuración superior es el método tradicional previo que refleja el uso tradicional de ifconfig para configurar dispositivos de red. ifconfig ha introducido el concepto de interfaces con alias o virtual. Esos tipos de interfaces virtuales tienen nombres en la forma interfaz:entero e ifconfig los trata muy similarmente a las verdaderas interfaces.

Actualmente ifupdown utiliza la herramienta ip del paquete iproute2 en vez de ifconfig. La nueva herramienta ip no utiliza el mismo concepto de alias o interfaces virtual. Sin embargo, soporta la asignación arbitraria de nombres a las interfaces (se denominan etiquetas). ifupdown utiliza esta característica para soportar las interfaces con alias al usar ip.

Método iproute2

También, ifupdown soporta especificar múltiples interfaces repitiendo secciones iface con el mismo nombre de interfaz. La diferencia clave respecto del método arriba descrito estriba en que ifupdown trata todas esas secciones como una sola interfaz, de modo que el usuario no pueda añadir ni eliminarlas individualmente. Sin embargo, las órdenes up/down, junto con los scripts, se llaman para cada sección como se solía hacer.

Este texto de /etc/network/interfaces asigna tres direcciones IP a eth0.

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1

iface eth0 inet static
    address 192.168.1.43
    netmask 255.255.255.0

iface eth0 inet static
    address 192.168.1.44
    netmask 255.255.255.0

# añadir direcciones IP desde diferentes subredes es también posible
iface eth0 inet static
    address 10.10.10.14
    netmask 255.255.255.0

Aproximación manual:

auto eth0
allow-hotplug eth0
iface eth0 inet static
    address 192.168.1.42
    netmask 255.255.255.0
    gateway 192.168.1.1
    up   ip addr add 192.168.1.43/24 dev $IFACE label $IFACE:0
    down ip addr del 192.168.1.43/24 dev $IFACE label $IFACE:0
    up   ip addr add 192.168.1.44/24 dev $IFACE label $IFACE:1
    down ip addr del 192.168.1.44/24 dev $IFACE label $IFACE:1
    up   ip addr add 10.10.10.14/24 dev $IFACE label $IFACE:2
    down ip addr del 10.10.10.14/24 dev $IFACE label $IFACE:2


CategoryNetwork