es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿EADDRNOTAVAIL incluso después de usar IP_FREEBIND?

Tenía la impresión de que en Linux podías enlazar a una dirección no local siempre que establecieras la opción de socket IP_FREEBIND, pero no es el comportamiento que estoy viendo:

$ sudo strace -e 'trace=%network' ...
...
socket(AF_INET, SOCK_RAW, IPPROTO_UDP)  = 5
setsockopt(5, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(5, SOL_SOCKET, SO_NO_CHECK, [1], 4) = 0
setsockopt(5, SOL_IP, IP_HDRINCL, [1], 4) = 0
setsockopt(5, SOL_IP, IP_FREEBIND, [1], 4) = 0
bind(5, {sa_family=AF_INET, sin_port=htons(abcd), sin_addr=inet_addr("w.x.y.z")}, 16) = -1 EADDRNOTAVAIL (No se puede asignar la dirección solicitada)
...

También establecí la configuración ip_nonlocal_bind, solo para estar seguro, y obtengo los mismos resultados.

$ sysctl net.ipv4.ip_nonlocal_bind
net.ipv4.ip_nonlocal_bind = 1
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que incluso con la opción del socket IP_FREEBIND y la configuración ip_nonlocal_bind establecida en 1, el sistema aún no permite la asignación a una dirección no local. El error EADDRNOTAVAIL indica que la dirección solicitada no está disponible para su uso.

    Es posible que existan medidas de seguridad adicionales que impidan la asignación a direcciones no locales. Podría ser útil revisar los registros del sistema en busca de mensajes relevantes. Alternativamente, podría valer la pena probar en un sistema diferente para ver si el comportamiento es consistente.

    En general, es importante considerar cuidadosamente las implicaciones de seguridad de la asignación a direcciones no locales y asegurarse de que cualquier configuración de este tipo cumpla con las políticas de seguridad de la organización.

Comments are closed.