icmp - Módulo IPv4 ICMP del núcleo de Linux
Este módulo de protocolo del núcleo implementa el Protocolo de
Mensajes de Control de Internet (Internet Control Message Protocol, ICMP)
definido en el documento RFC 792. Se utiliza para indicar condiciones
de error y para diagnóstico. El usuario no interactúa
directamente con este módulo. En vez de eso, se comunica con los otros
protocolos del núcleo y éstos pasan los errores ICMP a las capas
de la aplicación. El módulo ICMP del núcleo
también responde a peticiones ICMP.
Un protocolo de usuario puede recibir paquetes ICMP para todos los conectores
locales abriendo un conector directo (raw) con el protocolo
IPPROTO_ICMP. Vea
raw(7) para más información. Los
tipos de los paquetes ICMP pasados al conector se pueden filtrar usando la
opción de conector
ICMP_FILTER. Los paquetes ICMP son
también siempre procesados por el núcleo, aunque se pasen a un
conector de usuario.
Linux limita la tasa de paquetes de error ICMP para cada destino.
ICMP_REDIRECT y
ICMP_DEST_UNREACH también están
limitados por la ruta de destino de los paquetes entrantes.
ICMP implementa una serie de interfaces
/proc para configurar algunos
parámetros IP globales. Estos parámetros son accesibles leyendo
o escribiendo los ficheros del directorio
/proc/sys/net/ipv4. La
mayoría de estos parámetros son limitaciones de tasas para tipos
ICMP específicos. Linux 2.2 usa un filtro de cubetas de fichas (token
bucket) para limitar los ICMP. El valor es el plazo de tiempo en unidades de
tiempo (jiffies) hasta que el filtro de cubetas de fichas desaparece
después de una ráfaga. Un 'jiffy' es una unidad dependiente del
sistema, típicamente 10ms en la arquitectura x86 y alrededor de 1ms en
las arquitecturas alpha e IA64.
-
icmp_destunreach_rate (Linux 2.2 a 2.4.9)
- Tasa máxima para enviar paquetes ICMP de
"destino inalcanzable". Esto limita la tasa a la que se
envían los paquetes a cualquier ruta o destino individual. El
límite no afecta al envío de paquetes
ICMP_FRAG_NEEDED necesarios para descubrir la MTU de la ruta.
-
icmp_echo_ignore_all (desde Linux 2.2)
- Si este valor es distinto de cero, Linux ignorará
todas las peticiones ICMP_ECHO.
-
icmp_echo_ignore_broadcasts (desde Linux 2.2)
- Si este valor es distinto de cero, Linux ignorará
todos los paquetes ICMP_ECHO enviados a las direcciones de
difusión (broadcast).
-
icmp_echoreply_rate (Linux 2.2 hasta 2.4.9)
- Tasa máxima de envío de paquetes
ICMP_ECHOREPLY en respuesta a paquetes
ICMP_ECHOREQUEST.
-
icmp_errors_use_inbound_ifaddr (Booleano; por
defecto: desactivado; a partir de Linux 2.6.12)
- Si está deshabilitado, los mensajes de error ICMP se
envía con la dirección primaria de la interfaz
existente.
- Si está activado, se enviará el mensaje con
la dirección primaria de la interfaz que recibió el paquete
causante del error ICMP. Esto es lo que esperan que haga un router la
mayoría de administradores de red, ya que facilita mucho la
depuración de errores en redes complejas.
- Observe que si la interfaz seleccionada no tiene una
dirección primaria, se empleará la primera interfaz
(distinta de la de loopback) que disponga de una con independencia de la
configuración.
-
icmp_ignore_bogus_error_responses (Booleano; por
defecto:desactivado; a partir de Linux 2.2)
- Algunos routers incumplen el RFC 1122 al responder a
mensajes erróneos enviados a direcciones de difusión
(broadcast). Estos incumplimientos suelen quedar registrados en los avisos
del núcleo. Si se activa este parámetro, el núcleo no
los registrará evitando en mucho casos que se llenen en exceso los
archivos de registro.
-
icmp_paramprob_rate (Linux 2.2 hasta 2.4.9)
- Tasa máxima de envío de paquetes
ICMP_PARAMETERPROB. Estos paquetes se envían cuando un
paquete llega con una cabecera IP inválida.
-
icmp_ratelimit (número entero; por defecto:
1000; a partir de Linux 2.4.10)
- Limita el ritmo de envío de paquetes ICMP cuyo tipo
coincidan con icmp_ratemask (vea más adelante). Su valor
representa el tiempo mínimo entre respuestas medido en
milisegundos, el valor '0' descativará este límite.
-
icmp_ratemask (entero; por defecto: vea más
adelante; a partir de Linux 2.4.10)
- Máscara creada a partir de los tipos ICMP a los
cuales se les aplica un límite en su ratio.
- Bits significativos: IHGFEDCBA9876543210
Máscara por defecto: 0000001100000011000 (0x1818)
- Definiciones de bits (consulte el archivo de encabezado del
núcleo include/linux/icmp.h):
0 Repuesta Eco |
|
3 Destino Inalcanzable * |
|
4 Ralentiza la Transmisión * |
|
5 Redirección |
|
8 Solicitud de eco |
|
Tiempo excedido * |
|
C Problemas en parámetros * |
|
D Solicitud de marca temporal |
|
E Respuesta a la solicitud de marca temporal |
|
F Petición de información |
|
G Respuesta a la petición de información |
|
H Solicitud de máscara de red |
|
I Respuesta a la solicitud de máscara de red |
|
Los bits señalados con un asterisco tienen limitada la tasa de
envío por defecto. Vea la máscara por defecto descrita
anteriormente.
-
icmp_timeexceed_rate (Linux 2.2 hasta 2.4.9)
- Tasa máxima de envío de paquetes
ICMP_TIME_EXCEEDED. Estos paquetes se envían para evitar
ciclos cuando un paquete ha dado demasiados saltos.
-
ping_group_range (dos enteros; por defecto: vea
más adelante; a partir de Linux 2.6.39)
- Intervalo de ID de grupo (ambos inclusive) que pueden crear
conectores ICMP Eco. Por defecto sería "1 0" es decir,
que ningún grupo puede crearlos.
El soporte para peticiones
ICMP_ADDRESS se eliminó en la
versión 2.2.
El soporte para
ICMP_SOURCE_QUENCH se eliminó en la versión
2.2.
Ya que muchas implementaciones no soportan conectores directos (raw)
IPPROTO_ICMP, no debería contarse con esta característica
en programas transportables.
No se envían paquetes
ICMP_REDIRECT cuando Linux no actúa
como enrutador (router). También, estos sólo son aceptados
cuando procesden de la pasarela (gateway) anterior definida en la tabla de
enrutamiento y las rutas de redirección expiran después de un
cierto tiempo.
La marca de tiempo de 64 bits devuelta por
ICMP_TIMESTAMP viene dada en
milisegundos desde el Inicio de Unix, es decir 01-01-1970 00:00:00 +0000
(UTC).
El ICMP de Linux usa internamente un conector directo para enviar ICMPs. Este
conector directo puede aparecer en la salida de
netstat(8) con un
nodo-i cero.
ip(7),
rdisc(8)
RFC 792 para una descripción del protocolo ICMP.
La traducción al español de esta página del manual fue
creada por Juan Piernas <
[email protected]> y Marcos Fouces
<
[email protected]>
Esta traducción es documentación libre; lea la
GNU
General Public License Version 3 o posterior con respecto a las
condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página
del manual, envíe un correo electrónico a
[email protected]