Problem mit Betrieb mehrerer Interfaces

hardware
german

#1

Unser für Univention vorgesehener Server verfügt über drei Netzwerkschnittstellen, die aus Gründen der Lastverteilung jeweils mit einer eigenen IP im selben Subnetz für verschiedene Anwendungen zur Verfügung stehen sollen (100, 101 u 102).

Das allerdings funktioniert unter UCS 1.3 bisher nicht. Eine Verbindung ins Netzwerk besteht nur, wenn die erste Schnittstelle eth0 aktiv ist. Dann sind über eth0 aber auch alle drei IPs ansprechbar, auch bei inaktiven eth1 und eth2. Ziehe ich auf eth0 den Stecker, wird bei aktiven eth1 und eth2 zwar der Status ’ up broadcast running multicast’ ausgegeben, ein Ping ins Netz führt allerdings zur Ausgabe ‘eth0: Destination host unreachable’.

Netstat -rn gibt aus (wobei X.X.X.0 jeweils für das identische Subnetz steht):

Destination Gateway Genmask Flags MSS Window irtt Iface
X.X.X.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
X.X.X.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
X.X.X.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
0.0.0.0 X.X.X.200 0.0.0.0 UG 0 0 0 eth0 (Standardgateway extern)

Alle drei Interfaces müssten also eigentlich auf X.X.X.0 zugreifen können. Fehlt da u.U. eine Metrik, also Gewichtung der Schnittstellen? Wenn ja, wie könnte die konfiguriert werden? Ein Betrieb der drei Interfaces in verschiedenen Subnetzen ist übrigens kein Problem. Ein Hardwarefehler ist damit ausgeschlossen.

Für einen Hinweis vielen Dank im voraus,

S. Görler


#2

Hallo,

dieses Problem entsteht dadurch das in der Routing Tabelle eth0 für Ihr Subnetz an erster Stelle steht. Ist dieses Interface nicht erreichbar werden weitere nicht versucht. eth0 wird in Ihrem Fall auch Anfragen beantworten die an eth1 gerichtet wurden, sodass die Antwort von einer falschen IP-Adresse kommt.

Es gibt zwei Möglichkeiten diesem Problem zu begegnen:
1.
Sie setzen statische Routen falls Anfragen bestimmter IP-Adressen/Clients immer von einem definierten Interface beantwortet werden sollen. Das ist bei vielen Clients allerdings auch viel Arbeit und ist schlecht zu warten.

Durch sogenanntes Bonding wird es möglich mehrere physikalische Interfaces zu failover Zwecken zu einem Bonding Interface zu “Gruppieren”. Weitere Informationen dazu finden Sie unter:
glasnost.beeznest.org/articles/179
und sourceforge.net/projects/bonding

Das benötigte Kernel Modul “bonding” ist in den Univention Kernel Paketen enthalten. Das Paket ifenslave kann auf Anfrage zur Verfügung gestellt werden.


#3

Hallo,

hat ein wenig gedauert seit meiner ursprünglichen Anfrage… nachdem ich mich dem Thema heute aber noch einmal ausführlich gewidmet und Sie mir das Ifenslave-Paket gesendet haben funktioniert das “Bonding” meiner drei NICs jetzt bestens.

Alle drei sind nun über die selbe IP ansprechbar und jedes Interface arbeitet bei Ausfall der anderen beiden per Fail-over reibungslos weiter. Die von Ihnen gesendeten Links beschreiben das reine Fail-over-Konzept beim Bonding (Bonding mode=1), durch Setzen von mode=0 und Einbindung des mii-Moduls in den Kernel funktioniert das Bonding nun nach dem Round-Robin Prinzip, so dass zusätzlich eine gleichmäßige Lastverteilung zwischen den gerade aktiven Schnittstellen stattfindet, ein- und ausgehend. Toll Sache.

Allerdings musste ich zum Anlegen des bond0-Interfaces die Datei /etc/networks/interfaces editieren. Würden sich diese Einstellungen auch fest via Baseconfig hinterlegen lassen, oder muss ich die Datei nach jedem Systemupdate wiederherstellen?

Vielen Dank für Ihre Hilfe,

S. Görler


#4

Sehr geehrter Herr Görler,

Damit Ihre Änderungen an der Datei /etc/network/interfaces erhalten bleiben müssen Sie diese in dem zugehörigen Baseconfig-Template vornommen, das Sie unter /etc/univention/templates/files/etc/network/interfaces finden können. Nachdem Sie Ihre Anpassungen durchgeführt haben können Sie mit dem folgenden Befehl die Konfigurationsdatei neu erzeugen:

univention-baseconfig commit /etc/network/interfaces

Mit freundlichen Grüßen

Andreas Büsching


#5

Ich habe UCS 2.1 installiert und brauche das Paket “ifenslave”.
Könnt Ihr mir helfen?
Danke!
H. Bozkurt


#6

Hallo,

[quote=“bozkur_h”]Ich habe UCS 2.1 installiert und brauche das Paket “ifenslave”.
Könnt Ihr mir helfen?[/quote]

Das Paket ist momentan nicht für UCS 2.1 verfügbar. Eine Möglichkeit wäre, dass Sie sich das Paket selbst anhand der Anleitung im Forum bauen (Erstellung selbst gebauter UCS Pakete). Alternativ können Sie sich aber auch gerne direkt an uns (Mail an feedback@univention.de) wenden wenn Sie die Erstellung bei uns beauftragen möchten.

Mit freundlichen Grüßen
Andreas Büsching


#7

[quote][i][quote=“Buesching”]Hallo,

[quote=“bozkur_h”]Ich habe UCS 2.1 installiert und brauche das Paket “ifenslave”.
Könnt Ihr mir helfen?[/quote][/quote]

Das Paket ist momentan nicht für UCS 2.1 verfügbar. Eine Möglichkeit wäre, dass Sie sich das Paket selbst anhand der Anleitung im Forum bauen (Erstellung selbst gebauter UCS Pakete). Alternativ können Sie sich aber auch gerne direkt an uns (Mail an feedback@univention.de) wenden wenn Sie die Erstellung bei uns beauftragen möchten.
[/i][/quote]

Sind alle notwendigen Pakete, denn jetzt in UCS 2.2 wieder enthalten? - Auch ifenslave?


#8

Hallo,

das Paket “ifenslave” ist für UCS 2.2 nicht gebaut. Es kann ganz einfach nach der Anleitung unter http://sdb.univention.de/content/1/7/de/ucs-pakete-selbst-erstellen.html erstellt werden.

Mit freundlichen Grüßen
Tobias Scherer