Interfacekonfiguration im laufenden Betrieb
(Die Seite wurde neu angelegt: ===Altlasten=== Bei Hetzner-Servern im Auslieferungszustand oder nach der Installation mit installimage ist die Netzwerkkonfiguration nicht optimal. iface eth0 inet s...) |
(→Vorbereitung) |
||
Zeile 29: | Zeile 29: | ||
gateway xx.yy.zz.65 | gateway xx.yy.zz.65 | ||
− | + | Zu ändern ist '''netmask''', mit '''pointopoint''' wird eine zusätzliche Hostroute angelegt, damit das Gateway überhaupt noch erreichbar ist. Durch die /32-Netmask ist dies sonst mehr möglich. Dafür entfällt hier '''broadcast''' und die /26-Route. Achtung, '''pointopoint''', nicht poin'''tt'''opoint! | |
− | Dafür entfällt hier die /26-Route. Achtung, '''pointopoint''', nicht poin'''tt'''opoint! | + | |
Auf diesem Server laufende Virtuelle Maschinen sollten angehalten werden, da sie sonst bei einem Reboot im Fehlerfalle nicht korrekt heruntergefahren werden. | Auf diesem Server laufende Virtuelle Maschinen sollten angehalten werden, da sie sonst bei einem Reboot im Fehlerfalle nicht korrekt heruntergefahren werden. |
Version vom 2. Juli 2011, 11:12 Uhr
Inhaltsverzeichnis |
Altlasten
Bei Hetzner-Servern im Auslieferungszustand oder nach der Installation mit installimage ist die Netzwerkkonfiguration nicht optimal.
iface eth0 inet static address xx.yy.zz.76 broadcast xx.yy.zz.127 netmask 255.255.255.192 gateway xx.yy.zz.65 up route add -net xx.yy.zz.64/26 gw xx.yy.zz.65 dev eth0
Dabei wird ein Subnetz zugewiesen, in dem sich 62 Hosts befinden können. (manchmal auch /27 und netmask *.224) Will man jetzt einen anderen Server ansprechen, der in diesem Subnetz liegt, ist das nicht möglich. Ein einfaches Ändern mit anschließenden
~# ifdown eth0; ifup eth0
funktioniert nicht, da für ifdown noch die alten Einstellungen benötigt werden. Sofern dem Server keine weitere IP-Adresse zugewiesen ist und die Korrektur im laufenden Betrieb erfolgen muß, besteht die Gefahr, sich bei einer Fehlkonfiguration auszusperren. Daher sind einige Vorsichtsmaßnahmen zu treffen.
Vorbereitung
Als erstes natürlich ein Backup und eine Arbeitskopie der aktuellen Konfiguration erstellen:
~# cd /etc/network ~# cp interfaces interfaces.bak ~# cp interfaces interfaces.new
In interfaces.new bereiten wir die neue Konfiguration vor und ändern die Einstellungen für eth0:
iface eth0 inet static address xx.yy.zz.76 netmask 255.255.255.255 pointopoint xx.yy.zz.65 gateway xx.yy.zz.65
Zu ändern ist netmask, mit pointopoint wird eine zusätzliche Hostroute angelegt, damit das Gateway überhaupt noch erreichbar ist. Durch die /32-Netmask ist dies sonst mehr möglich. Dafür entfällt hier broadcast und die /26-Route. Achtung, pointopoint, nicht pointtopoint!
Auf diesem Server laufende Virtuelle Maschinen sollten angehalten werden, da sie sonst bei einem Reboot im Fehlerfalle nicht korrekt heruntergefahren werden. Zur Sicherheit aktivieren wir das Rescue-system für den Server bei Hetzner und setzen danach einen verzögerten Reboot ab.
~# shutdown -r +10
Falls das System nicht mehr erreichbar ist, wird es nach 10 Minuten im Rescue-System starten.
Die Abkürzung
Am schnellsten geht es jetzt, indem eth0 mit den alten Einstellungen angehalten, die Neuen kopiert und anschließend das Interface neu gestartet wird. Dies muß zwingend als ein Aufruf geschehen, da man nach dem ifdown offline ist.
~# ifdown eth0; cp interfaces.new interfaces; ifup eth0
Wenn soweit alles funktioniert hat, brechen wir jetzt den shutdown ab:
~# shutdown -c
Der sichere Weg
Hierbei sollte das für den Neustart eingestellte Zeitlimit nicht aus den Augen gelassen werden.
Den aktuellen Zustand sehen wir mit:
~# ip addr show ~# ip route show
Zuerst die neue Adresse hinzufügen:
~# ip addr add xx.yy.zz.76 peer xx.yy.zz.65 brd xx.255.255.255 dev eth0
Kontrolle, ob alles Benötigte vorhanden ist:
~# ip addr show ... inet xx.yy.zz.76/26 brd xx.yy.zz.127 scope global eth0 inet xx.yy.zz.76 peer xx.yy.zz.65/32 brd xx.255.255.255 scope global eth0 ... ~# ip route show xx.yy.zz.65 dev eth0 proto kernel scope link src xx.yy.zz.76 xx.yy.zz.64/26 via xx.yy.zz.65 dev eth0 default via xx.yy.zz.65 dev eth0
Wenn die hinzugekommenen Einträge korrekt sind, können die Überflüssigen (mit /26) entfernt werden:
~# ip addr del xx.yy.zz.76/26 brd xx.yy.zz.127 dev eth0 ~# ip route del xx.yy.zz.64/26 via xx.yy.zz.65 dev eth0
Nochmal abschließend kontrollieren:
~# ip addr show ... inet xx.yy.zz.76 peer xx.yy.zz.65/32 brd xx.255.255.255 scope global eth0 ... ~# ip route show xx.yy.zz.65 dev eth0 proto kernel scope link src xx.yy.zz.76 default via xx.yy.zz.65 dev eth0
Da soweit alles funktioniert hat, brechen wir jetzt den shutdown ab:
~# shutdown -c
Zum Abschluß machen wir die Konfiguration dauerhaft, damit es auch nach dem nächsten Neustart noch so ist:
~# cp interfaces.new interfaces
Der Notfall
Im Rescue-System mounten wir die Root-Partition und kopieren die vorbereitete Konfiguration:
~# mount -t auto /dev/md0 /mnt ~# cd /mnt/etc/network ~# cp interfaces.new interfaces ~# shutdown -r now