30 votos

¿Qué significa tener una máscara de subred /32?

Veo en esto pregunta la tabla de enrutamiento tiene:

192.168.1.1/32     link#4             UCS             2        0     en0
openwrt.lan        46:94:fc:63:fc:7   UHLWIir        11     3610     en0   1200
192.168.1.125/32   link#4             UCS             2        0     en0

¿Qué significa tener una máscara de subred de /32 y en ese caso, ¿cuál será su ID de red? ¿Puede existir un host sin ID de red en caso de que consideremos lo anterior como un único host?

Hasta donde yo sé, el ID de red y la dirección IP asignada a un host en esa red son 2 cosas diferentes. 192.168.0.0 es un ID de red y si su subred es 255.255.255.0, entonces los hosts en esta red pueden ser 192.168.0.1 - 192.168.0.254. En este caso, ¿cómo puede existir un host sin un ID de red?

Vinculado : ¿Por qué mi máscara de subred es 255.255.255.255?

0 votos

He visto la sintaxis A.B.C.D/# utilizada de varias maneras en el software y el hardware, y en general sólo se utiliza para significar cuántos bits deben coincidir (L2R) para que esa línea/regla/caso tenga efecto. Así que 192.168.1.1/32 significaría que la información que sigue se aplica para la dirección exacta 192.168.1.1 y ninguna otra.

35voto

Worthwelle Puntos 73

/32 dirigiéndose a

En general, /32 significa que la red tiene una sola dirección IPv4 y todo el tráfico irá directamente entre el dispositivo con esa dirección IPv4 y la pasarela por defecto. El dispositivo no podrá comunicarse con otros dispositivos de la red.

Hay un par de posibles razones para esto que he visto. Podría ser:

  • Un servidor web que sirve a varios sitios con cada uno de ellos vinculado a una dirección IPv4 específica
  • A dirección de bucle de retorno utilizado para las pruebas.
  • Aislar una máquina de la red para permitir que sólo se conecten las rutas establecidas estáticamente. (Para el desmantelamiento, por ejemplo).

ID de la red

El ID de red La parte de una dirección IP está determinada por la máscara de subred. Por ejemplo:

  • A /24 La red IPv4 tiene una máscara de subred de 1111.1111.1111.0000 , lo que significa que los 3 primeros octetos son el ID de la red y el último octeto se utiliza para asignar los ID de los hosts (256 ID disponibles, aunque normalmente algunos están reservados).
  • A /16 La red IPv4 tiene una máscara de subred de 1111.1111.0000.0000 , lo que significa que los 2 primeros octetos son el ID de la red y el último octeto se utiliza para asignar IDs de host (65536 IDs disponibles, aunque normalmente algunos están reservados).

En el caso de /32 Esto no se aplica, ya que la dirección es tanto un ID de red como un ID de host. /31 Las direcciones también son todos los ID de host sin dirección 0 reservada.

0 votos

Pero esta red no puede existir ya que no tendrá entonces la identificación de la red? El único identificador, como has dicho, se asigna al host?

0 votos

Más exactamente, esto habría sólo un ID de red y ningún ID de host. En el caso de una dirección de bucle invertido, no se necesitan IDs de host ya que sólo hay uno.

0 votos

Un servidor web se ejecuta en una máquina que tiene una dirección IP. Dentro del servidor web, alojamos sitios, así que ¿cómo puede alguien alojar un sitio con una dirección /32 porque esa IP pertenece a la máquina y no al sitio? Si decimos que un sitio tiene ip /32, en realidad estamos diciendo que la máquina tiene un direccionamiento /32 y en tal caso ¿cómo está esa máquina conectada a la red?

29voto

rwc9u Puntos 532

Hay un poco de confusión aquí; ese /32 no se refiere al tamaño de cualquier (sub)red, sino al rango de direcciones al que se aplica esa entrada de la tabla de enrutamiento en particular. Normalmente los dos son lo mismo (porque se enruta una red o subred como una unidad, ¿verdad?), pero macOS hace las cosas un poco diferentes para otros hosts en la misma red local. Déjame añadir algunas líneas antes de las que has citado:

Destination        Gateway            Flags        Refs      Use   Netif Expire
default            openwrt.lan        UGSc           10        0     en0
...
192.168.1          link#4             UCS             2        0     en0
192.168.1.1/32     link#4             UCS             2        0     en0
openwrt.lan        46:94:fc:63:fc:7   UHLWIir        11     3610     en0   1200
192.168.1.125/32   link#4             UCS             2        0     en0

Tenga en cuenta que 192.168.1 (abreviatura de 192.168.1.0/24) se enruta a través de en0 (también conocido como enlace#4); no a través de ninguna puerta de enlace, sólo a través de la propia interfaz. Esta es la red en la que se encuentra el propio Mac. 192.168.1.1 y 192.168.1.125 son direcciones específicas dentro de ese rango de red . Si comparas esas entradas /32 con la entrada 192.168.1, son básicamente duplicados redundantes; dicen lo mismo, sólo que sobre direcciones específicas en lugar de todo el rango de la red.

No sé por qué macOS crea estas entradas redundantes de direcciones específicas, pero probablemente esté relacionado con otra cosa que puedes ver en el listado de arriba: macOS lista sus entradas de la tabla ARP en la tabla de enrutamiento. La entrada "openwrt.lan" de arriba (que estoy bastante seguro de que es en realidad 192.168.1.1, solo que listada por su nombre en lugar de por su número) dice que está enrutada vía en0 a la dirección MAC 46:94:fc:63:fc:7.

Así que lo que ves en el listado de rutas es una mezcla de rutas de red reales (como las entradas "por defecto" y 192.168.1), y entradas por host (las entradas /32 y MAC-targeted).

0 votos

¿Cómo has deducido que 192.16.1 es la abreviatura de 192.16.1.0 /24 ? (Además, creo que querías decir 192.168.1.0)

1 votos

@BreakingBenjamin netstat a veces utiliza una forma abreviada en la que sólo enumera la parte de red de la dirección (omitiendo la parte de host); en "192.16.1" se enumeran tres octetos, lo que indica 8 octetos = 24 bits de parte de red. Si se mira la salida completa en el pregunta original También verás entradas para "224.0.0" (abreviatura de 224.0.0/24, el bloque de control local de multidifusión), "169.254" (169.254.0.0/16, direcciones link-local dinámicas) y "127" (127.0.0.0/8, loopback local).

0 votos

@BreakingBenjamin en otras palabras, se eliminan los ".0" finales de las direcciones para mostrar un número con menos de tres puntos. Se supone que el usuario debe saber añadirlos de nuevo cuando los necesite.

4voto

monst3r Puntos 46

Es sólo un valor CIDR. Puede obtener más información en aquí para CIDR.

TL;DR

Una dirección de red CIDR tiene este aspecto en IPv4:

192.30.250.00/18

El "192.30.250.0" es la dirección de red propiamente dicha y el "18" dice que los primeros 18 bits son la parte de red de la dirección, dejando los últimos 14 bits para las direcciones de host específicas. máscara de subred

3voto

ron Puntos 163

lo más fácil es buscar en la web y leer artículos relacionados con subnet mask y subnet mask binary shorthand y CIDR

y también comprueba subnet calculators

el /32 es el CIDR (abreviatura) y se refiere a cuántos 1 hay en la máscara de subred. Para /32 es decir 255.255.255.255 o 11111111.11111111.11111111.1111111

eso significa que solo puedes tener una dirección ip, en tu red antes de necesitar una puerta de enlace/router para salir de esa red. con /32 solo eres tú. Una máscara de subred es un número que define un rango de direcciones IP disponibles dentro de una red

CIDR = enrutamiento interdominio sin clase

que significa el uso de /32 : No creo que sea una configuración inválida, sin embargo, efectivamente apaga la red... o limita la red sólo a ti... sólo puedes hablar contigo mismo si no tienes una puerta de enlace configurada para llegar fuera de esa máscara de red.

cuál será su identificación de red: Supongo que te refieres a cuál será la dirección ip, y la dirección ip será la que tú establezcas. La dirección IP y la máscara de subred (que es de lo que se trata) son dos cosas diferentes aunque relacionadas.

¿puede existir un host sin un id de red [dirección ip?] : ¿puede existir sin tener un nombre y un apellido o sin una dirección? sí el host puede existe . como que necesita definir mejor lo que quiere decir con existe .

0 votos

"ID de red" suele referirse a la dirección con todos los bits del 'host' a cero, es decir, una de las dos direcciones "reservadas" de una subred. No es la dirección del host.

0 votos

@ron Por lo que sé, la identificación de la red y la dirección IP asignada al host en esa red son 2 cosas diferentes. Como 192.168.0.0 es un identificador de red y si su subred es 255.255.255.0 entonces el host en esta red puede ser 192.168.0.1 - 192.168.0.254 . de ahí que pregunte en este caso como puede existir un host sin un id de red ?

0 votos

Creo que es una cuestión de simbología y puede ser difícil de discutir escribiendo así. estrictamente hablando si usted dice host entonces implica o requiere un identificador válido (id) que es ¿qué? No necesariamente un hostname porque puede haber dos sistemas con el mismo nombre de host en un red . En la mayoría de los casos el identificador único debería ser la dirección MAC del hardware de la red.. que se supone que nunca se duplica entre miles de millones de dispositivos informáticos hoy en día? Y la nomenclatura de la vieja escuela creo que es host vs terminal, por lo que sin una interfaz de red válida su sistema se convierte en un terminal y no en un host.

1voto

Britton Puntos 394

Lo que estás viendo no son máscaras de subred . Son indicaciones de la longitud de los prefijos de la tabla de enrutamiento¹.

Una implementación ingenua de una tabla de enrutamiento enumeraría todas las IP posibles de manera que, dada cualquier dirección IP, se buscaría exactamente esa y obtener la información de enrutamiento² asociada a ella.

Está claro que se necesita algún tipo de compresión. La naturaleza de la información de enrutamiento es que las direcciones adyacentes suelen utilizar la misma información información, por lo que podemos utilizar una forma de árbol de radix para comprimirlos juntos. He aquí, brevemente, cómo funciona.

Dados los números del 0 al 7, podemos representarlos en binario así:

0   000
1   001
2   010
3   011
4   100
5   101
6   110
7   111

Ahora bien, si tenemos dos entradas en la tabla de enrutamiento, una para las direcciones 0 y 1 y otra para las direcciones 2 y 3, podemos almacenarlas bajo los prefijos binarios prefijos que éstas comparten. Si utilizamos un . para indicar el bit "no utilizado después del final del prefijo, tenemos 00. para el rango 0-1 y 01. para el rango 2-3.

Una forma estándar de representar esto es con el número más bajo del rango seguido de la longitud del prefijo; en este caso serían sería 0/2 para el rango 0-1 y 2/2 para el rango 2-3.

Pero qué pasa si queremos buscar la información de enrutamiento para dirección 6? Normalmente añadiríamos un conjunto de información de enrutamiento "por defecto" con el prefijo 0/0 es decir, que coincida con cualquier bit y entonces cuando buscamos la información más específica, es decir, el prefijo más largo que podamos encontrar. Así que la tabla de enrutamiento completa que acabamos de descrito es:

0/2     00.     Matches addresses 1 and 2.
2/2     01.     Matches addresses 3 and 4.
0/0     ...     Matches any address.

Las máscaras de subred se pueden describir con prefijos de la misma manera, y así este esquema se utiliza a menudo para eso. Pero hay que tener en cuenta que sólo porque este esquema puede se utilice para describir subredes no significa que se utilice sólo para describir las subredes.

Como ejemplo de que los prefijos de la tabla de enrutamiento no son subredes, podrías tener dos interfaces de red conectadas a la misma red, digamos 192.168.2.0/24. (Esto podría implementarse conectando dos tarjetas de red tarjetas de red al mismo conmutador, cada una con su propio cable). Se podría configurar la tabla de enrutamiento para "equilibrar" el tráfico de salida entre las dos interfaces utilizando dos entradas en la tabla de enrutamiento:

192.168.2.0/25      eth0        # range ...2.0   to ...2.127
192.168.2.128/25    eth1        # range ...2.128 to ...2.255

Esto enviaría paquetes destinados a las direcciones 0-127 de esa red fuera eth0 pero los paquetes destinados a las direcciones 128-255 de esa red fuera eth1 . Esta es una mala manera de hacer esto (por razones que no voy a entrar aquí), pero demuestra cómo los prefijos de enrutamiento y las direcciones de direcciones de red pueden no coincidir.


¹ El artículo de Wikipedia sobre <a href="https://en.wikipedia.org/wiki/Routing_table" rel="nofollow noreferrer">tablas de enrutamiento </a>lamentablemente dice que el campo del prefijo contiene el "ID de la red". Aunque esto puede ser cierto en ciertas implementaciones específicas de tablas de enrutamiento, no es siempre un ID de red en el caso general, como se ve tanto en el ejemplo que usted proporciona y mi ejemplo más adelante en esta respuesta.

² Esta información de enrutamiento suele incluir cosas como qué interfaz a utilizar, qué router contactar en esa interfaz, si es que hay alguno, la dirección MAC de un host para los hosts directamente alcanzables a través de esa interfaz, qué dirección de origen debemos poner en el paquete si el host tiene varias direcciones de origen, información de seguridad, etc. Hay una gran variedad de datos que podrían estar allí, pero nada de eso es importante para los propósitos de esta discusión ya que estamos hablando sólo de cómo buscar el conjunto de datos correcto para una dirección dada, no de lo que hay en el conjunto de datos en sí.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: