Veo el siguiente rango de puertos efímero en mi caja de Linux.
sysctl net.ipv4.ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
Quiero ampliar el rango de puertos para comenzar desde alrededor de 16000. Una pregunta rápida aquí es: ¿qué tan seguro es cambiar el rango en contexto a las otras aplicaciones? ¿Otras aplicaciones se verán afectadas por este cambio? Entiendo que una aplicación se ve afectada solo si está utilizando los puertos en el rango de puertos especificado. Pero, en general, ¿cómo se trata este tipo de problemas?
Respuestas:
Cambiar el rango de puertos efímero puede causar problemas si está utilizando Mesos .
Mesos anuncia los recursos de un host a varios Mesos Frameworks que luego pueden elegir usar los recursos anunciados. Los recursos anunciados incluyen CPU, memoria, puertos, etc. El conjunto predeterminado de puertos que Mesos anuncia es 31000-32000 . Esto evita un choque con el rango de puerto efímero predeterminado de Linux de 32768-61000 .
Notablemente, Mesos no sabe si un puerto es utilizado por algún otro proceso, solo rastrea la asignación de puertos a las entidades que organiza ( Mesos Tasks & Mesos Executors ). Entonces, si cambia el rango de puertos efímeros de modo que se superponga con el rango de puertos de Mesos, es probable que algún proceso arbitrario use un puerto efímero que en realidad sea uno de esos "puertos de Mesos". Esto podría llevar a que Mesos ofrezca ese puerto a un Marco de Mesos , que se encontraría con fallas aparentemente aleatorias de sus Ejecutores de Mesos y / o Tareas de Mesos, ya que no podrán unirse a ese puerto.
Si necesita aumentar su rango de puerto efímero y también necesita ejecutar Mesos, puede modificar los puertos anunciados a través de un parámetro de configuración
mesos-slave
(que pronto cambiará su nombre amesos-agent
)--resources
.fuente
Puede obtener una lista de los servicios potencialmente afectados al ver qué hay en ese rango en su
/etc/services
archivo local , por ejemplo:O en el lugar autorizado:
fuente