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 de red de bajo nivel
5.4.1. Órdenes iproute2
5.4.2. Operaciones seguras de red a nivel bajo
5.5. Optimización de la red
5.5.1. Encontrando la MTU óptima
5.5.2. Optimización TCP en redes WAN
5.6. Infraestructura Netfilter
[Sugerencia] Sugerencia

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

[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
network-manager V:363, I:428 14803 config::NM NetworkManager (demonio): gestión de red automatizada
network-manager-gnome V:122, I:354 5570 config::NM NetworkManager (interfaz de usuario GNOME)
ifupdown V:586, I:983 199 config::ifupdown herramienta estándar para subir o bajar la red (específico de Debian)
isc-dhcp-client V:218, I:981 2857 config::low-level cliente DHCP
pppoeconf V:0, I:7 192 config::helper ayudante de configuración para conexiones PPPoE
wpasupplicant V:332, I:486 3851 , , cliente que soporta WPA y WPA2 (IEEE 802.11i)
wpagui V:0, I:2 758 , , cliente Qt de interfaz de usuario para «wpa_supplicant«
wireless-tools V:163, I:220 292 , , herramientas para manejar las Extensiones Inalámbricas Linux («Linux Wireless Extensions«)
iw V:156, I:454 302 , , tool for configuring Linux wireless devices
iproute2 V:709, I:958 3514 config::iproute2 iproute2, IPv6 y otras configuraciones de red avanzadas: ip(8), tc(8), etc
iptables V:315, I:889 2408 config::Netfilter herramientas de administración para el filtrado de paquetes y NAT (Netfilter)
iputils-ping V:204, I:997 120 test 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:4, I:57 49 test prueba la accesibilidad por red de un equipo remoto específico mediante la dirección ARP
iputils-tracepath V:3, I:39 45 test determina la ruta de red a un equipo remoto
ethtool V:98, I:278 668 test muestra o cambia la configuración de dispositivos Ethernet
mtr-tiny V:7, I:52 161 test::low-level determina la ruta de red a un equipo remoto (curses)
mtr V:4, I:44 214 , , determina la ruta de red a un equipo remoto (curses y GTK)
gnome-nettool V:1, I:25 2492 , , herramientas para operaciones de información de red comunes (GNOME)
nmap V:25, I:222 4434 , , descubridor de red / escáner de puertos (Nmap, consola)
zenmap V:0, I:2 2939 , , descubridor de red / escaneador de puertso (GTK)
tcpdump V:17, I:196 1332 , , analizador de tráfico de red (Tcpdump, consola)
wireshark I:48 37 , , analizador de tráfico de red (Wireshark, GTK)
tshark V:2, I:28 403 , , analizador de tráfico de red (consola)
tcptrace V:0, I:2 401 , , produce un resumen de las conexiones de salida con tcpdump
snort V:0, I:1 2203 , , sistema flexible de detección de intrusos en red (Snort)
ntopng V:1, I:1 15904 , , muestra el uso de red en un navegador web
dnsutils V:26, I:369 260 , , clientes de red proporcionado con BIND: nslookup(8), nsupdate(8), dig(8)
dlint V:0, I:5 53 , , comprueba la información de zona DNS mediante consultas al servidor de nombres
dnstracer V:0, I:1 61 , , 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

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

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_dominiopodrí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.

Comunmente el interfaz lo se inicializa mediante «networking.service» y el resto de interfaces de un sistema de escritorio moderno Debian que use systemd mediante «NetworkManager.service».

Debian can manage the network connection via management daemon software such as NetworkManager (NM) (network-manager and associated packages).

  • 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».

Official documentations for NM on Debian are provided in "/usr/share/doc/network-manager/README.Debian".

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. Restart NM by the following.

    $ sudo systemctl restart network-manager
  4. Configure al red por medio del interfaz gráfico de usuario.

[Nota] Nota

Only interfaces which are not listed in "/etc/network/interfaces" are managed by NM to avoid conflict with ifupdown.

[Sugerencia] Sugerencia

If you wish to extend network configuration capabilities of NM, please seek appropriate plug-in modules and supplemental packages such as network-manager-openconnect, network-manager-openvpn-gnome, network-manager-pptp-gnome, mobile-broadband-provider-info, gnome-bluetooth, etc.

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

For the low level network configuration on Linux, use the iproute2 programs (ip(8), …) .

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.


NM normally sets optimal Maximum Transmission Unit (MTU) automatically.

In some occasion, you may wish to set MTU manually after experiments with ping(8) with "-M do" option to send a ICMP packet with various data packet size. MTU is the maximum succeeding data packet size without IP fragmentation plus 28 bytes for the IPv4 and plus 48 bytes for the IPv6. For example the following finds MTU for IPv4 connection to be 1460 and MTU for IPv6 connection to be 1500.

$ ping -4 -c 1 -s $((1500-28)) -M do www.debian.org
PING  (149.20.4.15) 1472(1500) bytes of data.
ping: local error: message too long, mtu=1460

---  ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

$ ping -4 -c 1 -s $((1460-28)) -M do www.debian.org
PING  (130.89.148.77) 1432(1460) bytes of data.
1440 bytes from klecker-misc.debian.org (130.89.148.77): icmp_seq=1 ttl=50 time=325 ms

---  ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 325.318/325.318/325.318/0.000 ms
$ ping -6 -c 1 -s $((1500-48)) -M do www.debian.org
PING www.debian.org(mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e)) 1452 data bytes
1460 bytes from mirror-csail.debian.org (2603:400a:ffff:bb8::801f:3e): icmp_seq=1 ttl=47 time=191 ms

--- www.debian.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 191.332/191.332/191.332/0.000 ms

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


In addition to these basic guide lines, you should know the following.

  • 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.

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.6, “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.8.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.