Sie sind nicht angemeldet.

1

16.02.2008, 01:42

Konfiguration von 3 Netzwerkkarten auf 3 unterschiedliche IPs

Hallo,

beim Aufbau eines Internet Routers/Firewall scheitere ich bereits an der Konfiguration der Netzwerkschnittstellen.
ich habe 3 Netzwerkkarten in meinem Rechner (1x onboard, 2x PCI). Die dritte Karte ist nur zu Testzwecken eingebaut worden, das Problem besteht auch mit 2 Karten. Bin mittlerweile ein bisschen am verzweifeln hier.

Quellcode

1
2
3
00:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) 
00:07.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 74) 
00:0b.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5788 Gigabit Ethernet (rev 03) 


Alle Karten werden beim Booten erkannnt, allerdings nicht wirklich richtig in das System eingebunden:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
home ~ # dmesg | grep eth
Parsing all Control Methods:
Table [DSDT](id 0001) - 513 Objects with 47 Devices 148 Methods 32 Regions
Initializing Device/Processor/Thermal objects by executing _INI methods:.
Executed 1 _INI methods requiring 0 _STA executions (examined 50 objects)
eth1: Tigon3 [partno(BCM95705A50) rev 3003 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000Base-T Ethernet 00:0c:76:5b:6e:60
eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] WireSpeed[0] TSOcap[1]
eth1: dma_rwctrl[763f0000] dma_mask[32-bit]
eth2: RealTek RTL8139 at 0xd400, 00:05:5d:d5:3c:d5, IRQ 19
eth2:  Identified 8139 chip type 'RTL-8139C'
ADDRCONF(NETDEV_UP): eth0: link is not ready
tg3: eth0: Link is up at 100 Mbps, full duplex.
tg3: eth0: Flow control is on for TX and on for RX.
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth1:  setting half-duplex.
ADDRCONF(NETDEV_UP): eth1: link is not ready
eth2: link down
ADDRCONF(NETDEV_UP): eth2: link is not ready
eth0: no IPv6 routers present
tg3: eth0: Link is down.
eth2: link up, 100Mbps, full-duplex, lpa 0x45E1
ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
eth2: no IPv6 routers present
eth2: link down
eth1:  setting full-duplex.
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
eth1: no IPv6 routers present
tg3: eth0: Link is up at 100 Mbps, full duplex.
tg3: eth0: Flow control is on for TX and on for RX.
 


wie auch immer, ifconfig scheint das egal zu sein:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
home ~ # ifconfig
eth0  Link encap:Ethernet  HWaddr 00:0C:76:5B:6E:60
      inet addr:192.168.2.36  Bcast:192.168.2.255  Mask:255.255.255.0
      inet6 addr: fe80::20c:76ff:fe5b:6e60/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:8493 errors:0 dropped:0 overruns:0 frame:0
      TX packets:323 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:558268 (545.1 Kb)  TX bytes:46883 (45.7 Kb)
      Interrupt:18

eth1  Link encap:Ethernet  HWaddr 00:50:DA:40:31:AC
      inet addr:192.168.2.37  Bcast:192.168.2.255  Mask:255.255.255.0
      inet6 addr: fe80::250:daff:fe40:31ac/64 Scope:Link
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:796 errors:0 dropped:0 overruns:0 frame:0
      TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:55200 (53.9 Kb)  TX bytes:468 (468.0 b)
      Interrupt:17 Base address:0xae80

eth2  Link encap:Ethernet  HWaddr 00:05:5D:D5:3C:D5
      inet addr:192.168.2.38  Bcast:192.168.2.255  Mask:255.255.255.0
      inet6 addr: fe80::205:5dff:fed5:3cd5/64 Scope:Link
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:135 errors:0 dropped:0 overruns:0 frame:0
      TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8283 (8.0 Kb)  TX bytes:468 (468.0 b)
      Interrupt:19 Base address:0xd400

lo    Link encap:Local Loopback
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:8 errors:0 dropped:0 overruns:0 frame:0
      TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)


Konfiguriert werden die Karten in /etc/conf.d/net folgendermaßen:

Quellcode

1
2
3
4
5
6
7
8
config_eth0=( "192.168.2.36/24 brd 192.168.2.255" )
routes_eth0=( "default via 192.168.2.1" )

config_eth1=( "192.168.2.37/24 brd 192.168.2.255" )
routes_eth1=( "default via 192.168.2.1" )

config_eth2=( "192.168.2.38/24 brd 192.168.2.255" )
routes_eth2=( "default via 192.168.2.1" )



Nun zum Problem:
unIch kann über SSH lediglich auf das System zugreifen, wenn ich das Kabel in eth0 stecke, dann aber über alle drei konfigurieten IP Adressen (also 192.168.2.36 und 192.168.2.37 und 192.168.2.38 )

Ich kann also alle 3 IP Adressen anpingen, obwohl das Kabel nur in einer Netzwerkkarte steckt?!
Das funktioniert allerdings nur mit der onboard Karte.. alle anderen Karten geben, wenn mit Kabel verbunden, keinen Mucks von sich.
Das ist für mich absolut unverständlich. Ich hoffe jemand kann mir Erleuchtung schenken.

mfg Thomas

2

16.02.2008, 16:23

Zitat

config_eth0=( "192.168.2.36/24 brd 192.168.2.255" )
routes_eth0=( "default via 192.168.2.1" )

config_eth1=( "192.168.2.37/24 brd 192.168.2.255" )
routes_eth1=( "default via 192.168.2.1" )

config_eth2=( "192.168.2.38/24 brd 192.168.2.255" )
routes_eth2=( "default via 192.168.2.1" )


[/quote]

Wie soll er denn 3 mal eine Route setzen???? Du darfst nur eine Route eintragen.


Viele Grüße

3

16.02.2008, 21:53

OK, das macht natürlich Sinn. Habe meine /etc/conf.d/net angepasst:

Quellcode

1
2
3
4
5
6
config_eth1=( "192.168.2.36 netmask 255.255.255.0 broadcast 192.168.2.255" )

routes_eth1=( "default via 192.168.2.1" )


config_eth2=( "192.168.2.37 netmask 255.255.255.0 broadcast 192.168.2.255" )


ich habe auch die Treiber der onboard Karte aus dem Kernel rausgenommen, da ich vermutete, dass da was nicht hinhaut. Ich brauche eh nur 2 funktionsbereite Netzwerkschnittstellen. Dies hat leider keine Besserung gebracht.

Ich habe immer noch den Zustand, dass ich wenn das Kabel in eth1 steckt ich beide IPs anpingen kann. Wenn ich das Kabel in eth2 umstecke kann ich keiner der beiden IPs erreichen.

Die Routing Tabelle sieht für mein Verständniss eigentlich in Ordnung aus:

Quellcode

1
2
3
4
5
6
7
home ~ # route
Kernel IP routing table
Destination 	Gateway     	Genmask     	Flags Metric Ref	Use Iface
192.168.2.0 	*           	255.255.255.0   U 	0  	0    	0 eth2
192.168.2.0 	*           	255.255.255.0   U 	0  	0    	0 eth1
loopback    	*           	255.0.0.0   	U 	0  	0    	0 lo
default     	192.168.2.1 	0.0.0.0     	UG	0  	0    	0 eth1

4

16.02.2008, 22:42

Ich bin mir nicht sicher ob ich die Lösung gefunden habe:
Wenn ich die Netzwerkschnittstellen in verschiedene Subnetze integriere funktioniert alles tadellos.
Dummerweise habe ich zu Testzwecken versucht den selben Host mit 2 verschiedenen Netzwerkkarten im selben Subnet zu betreiben.

Kann es sein, dass sowas nicht erlaubt ist :?:

5

17.02.2008, 18:39

Zitat

Dummerweise habe ich zu Testzwecken versucht den selben Host mit 2 verschiedenen Netzwerkkarten im selben Subnet zu betreiben.

Kann es sein, dass sowas nicht erlaubt ist :?:


Ich habe hier einen Rechner mit eth1 bis eth3 in "192.168.0.255/24 "und das funktioniert.

Nachtrag: Upps, sorry, das stimmt gar nicht. Die liegen alle im eigenen Subnetz. Route:

Quellcode

1
2
3
4
5
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.178.0   *               255.255.255.0   U     0      0        0 eth0
192.168.3.0     *               255.255.255.0   U     0      0        0 eth3
192.168.2.0     *               255.255.255.0   U     0      0        0 eth2
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1


Trotzdem fällt mir nichts ein was dagegen spricht, dass ein Rechner über mehrere Netzwerkkarten unterschiedliche IP-Adressen im gleichen Subnetz stellt.
Frequent lock ups are a symptom of not enough memory but only in the way that nosebleeds are a symptom of gunshot wounds to the head.

6

18.02.2008, 09:32

Das sollte auch kein Problem sein mit mehreren Netzwerkkarten im gleichen Subnetz.

Was Du mal versuchen kannst, die Netzwerkkarten von Hand zu konfigurieren eine Karte nach der anderen.

Du kannst auch mal in die dmesg schauen, ob Du da interessante Meldungen bekommst.


Viele Grüße

7

19.02.2008, 23:40

Habe testweise versucht die Karten von Hand hintereinander mit festen IPs einzurichten. Auch das Kompilieren der Treiber als Kernelmodule und seperate starten und einrichten der einzelnen Karten hat die Situation nicht geändert. Bin mittlerweile dazu übergegangen den Router Testweise in zwei verschiedenen Subnetzen zu betreiben. Da dies auch der späteren Konfiguration entspricht und vor allem auch bisher problemlos funktioniert hab ich mich erstmal von dem Problem abgewendet ohne eine Lösung bzw. Ursache zu finden.

8

23.02.2008, 00:19

Hallo,

darf die Frage gestattet sein, warum willst Du 3 (2) Netz-Karten im gleichen Subnetz laufen lassen?

Schneller wirds dadurch auch nicht.
(Stichwort trunking)

Wenn Du das so einrichtest, wie oben beschrieben, kann es im Normalfall nicht, wie gewünscht, funktionieren.

Du hast ein Default-Gateway auf z.B. eth0.
Alle anderen Netzkarten benötigten eine Host-Route (kann auch auf das default-gw zeigen, bringt aber nix)

Wenn Du jetzt ein ping von aussen auf eth2 absetzt, kommt die Antwort von eth0, wenn ich mich nicht täusche.
Überprüfen kannst Du das traceroute.

Konfiguriere alle Netzkarten mit unterschiedlichen Subnetzen, dann klappts.

Oder benötigts Du sowas wie IPMP (IP-Multipathing) ???

D.h. Du hast eine Karte aktiv mit IP-Adresse 1.2.3.4. Darauf setzt Du eine log. IP-Adresse 1.2.3.4.10
Die andere (passive) mit 1.2.3.5.

Die Kommunikation läuft über 1.2.3.10.
Fällt die "aktive" Karte aus, übernimmt die passive die log. Adresse, und wird zur aktiven.


gruß,
Sascha
Dell Inspiron 9400 / T7200
Kernel 2.6.18
gcc version 4.1.1

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »sascha2« (23.02.2008, 00:56)