Interfacekonfiguration im laufenden Betrieb

Aus ConfigWiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Vorbereitung)
Zeile 1: Zeile 1:
 +
[[Category:Linux]]
 
===Altlasten===
 
===Altlasten===
 
Bei Hetzner-Servern im Auslieferungszustand oder nach der Installation mit installimage ist die Netzwerkkonfiguration nicht optimal.
 
Bei Hetzner-Servern im Auslieferungszustand oder nach der Installation mit installimage ist die Netzwerkkonfiguration nicht optimal.

Version vom 1. Februar 2012, 10:48 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
Meine Werkzeuge