Le port TCP tcp de Debian Stretch est * toujours * pair

Lors du debugging d'un comportement étrange avec un équilibreur de charge Azure, j'ai remarqué que ma stack locale Debian Stretch TCP établissait uniquement des connections TCP avec un port pair. Je ne démarre pas un protocole TCP avec un port source impair. Est-ce voulu?

C'est pour réduire la contention entre connect() et bind() (apparu sous Linux 4.2, Jessie a 3.16 et Stretch a 4.9):

 commit 07f4c90062f8fc7c8c26f8f95324cbe8fa3145a5
 Auteur: Eric Dumazet 
 Date: Sun May 24 14:49:35 2015 -0700

     tcp / dccp: essayez de ne pas épuiser ip_local_port_range dans connect ()

     Un problème de longue date sur les servers occupés est le petit port TCP disponible
     range (/ proc / sys / net / ipv4 / ip_local_port_range) et la valeur par défaut
     allocation séquentielle des ports source dans l'appel système connect ().

     Si un hôte a beaucoup de sessions TCP actives, les chances sont
     très élevé que tous les ports sont utilisés par au less un stream,
     et les tentatives suivantes de binding (0) échouent ou doivent parsingr une grande partie de
     espace pour find une fente.

     Dans ce patch, j'ai changé le sharepoint départ dans __inet_hash_connect ()
     de sorte que nous essayons de favoriser même les ports [1], en laissant des ports impairs pour bind ()
     users.

     Nous effectuons toujours une search séquentielle, il n'y a donc aucune garantie, mais
     si les cibles connect () sont très différentes, le résultat final est que nous quittons
     plus de ports disponibles pour bind (), et nous les répartissons sur toute la gamme,
     time d'abaissement pour connect () et bind () pour find un slot.

     Cette stratégie ne fonctionne correctement que si / proc / sys / net / ipv4 / ip_local_port_range
     est pair, c'est-à-dire si les valeurs de début / fin ont une parité différente.

     Par conséquent, la valeur par défaut / proc / sys / net / ipv4 / ip_local_port_range a été changée
     32768 - 60999 (au lieu de 32768 - 61000)

     Il n'y a pas de changement sur les aspects de security ici, seulement un mauvais hachage
     les régimes pourraient être éventuellement affectés par ce changement.

     [1]: La propriété impaire / paire dépend de la valeur ip_local_port_range parité

Vous voudrez peut-être également voir le suivi commit 1580ab63fc9a03593072cc5656167a75c4f1d173 .