¡He encontrado un error muy extraño en ubuntu-server (8.04), no tengo idea de por qué dhclient no puede establecer la configuración de red! No soy quien instaló el servidor en primer lugar, así que no sé mucho sobre la configuración. El servidor solo se usa como firewall / gateway (script de iptables personalizado), tiene tres nic, uno para internet, uno para LAN y otro para DMZ. Ahora el ISP ha cambiado la configuración de ip estática a ip "estática" asignada a través de dhcp, y realmente no puedo usarla.
Lamentablemente, no puedo configurar la IP de forma estática ya que el ISP cierra mi conexión cuando finaliza el contrato de arrendamiento de dhcp: o
Este es el error que obtengo: (y luego simplemente se cuelga allí ...)
root@fw:~# dhclient eth2
Internet Systems Consortium DHCP Client V3.0.6
Copyright 2004-2007 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFFLAGS: Permission denied
Listening on LPF/eth2/00:50:52:c1:a1:32
Sending on LPF/eth2/00:50:52:c1:a1:32
Sending on Socket/fallback
DHCPDISCOVER on eth2 to 255.255.255.255 port 67 interval 8
DHCPOFFER of 2.10.56.19 from 93.87.36.42
DHCPREQUEST of 2.10.56.19 on eth2 to 255.255.255.255 port 67
DHCPACK of 2.10.56.19 from 93.87.36.42
SIOCSIFADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCSIFNETMASK: Permission denied
SIOCSIFBRDADDR: Permission denied
SIOCSIFFLAGS: Permission denied
SIOCADDRT: Operation not permitted
por ahora lo he solucionado ejecutando killall dhclient; dhclient eth2
cada hora y luego configurando la configuración de IP estática para la interfaz, ¡esto es suficiente para mantener la conexión activa! pero es un truco bastante feo en mi opinión ...
strace -o /tmp/dhc$$ dhclient -d eth2
debería proporcionar información valiosa sobre qué llamadas están fallando. Sí, los conozco a todos, pero ver los argumentos puede ayudar. Sospecharía algún inconveniente con el controlador eth2, tal vez el módulo no esté sincronizado con el núcleo.-1
opción y espere a que salga por sí solo.-f
opción activada: silenzio.dk/pi/dhc.straceRespuestas:
Con base en el seguimiento de pila en http://silenzio.dk/pi/dhc.strace la primera
SIOCSIFADDR: Permission denied
error se produce en la línea 735, durante la ejecución del proceso 26092:ifconfig eth2 inet 0 up
. Ahora soloroot
puedeifconfig
aparecer algo, así que rastreemos la cadena defork()
/exec()
y busquemos cambios de UID. Resulta que:Por lo tanto, los errores se producen porque el proceso secundario en ejecución no tiene los privilegios de raíz necesarios. ¿Por qué pasó esto? El
debian/changelog
archivo en lasdhcp3-3.0.6.dfsg
fuentes dice:Supongo que
call-dhclient-script
ha perdido su bit set-UID y, por lo tanto, no se está ejecutando con los privilegios de root como debería. (Según eldebian/dhcp3-client.postinst
archivo en las fuentes, debería ser propiedad deroot:dhcp
y mode4754
)fuente
chmod u+s /lib/dhcp3-client/call-dhclient-script
¡Hizo el truco!¿Qué muestra su salida "dmesg" cuando ejecuta dhclient?
Si está ejecutando Hardy, AppArmor es parte de la instalación predeterminada. Es posible que el perfil de dhclient se haya vuelto loco. Verifique "sudo aa-status" para ver qué está sucediendo allí.
Además, ¿cómo se lee su archivo / etc / network / interfaces? ¿Quizás tienes direcciones, rutas, etc. en conflicto con las que dhclient no quiere jugar?
fuente
Intentaría instalar nscd si falta ese paquete, y si no funciona con esto, instale también libnss-db.
No estoy seguro de si eso resolverá su problema, sin embargo, esas son las cosas que su rastro está tratando de encontrar y falla.
fuente
Ejecute
sudo dpkg --configure -a
solo para asegurarse de que no se trata de una repetición de la situación en https://bugs.launchpad.net/ubuntu/+source/dhcp3/+bug/19740/comments/67fuente
dpkg --configure -a
no hizo nada (no hubo paquetes que necesitaran configuración)Esto es realmente un error en Ubuntu 8.04. Para varios casos de uso, NECESITA tener instalado nscd (por ejemplo, cuando usa openvpn) o dhclient no funcionará. Esto no sucede en las nuevas versiones de Ubuntu.
fuente