¿Podría IPv6 hacer que los números NAT / puerto sean redundantes?

8

Por lo que puedo decir, cada proceso podría tener su propia dirección IP, con un montón de IP de sobra.

¿Cuáles serían los inconvenientes?

Esencialmente, su host se convertiría en un enrutador y cada proceso es un host (en el sistema actual).

Tobiq
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin
¿Alguna respuesta te ayudó? Si es así, debe aceptar la respuesta para que la pregunta no siga apareciendo para siempre, buscando una respuesta. Alternativamente, puede proporcionar y aceptar su propia respuesta.
Ron Maupin

Respuestas:

13

IPv6 no tiene un estándar NAT como lo hace IPv4 (NAT rompe la premisa de extremo a extremo de IP, e IPv6 fue diseñado para restaurar eso). Existe un RFC experimental para IPv6 NAT, pero es un NAT uno a uno en la capa de red, en lugar de algo como el IPAP NAPT que también traduce direcciones de puerto y, de hecho, el IPv6 NAT RFC experimental prohíbe expresamente que .

Si piensa en los distintos protocolos de transporte, TCP y UDP utilizan puertos, que realmente son direcciones para esos protocolos de transporte. Otros protocolos de transporte pueden usar otro direccionamiento, y algunos no usan direcciones.

Su idea posiblemente funcionaría con TCP o UDP, pero solo con uno, y probablemente no con otros protocolos de transporte. IPv6 no tiene conexión, como UDP, por lo que puede funcionar con UDP, pero TCP está orientado a la conexión y realiza una gran cantidad de trabajo que, de lo contrario, la aplicación debería realizar.

Existen requisitos para protocolos de transporte sin conexión y orientados a la conexión. El predecesor de IPv4 en realidad tenía el equivalente de IP y TCP como un solo protocolo, pero se hizo necesario dividirlos porque algunos protocolos de transporte deben estar sin conexión.

Ron Maupin
fuente
9

Un inconveniente es que las capas superiores tendrían que ser conscientes de las direcciones IP, lo que viola el principio de capas. ¿Qué pasaría si cambiaras a IPv4? ¿O algo mas?

¿Cómo le dirían las capas superiores a la capa de red que debería comenzar a responder a una dirección IP? Supongamos que se inicia una nueva aplicación. ¿Cómo sabe la capa de red que hay una nueva dirección para responder?

Teóricamente, IPv6 podría eliminar NAT, pero todavía hay razones por las que una organización podría querer ocultar sus direcciones IP internas.

Ron Trunk
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin
6

La necesidad de NAT como una forma de compartir direcciones IP públicas desaparecerá con IPv6, pero los NAT aún pueden tener algunos usos por razones de seguridad.

La eliminación de puertos podría ser posible en teoría, pero sería una gran empresa. Incluso si reserva los últimos 16 bits de la dirección IP para el número de puerto + 1 bit para el indicador TCP / UDP, necesitaría volver a trabajar todo el software que desempaqueta el pactet de la tercera capa a la cuarta para usar los bits de IP dirección para el número de puerto y el protocolo, en lugar de los datos en el paquete.

Y esa es la solución "fácil" cuando simplemente coloca los números de puerto en la dirección IP, si desea deshacerse o los números de puerto por completo, necesitaría cambiar cada software y biblioteca que use puertos, ya sean servidores, clientes, firewalls , etc. etc. Sería básicamente imposible, cualquier software que diga "abrir el servidor en el puerto X" que funcionaría bien al pasar de IPv4 a IPv6 se rompería instantáneamente si elimina los puertos por completo.

Es infinitamente más fácil mantener los puertos.

kajacx
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin
4

No sería IPv6. Tal sistema es, por supuesto, factible, pero sería una variación del protocolo IP. Hoy en día, las IP contienen dos partes: un identificador de host y un identificador de servicio.

Con su esquema, esencialmente sería un descriptor de servicio. Esto requeriría cambios en el DNS (por ejemplo, ¿cómo se diferencia entre el servidor SMTP para example.com y el servidor www para example.com?)

No puedo ver cómo sería beneficioso sobre el sistema actual con el host: descriptores de servicio. No lograría nada que hoy no sea posible.

vidarlo
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin
0

Como otros han dicho, tener números de puerto es un requisito, incluso si terminan siendo 'codificados' en la dirección IP del servicio.

Algunas aplicaciones necesitan más de un número de puerto. Por ejemplo, la mayoría de los servidores web necesitan el puerto 80 y 443 (y quizás otro puerto para websockets o lo que sea). Tal sistema necesitaría tres direcciones IP con puertos codificados. Si bien tenemos muchas direcciones IP, (en la actualidad) significaría que se requeriría una configuración de nivel de sistema para admitir esos tres números de puerto. El uso de un número de puerto separado significa que las aplicaciones pueden iniciarse y usar los puertos sin necesidad de que el administrador del sistema realice primero un trabajo de configuración. Como han dicho otros, es más fácil usar un número de puerto.

En cuanto a NAT, sí, IPv6 debería eliminar la necesidad de NAT en casi todos los casos. Sin embargo, algunos casos permanecen, por lo que probablemente no desaparecerá por completo, pero es probable que el uso generalizado disminuya significativamente.

Ralph Bolton
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
Ron Maupin
0

Las direcciones IP y los puertos, aunque generalmente se ven juntos, realizan tareas muy distintas. Las direcciones IP se usan para enrutar el tráfico a su computadora específicamente y las aplicaciones usan los números de puerto.

Una muy buena analogía es enviar correo a un edificio de apartamentos. La dirección del edificio sería equivalente a una dirección IP y los números de unidad serían análogos a un número de puerto. Para esta analogía, diremos que la dirección del edificio es 127 Home Ave. Digamos que desea enviar una carta a Henry TT Peterson, por lo que envía una carta al edificio, él no la recibe porque necesita más instrucciones para llegar a su apartamento. , apartamento 80.

En teoría, la dirección IPv6 podría ocupar el lugar de las direcciones IPv4 y los números de puerto, sin embargo, esto viola los precedentes bien establecidos de las redes y existen algunos inconvenientes importantes:

  • Derrota el propósito por el cual se creó IPv6 para aliviar (preocupaciones sobre el mundo que se está quedando sin direcciones IP)
  • Las tablas de enrutamiento internas de enrutadores y conmutadores se volverían exponencialmente más grandes sin ofrecer ningún beneficio ( muchas direcciones se enrutarán a la misma computadora física )
  • Cada aplicación en cada computadora necesitará una dirección única y, aunque IPv6 ofrece muchas, muchas veces más direcciones (2 ^ 128 frente a 2 ^ 32), se agotará bastante rápido y luego tendremos que crear IPv8, luego IPv10, luego IPv12, nosotros correrá una curva exponencial y eso no será un momento divertido.

En lo que respecta a NAT, esto se creó por 2 razones, ya había preocupaciones de que el mundo se estuviera quedando sin (o se quedaría sin) las direcciones IP públicas, lo que se alivió enormemente al permitir que las organizaciones e incluso las redes domésticas tuvieran una cantidad increíble de direcciones IP que se pueden usar internamente y permite que las máquinas importantes se "oculten" del mundo (como su base de datos con información confidencial o la computadora portátil del CEO)

Espero que esta explicación haya sido útil; Como puede ver, tanto NAT como los números de puerto son algo bueno , no nos gustaría reemplazarlos por IPv6 porque es un gran paso atrás, si es que queremos expandirlos o reemplazarlos por algo aún mejor

Entidad temida
fuente
1
1. "Derrota el propósito mismo de IPv6" - No, no lo haría, su computadora probablemente ya tenga varias direcciones IPv6 sin problemas. Al menos 2 ^ 64 direcciones están reservadas para una red doméstica típica. "Las tablas de enrutamiento se harían más grandes" - No, no lo harían, solo hay una entrada en la tabla de enrutamiento para toda su red. (Y cuando miras desde fuera de tu ISP, solo hay una entrada para todo tu ISP). Realmente subestimas lo grande que es 2 ^ 128. Supongamos que trató los últimos 16 bits como un número de puerto (que probablemente no sea así), todavía tiene 2 ^ 112 direcciones de computadora.
user253751
(En realidad, la mayoría de las computadoras tampoco usan todos los puertos
65536. Supongo
@immibis cubriste todo lo que estaba pensando mientras leía la publicación
Tobiq