Ich habe Ubuntu 10.04 Server derzeit mit DHCP3-Server sowie eine Bridged-Schnittstelle (br0) für die Verwendung mit virtuellen Maschinen eingerichtet. Das Problem, das ich habe, ist, dass beim Neustart des Servers der dhcp3-Server aufgrund der zusätzlichen Verzögerung, die durch das Aufrufen der überbrückten Schnittstelle verursacht wird, nicht geladen werden kann.
Im Wesentlichen hat br0 erst spät im Startzyklus eine IP-Adresse für die Verwendung mit DHCP3-Server, lange nachdem DHCP3-Server versucht hat, zu laden.
Sobald der Server gestartet ist, kann ich '/etc/init.d/dhcp3-server start' ohne Probleme ausführen.
Kann ich Folgendes tun: - DHCP3-Server zwingen, zu warten, bis die Schnittstelle geladen wurde, bevor versucht wird, sie zu laden? - Starten Sie den DHCP3-Server, nachdem alles andere geladen wurde?
quelle
Sie können das
/etc/init.d/dhcp3-server
Startskript so ändern , dass darauf gewartet wird, dass eine IP-Adresse verfügbar istbr0
. Zum Beispiel: (Warnung: ungetesteter Code!)Das Snippet sollte
case ... start)
vor dem Start des DHCP3-Daemons innerhalb des Teils in das Startskript aufgenommen werden. Natürlich sollten Sie die Wartezeit und die Anzahl der Versuche so einstellen, dass sie mit Ihrer Umgebung übereinstimmen (wie lange dauert es maximal, bis br0 die IP-Adresse erhält?)quelle
grep -q
Leitung: 1. Ich denke, die Übereinstimmung schlägt fehl, weil die Bridge eine IPv6-Adresse erhält, sobald sie aktiv ist. Wenn Sie nur an einer IPv4-Adresse interessiert sind, ersetzen Sie einfach diegrep
Zeile durchgrep -q 'inet addr:'
(bereits oben ausgeführt). Andernfalls muss ein komplexerer regulärer Ausdruck gefunden werden, der allen möglichen endgültigen IP-Adressen Ihrer Bridge entspricht. 2. Die-q
Option unterdrückt die Ausgabe (genau wie> /dev/null
)log_warning_msg
; Ich glaube, ich habe es gemäß Ihrem Vorschlag behoben