IANAがポートを1023までしか割り当てなかった時代がありました。RFC1700を参照してください。かつてこれは標準でした。ほとんどの場合、RFCのストリームで状況が変わったときに見つけるのに問題はありませんが、ポートを1024から49152に登録済みから割り当て済みに変更するという質問のために、私は不足しました。
Linuxの歴史に関しては、2007年にデフォルトのip_local_port_rangeに関して提起された質問がありました。そのとき、高いポート番号が問題を引き起こし、49152で範囲を始めると少なすぎるかもしれないという恐れから、言及したLinux範囲を使用することが決定されましたプール内のポート番号。これとそのスレッドをご覧ください。当時の表明された考えは、32768から始まることは、IANAの手順の精神の範囲内にあるということでした。これを読んで、開発者は、ほとんどの割り当てが範囲の下部から発生し、上に移動すると想定したと推測します。この記事の執筆時点では、32768〜49152の間に割り当てられた100個を少し超えるポート番号をカウントします(異なるプロトコルは個別にカウントしません)。
範囲が小さすぎると考えられた理由はわかりませんが、2つの理由が考えられます。
- ポート番号は、特定の攻撃を阻止するためにランダム化されます。プール内のアドレスが多いほど、この防御はうまく機能します。
- アクティビティの多いサーバーでは、ポート番号の枯渇で問題が発生する場合があります。ポートは一時的なものかもしれませんが、その使用は瞬時ではありません。特に、ソケットはTCP終了後数分続くことがあります。
このブログ投稿では2番に触れており、Linuxシステムで異なる範囲のローカルポートを使用したい場合の答えを提案しています。(/etc/sysctl.dを使用して好みの範囲を定義します。特定の競合が発生した場合に使用できるip_local_reserved_portsエントリもあります。これらは、引用した/ proc / sysエントリと一致します。)
要約すれば。Linuxのデフォルトは現在のIANA仕様と一致しませんが、所有者が望むなら、特定のLinuxシステムは一致します。
ip_local_port_range
とにかくの値を使用すべきではないようです。