Seberapa aman untuk mengubah rentang Port Ephemeral Linux

14

Saya melihat rentang port fana berikut pada kotak Linux saya.

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

Saya ingin memperluas jangkauan port mulai dari sekitar 16000. Pertanyaan singkat di sini adalah: seberapa amankah mengubah rentang dalam konteks ke aplikasi lain? Apakah aplikasi lain akan terpengaruh oleh perubahan ini? Saya mengerti bahwa aplikasi hanya terpengaruh jika menggunakan port (s) dalam kisaran port yang ditentukan. Tetapi secara umum, bagaimana masalah seperti ini ditangani?

Ashwin Tumma
sumber
Saya tidak berpikir bahwa ada efek pada aplikasi lain, tetapi saya tidak yakin. Pertanyaan menarik.
ikrabbe
Baik. Bahkan saya mencoba mencari beberapa dokumentasi lain, dan saya tidak menemukan efek pada aplikasi lain. Dua tautan berikut adalah penjelasan yang sangat bagus tentang alasan mengapa saya menghadapi masalah ini: vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html ncftp.com/ncftpd/doc/misc /ephemeral_ports.html
Ashwin Tumma
@ Ikrabbe Ini pasti akan berdampak pada aplikasi lain jika, misalnya, browser Anda membuka porta sesaat untuk menghubungi situs web, maka seseorang / sesuatu mencoba untuk memulai aplikasi yang kebetulan menggunakan port itu. Aplikasi akan gagal.
goldilocks
3
Demi kelengkapan saja, sintaks untuk mengedit kisaran nomor port adalah sebagai berikut: $ sudo sysctl -w net.ipv4.ip_local_port_range = "15000 61000"
Ashwin Tumma

Jawaban:

10

Mengubah rentang port sesaat dapat menyebabkan masalah jika Anda menggunakan Mesos .

Mesos mengiklankan sumber daya host ke berbagai Kerangka Mesos yang kemudian dapat memilih untuk menggunakan sumber daya yang diiklankan. Sumber daya yang diiklankan termasuk CPU, memori, port, dll. Set default port yang diiklankan Mesos adalah 31000-32000 . Ini menghindari bentrokan dengan kisaran port ephemeral Linux default 32768-61000 .

Khususnya, Mesos tidak tahu apakah suatu port digunakan oleh proses lain, itu hanya melacak penugasan port ke entitas yang diaturnya ( Mesos Tasks & Mesos Executors ). Jadi jika Anda mengubah rentang port fana sehingga tumpang tindih dengan rentang port Mesos, kemungkinan beberapa proses sewenang-wenang akan menggunakan porta fana yang sebenarnya merupakan salah satu dari "porta Mesos". Hal ini dapat menyebabkan Mesos menawarkan pelabuhan itu ke Kerangka kerja Mesos , yang akan menghadapi kegagalan yang tampaknya acak dari Pelaksana Mesos dan / atau Tugas Mesos karena mereka tidak akan dapat mengikat ke pelabuhan itu.

Jika Anda perlu meningkatkan rentang port sementara Anda dan juga perlu menjalankan Mesos, maka Anda dapat memodifikasi port yang diiklankan melalui parameter konfigurasi mesos-slave(akan segera diganti nama menjadi mesos-agent) dari --resources.

erik
sumber
4

Anda bisa mendapatkan daftar layanan yang berpotensi terkena dampak dengan melihat apa yang ada dalam kisaran itu di /etc/servicesfile lokal Anda , misalnya:

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

Atau di tempat yang berwenang:

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
Josip Rodin
sumber
Terima kasih untuk skrip awk, itu pasti membantu dalam mengidentifikasi port-port yang tercantum dalam layanan!
Ashwin Tumma