Houve um tempo em que a IANA atribuiu apenas portas até 1023. Consulte RFC1700 . Ao mesmo tempo, isso era um padrão. Na maioria das vezes, não tenho problemas para encontrar quando as coisas mudam no fluxo de RFCs, mas para a questão de alterar as portas de 1024 para 49152 de registradas para atribuídas, fiquei aquém.
Em termos de histórico do Linux, houve uma pergunta sobre o ip_local_port_range padrão em 2007. Na época, foi decidido usar o intervalo do Linux mencionado por receio de que números de portas altos pudessem causar problemas e iniciar o intervalo em 49152 poderia deixar muito poucos. números de porta no pool. Veja isso e seu tópico. O pensamento expresso na época era que, a partir de 32768, estava dentro do espírito dos procedimentos da IANA, se não totalmente compatíveis. Ao ler isso, deduzo que os desenvolvedores assumiram que a maioria das atribuições ocorreria da parte inferior do intervalo e subia. No momento em que escrevo, conto um pouco mais de 100 números de portas atribuídos (sem contar diferentes protocolos separados) entre 32768 e 49152, de modo que isso se manteve muito bem nos últimos cinco anos.
Não sei por que o intervalo foi considerado pequeno demais, mas posso imaginar duas razões:
- Os números de porta são randomizados para impedir certos ataques. Quanto mais endereços no pool, melhor essa defesa pode funcionar.
- Servidores de alta atividade podem ter problemas com a exaustão do número da porta. Embora as portas possam ser efêmeras, seu uso não é instantâneo. Em particular, os soquetes podem durar vários minutos após o fechamento do TCP.
Esta postagem do blog aborda o número 2 e sugere uma resposta, caso você deseje que seus sistemas Linux usem um intervalo diferente de portas locais. (Usando /etc/sysctl.d para definir um intervalo que você gosta. Há também uma entrada ip_local_reserved_ports que pode ser útil se ocorrer um conflito em particular. Eles correspondem à entrada / proc / sys que você cita.)
Em suma. Os padrões do Linux não correspondem às especificações atuais da IANA, mas qualquer sistema Linux específico pode, se o proprietário desejar.
ip_local_port_range
não deve ser usado de qualquer maneira.