Posibles patrones (bits) de una máscara de red

13

Dado un prefijo Y, es fácil calcular la máscara de red correspondiente: poner Yveces un bit establecido y luego llenar "a la derecha" con ceros hasta que uno tenga 32 bits (IPv4) en total.

Ejemplo:

Prefijo 24, por lo tanto, máscara de red 11111111 11111111 11111111 00000000o 255.255.255.0.

¿Puede haber una máscara de red con un patrón de bits diferente , como

  • 00000000 11111111 00000000 11111111( 0.255.0.255)
  • 00000000 11111111 11111111 11111111( 0.255.255.255)
  • 11111111 11111111 11111111 00000001( 255.255.255.1)

Especificar un "prefijo" obviamente no funcionaría para estos casos.

(Estoy bastante seguro de que la respuesta es "NO", pero estoy escribiendo un código de red, y esto debe funcionar en todos los casos posibles, por lo que quiero estar un 101% seguro).

Daniel Jour
fuente

Respuestas:

11

RFC950 establece que

Como los bits que identifican la subred están especificados por una máscara de bits, no es necesario que sean adyacentes en la dirección. Sin embargo, recomendamos que los bits de subred sean contiguos y se ubiquen como los bits más significativos de la dirección local.

La mayoría de los dispositivos siguen esta recomendación en cuanto a su cumplimiento. Solo logré usar máscaras de subred no contiguas en redes solo de Linux en 2012; los dispositivos Windows, OSX, Cisco y HP que probé no lo manejaron / permitieron.

Filip Haglund
fuente
2
Creo que esto ha sido reemplazado por RFC1519 , que requiere explícitamente una máscara contigua.
user1686
@grawity podría ser el caso. Encontrado "La única restricción pendiente es que la máscara debe dejarse contigua". cuando hablamos de CIDR, pero no leí lo suficiente para entender el contexto.
Filip Haglund
6

Si está utilizando prefijos y redes, la respuesta es no, los bits deben ser contiguos. Hay casos en los que se puede usar una máscara comodín (inversa de la máscara), por ejemplo, las ACL de Cisco, y estos pueden ser cualquier patrón de bits. Por ejemplo, podría bloquear el tráfico de todos los hosts con números impares en una red. Parece que esto todavía se enseña, pero no lo he visto usado con mucha frecuencia (aunque lo he visto) en el mundo real.

Ron Maupin
fuente
4

No. Una máscara de red es una serie continua de unos.

(Los otros son patrones "comodín").

Ricky Beam
fuente
1
Esto no es verdad. Hace 30 años había muchos. Todavía puede haber algunos en funcionamiento.
MAPA
2
Lo dudo mucho. Ningún hardware de enrutamiento moderno lo permitirá. Y los enrutadores de los años 80 tendrán numerosos problemas con la forma en que funciona hoy el IP. (He estado allí. Te dije que no usaras toda la subred cero, incluso a finales de los 90 eso era un problema). Los únicos dos dispositivos que todavía tengo de esa época no aceptarán una máscara de red no contigua. (WTI pdus, todavía alrededor porque tienen puertos de 10bT. Nada les habla, sobre todo Internet .)
Ricky Beam
3

Cuando TCP / IP apareció por primera vez y se generalizó, en realidad había muchas subredes con máscaras no contiguas. Pero a medida que las direcciones se volvieron escasas, la sobrecarga al resto de la red permitió el enrutamiento global de estos prefijos en lugar de forzar que todo se basara solo en prefijos; era demasiado y la red global cambió a solo prefijos de soporte. En realidad, todavía puede haber redes heredadas que usan máscaras no contiguas internamente (muchos IGP lo admiten aún). Pero, cuando dicha red se conecta a Internet, tiene un prefijo único que los cubre a todos, que se anuncia en BGP. Y, por supuesto, EGP (el predecesor de BGP) solo admitía el direccionamiento con clase.

Conozco a varios jugadores con redes originales de Clase A que usaron máscaras de red no contiguas internamente por una razón u otra. Simplemente no sé si alguno de ellos todavía lo está haciendo. Muchos de ellos ya ni siquiera salen. El ARPAnet tenía una máscara de red interna de 255.0.0.255 (IIRC).

MAPA
fuente
2
DISPARATES. Esto no tiene nada que ver con CIDR, o clases, o agregación. Una máscara de red SIEMPRE ha sido contigua.
Ricky Beam
66
Ver RFC 950 , por ejemplo. La página 15 da un ejemplo con una máscara de red de 255.255.255.88.
Ross Presser
44
Creo que la página 12 de RFC 1519 realmente perjudica su caso, ya que la única oración relevante es: " La única restricción pendiente es que la máscara debe dejarse contigua ". (El énfasis es mío) Como la máscara está implícita / asumida por la clase en el enrutamiento con clase, y solo se usaron tres máscaras contiguas, y el RFC en CIDR especifica máscaras contiguas, parece que su respuesta es incorrecta. La publicación de la lista de FreeBSD es un misterio para mí.
Todd Wilcox
3
El RFC de reemplazo es 4632: tools.ietf.org/html/rfc4632 Tenga en cuenta que la notación de barra se discute y se usa, y el término " longitud de prefijo " aparece varias veces, ninguno de los cuales tendría ningún sentido si las máscaras no contiguas fueran soportado. Está claro por RFC 950 que podría haber habido sistemas en los primeros días que usaban máscaras no contiguas, pero mencionarlo no ayudará al autor de la pregunta a entender cómo funciona actualmente TCP / IP, y podría ser muy confuso.
Todd Wilcox
3
Dado que los bits que identifican la subred están especificados por una máscara de bits, no necesitan estar adyacentes en la dirección. Sin embargo, recomendamos que los bits de subred sean contiguos y se ubiquen como los bits más significativos de la dirección local . Si bien eso no lleva la redacción DEBE / DEBE usarse hoy en día, así es exactamente como todos han desarrollado capacidades de subneting modernas. Durante más de 3 décadas de trabajo en red, nunca he encontrado tecnología que permita subredes no contiguas.
Ricky Beam