# Netzwerkbrücke

## Death-Savior

so ich habe folgendes problem ich habe eigentlich gentoo auf meinem 2. pc um das internet zu routen (hat 3 netzwerkkarten) bisher sah das so aus

eth0 (keine ip) >> DSL MODEM

eth1 (192.168.2.1)>>  Windows PC 2 (192.168.2.2)

eth2 (192.168.1.1) >> Windows  PC 1 (192.168.1.2)

so geroutet hab ich mit ip tables , aus diversen gründen muss aber der router abunzu mit windows xp laufen und da kann ich die internet verbindung nur auf 1 interface festlegen also entweder(nemen wir mal weiter die eth bezeichnungen)eth1 oder eth2 , beides geht nur mit einer netzwerkbrücke zwischen den adaptern eth1 und eth2 da dann aber nur noch 1 ip da ist , müsste ich jedesmal wenn ich von linux auf windows bei den andern beiden xp rechnern den gateway ändern (WILL ICH ABER NET)  :Very Happy:  , so nun gibts ja nur 2 möglichkeiten oder ? entweder DHCP oder unter gentoo auch ne netzwerkbrücke machen ? oder , nun meine frage , wie brücke ich eth1 und eth2 unter gentoo , oder is DHCP die bessere lösung? oder geht das mit DHCP nicht ? 

also wenn der router unter XP läuft muss da meines wissens auf jedenfall ne netzwerkbrücke laufen ^^ ,

ich hoff mal mit kann da wer helfen , thx schonmal

----------

## humi

Ein Freund von mir hat sich letztlich mit dem selben Problem rumgeschlagen.

Gelöst wurde das Problem mit bridge-utils.

(http://bridge.sourceforge.net/howto.html)

Routing bleibt weiterhin Sache von ip-tables/chains. Einige Kernelmodule mußten dafür nachgebaut werden (V.8xx bridge, etc.).

Start/Stop erfolgt via init.d-script

```
gentoo /etc/init.d #> cat bridge

#!/sbin/runscript

# Copyright 1999-2003 Gentoo Technologies, Inc.

# Distributed under the terms of the GNU General Public License v2

# $Header:

depend() {

        need net

}

start() {

        ebegin "Starting Bridge0"

        brctl addbr br0

        brctl addif br0 eth0

        adsl-start

        brctl addif br0 eth1

        ifconfig br0 192.168.0.11 netmask 255.255.255.0 up

        eend $?

}

stop() {

        ebegin "Stopping Bridge0"

        adsl-stop

        ifconfig br0 down

        brctl delbr br0

        eend $?

}
```

Ich hoffe das hilft Dir erstmal weiter, ansonsten hilft meistens google&co ...  :Wink: 

Humi

----------

## Death-Savior

hm wie mach ich das mit dem start skript`? ich habs mal kopiert dann angepasst und bridge0 genannt.chmod 755 bridge0 .und dann versucht mit /etc/init.d/bridge0 zu starten ging aber net^^ hrhr hab auch kp was ich da machen muss  :Smile: 

egal dann hab ichs mal so versucht 

brctl addbr bridge0

brctl addif bridge0 eth1

brctl addif bridge0 eth2

ifconfig bridge0 192.168.0.1 netmask 255.255.255.0 up 

so dann stehts unter ifconfig drin , aber ich kann die ip 192.168.0.1 nicht anpingen -.- muss ich eth1 und eth2 noch extra starten odr was muss ich machen ^^?

----------

## humi

1.) Empfehlung: entscheide Dich erstmal für ein subnet 192.168.x.yyy/255.255.255.0 (x = constant). Ich versteh nicht warum du bei 3 Rechner verschiedene subnets brauchst.

2.) Hast Du überprüft ob alle Kernel-Module übersetzt & geladen sind?

(welche das sind kann ich dir auch nicht sagen, war nicht direkt mein Problem -> google)

3.) Kannst Du von dem Bridge/Router-Rechner aus die Bridge anpingen? Wenn ja -> Konfiguration der M$-Rechner kontrollieren

4.) Ein Tip am rande: Wenn Du 40 Goldstücke (EUR) übrig hast, kauf Dir einen Router/Switch. Dies erleichtert die ganze Sache ungemein und spart außerdem eine Menge Strom und Krach.  :Wink: 

Ich hoffe es hilft ein wenig...

Humi

PS: Konfiguration des Script-Besitzers

- 2x DSL-Modem mit HUB (ohne Routerfunktion)

- an eth0 hängt der HUB mit DSL-Zugang (deswegen adsl-start zwischen eth0 & eth1, sonst versuchen beide Modems sich einzuwählen, was natürlich zu Problemen führt)

- an beiden HUB's hängen Clients, die ins Netz wollen

----------

## Death-Savior

hm am anfang hatte ich mal probleme als ich eth1 192.168.1.1

und eth2 192.168.1.2 hatte und die windows clients demensctprechend eben 192.168.1.3 und 192.168.1.4 

,

zu 1 so würds ja gehen mit meinen 2 subnetzen :)aber will das ja nun mit ner brücke haben=)

und nen hardwarerouter will ich auf keinen fall weil der 2. pc eh andauernt läuft und die hardwarerouter manchmal die max verbindungen beschneiden ;o

zu2 ich denke schon das die module geladen sind

zu3 ja ich kann die bridge vom routerpc anpingen  :Smile:  und ms clients sind im selben subnetz ^^

PS: hm naya das mit dem skript kann man ja später lösen, also mal schritt für schrit das ich das peil ^^  

als erstes mach ich die bridge mit 

brctl addbr xyz 

dann adde ich eth1 und eth2  mit

brctl addif xyz eth1 

brctl addif xyz eth2

soweit so gut und nun müsste man die bridge nur noch richtig starten =)

wenn ich es mit 

ifconfig xyz 192.168.0.1 netmask 255.255.255.0 up 

starte ereiche ich kein andren pc. 

wobei die windowsclients  192.168.0.2 und  192.168.0.3 haben

allerdings wenn ich eth2 mit 

ifconfig eth2  192.168.0.1 netmask 255.255.255.0 up

starte kann ich auch nur eth2 vom router pc anpingen und von keinem anderen, also denk ich ist die bridge ok und ich starte sie nicht richtig oder? hm  :Smile:  ich hoffe ich konnt überhaupt aussagen was fürn problem nun da is hrhr ^^ hab meist probleme mich richtig auszudrücken  :Smile: 

----------

## Death-Savior

so habs nun zum laufen gebracht. und zwar wie folgt^^

1.| brctl addbr br0

2.| brctl addif br0 eth1

3.| brctl addif br0 eth2

4.| ifconfig eth1 down

5.| ifconfig eth2 down

6.| ifconfig eth1 0.0.0.0 up

7.| ifconfig eth2 0.0.0.0 up

8.| ifconfig br0 192.168.0.1 up

und schon geht die sache ;D

so ich hab mir auch nen gleinen runscript text gebastelt  :Smile:  mein erster vondemher greift er auf keine variablen aus andern datein zu , also alles so wie ichs eben brauch eingetîppt ^^ wie mach ich die datei den nun ausführbar? =)

----------

## x000x

Moin moin,

 *Death-Savior wrote:*   

> ... wie mach ich die datei den nun ausführbar? =)

 

chmod u+x <DEIN_SCRIPT>

----------

## Death-Savior

ok mein erstes skrip startet ^^ und es geht alles soweit doch wenn ich es stopen will führt er den letzen befehl zum löschen der brücke nicht aus -.- und es kommt folgender fehler 

unregister_netdevice: waiting for br0 to become free usage count =4

unregister_netdevice: waiting for br0 to become free usage count =4

und hier mein skript:

#!/sbin/runscript

depend() {

need net

}

start() {

ebegin "Starting Bridge0"

brctl addbr br0

brctl addif br0 eth1

brctl addif br0 eth2

ifconfig eth1 down

ifconfig eth2 down

ifconfig eth1 0.0.0.0 up

ifconfig eth2 0.0.0.0 up

ifconfig br0 192.168.0.1 up

eend $?

}

stop() {

ebegin "Stopping Bridge0"

ifconfig br0 down

ifconfig eth1 down

ifconfig eth2 down

brctl delbr br0

eend $?

}

EDIT: der fehler trit beim ersten mal nicht auf , also wenn ich /etc/init.d/xxx start , und dann /etc/init.d/xxx stop mache geht es, aber wenn ich es wieder starte , und dann wieder stoppen will kommt der fehler o_O an was kann das liegen

----------

## flammenflitzer

Was muß man da im Kernel aktivieren?

# TIPC Configuration (EXPERIMENTAL)

#

# CONFIG_TIPC is not set

# CONFIG_ATM is not set

-> # CONFIG_BRIDGE is not set <- ???

----------

