Hubo un momento en que IANA solo asignaba puertos hasta 1023. Consulte RFC1700 . En un momento esto era un estándar. La mayoría de las veces no tengo problemas para encontrar cuándo cambian las cosas en el flujo de RFC, pero por la cuestión de cambiar los puertos de 1024 a 49152 de registrados a asignados, me quedé corto.
En términos de la historia de Linux, surgió una pregunta sobre el rango predeterminado de ip_local_port_range en 2007. En ese momento, se decidió utilizar el rango de Linux que menciona por temor a que los números de puerto altos puedan causar problemas y comenzar el rango en 49152 podría dejar muy pocos números de puerto en el grupo. Ver esto y su hilo. El pensamiento expresado en ese momento era que a partir de 32768 estaba dentro del espíritu de los procedimientos de la IANA, si no totalmente conforme. Al leer esto, infiero que los desarrolladores asumieron que la mayoría de las tareas ocurrirían desde la parte inferior del rango y subirían. Al escribir esto cuento un poco más de 100 números de puerto asignados (sin contar diferentes protocolos como separados) entre 32768 y 49152, por lo que se ha mantenido bastante bien en los últimos cinco años.
No sé por qué el rango se consideró demasiado pequeño, pero puedo imaginar dos razones:
- Los números de puerto se asignan al azar para frustrar ciertos ataques. Cuantas más direcciones hay en el grupo, mejor puede funcionar esta defensa.
- Los servidores de alta actividad pueden tener problemas con el agotamiento del número de puerto. Si bien los puertos pueden ser efímeros, su uso no es instantáneo. En particular, los sockets pueden durar varios minutos después del cierre de TCP.
Esta publicación de blog toca el número 2 y sugiere una respuesta si desea que sus sistemas Linux utilicen un rango diferente de puertos locales. (Usando /etc/sysctl.d para definir un rango que le guste. También hay una entrada ip_local_reserved_ports que puede ser útil si llega un conflicto en particular. Estos coinciden con la entrada / proc / sys que cita).
En resumen. Los valores predeterminados de Linux no coinciden con las especificaciones actuales de IANA, pero cualquier sistema Linux en particular puede, si su propietario lo desea.
ip_local_port_range
no debe usarse de todos modos.