Capítulo 5. Configuración de red

Tabla de contenidos

5.1. La infraestructura de red básica
5.1.1. La resolución del nombre del equipo
5.1.2. El nombre del interfaz de red
5.1.3. EL rango de direcciones de red para una LAN
5.1.4. El mantenimiento de los dispositivos de red
5.2. La configuración moderna de red en el escritorio
5.2.1. Herramientas de interfaz gráfico de usuario para la configuración de red
5.3. The modern network configuration without GUI
5.4. La configuración y conexión de red históricos
5.5. Método de conexión de red (histórico)
5.5.1. La conexión DHCP con Ethernet
5.5.2. Conexión Ethernet con IP estática
5.5.3. Conexión PPP con pppconfig
5.5.4. Conexión PPP alternativa con wvdialconf
5.5.5. La conexión PPPoE con pppoeconf
5.6. La configuración básica de red con ifupdown (histórico)
5.6.1. La sintáxis simplificada de órdenes
5.6.2. Sintáxis básica de «/etc/network/interfaces«
5.6.3. El interfaz de red interno («loopback«)
5.6.4. Interfaz de red configurado mediante DHCP
5.6.5. El interfaz de red con IP estática
5.6.6. Fundamentos de la interfaz de red inalámbrica
5.6.7. Interfaz de red local inalámbrica con WPA/WPA2
5.6.8. La interfaz de LAN inalámbrica con WEP
5.6.9. La conexión PPP
5.6.10. La conexión PPP alternativa
5.6.11. Conexión PPPoE
5.6.12. Estado de configuración de la red «ifupdown«
5.6.13. Reconfiguración básica de red
5.6.14. El paquete ifupdown-extra
5.7. Configuración avanzada de red con ifupdown (histórico)
5.7.1. El paquete ifplugd
5.7.2. El paquete ifmetric
5.7.3. Interfaz virtual
5.7.4. Sintáxis avanzada de órdenes
5.7.5. La entrada mapping
5.7.6. Cambio manual de configuración de red
5.7.7. Archivos de órdenes en el sistema ifupdown
5.7.8. Mapping con guessnet
5.8. La configuración de red de bajo nivel
5.8.1. Órdenes iproute2
5.8.2. Operaciones seguras de red a nivel bajo
5.9. Optimización de la red
5.9.1. Encontrando la MTU óptima
5.9.2. Configurando el valor de MTU
5.9.3. Optimización TCP en redes WAN
5.10. Infraestructura Netfilter
[Sugerencia] Sugerencia

Como referencia general de red de GNU/Linux, le la Guía de Administración de Red.

[Sugerencia] Sugerencia

Como guía de especifica de red moderna de Debian, lea Manual del Administrador de Debian - Configuración de red.

[Aviso] Aviso

En vez de usar el esquema de nombre de interfaces tradicional («eth0», «eth1», «wlan0», …), el nuevo systemd utiliza « Nombres de Interfaz de Red Predecibles« como es «enp0s25».

[Aviso] Aviso

Este capítulo esta desactualizado ya que esta fundamentado en Debian 7.0 (Wheezy) publicado en 2013.

[Sugerencia] Sugerencia

Aunque este documetno todavía usa el antiguo ifconfig(8) con IPv4 para los ejemplos de configuración de red, Debian se dirige a ip(8) con IPv4+IPv6 en la distribución wheezy. Parches para actualizar este documento son bienvenidos.

[Sugerencia] Sugerencia

Con systemd, networkd se puede usar para la gestión de redes. Consulte systemd-networkd(8).

Revisemos la infraestructura de red básica de un sistema moderno Debian.

Tabla 5.1. Relación de herramientas de configuración de red

paquetes popularidad tamaño tipo descripción
ifupdown V:627, I:995 217 config::ifupdown herramienta estándar para subir o bajar la red (específico de Debian)
ifplugd V:4, I:21 209 , , gestiona la red cableada automáticamente
ifupdown-extra V:0, I:1 100 , , archivo de órdenes de prueba de red para mejorar el paquete «ifupdown»
ifmetric V:0, I:1 37 , , asigna métricas de encaminamiento para el interfaz de red
guessnet V:0, I:0 422 , , archivo de órdenes de mapeo para mejorar el paquete «ifupdown» por medio del archivo «/etc/network/interfaces»
ifscheme V:0, I:0 58 , , archivo de órdenes de mapeo para mejorar el paquete «ifupdown»
network-manager V:380, I:471 11584 config::NM NetworkManager (demonio): gestión de red automatizada
network-manager-gnome V:159, I:408 5921 , , NetworkManager (interfaz de usuario GNOME)
wicd I:31 35 config::wicd gestor de red para redes inalámbricas y cableadas (metapaquete)
wicd-cli V:0, I:1 59 , , gestor de red para redes inalámbricas y cableadas (cliente por línea de órdenes)
wicd-curses V:0, I:4 175 , , gestor de red para redes inalámbricas y cableadas (cliente de curses)
wicd-daemon V:26, I:35 962 , , gestor de red para redes inalámbriacas y cableadas (demonio)
wicd-gtk V:21, I:33 574 , , gestor de red para redes inalámbricas y cableadas (cliente GTK+)
iptables V:270, I:995 2569 config::Netfilter herramientas de administración para el filtrado de paquetes y NAT (Netfilter)
iproute2 V:671, I:871 2585 config::iproute2 iproute2, IPv6 y otras configuraciones de red avanzadas: ip(8), tc(8), etc
ifrename V:1, I:2 125 , , renombrado de interfaces de red basado en varios criterios estáticos: ifrename(8)
ethtool V:110, I:259 393 , , muestra o cambia la configuración de dispositivos Ethernet
iputils-ping V:254, I:996 100 test::iproute2 prueba la accesibilidad a un equipo remoto a través de la red por su nombre de equipo o dirección IP (iproute2)
iputils-arping V:26, I:392 51 , , prueba la accesibilidad por red de un equipo remoto específico mediante la dirección ARP
iputils-tracepath V:5, I:102 68 , , determina la ruta de red a un equipo remoto
net-tools V:299, I:744 979 config::net-tools conjunto de herramientas de red NET-3 (net-tools, configuración de red IPv4): ifconfig(8) etc.
inetutils-ping V:0, I:2 350 test::net-tools comprueba la accesibilidad de la red a un equipo remoto por su nombre de equipo o dirección IP (antiguo GNU)
arping V:1, I:28 73 , , comprueba la accesiblidad de red a un equipo remoto específico mediante la dirección ARP (histórico)
traceroute V:63, I:960 154 , , determina la ruta de red a un equipo remoto (histórico, consola)
isc-dhcp-client V:255, I:973 673 config::low-level cliente DHCP
wpasupplicant V:310, I:539 3352 , , cliente que soporta WPA y WPA2 (IEEE 802.11i)
wpagui V:0, I:3 786 , , cliente Qt de interfaz de usuario para «wpa_supplicant«
wireless-tools V:192, I:274 297 , , herramientas para manejar las Extensiones Inalámbricas Linux («Linux Wireless Extensions«)
ppp V:264, I:510 1020 , , conexión PPP/PPPoE con chat
pppoeconf V:0, I:9 290 config::helper ayudante de configuración para conexiones PPPoE
pppconfig V:1, I:2 805 , , ayudante de configuración para conexiones PPP con chat
wvdial V:0, I:6 249 , , ayudante de configuración para conexiones PPP con wvdial y ppp
mtr-tiny V:6, I:55 152 test::low-level determina la ruta de red a un equipo remoto (curses)
mtr V:5, I:40 206 , , determina la ruta de red a un equipo remoto (curses y GTK+)
gnome-nettool V:3, I:91 2105 , , herramientas para operaciones de información de red comunes (GNOME)
nmap V:36, I:292 4510 , , descubridor de red / escáner de puertos (Nmap, consola)
zenmap V:4, I:12 2939 , , descubridor de red / escaneador de puertso (GTK+)
tcpdump V:21, I:200 1192 , , analizador de tráfico de red (Tcpdump, consola)
wireshark I:61 69 , , analizador de tráfico de red (Wireshark, GTK+)
tshark V:3, I:35 398 , , analizador de tráfico de red (consola)
tcptrace V:0, I:1 392 , , produce un resumen de las conexiones de salida con tcpdump
snort V:0, I:1 1920 , , sistema flexible de detección de intrusos en red (Snort)
ntopng V:1, I:2 950 , , muestra el uso de red en un navegador web
dnsutils V:71, I:591 719 , , clientes de red proporcionado con BIND: nslookup(8), nsupdate(8), dig(8)
dlint V:0, I:12 53 , , comprueba la información de zona DNS mediante consultas al servidor de nombres
dnstracer V:0, I:2 56 , , determina una cadena de servidores DNS a la fuente

La resolución del nombre del equipo esta sustentada por el mecanismo NSS (Name Service Switch) también. El flujo de esta resolución es el siguiente:

  1. El archivo «/etc/nsswitch.conf» con la entrada como «hosts: files dns» determina el orden de la resolución del nombre de equipos. (Esto sustituye la vieja funcionalidad del «orden» de la entrada en «/etc/host.conf».)

  2. El método files se llama en primer lugar. Si el nombre del equipo se encuentra en el archivo «/etc/hosts», devuelve todas las direcciones válidas de esta y finaliza. (El archivo «/etc/host.conf» contiene «múltiples posibilidades».)

  3. El método dns es llamado. Si el nombre del equipo se encuentra por la pregunta al Sistema de Internet de Nombres de Dominio (DNS) que se identifican por el archivo «/etc/resolv.conf», devuelve todas las direcciones correctas para él si existen.

Por ejemplo, «/etc/hosts» tiene el siguiente aspecto:

127.0.0.1 localhost
127.0.1.1 <host_name>

# las líneas siguientes son deseables para la funcionalidad IPv6 de los equipos
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Cada línea comienza con una dirección IP y es seguido por su nombre de equipo asociada.

La dirección IP 127.0.1.1 de la segunda línea del ejemplo puede no aparecer en otros sistemas tipo Unix. El Instalador Debian crea esta entrada para un sistemas sin una dirección IP permanente como una solución temporal para algunos software (p. ej. GNOME) como se documetna en el error #719621.

El <nombre_del_equipo> encaja con el nombre del equipo definida en «/etc/hostname».

En sistemas que tienen un dirección IP permanente, la dirección permanente podría ser usada aquí en vez de 127.01.1.

En sistemas con una IP permanente y un nombre cualificado completo de dominio (FQDN) provisto por el Sistema de Nombre de Dominio (DNS), ese canónico <nombre_del_equipo>.<nombre_del_dominio>podría ser usado en vez de solo el <nombre_del_equipo>.

«/etc/resolv.conf» es un archivo estático si el paquete resolvconf no está instalado. Si esta instalado, es un enlace simbólico. De cualquier manera, contiene información que inicia las rutinas del resolutor. Si el DNS se encontrara con IP=«192.168.11.1», contiene lo siguiente:

nameserver 192.168.11.1

El paquete resolvconf hace que «/etc/resolv.conf» sea un enlace simbólico y gestiona su contenido por su archivo de órdenes «hook« automáticamente.

En las estaciones de trabajo PC del típico entorno LAN, el nombre del equipo puede ser resuelto mediante DNS en «multicast« (mDNS Zeroconf) además de los archivos básicos y los métodos dns.

  • Avahi ofrece un marco para el Servicio de Descubrimiento DNS «Multicast« en Debian.

  • Es similar a Apple Bonjour / Apple Rendezvous.

  • El paquete conector libnss-mdns aporta la resolución de nombres de equipo por medio de mDNS para la funcionalidad del Intercambio del Servicio de Nombres GNU (NSS) de la biblioteca GNU C (glibc).

  • El archivo «/etc/nsswitch.conf» podrái tener un registro como «hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4».

  • Los nombres de equipo que terminan con «.local« pseudo dominio de alto nivel (TLD) se resuelven.

  • La dirección «multicast« de enlace local mDNS IPv4 «224.0.0.251» o su equivalente IPv6 «FF02::FB» son usados para realizar consultas DNS para un nombre que términa en «.local».

La resolución de nombres de equipo por el método antiguo NETBios sobre TCP/IP utilizado por los viejos sistemas Windows puede ser proporcionado por el paquete winbind. El archivo «/etc/nsswitch.conf» podría tener una entrada como «hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins» para permitir esa funcionalidad. (Los sistemas Windows modernos normalmente usan el método dns para la resolución de nombres de equipo.)

[Nota] Nota

La expansión de los dominios genérico de alto nivel (gTLD) en el Sistema de Nombres de Dominio está en desarrollo. Tenga cuidado con la colisión de nombres cuando elige un nombre de dominio utilizado únicamente en la LAN.

El nombre de las interfaces de red, p. ej. eth0, se asigna para cada hardware del núcleo de Linux cuando se descubre por medio del mecanismo de configuración del espacio de usuario, udev (consulte Sección 3.3, “El sistema udev”). El nombre de las interfaces de red es llamado interfaz físico en ifup(8) y interfaces(5).

Para asegurar que cada interfaz de red recibe siempre el mismo nombre en todos los reinicios se usa la dirección MAC etc., existiendo un archivo de reglas «/etc/udev/rules.d/70-persistent-net.rules». Este archivo se genera de forma automática por el programa «/lib/udev/write_net_rules», posiblemente ejecutado por el archivo de reglas «persistent-net-generator.rules». Puede modificarlo para cambiar las reglas de nombrado.

[Atención] Atención

Cuendo modifique el archivo de reglas «/etc/udev/rules.d/70-persistent-net.rules», debe poner cada regla en una línea y la dirección MAC en minúsculas. Por ejemplo, Por ejemplo, si en este fichero encuentra «FireWire device« y «PCI device«, probablemente querrá nombrar el «PCI device« como eth0 y configurarlo como el interfaz de red primario.

Network interfaces are typically initialized in "networking.service" for the lo interface and "NetworkManager.service" for other interfaces on modern Debian desktop system under systemd.

Debian squeeze y las nuevas versiones pueden gestionar las conexiones de red mediante programas que actuan como demonios como NetworkManager (NM) (network-manager y paquetes relacionados) o Wicd (wicd y paquetes relacionados).

  • Ellos tienen sus propios interfaz gráfico de usuarios y programas de línea de órdenes como interfaces de usuario.

  • Tienen su propio demonio así como su motor de sistema.

  • Permiten la conexión sencilla entre su sistema e Internet.

  • Permiten la gestión sencilla de la configuración inalámbrica y cableada.

  • Nos permiten configurar la red de forma independiente del histórico paquete ifupdown.

[Nota] Nota

No use las herramientas de configuración de red automática para servidores. Estos están pensados para escritorios móviles y portátiles.

Estas herramientas modernas de red necesitan ser configuradas adecuadamente para evitar conflictos con el histórico paquete ifupdown y su archivo de configuración «/etc/network/interfaces».

[Nota] Nota

Algunas funcionalidades de estas herramientas de red automáticas pueden sufrir retrocesos. No son tan robustos como el histórico paquete ifupdown. Compruebe BTS de network-manager y BTS of wicd para determinar sus problemas actuales y limitaciones.

La documentación oficial de NM y Wicd en Debian esta en «/usr/share/doc/network-manager/README.Debian» y «/usr/share/doc/wicd/README.Debian» respectivamente.

Basicamente, la configuración de red para escritorios esta hecha como sigue a continuación.

  1. Haga que el usuario de escritorio, p. ej. foo, pertenezca al grupo «netdev» como sigue (de otra forma, se puede hacer de forma automática mediante D-bus en entornos de escritorio modernos como GNOME y KDE).

    $ sudo adduser foo netdev
  2. Mantenga la configuración de «/etc/network/interfaces» tan simple como sigue.

    auto lo
    iface lo inet loopback
  3. Reinicie NM o Wicd como sigue:

    $ sudo /etc/init.d/network-manager restart
    $ sudo /etc/init.d/wicd restart
  4. Configure al red por medio del interfaz gráfico de usuario.

[Nota] Nota

Solo los interfaces que no estan enumerados en «/etc/network/interfaces» son gestionados por NM o Wicd para evitar conflictos con ifupdown.

[Sugerencia] Sugerencia

Si quiere aumentar las capacidades de configuración de red de NM, por favor busque los módulos conectables y paquetes suplementarios como network-manager-openconnect, network-manager-openvpn-gnome, network-manager-pptp-gnome, mobile-broadband-provider-info, gnome-bluetooth, etc. Lo mismo ocurre con Wicd.

[Atención] Atención

Estas herramientas de configuración automática pueden no ser compatibles con configuraciones esotéricas del histórico ifupdown en «/etc/network/interfaces» como las de Sección 5.6, “La configuración básica de red con ifupdown (histórico)” y Sección 5.7, “Configuración avanzada de red con ifupdown (histórico)”. Compruebe BTS de network-manager y BTS de wicd para determinar sus limitaciones y problemas.

Con systemd, la red puede configurarse en su lugar en /etc/systemd/network/. Consulte systemd-resolved(8), resolved.conf(5) y systemd-networkd(8).

This allows the modern network configuration without GUI.

A DHCP client configuration can be set up by creating "/etc/systemd/network/dhcp.network". E.g.:

[Match]
Name=en*

[Network]
DHCP=yes

A static network configuration can be set up by creating "/etc/systemd/network/static.network". E.g.:

[Match]
Name=en*

[Network]
Address=192.168.0.15/24
Gateway=192.168.0.1

Cuando el método que se describe en Sección 5.2, “La configuración moderna de red en el escritorio” no cubre sus necesidades, podría utilizar los métodos de configuración y conexión históricos que combina muchas herramientas sencillas.

La conexión de red histórica es particular de cada método (consulte Sección 5.5, “Método de conexión de red (histórico)”).

Existen dos tipos de programas de bajo nivel para la configuración de red en Linux (consulte Sección 5.8.1, “Órdenes iproute2”).

  • Los antiguos programas net-tools(ifconfig(8), …) existen desde el sistema de red NET-3 de Linux. La mayor parte de ellos estan obsoletos actualmente.

  • Los nuevos programas Linux iproute2 (ip(8), …) son el sistema actual de red en Linux.

Aunque estos programas de red de bajo nivel son poderosos, son difíciles de usar. Así los sistemas de configuración de red de alto nivel se crearon.

El paquete ifupdown es el estándar de facto de esos sistemas de configuración de red en Debian. Permite activar la red ejecutando simplemente , p. ej., «ifup eth0». Su archivo de configuración es «/etc/network/interfaces» y su contenido normal es el siguiente:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

El paquete resolvconf fue creado para completar el sistema ifupdown para aportar una reconfiguración suave de la resolución de direcciones de red mediante la reescritura automática del archivo de configuración del resolutor «/etc/resolv.conf». Hoy en día, la major parte de los paquetes de configuración de red en Debian se han modificado para utilizar el paquete resolvconf (consulte «/usr/share/doc/resolvconf/README.Debian»).

Los archivos de órdenes de ayuda al paquete ifupdown como son ifplugd, guessnet, ifscheme, etc. han sido creados para automatizar la configuración dinámica de un entorno de red como puede ser un PC obicuo o LAN cableada. Estos son hasta cierto punto difíciles de utilizar pero cohexisten bien con el sistema ifupdown.

Existen explicaciones detalladas con ejemplos (consulte Sección 5.6, “La configuración básica de red con ifupdown (histórico)” y Sección 5.7, “Configuración avanzada de red con ifupdown (histórico)”).

[Atención] Atención

Los métodos de prueba de conexión que se describen en esta sección deben ser usados con finalidad de realizar pruebas. No deben ser utilizados para forma habitual para las conexiones de red. Le recomendamos que utilice en su lugar NM, Wicd, o el paquete ifupdown (consulte Sección 5.2, “La configuración moderna de red en el escritorio” y Sección 5.6, “La configuración básica de red con ifupdown (histórico)”).

El método de conexión de red estándar y encaminamiento de la conexión para un PC puede ser resumido en lo siguiente:


Aquí esta un resumen de los archivos de órdenes de configuración para cada método de conexión.


Los acrónimos de conexión de red tienen los significados.


[Nota] Nota

Los servicios de conexión WAN por medio de cable de TV son generalmente dispensados por DHCP o PPPoE. Los de ADSL y FTTP por PPPoE. Usted tiene que consultar a su ISP para saber los requisitos de configuración exactos de su conexión WAN.

[Nota] Nota

Cuando un encaminador-BB se usa para crear un entorno de LAN casera, los PCs de la LAN se conectan a la WAn a través del encaminador-BB con traducción de direcciones de red (NAT). Para ese caso, los interfaces de red de los PCs en la LAN son configurados mediante IP estática o mediante el DHCP del encaminador-BB. El encaminador-BB debe ser configurado para conectar la WAN de acuerdo a las instrucciones de su ISP.

El archivo de órdenes de configuración pppconfig configura la conexión PPP de forma interactiva con solo seleccionar lo siguiente:

  • El número de teléfono

  • El nombre de usuario del ISP

  • La contraseña del ISP

  • La velocidad del puerto

  • El puerto de comunicación del modem

  • El método de acreditación

Tabla 5.6. Relación de archivo de configuracion para la conexión PPP con pppconfig

archivo función
/etc/ppp/peers/<nombre_del_isp> pppconfig genera el archivo de configuración especifico del <nombre_del_isp> para pppd
/etc/chatscripts/<nombre_del_isp> pppconfig genera el archivo de configuración específico del <nombre_del_isp> para chat
/etc/ppp/options Parámetros generales de ejecución de pppd
/etc/ppp/pap-secret Datos de acreditación para PAP (riesgo de seguridad)
/etc/ppp/chap-secret Datos de acreditación para CHAP (más seguro)

[Atención] Atención

El valor de «<nombre_del_isp>« del «proveedor» se asume cuando las órdenes pon y poff se llaman sin parámetros.

Puede comprobar la configuración utilizando las herramientas de configuración de bajo nivel como sigue:

$ sudo pon <nombre_del_isp>
...
$ sudo poff <nombre_del_isp>

Consulte «/usr/share/doc/ppp/README.Debian.gz».

La configuración tradicional la red TCP/IP en un sistema Debian utiliza ifupdown como herramienta de alto nivel. Existen dos casos típicos.

Estos métodos tradicionales de configuración son bastante útiles si desea configuraciones avanzadas; comentaremos ahora los detalles.

El paquete ifupdown aporta un marco estándar para configuraciones de red de alto nivel en sistemas Debian. En esta sección, aprenderemos la configuración básica de red con ifupdown con una introducción simplificada y varios ejemplos paradigmáticos.

Se puede resumir la sintáxis más importante de /etc/network/interfaces» como se explica en interfaces(5) en lo siguiente:


Las línas que comienzan con iface tienen la siguiente sintáxis:

iface <nombre_config> <familia_de_dirección> <nombre_del_método>
 <opción1> <valor1>
 <opción2> <valor2>
 ...

En las configuraciones básicas la entrada mapping no son utilizadas y se usa el nombre del interfaz de red como el nombre de configuración de red (Consulte Sección 5.7.5, “La entrada mapping”).

[Aviso] Aviso

No declare de forma duplicada entradas «iface» para un interfaz de red en «/etc/network/interfaces».

Tras preparar el sistema Sección 5.5.1, “La conexión DHCP con Ethernet”, el interfaz de red que va a ser configurado mediante DHCP debe ser configurado mediante una entrada en el archivo«/etc/network/interfaces» como se muestra.

allow-hotplug eth0
iface eth0 inet dhcp

Cuando el núcleo de Linux detecta el interfaz físico eth0, la entrada allow-hotplug hace que ifup levante el interfaz y la entrada iface hace ifup que se utilice DHCP para configurar el interfaz.

La interfaz de red local inalámbrica (WLAN, Wireless LAN) proporciona una rápida conexión inalámbrica a través del espectro de frecuencias de radio que no necesitan licencia y está basada en un conjunto de estándares denominado IEEE 802.11.

La interfaz WLAN es casi como una interfaz Ethernet normal pero requiere una ID de red y una clave cifrada cuando se inicializa. Sus herramientas de alto nivel de red son exactamente las mismas excepto los nombres de la interfaz que son algo diferentes como eth1, wlan0, ath0, wifi0, ... según qué controladores use el núcleo.

[Sugerencia] Sugerencia

El dispositivo wmaster0es el dispositivo maestro interno usado solo por SoftMAC con la nueva mac80211 API de Linux.

Estas son algunos conceptos clave para recordar sobre la WLAN.


La elección definitiva del protocolo real está habitualmente limitada por el encaminador inalámbrico que se emplee.

Para que WLAN admita los nuevos protocolos WAP/WPA2 necesita instalar el paquete wpasupplicant.

En caso de que la IP provenga de un servidor DHCP de la WLAN, el archivo «/etc/network/interfaces» debería ser como se muestra.

allow-hotplug ath0
iface ath0 inet dhcp
 wpa-ssid homezone
 # El valor hexadecimal psk se codifica a partir de una clave en texto plano
 wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f

Consulte «/usr/share/doc/wpasupplicant/README.modes.gz».

Necesita instalar el paquete wireless-tools para que la WLAN admita el antiguo protocolo WEP. (Los encaminadores económicos de nivel de usuario puede que aún empleen este protocolo inseguro, pero es mejor eso que nada.)

[Atención] Atención

Tenga en cuanta que con WEP el tráfico de su red WLAN puede ser espiado.

En caso de que la IP provenga de un servidor DHCP de la WLAN, el archivo «/etc/network/interfaces» debería ser como se muestra.

allow-hotplug eth0
iface eth0 inet dhcp
 wireless-essid Home
 wireless-key1 0123-4567-89ab-cdef
 wireless-key2 12345678
 wireless-key3 s:password
 wireless-defaultkey 2
 wireless-keymode open

Consulte «/usr/share/doc/wireless-tools/README.Debian».

Primero es necesario configurar la conexión PPP como se ha descrito (ver Sección 5.5.3, “Conexión PPP con pppconfig”). A continuación añada la entrada para el dispositivo primario PPP ppp0 en el archivo /etc/network/interfaces como se muestra.

iface ppp0 inet ppp
 provider <inombre_del_isp>

Primero es necesario configurar la conexión alternativa PPP wvdial como se ha descrito (ver Sección 5.5.4, “Conexión PPP alternativa con wvdialconf”). A continuación añada la entrada para el dispositivo primario PPP ppp0 en el archivo /etc/network/interfaces como se muestra.

iface ppp0 inet wvdial

Para la conexión de un PC directamente a WAN mediante PPPoE, se requiere la configurar el sistema con una conexión PPPoE como se ha descrito anteriormente (consulte Sección 5.5.5, “La conexión PPPoE con pppoeconf”). Entonces, añada la entrada del dispositivo primario PPPoE eth0 al archivo /etc/network/interfaces» según se describe a continuación.

allow-hotplug eth0
iface eth0 inet manual
 pre-up /sbin/ifconfig eth0 up
 up ifup ppp0=dsl
 down ifdown ppp0=dsl
 post-down /sbin/ifconfig eth0 down
# The following is used internally only
iface dsl inet ppp
 provider dsl-provider

La funcionalidad del paquete ifupdown puede ser mejorada según se describe en Sección 5.6, “La configuración básica de red con ifupdown (histórico)” con el conocimiento adecuado.

Las funcionalidades que se describen aquí son totalmente opcionales. Yo, que soy perezoso y minimarelación, las uso de forma muy casual.

[Atención] Atención

Si no puede activar la conexión de red con la información de Sección 5.6, “La configuración básica de red con ifupdown (histórico)”, se encontrará en una situación peor con la información que le ofrecemos a continuación.

El paquete ifplugd es una herramienta antigua de configuración automática de red que solo gestiona conexiones Ethernet. Esto soluciona la conexión/desconexión del cable Ethernet de PC en ubicuidad etc. Si tiene instalados NetworkManager o Wicd (consulte Sección 5.2, “La configuración moderna de red en el escritorio”), no necesita este paquete.

Este paquete ejecuta un demonio y sustituye las funcionalidades auto o allow-hotplug (consulte Tabla 5.10, “Relación de entradas en «/etc/network/interfaces»”) y activa los interfaces sobre sus conexiones de red.

Aquí esta como se usa el paquete ifplugd para un puerto interno Ethernet, p. ej. eth0.

  1. Elimine las entradas en «/etc/network/interfaces»: «auto eth0» o allow-hotplug eth0».

  2. Mantenga las entradas en «/etc/network/interfaces»: «iface eth0 inet …» y mapping …».

  3. Instale el paquete ifplugd.

  4. Ejecute «sudo dpkg-reconfigure ifplugd».

  5. Configure eth0 como un «interfaz estático para ser monitorizado por ifplugd«.

Ahora, la reconfiguración de red funciona tal como quiere.

  • Bien por el encendido o bien por el descubrimiento de «hardware«, el interfaz no es activado por si mismo.

  • Cuando se descubre el cable Ethernet, el interfaz es activado.

  • Después de cierto tiempo cuando el cable Ethernet se desconecta, el interfaz se desactiva automáticamente.

  • Después de que se conecta otro cable Ethernet, el interfaz se activa con el nuevo entorno de red.

[Sugerencia] Sugerencia

Los parámetros de la orden ifplugd(8) determinan el comportamiento como es la espera para la reconfiguración de los interfaces.

El paquete ifupdown aporta la configuración avanzada de red utilizando el nombre de la configuración de red y el nombre del interfaz de red. He utilizado una terminología un poco diferente de la utilizada en ifup(8) y interfaces(5).


Las órdenes de configuración de red básica Sección 5.6.1, “La sintáxis simplificada de órdenes” necesita el elemento del nombre de configuración de red de la entrada iface para encajar el nombre de interfaz de red en «/etc/network/interfaces».

Las órdenes de configuración de red avanzadas permite las separación del nombre de la configuración de red y el nombre del interfaz de red en el «/etc/network/interfaces» como se muestra a continuación.


Dejamos de lado los detalles de la entrada mapping en /etc/network/interfaces en Sección 5.6.2, “Sintáxis básica de «/etc/network/interfaces«” para evitar complicaciones. Detallamos la su sintáxis a continuación.

mapping <patrón_del_nombre_del_interfaz>
 script <nombre_del_script>
 map <script_de_entrada1>
 map <script_de_entrada2>
 map ...

Esto aporta funcionalidades avanzadas al archivo «/etc/network/interfaces» por medio de la elección automática de la configuración con los archivos de órdenes que se detallan en mapping por medio de <nombre_del_script>.

Sigamos la ejecución de lo sigiuente:

$ sudo ifup eth0

Cuando el «<patrón_del_nombre_del_interfaz>» encaja «eth0», esta ejecución produce la ejecución automática de la siguiente orden configurada para eth0.

$ sudo ifup eth0=$(echo -e '<script_de_entrada1> \n <script_de_entrada2> \n ...' | <nombre_del_script> eth0)

Aquí las lineas de archivo de órdenes de entrada con «map» son opcionales y pueden estar repetidas.

[Nota] Nota

El tipo de patrón de la entrada mapping funciona como el nombre de los archivos en el intérprete de órdenes (consulte Sección 1.5.6, “Expansión de un patrón en el intérprete de órdenes”).

Aquí se muetra como se cambia de forma manual entre diferentes configuraciones de red sin modificar el archivo «/etc/network/interfaces» como en Sección 5.6.13, “Reconfiguración básica de red”.

Para todas las configuraciones de red que necesite, cree un entrada separada en el archivo «/etc/network/interfaces» como la que se muestra.

auto lo
iface lo inet loopback

iface config1 inet dhcp

iface config2 inet static
 address 192.168.11.100
 netmask 255.255.255.0
 gateway 192.168.11.1
 dns-domain example.com
 dns-nameservers 192.168.11.1

iface pppoe inet manual
 pre-up /sbin/ifconfig eth0 up
 up ifup ppp0=dsl
 down ifdown ppp0=dsl
 post-down /sbin/ifconfig eth0 down

# The following is used internally only
iface dsl inet ppp
 provider dsl-provider

iface pots inet ppp
 provider provider

Tenga en cuenta que el nombre de la configuración de red que es el elemento posterior a iface no se utiliza para el nombre de interfaz de red. Ni siquiera existen las entradas auto o allow-hotplug para iniciar el interfaz de red eth0 de forma automática tras los eventos.

Ahora ya esta preparado para cambiar la configuración de red.

Cambiemos su PC a una LAN configurada mediante DHCP. Active el interfaz de red (el interfaz físico) eth0 asignandole el nombre de la configuración de red (el nombre lógico del interfaz) config1 como se muestra a continuación.

$ sudo ifup eth0=config1
Password:
...

La interfaz eth0 esta activa, configurada por DHCP y conectada a la LAN.

$ sudo ifdown eth0=config1
...

El interfaz eth0 esta inactivo y desconectado de la LAN.

Cambiemos la configuración de su PC a una LAN con IP estática. Active el interfaz de red eth0 asignandole el nombre de la configuración de red config2 como se muestra a continuación.

$ sudo ifup eth0=config2
...

El interfaz eth0 esta activo, configurado con una IP estática y conectado a la LAN. Los argumentos adicionales dados como dns-* configuran el contenido de «/etc/resolv.conf». El archivo «/etc/resolv.conf» será mejor gestionado si el paquete resolvconf esta instalado.

$ sudo ifdown eth0=config2
...

De nuevo el interfaz eth0 esta desactivado y desconectado de la LAN.

Cambiemos la conexión de nuestro PC a u puerto modem-BB que se conecta a un servicio PPPoE. Active el interfaz de red etho asignado el nombre de la configuración de red pppoe como se muestra.

$ sudo ifup eth0=pppoe
...

El interfaz eth0 esta activo, configurado con PPPoE y conectado directamente al ISP.

$ sudo ifdown eth0=pppoe
...

De nuevo el intefaz eth0 esta desactivado y desconetado.

Cambiemos la configuración de su PC, sin LAN ni modem-BB pero con POTS y modem. Active el interfaz de red ppp0 asignando el nombre deconfiguración de red pots como se muestra.

$ sudo ifup ppp0=pots
...

El interfaz ppp0 esta activo y conectado a internet mediante PPP.

$ sudo ifdown ppp0=pots
...

El interfaz ppp0 esta desactivado y desconectado de Internet.

Debería comprobar el archivo «/etc/network/run/ifstate» para determinar el estado de la configuración de red del sistema ifupdown.

[Aviso] Aviso

Si dispone de varios interfaces de red debería modificar el número al final de eth*, ppp*, etc.

El sistema ifupdown automáticamente ejecuta los archivos de órdenes instalados en «/etc/network/*/» al tiempo que exporta las variables de entorno a los archivos de órdenes.


Aquí, cada variable de entorno , «$IF_<OPCIÓN>», se crea desde el nombre de la opción correspondiente como en <option1> and <option2> al añadirle al principio «$IF_», convirtiendolo a mayúsculas, cambiando los guiones por guiones bajos y eliminando cualquier carácter no alfanumérico.

[Sugerencia] Sugerencia

Consulte Sección 5.6.2, “Sintáxis básica de «/etc/network/interfaces«” para <familia_de_direcciones>, <nombre_del_método>, <opción1> y <opción2>.

El paquete ifupdown-extra (consulte Sección 5.6.14, “El paquete ifupdown-extra”) usa estas variables de entorno para ampliar las funcionalidades del paquete ifupdown. El paquete ifmetric (consulte Sección 5.7.2, “El paquete ifmetric”) instala los archivos de órdenes «/etc/network/if-up.d/ifmetric» los cuales asignan métricas por medio de la variable «$IF_METRIC». El paquete guessnet (consulte Sección 5.7.8, “Mapping con guessnet”), el cual proporciona un marco simple y podereoso para la autoselección de la configuración de red por medio del mecanismo «mapping«, también las utiliza.

[Nota] Nota

Para ejemplos más especificos de archivos de órdenes de configuración de red que usan estas variables de entorno, puede comprobar los archivos de órdenes de ejemplos que se incluyen en «/usr/share/doc/ifupdown/examples/*» y los archivos de órdenes que usan los paquetes ifscheme y ifupdown-scripts-zg2. Estos archivos de órdenes adicionales tienen algunas funciones superpuestas con los paquetes básicos ifupdown-extra y 9guessnet. Si instala estos archivos de órdenes adicionales, debe personalizar estos archivos de órdenes para evitar interferencias.

En vez de elegir la configuración de forma manual según se describe en Sección 5.7.6, “Cambio manual de configuración de red”, puede usar el mecanismo de mapping descrito en Sección 5.7.5, “La entrada mapping” para seleccionar de forma automática la configuración de red con archivos de órdenes personalizados.

La orden guessnet-ifupdown(8) facilitada por el paquete guessnet esta diseñado para ser utilizado por los archivos de órdenes de mapping y proporciona un marco poderoso para mejorar el sistema ifupdown.

  • Enumerará las condicones de pruebas como los valores de las opciones de guessnet para cada configuración de red de las entradas iface.

  • Mapping eligirá iface con el primer resultado correcto como la configuración de red.

Este uso a dos bandas del archivo «/etc/network/interfaces» por el archivo de órdenes de mapping, guessnet-ifupdown y la infraestructura de configuración de red original, ifupdown, no es causa de impactos negativos ya que las opciones de guessnet solo exportan variables de entorno a los archivos de órdenes ejecutados por el sistema ifupdown. Consulte los detalles en guessnet-ifupdown(8).

[Nota] Nota

Cuando varias líneas de opciones deguessnet son necesarias en «/etc/network/interfaces», utilice las líneas de opcion que comienzan por guessnet1, guessnet2 y así sucesivamente, ya que el paquete ifupdown no permite que el comienzo de las cadenas de caracteres de las líneas de opciones se repitan.

Puede usar las órdenes de red de nivel bajo de forma segura de la forma siguiente ya que no cambian la configuración de red.


[Sugerencia] Sugerencia

Algunas de estas herramienas de configuración de red a nivel bajo están ubicadas en «/sbin/». Puede que necesite indicar la ruta absoluta como «/sbin/ifconfig» o añadir «/sbin» a la relación de «$PATH» en su «~/.bashrc».

La optimización genérica de la red está fuera del alcance de este documento. Pasaré por encima de las materias pertinentes para una conexión casera.


El valor de la Unidad de Transmisión Máxima (Maximum Transmission Unit, MTU) puede ser determinado de forma empírica mediante ping(8) con la opción «-M do» la cual envia paquetes ICMP variando el tamaño del paquete de datos empezando en 1500 (con un desplazamiento de 28 bytes para las cabeceras IP+ICMP) y encontrando el tamaño máximo sin fragmentación IP.

Por ejemplo, intente lo siguiente

$ ping -c 1 -s $((1500-28)) -M do www.debian.org
PING www.debian.org (194.109.137.218) 1472(1500) bytes of data.
From 192.168.11.2 icmp_seq=1 Frag needed and DF set (mtu = 1454)

--- www.debian.org ping statistics ---
0 packets transmitted, 0 received, +1 errors

Intente 1454 en vez de 1500

Verá los que sucede con ping(8) con 1454.

Esto proceso puede ser automatizado por descubrimiento de la ruta MtU (Path MTU, PMTU) (RFC1191) y la orden tracepath(8).

[Sugerencia] Sugerencia

El ejemplo anterior con el valor 1454 en el PMTU es para mi proveedor anterior de FTTP el cual usa Modo de Transferencia Asíncrono (Asynchronous Transfer Mode) (ATM) en su red troncal y atiende a sus clientes mediante PPPoE. El valor real de PMTU depende de su entorno, p. ej. 1500 para mi nuevo proveedor de FTTP.


Además de estos comentario básicos, debería saber lo siguiente.

  • El uso de cualquier método de «tunneling« (VPN etc.) puede reducir más la MTU óptima por la sobrecarga.

  • El valor de la MTU no debería ser mayor que el valor PMTU determinado de forma empírica.

  • El valor de MTU mayor es generalmente mejor cuando se cumplen las otras limitaciones.

Aquí mostramos ejemplos como se cambia el valor de la MTU de 1500 a 1454.

Para DCHP (see Sección 5.6.4, “Interfaz de red configurado mediante DHCP”), puede sustituir las líneas de la entrada iface que correspondan en «/etc/network/interfaces» con lo siguiente:

iface eth0 inet dhcp
 pre-up /sbin/ifconfig $IFACE mtu 1454

En el caso de una IP estática (see Sección 5.6.5, “El interfaz de red con IP estática”), puede sustituir las líneas que correspondan de la entrada iface en «/etc/network/interfaces» con lo siguiente:

iface eth0 inet static
 address 192.168.11.100
 netmask 255.255.255.0
 gateway 192.168.11.1
 mtu 1454
 dns-domain example.com
 dns-nameservers 192.168.11.1

Para PPPoE directo (consulte Sección 5.5.5, “La conexión PPPoE con pppoeconf”), puede cambiar línea de la «mtu· que corresponda en «/etc/ppp/peers/dsl-provider» con lo siguiente:

mtu 1454

El tamaño máximo del segment (maximum segment size) (MSS) se utiliza como una medida alternatica de la medida del tamaño del paquete. La relación entre MSS y MTU es la siguiente:

  • MSS = MTU - 40 en el caso de IPv4

  • MSS = MTU - 60 en el caso de IPv6

[Nota] Nota

La optimización basada en iptables(8) (consulte Sección 5.10, “Infraestructura Netfilter”) puede fijar el tamaño del paquete por el MSS y puede ser útil para el encaminador. Consulte «TCPMSS« en iptables(8).

El rendimiento TCP puede ser maximizado ajustando los parámetros del tamaño del buffer TCP según se describe en «TCP Tuning Guide« y «TCP tuning« para una red moderna WAN de banda ancha y de alta latencia. Hasta cierto punto, la configuración por defecto de Debian es correcta para mi LAN conectada al veloz servicio FTTP de 1G bps.

Netfilter aporta la infraestructura de uncortafuegos con estado y traducción de direcciones de red (NAT) por medio de módulos del núcleo de Linux (consulte Sección 3.3.1, “La inicialización del módulo del núcleo”).


El programa principal para usuarios de netfilter es iptables(8). Puede configurar de forma manual netfilter de forma interactiva desde el intérprete de órdenes , guardando su estado con iptables-save(8) y restaurandolo por medio de archivo de órdenes init iptables-restore(8) después del reinicio del sistema.

Shorewall es una herramienta que facilita la configuración de los archivos de órdenes facilitando este proceso.

Consulte la documentación en http://www.netfilter.org/documentation/ (o en «/usr/share/doc/iptables/html/»).

[Sugerencia] Sugerencia

Aunque han sido escritor para la Linux 2.4, ambos, la orden iptables(8) y la función principal de netfilter se usan en los núcleos de Linux 2.6 y 3.x.