Eu encontrei um erro muito estranho no ubuntu-server (8.04), não sei por que o dhclient não tem permissão para definir as configurações de rede! Não fui eu quem instalou o servidor, então não sei muito sobre a instalação. O servidor é usado apenas como firewall / gateway (script personalizado do iptables) e possui três nic's, um para Internet, um para LAN e outro para DMZ. Agora, o ISP alterou as configurações de IP estático para IP "estático" atribuído por meio do dhcp, e eu realmente não posso usá-lo.
Infelizmente, não posso simplesmente definir o IP estaticamente, pois o ISP fecha minha conexão quando a concessão dhcp termina:
Este é o erro que recebo: (e depois fica lá ..)
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 enquanto, eu o corrigi executando a killall dhclient; dhclient eth2
cada hora e, em seguida, definindo as configurações de IP estático para a interface, isso é suficiente para manter a conexão ativa! mas é um truque bem feio na minha opinião ..
strace -o /tmp/dhc$$ dhclient -d eth2
deve fornecer informações valiosas sobre quais chamadas estão falhando. Sim, eu conheço todos eles, mas ver os argumentos pode ajudar. Eu suspeitaria de alguma estranheza com o driver eth2, talvez o módulo esteja fora de sincronia com o kernel.-1
Espere um pouco mais antes de pressionar ctrl-c, ou talvez adicione a opção e aguarde a saída por conta própria.-f
opção ativada: silenzio.dk/pi/dhc.straceRespostas:
Com base no rastreamento de pilha no http://silenzio.dk/pi/dhc.strace o primeiro
SIOCSIFADDR: Permission denied
erro ocorre na linha 735, durante a execução do processo 26092:ifconfig eth2 inet 0 up
. Agora, apenas algoroot
podeifconfig
acontecer, então vamos rastrear a cadeia defork()
/exec()
e procurar por alterações de UID. Acontece que:Portanto, os erros ocorrem porque o processo filho em execução não possui os privilégios de root necessários. Por que isso acontece? O
debian/changelog
arquivo nasdhcp3-3.0.6.dfsg
fontes diz:Meu palpite é que
call-dhclient-script
perdeu seu bit set-UID e, portanto, não está executando com privilégios de root como deveria. (De acordo com odebian/dhcp3-client.postinst
arquivo nas fontes, ele deve pertencer aroot:dhcp
e mode4754
)fonte
chmod u+s /lib/dhcp3-client/call-dhclient-script
fez o truque!O que sua saída "dmesg" mostra quando você executa o dhclient?
Se você estiver executando o Hardy, o AppArmor faz parte da instalação padrão. É possível que o perfil do dhclient tenha dado errado. Verifique "sudo aa-status" para ver o que está acontecendo lá.
Além disso, como o seu arquivo / etc / network / interfaces é lido? Talvez você tenha endereços, rotas, etc. conflitantes, com os quais o dhclient não quer brincar?
fonte
Eu tentaria instalar o nscd se esse pacote estiver ausente e, se não funcionar, instale também o libnss-db.
Não tenho certeza se isso resolverá o seu problema, no entanto, essas são as coisas que seu rastreamento está tentando encontrar e falha.
fonte
Por favor, execute
sudo dpkg --configure -a
apenas para garantir que não seja uma repetição da situação em https://bugs.launchpad.net/ubuntu/+source/dhcp3/+bug/19740/comments/67fonte
dpkg --configure -a
fez nada (há pacotes que configurando necessário)Este é realmente um bug no Ubuntu 8.04. Para vários casos de uso, você PRECISA ter o nscd instalado (por exemplo, ao usar o openvpn) ou o dhclient não funcionará. Isso não acontece nas versões mais recentes do Ubuntu.
fonte