web-dev-qa-db-ja.com

Linuxエフェメラルポートの範囲を変更することの安全性

Linuxボックスに次の一時ポート範囲が表示されます。

sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768    61000

ポート範囲を16000年頃から開始するように拡張したいと思います。ここで簡単な質問です。コンテキスト内の範囲を他のアプリケーションに変更することはどれほど安全ですか?他のアプリケーションはこの変更の影響を受けますか?指定したポート範囲のポートを使用している場合にのみ、アプリケーションが影響を受けることを理解しています。しかし、一般的に、これらの種類の問題はどのように対処されましたか?

14
Ashwin Tumma

Mesos を使用している場合、エフェメラルポート範囲を変更すると問題が発生する可能性があります。

MesosはホストのリソースをさまざまなMesos Frameworksにアドバタイズし、アドバタイズされたリソースの使用を選択できます。アドバタイズされるリソースには、CPU、メモリ、ポートなどが含まれます。Mesosがアドバタイズするデフォルトのポートのセットは、31000-32000です。これにより、デフォルトのLinuxエフェメラルポート範囲32768-61000との衝突が回避されます。

特に、Mesosはポートが他のプロセスによって使用されているかどうかを認識していません。それは、オーケストレーションするエンティティへのポートの割り当てを追跡するだけです(Mesos TasksMesos Executors)。したがって、一時ポート範囲をMesosポート範囲と重複するように変更すると、任意のプロセスが実際にはそれらの「Mesosポート」の1つである一時ポートを使用する可能性があります。これにより、MesosがそのポートをMesos Frameworkに提供し、Mesos Executorsおよび/またはMesos Tasksは、そのポートにバインドできないためです。

エフェメラルポート範囲を拡大する必要があり、Mesosを実行する必要がある場合は、mesos-slavemesos-agentに名前が変更される)--resourcesの構成パラメーターを使用して、アドバタイズされたポートを変更できます。 。

10
erik.weathers

ローカル/etc/servicesファイル、例:

awk '/^#/ { next } $2+0 >= 16000 && $2+0 < 32768 { print }' /etc/services

または権威ある場所で:

wget http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
awk -F, '$2+0 >= 16000 && $2+0 < 32768 { print }' service-names-port-numbers.csv
4
Josip Rodin