LinuCレベル3 プラットフォームスペシャリスト プラットフォームの最適化 問6
プラットフォームの最適化/カーネルパラメータによるネットワーク最適化短命なアウトバウンド接続を大量に生成するサーバーで、送信元ポートの枯渇が発生している。net.ipv4.ip_local_port_rangeによる対処として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「プラットフォームの最適化」に対応。実際の試験問題ではありません)
- A「1 65535」を設定し、ウェルノウンポートを含めたすべての番号をエフェメラルポートとして使えるようにする
- Bこのパラメータは待ち受け側のポート範囲を決めるものなので、アウトバウンド接続の枯渇には効果がない
- C既定より広い範囲(例: 10000 65000)を設定し、同時に使用できる送信元ポートの数を増やす
- D範囲をできるだけ狭く設定することでポートの再利用が促進され、TIME_WAIT状態のソケットが早く解放される
正解:C
解説
net.ipv4.ip_local_port_rangeは、アウトバウンド接続の送信元ポートとして自動的に割り当てられるポート番号の範囲を決めるパラメータです。短命な接続を大量に張ってポートが枯渇する場合は、この範囲を既定より広げることで同時に使用できるポート数を増やせます。ただし、ウェルノウンポートや自ホストが待ち受けに使うポートまで含めると、サービスのbindと衝突するおそれがあります。
選択肢ごとの解説
- A誤り。ウェルノウンポートまで含めると、そのポートで待ち受けるサービスのbindと衝突するおそれがあり、適切な対処ではありません。
- B誤り。ip_local_port_rangeはアウトバウンド接続の送信元ポートの範囲を決めるパラメータで、まさにこの問題に効きます。
- C正しい。範囲を広げて同時に使用できる送信元ポートの数を増やすのが、このパラメータによる対処です。
- D誤り。範囲を狭めれば使用できるポートが減り、枯渇はかえって悪化します。TIME_WAITの解放が早まるわけでもありません。