Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit mehreren Netzwerkkarten


few
2007-09-20, 09:10:37
Hallo,

ich habe folgendes Problem. Ich will mehrere festplattenlose Rechner übers Netzwerk starten. Auf dem Server ist soweit alles installiert und funktioniert auch. Das Problem ist, dass dort wo die Rechner später stehen zwei getrennte Netzwerke existieren. Sowohl Server als auch alle zu startetenden Rechner haben zwei Netzwerkkarten. NFS (und auch alle anderen Dienste) sollen über 192.168.0.* laufen, da der Server dort eine 1Gbit Karte hat. Alles andere sind 100Mbit Karten.

Mache ich einen der Rechner an erkennt das BIOS als erstes die Karte die ins 192.168.0.* Netz soll und bootet darüber. Alles gut soweit. Dann kommt aber der Kernel und erkennt die Karten in genau der falschen Reihenfolge. Er bekommt dann eine IP im Bereich 192.168.0.* in dem Netz, das an der 192.168.1.* Karte des Serves endet.

Frage ist kann ich dem Kernel schon in der Kommandozeile beim Starten vorschreiben in welcher Reihenfolge er die Karten erkennen soll ?

Netzwerkanschlüsse am Server vertauschen geht leider nicht. Und den Server als Gateway einrichten, damit die Netzwerke untereinander kommunizieren können halte ich aus Performancegründen für keine gute Idee.

Hoffe das war halbwegs verständlich. Schonmal vielen Dank für eure Antworten.

klutob
2007-09-20, 11:04:12
Du kannst dem Kernel im Bootloader, über die boot-parameter mitteilen, wie die Netzwerkkarten zugeordnet werden sollen.
Dazu mußt du dir I/O Adressen und IRQs kennen -> diese Infos bekommst du mit "lspci -v".
Damit kannst du nach folgendem Schema die Zuordnung der NICs im Kernel bestimmen (an die Kernelbootline im Bootloader anhängen).

append = "ether=irq,ioadd,eth0 ether=irq,ioadd,eth1"

Bei mir siehts zum Beispiel so aus

00:0a.0 Ethernet controller: nVidia Corporation Unknown device 054c (rev a2)
Subsystem: ASRock Incorporation Unknown device 054c
Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 4344
Memory at fea7c000 (32-bit, non-prefetchable) [size=4K]
I/O ports at d880 [size=8]
Memory at fea7e400 (32-bit, non-prefetchable) [size=256]
Memory at fea7e000 (32-bit, non-prefetchable) [size=16]
Capabilities: [44] Power Management version 2
Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/3 Enable+
Capabilities: [6c] HyperTransport: MSI Mapping

Die Werte sind also
irq = 4344
ioadd = 0xd880

/edit
Die I/O Adresse ist der Suchparameter, den IRQ kannst du mit der "append"-Zeile festlegen. Falls dir die aktuelle Zuordnung des Kernels nicht schmeckt, ist es also kein Problem den IRQ nach deinen Wünschen anzupassen. :)

few
2007-09-20, 11:47:09
Dank dir für die Antwort.
Hab grad noch eine andere Lösung gefunden. Man kann udev-rules mit in die initial-ramdisk tun und dann die Nummern nach den mac-Adressen vergeben. Die Idee mit den udev rules hatte ich schon vorher, wusste nur nicht, das man die auch so einbinden kann.
Problem ist also gelöst.