Por que o Linux não usa o intervalo de portas da Ephemeral da IANA?

29

Segundo a Wikipedia

The Internet Assigned Numbers Authority (IANA) suggests the range 49152 to 65535 for dynamic or private ports. Many Linux kernels use the port range 32768 to 61000.

Embora pareça haver algum desvio histórico do intervalo sugerido pela IANA, parece estranho que o Windows Vista, o Windows 7, o Windows Server 2008, o FreeBSD 4.6 e muitos outros tenham concordado com esse intervalo, e ainda assim o Linux ainda se destaca.

Olhando para ele, eis que:

$ cat /proc/sys/net/ipv4/ip_local_port_range 
32768   61000

Por que o Linux não adotou o padrão?

    
por Evan Carroll 31.05.2012 / 01:10

1 resposta

20

Houve um tempo em que a IANA atribuía apenas portas até 1023. Consulte RFC1700 . Ao mesmo tempo, isso era um padrão. Na maioria das vezes eu não tenho problemas para encontrar quando as coisas mudam no fluxo de RFC, mas para a questão de mudar as portas de 1024 para 49152 de registrado para atribuído eu fiquei aquém.

Em termos de histórico do Linux, houve uma pergunta sobre o padrão ip_local_port_range em 2007. Naquela época, foi decidido usar o intervalo do Linux que você menciona por medo de que números altos de portas possam causar problemas e iniciar o intervalo em 49152. deixe muito poucos números de porta no pool. Veja este 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 em conformidade. Ao ler isso, deduzo que os desenvolvedores presumiram que a maioria das atribuições ocorreria da parte inferior do intervalo e subia. Neste artigo, eu conto um pouco mais de 100 números de porta atribuídos (não contando com protocolos diferentes como separados) entre 32768 e 49152, de modo que se aguentou muito bem nos últimos cinco anos.

Eu não sei porque o intervalo foi considerado muito pequeno, mas posso imaginar duas razões:

  1. Os números das portas são randomizados para impedir certos ataques. Quanto mais endereços no pool, melhor essa defesa funcionará.
  2. Servidores de alta atividade podem ter problemas com o esgotamento do número da porta. Embora as portas possam ser efêmeras, seu uso não é instantâneo. Em particular, sockets podem durar vários minutos após o fechamento do TCP.

Este post de blog toca no 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 um determinado conflito chegar. Eles correspondem à entrada / proc / sys que você cita.)

Em resumo. Os padrões Linux não correspondem às especificações atuais da IANA, mas qualquer sistema Linux em particular pode, se o proprietário desejar.

    
por 01.06.2012 / 04:07

Tags