Tabla de contenidos
Sugerencia | |
---|---|
Como guía de especifica de red moderna de Debian, lea Manual del Administrador de Debian - Configuración de red. |
Revisemos la infraestructura de red básica de un moderno sistema Debian.
Tabla 5.1. Relación de herramientas de configuración de red
paquetes | popularidad | tamaño | tipo | descripción |
---|---|---|---|---|
network-manager
|
V:392, I:459 | 15542 | config::NM | NetworkManager (demonio): gestión de red automatizada |
network-manager-gnome
|
V:121, I:369 | 5583 | config::NM | NetworkManager (interfaz de usuario GNOME) |
netplan.io
|
V:1, I:5 | 319 | config::NM+networkd | Netplan (generador): Interfaz unificada y declarativa para los backends NetworkManager y systemd-networkd |
ifupdown
|
V:608, I:979 | 199 | config::ifupdown | herramienta estándar para subir o bajar la red (específico de Debian) |
isc-dhcp-client
|
V:217, I:981 | 2875 | config::low-level | cliente DHCP |
pppoeconf
|
V:0, I:5 | 186 | config::helper | ayudante de configuración para conexiones PPPoE |
wpasupplicant
|
V:353, I:513 | 3862 | config::helper | cliente que soporta WPA y WPA2 (IEEE 802.11i) |
wpagui
|
V:0, I:1 | 774 | config::helper | cliente Qt de interfaz de usuario para «wpa_supplicant« |
wireless-tools
|
V:179, I:244 | 292 | config::helper | herramientas para manejar las Extensiones Inalámbricas Linux («Linux Wireless Extensions«) |
iw
|
V:34, I:475 | 302 | config::helper | herramienta para configurar dispositivos inalámbricos en Linux |
iproute2
|
V:736, I:972 | 3606 | config::iproute2 | iproute2, IPv6 y otras configuraciones de
red avanzadas: ip (8), tc (8), etc |
iptables
|
V:319, I:718 | 2414 | config::Netfilter | herramientas de administración para el filtrado de paquetes y NAT (Netfilter) |
nftables
|
V:106, I:701 | 182 | config::Netfilter | herramientas de administración para filtrado de paquetes y NAT (Netfilter) (sucesor de {ip,ip6,arp,eb}tables) |
iputils-ping
|
V:194, I:997 | 122 | prueba | 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:3, I:36 | 50 | prueba | prueba la accesibilidad por red de un equipo remoto específico mediante la dirección ARP |
iputils-tracepath
|
V:2, I:30 | 47 | prueba | determina la ruta de red a un equipo remoto |
ethtool
|
V:95, I:267 | 739 | prueba | muestra o cambia la configuración de dispositivos Ethernet |
mtr-tiny
|
V:5, I:46 | 156 | test::low-level | determina la ruta de red a un equipo remoto (curses) |
mtr
|
V:4, I:41 | 209 | test::low-level | determina la ruta de red a un equipo remoto (curses y GTK) |
gnome-nettool
|
V:0, I:17 | 2492 | test::low-level | herramientas para operaciones de información de red comunes (GNOME) |
nmap
|
V:25, I:199 | 4498 | test::low-level | descubridor de red / escáner de puertos (Nmap, consola) |
tcpdump
|
V:17, I:175 | 1340 | test::low-level | analizador de tráfico de red (Tcpdump, consola) |
wireshark
|
I:45 | 10417 | test::low-level | analizador de tráfico de red (Wireshark, GTK) |
tshark
|
V:2, I:25 | 400 | test::low-level | analizador de tráfico de red (consola) |
tcptrace
|
V:0, I:2 | 401 | test::low-level | produce un resumen de las conexiones de salida con
tcpdump |
snort
|
V:0, I:0 | 2203 | test::low-level | sistema flexible de detección de intrusos en la red (Snort) |
ntopng
|
V:0, I:1 | 15904 | test::low-level | muestra el uso de red en un navegador web |
dnsutils
|
V:16, I:280 | 276 | test::low-level | clientes de red proporcionado con BIND:
nslookup (8), nsupdate (8),
dig (8) |
dlint
|
V:0, I:3 | 53 | test::low-level | comprueba la información de zona DNS mediante consultas al servidor de nombres |
dnstracer
|
V:0, I:1 | 59 | test::low-level | determina una cadena de servidores DNS a la fuente |
La resolución de nombres de host actualmente es compatible con el mecanismo NSS (Name Service Switch). El flujo de este análisis es el siguiente.
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
».)
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
».)
Se llama al método dns
. 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.
Una estación de trabajo típica puede instalarse con su nombre de host
establecido, por ejemplo, en "host_name" y su nombre de
dominio opcional establecido en una cadena vacía. Entonces,
"/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 documenta en el error #719621.
El nombre_host coincide con el nombre de host definido
en "/etc/hostname
" (ver Sección 3.7.1, “El nombre del equipo (hostname)”).
En sistemas que tienen un dirección IP permanente, la dirección permanente
se podría usar 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_dominiose podría usar en lugar de solo el nombre_del_equipo.
Si el paquete resolvconf
no está instalado,
"/etc/resolv.conf
" es un archivo estático. Si está
instalado, es un enlace simbólico. Además, contiene información de
inicialización para la estrategia de análisis. Si la DNS es
IP="192.168.11.1
", incluye 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.
Para PC en el típico entorno LAN adhoc, el nombre del host puede resolverse
a través de Multicast DNS (mDNS) además
de los métodos básicos files
y 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 fichero "/etc/nsswitch.conf
" debería tener una estrofa
como "hosts: files mdns4_minimal [NOTFOUND=return] dns
"
(ver /usr/share/doc/libnss-mdns/README.Debian
para otras
configuraciones).
Un nombre del host con el sufijo ".local"
pseudominio de nivel superior se
resuelve enviando un mensaje de consulta mDNS en un paquete UDP
multidifusión utilizando la dirección IPv4 "224.0.0.251
"
o la dirección IPv6 "FF02::FB
".
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. |
Nota | |
---|---|
El uso de paquetes como |
El systemd utiliza "Predictable Network Interface
Names" como "enp0s25
".
Recordemos que los rangos de direcciones de IPv4 de 32 bits reservadas para cada clase de las redes de áreas locales (LANs) del rfc1918. Estas direcciones garantizan que no existan conflictos con las direcciones propias de Internet.
Nota | |
---|---|
Las direcciones IP escritas con dos puntos son dirección IPv6, por ejemplo,
" |
Tabla 5.2. Relación de rangos de direcciones de red
Clase | direcciones de red | máscara de red | bits de la máscara de red | número de las subredes |
---|---|---|---|---|
A | 10.x.x.x | 255.0.0.0 | /8 | 1 |
B | 172.16.x.x — 172.31.x.x | 255.255.0.0 | /16 | 16 |
C | 192.168.0.x — 192.168.255.x | 255.255.255.0 | /24 | 256 |
Nota | |
---|---|
Si una de estas direcciones se asigna a un equipo, entonces ese equipo no puede acceder a Internet de forma directa si no a través de una pasarela que actúa como «proxy« para servicios individuales o realiza Traducción de Direcciones de Red (NAT). El enrutador de banda ancha normalmente realiza NAT para los entornos LAN del cliente. |
Aunque la mayoría de los dispositivos «hardware« son admitidos por el sistema Debian, existen algunos dispositivos de red que necesitan DFSG firmware propietario para su uso. Por favor consulte Sección 9.10.5, “Controladores y firware del hardware”.
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 puede gestionar la conexión de red mediante el software de gestión daemon como NetworkManager (NM) (network-manager y paquetes asociados).
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 | |
---|---|
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 configurarse adecuadamente para
evitar conflictos con el histórico paquete ifupdown
y su
archivo de configuración «/etc/network/interfaces
».
La documentación oficial de NM en Debian se encuentra en
"/usr/share/doc/network-manager/README.Debian
".
Basicamente, la configuración de red para escritorios se hace como sigue.
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 usermod -a -G foo netdev
Mantenga la configuración de «/etc/network/interfaces
»
tan simple como sigue.
auto lo iface lo inet loopback
Reinicia NM de la siguiente manera.
$ sudo systemctl restart network-manager
Configure al red por medio del interfaz gráfico de usuario.
Nota | |
---|---|
Sólo las interfaces que están no listadas
en " |
Sugerencia | |
---|---|
Si deseas ampliar las capacidades de configuración de la red de NM, busque
los módulos complementarios y paquetes suplementarios adecuados, como
|
Con systemd, la red puede configurarse en su
lugar en /etc/systemd/network/
. Consulte
systemd-resolved
(8), resolved.conf
(5)
y systemd-networkd
(8).
Esto permite la configuración moderna de la red sin GUI.
Se puede establecer una configuración de cliente DHCP creando
"/etc/systemd/network/dhcp.network
". Por ejemplo:
[Match] Name=en* [Network] DHCP=yes
Se puede establecer una configuración de red estática creando
"/etc/systemd/network/static.network
". Por ejemplo:
[Match] Name=en* [Network] Address=192.168.0.15/24 Gateway=192.168.0.1
La configuración de red moderna para la nube puede utilizar los paquetes
cloud-init
y netplan.io
(véase Sección 3.7.4, “Inicialización del sistema en la nube”).
El paquete netplan.io
soporta
systemd-networkd
y NetworkManager
como
backends de la configuración de la red, y permite la configuración de la red
utilizando los datos YAML. Cuando se modifica
YAML:
Ejecute el comando "netplan generate
" para generar toda
la configuración backend necesaria desde YAML.
Ejecute el comando "netplan apply
" para aplicar la
configuración generada a los backends.
Ver "Documentación de Netplan",
netplan
(5), netplan-generate
(8) y
netplan-apply
(8).
Ver también "Documentación de
Cloud-init" (especialmente sobre "Fuentes de configuración" y "Netplan Passthrough") para saber cómo
cloud-init
puede integrar la configuración de
netplan.io
con las fuentes de datos alternativas.
Se puede establecer una configuración de un cliente DHCP creando un fichero
con el origen de los datos "/etc/netplan/50-dhcp.yaml
":
network: version: 2 ethernets: all-en: match: name: "en*" dhcp4: true dhcp6: true
Se puede establecer una configuración de red estática creando un archivo
fuente de datos "/etc/netplan/50-static.yaml
":
network: version: 2 ethernets: eth0: addresses: - 192.168.0.15/24 routes: - to: default via: 192.168.0.1
Para la configuración de red de bajo nivel en Linux, utilizar los programas
iproute2 (ip
(8), ...) .
Las órdenes Iproute2 proporcionan un conjunto completo de funcionalidades de configuración de red a nivel bajo. Aquí hay una tabla de correspondencia entre las órdenes en desuso de net-tools y las nuevas órdenes de iproute2 etc.
Tabla 5.3. Tabla de correspondencia entre las órdenes en desuso de
net-tools
y las nuevas órdenes de
iproute2
net-tools en desuso | nuevas iproute2 etc. | empleo |
---|---|---|
ifconfig (8) |
ip addr |
dispositivo con un dirección de protocolo (IP o IPv6) |
route (8) |
ip route |
entrada de tabla de rutas |
arp (8) |
ip neigh |
entrada cache de ARP o NDISC |
ipmaddr |
ip maddr |
dirección multicast |
iptunnel |
ip tunnel |
túnel sobre IP |
nameif (8) |
ifrename (8) |
nombre de interfaz de red basado en la dirección MAC |
mii-tool (8) |
ethtool (8) |
configuración de dispositivo Ethernet |
Ver ip
(8) y Enrutamiento avanzado de Linux
& Control de tráfico.
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.
Tabla 5.4. Relación de órdenes de red de bajo nivel
orden | descripción |
---|---|
ip addr show |
muestra el enlace y el estado de la dirección de los interfaces activos |
route -n |
muestra la tabla de encaminamiento al completo en direcciones numéricas |
ip route show |
muestra la tabla de encaminamiento al completo en direcciones numéricas |
arp |
muestra el contenido actual de la tabla de caché ARP |
ip neigh |
muestra el contenido actual de la tabla de caché ARP |
plog |
display ppp daemon log |
ping yahoo.com |
comprueba la conexión de Internet con «yahoo.com » |
whois yahoo.com |
comprueba quién registro «yahoo.com » en la base de datos
de dominios |
traceroute yahoo.com |
sigue la conexión a Internet hasta «yahoo.com » |
tracepath yahoo.com |
sigue la conexión a Internet hasta «yahoo.com » |
mtr yahoo.com |
sigue la conexión a Internet hasta «yahoo.com » (de forma
repetida) |
dig [@dns-server.com] example.com [{a|mx|any}] |
comprueba los registros DNS de
«example.com » por «dns-server.com »
para los registros «a », «mx », u
«any » |
iptables -L -n |
comprueba el filtrado de paquetes |
netstat -a |
encuentra todos los puertos abiertos |
netstat -l --inet |
encuentra los puertos que están escuchando |
netstat -ln --tcp |
encuentra los puertos (numéricos) TCP que están escuchando |
dlint example.com |
comprueba la información DNS de la zona «example.com » |
Sugerencia | |
---|---|
Algunas de estas herramientas de configuración de red a nivel bajo están
ubicadas en « |
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.
Tabla 5.5. Relación de herramientas de optimización de red
paquetes | popularidad | tamaño | descripción |
---|---|---|---|
iftop
|
V:7, I:100 | 93 | muestra información del ancho de banda usado por un interfaz de red |
iperf
|
V:3, I:43 | 360 | herramienta para medir el ancho de banda del Protocolo IP |
ifstat
|
V:0, I:7 | 60 | Monitor de estadísticas del interfaz |
bmon
|
V:1, I:18 | 144 | monitor de ancho de banda portable y estimador de velocidad |
ethstatus
|
V:0, I:3 | 40 | archivo de órdenes que rápidamente mide rendimiento del dispositivo de red |
bing
|
V:0, I:0 | 80 | comprobador del ancho de banda estocástico empírico |
bwm-ng
|
V:1, I:13 | 95 | pequeño y sencillo monitor de ancho de banda basado en la consola |
ethstats
|
V:0, I:0 | 23 | monitor de estadísticas Ethernet basado en la consola |
ipfm
|
V:0, I:0 | 82 | herramienta de análisis de ancho de banda |
NM normalmente establece la Unidad de transmisión máxima (MTU) óptima automáticamente.
En algunos escenarios, después de experimentar con el envío de paquetes ICMP
de varios tamaños con ping
(8) con la opción "-M
do
", es posible que desee configurar la MTU manualmente. La MTU es
el tamaño de paquete más grande que se puede lograr sin fragmentación de IP
más 28 bytes (IPv4) o 48 bytes (IPv6). En el siguiente ejemplo, se encuentra
que la MTU de la conexión IPv4 es 1460 y la MTU de la conexión IPv6 es 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 se puede automatizar por descubrimiento de la ruta MtU (Path MTU, PMTU)
(RFC1191) y la orden
tracepath
(8).
Tabla 5.6. Guía básica para una MTU óptima
entorno de red | MTU | razonamiento |
---|---|---|
Enlace por red telefónica conmutada (IP: PPP) | 576 | estándar |
Enlace Ethernet (IP: DHCp o fijo) | 1500 | estándar y por defecto |
Además de estas pautas básicas, también debe conocer la siguiente información.
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 de segmento (MSS) es otra 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 | |
---|---|
La optimización basada en |
El rendimiento TCP puede maximizarse ajustando los parámetros del tamaño del buffer TCP como en "TCP tuning" para la moderna WAN de gran ancho de banda y alta latencia. Hasta ahora, la configuración actual por defecto de Debian sirve bien incluso para mi LAN conectada por el rápido 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 (Ver Sección 3.9, “La inicialización del módulo del núcleo”).
Tabla 5.7. Relación de herramientas de cortafuegos
paquetes | popularidad | tamaño | descripción |
---|---|---|---|
nftables
|
V:106, I:701 | 182 | herramientas de administración para filtrado de paquetes y NAT (Netfilter) (sucesor de {ip,ip6,arp,eb}tables) |
iptables
|
V:319, I:718 | 2414 | herramientas de administración de netfilter
(iptables (8) para IPv4, ip6tables (8)
para IPv6) |
arptables
|
V:0, I:1 | 100 | herramientas de administración de netfilter
(arptables (8) para ARP) |
ebtables
|
V:14, I:29 | 276 | herramientas de administración para netfilter (ebtables (8) para
puente Ethernet) |
iptstate
|
V:0, I:2 | 119 | Control continuo del estado de netfilter
(parecido a top (1)) |
ufw
|
V:55, I:77 | 859 | Cortafuegos sin complicaciones (UFW) programa de gestión del firewall netfilter |
gufw
|
V:5, I:10 | 3660 | interfaz gráfica de usuario para cortafuegos sin complicaciones (UFW) |
firewalld
|
V:11, I:16 | 2613 | firewalld es un programa cortafuegos de gestión dinámica con soporte para zonas de red |
firewall-config
|
V:0, I:3 | 1163 | interfaz gráfica del usuario para firewalld |
shorewall-init
|
V:0, I:0 | 88 | inicialización de Shoreline Firewall |
shorewall
|
V:3, I:8 | 3090 | Shoreline Firewall,creador del archivo de configuración de netfilter |
shorewall-lite
|
V:0, I:0 | 71 | Shoreline Firewall, creador del archivo de configuración de netfilter (versión simplificada) |
shorewall6
|
V:0, I:1 | 1334 | Shoreline Firewall, creador del archivo de configuración de netfilter (versión IPv6) |
shorewall6-lite
|
V:0, I:0 | 71 | Shoreline Firewall, creador del archivo de configuración de netfilter (versión simplificada para IPv6) |
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 restaurándolo 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 Netfilter
Documentation (o en
"/usr/share/doc/iptables/html/
").
Sugerencia | |
---|---|
Aunque han sido escritor para la Linux 2.4, ambos, la orden |