Ich habe einen sehr seltsamen Fehler auf Ubuntu-Server (8.04) festgestellt. Ich habe keine Ahnung, warum dhclient die Netzwerkeinstellungen nicht festlegen darf! Ich bin nicht derjenige, der den Server überhaupt installiert hat, daher weiß ich nicht viel über das Setup. Der Server wird nur als Firewall / Gateway verwendet (benutzerdefiniertes Iptables-Skript). Er verfügt über drei NICs, eine für das Internet, eine für das LAN und eine für die DMZ. Jetzt hat der ISP die Einstellungen von statischer IP auf "statische" IP geändert, die über DHCP zugewiesen wurden, und ich kann sie nicht wirklich verwenden.
Leider kann ich die IP nicht einfach statisch einstellen, da der ISP meine Verbindung schließt, wenn die DHCP-Lease endet: o
Dies ist der Fehler, den ich bekomme: (und dann hängt es einfach da ..)
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
Im Moment habe ich es behoben, indem ich killall dhclient; dhclient eth2
jede Stunde ausgeführt und dann statische IP-Einstellungen für die Schnittstelle festgelegt habe. Dies reicht aus, um die Verbindung aufrechtzuerhalten! aber es ist meiner Meinung nach ein ziemlich hässlicher Hack ..
strace -o /tmp/dhc$$ dhclient -d eth2
sollte wertvolle Informationen darüber liefern, welche Anrufe fehlschlagen. Ja, ich kenne sie alle, aber die Argumente zu sehen kann helfen. Ich würde eine Kuriosität mit dem eth2-Treiber vermuten, vielleicht ist das Modul nicht mit dem Kernel synchron.-1
Option hinzu und warten Sie, bis es von selbst beendet wird.-f
Option: silenzio.dk/pi/dhc.straceAntworten:
Basierend auf dem Stack-Trace unter http://silenzio.dk/pi/dhc.strace tritt der erste
SIOCSIFADDR: Permission denied
Fehler in Zeile 735 während der Ausführung des Prozesses 26092 auf :ifconfig eth2 inet 0 up
. Jetztroot
kann nur nochifconfig
etwas geschehen, also verfolgen wir die Kette vonfork()
/exec()
und suchen nach UID-Änderungen. Es stellt sich heraus, dass:Die Fehler treten also auf, weil der ausgeführte untergeordnete Prozess nicht über die erforderlichen Root-Berechtigungen verfügt. Warum passiert das? Die
debian/changelog
Datei in dendhcp3-3.0.6.dfsg
Quellen sagt:Ich vermute, dass
call-dhclient-script
das Set-UID-Bit verloren gegangen ist und daher nicht wie vorgesehen mit Root-Rechten ausgeführt wird. (Laut derdebian/dhcp3-client.postinst
Datei in den Quellen sollte es Eigentum vonroot:dhcp
und Modus sein4754
)quelle
chmod u+s /lib/dhcp3-client/call-dhclient-script
hat den Trick gemacht!Was zeigt Ihre "dmesg" -Ausgabe, wenn Sie dhclient ausführen?
Wenn Sie Hardy ausführen, ist AppArmor Teil der Standardinstallation. Es ist möglich, dass das Dhclient-Profil durcheinander geraten ist. Überprüfen Sie "sudo aa-status", um zu sehen, was dort passiert.
Wie liest sich außerdem Ihre Datei / etc / network / interfaces? Vielleicht haben Sie widersprüchliche Adressen, Routen usw., mit denen dhclient nicht spielen möchte?
quelle
Ich würde versuchen, nscd zu installieren, wenn dieses Paket fehlt, und wenn es damit nicht funktioniert, installieren Sie auch libnss-db.
Sie sind sich nicht sicher, ob dies Ihr Problem lösen wird. Dies sind jedoch die Dinge, die Ihr Trace zu finden versucht und die fehlschlagen.
quelle
Bitte führen Sie
sudo dpkg --configure -a
nur aus, um sicherzustellen, dass sich die Situation in https://bugs.launchpad.net/ubuntu/+source/dhcp3/+bug/19740/comments/67 nicht wiederholtquelle
dpkg --configure -a
tat überhaupt nichts (keine Pakete, die konfiguriert werden mussten)Dies ist eigentlich ein Fehler in Ubuntu 8.04. In einigen Anwendungsfällen muss nscd installiert sein (z. B. bei Verwendung von openvpn), oder dhclient funktioniert nicht. Dies ist in neueren Ubuntu-Versionen nicht der Fall.
quelle