Widzę następujący efemeryczny zakres portów na moim Linux-ie.
sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
Chcę rozszerzyć zakres portów, zaczynając od około 16000. Tutaj jest szybkie pytanie: jak bezpiecznie jest zmieniać zakres w kontekście na inne aplikacje? Czy zmiana wpłynie na inne aplikacje? Rozumiem, że wpływ na aplikację ma tylko sytuacja, gdy używa ona portów w określonym zakresie portów. Ale ogólnie, w jaki sposób rozwiązuje się tego rodzaju problemy?
Odpowiedzi:
Zmiana efemerycznego zakresu portów może powodować problemy, jeśli używasz Mesos .
Mesos reklamuje zasoby hosta na różnych platformach Mesos, które mogą następnie wybrać wykorzystanie reklamowanych zasobów. Reklamowane zasoby obejmują procesor, pamięć, porty itp. Domyślny zestaw portów reklamowanych przez Mesos to 31000-32000 . Pozwala to uniknąć kolizji z domyślnym zakresem portów efemerycznych systemu Linux 32768-61000 .
W szczególności Mesos nie wie, czy port jest używany przez inny proces, po prostu śledzi przypisanie portów do encji, które koordynuje ( Mesos Tasks & Mesos Executors ). Jeśli więc zmienisz zakres portu efemerycznego tak, że pokrywa się on z zakresem portu Mesos, prawdopodobnie jakiś arbitralny proces użyje portu efemerycznego, który jest w rzeczywistości jednym z tych „portów Mesos”. Może to doprowadzić do zaoferowania Mesosowi tego portu do szkieletu Mesos , który napotka pozornie przypadkowe awarie jego wykonawców Mesos i / lub Zadań Mesos, ponieważ nie będą w stanie powiązać się z tym portem.
Jeśli musisz zwiększyć swój efemeryczny zakres portów, a także uruchomić Mesos, możesz zmodyfikować reklamowane porty za pomocą parametru konfiguracyjnego
mesos-slave
(wkrótce zmienimy nazwę namesos-agent
)--resources
.źródło
Możesz uzyskać listę usług, na które potencjalnie może mieć wpływ, sprawdzając, co znajduje się w tym zakresie w
/etc/services
pliku lokalnym , np .:Lub w wiarygodnym miejscu:
źródło