# Gentoo-Rechner als Router betreiben

## Jimini

Hallo,

vorab erstmal: ich habe mich jetzt ein paar Stunden durch diverse FAQs und Threads bewegt, aber komme jetzt nicht mehr weiter. Sollte sich dieser Thread daher inhaltlich mit einem anderen überschneiden, wäre ich für einen kurzen Verweis äußerst dankbar.

Außerdem bin ich ein Linux-Anfänger, daher ist es mehr als gut möglich, dass ich trotz aller Mühe diesen oder jenen Anfängerfehler gemacht habe, ich bitte um Nachsicht (:

Nun zu meinem Problem: 

Ich habe hier einen alten Rechner, der in Zukunft als Router betrieben werden soll (mein Dlink-Router stürzt sporadisch ab), außerdem will ich den Rechner als FTP-/HTTP-Server nutzen, aber das ist erstmal nebensächlich.

In der Kiste sind 5 Netzwerkkarten verbaut, die folgendermaßen konfiguriert sind:

 *Quote:*   

> etc/conf.d/net
> 
> config_eth0=( "192.168.0.5/24" )
> 
> config_eth0=( "192.168.1.1/24" )
> ...

 

(eth0 ist mit dem Modem verbunden)

Zum Einwählen ins Internet nutze ich rp-pppoe, eine Verbindung kommt zustande.

Jetzt meine Frage: was muss ich tun, damit meine anderen (WindowsXP-) Rechner über den Router online gehen können? Mein Versuch, im Windows einfach als Gateway "192.168.0.5" einzutragen, brachte nichts - ich bin mir sicher, dass ich ja noch irgendwas beim Gentoo-PC einrichten muss.

Vielen Dank vorab für jeden (konstruktiven) Beitrag.[/b]

MfG Jimini

----------

## doedel

Es gibt den "Gentoo Home Router Guide" oder so änhlich, den findest du mit google schnell.

 *Quote:*   

> 
> 
> In der Kiste sind 5 Netzwerkkarten verbaut, die folgendermaßen konfiguriert sind:
> 
> Zitat:
> ...

 

----------

## zworK

Den "Home Router Guide" gibts hier : http://www.gentoo.org/doc/de/home-router-howto.xml

Prinzipiell ist nicht mehr viel zu tun. Du brauchst nur noch IP-Forwarding und Masquerading aktivieren. Durchaus praktisch sind dann noch ein lokaler DHCP sowie DNS Server. Findest du eigentlich alles im Guide.

----------

## think4urs11

Das Problem ist (abgesehen von dem was doedel+zworK bereits sagten) das du als Default-GW natürlich eine IP aus dem Netzbereich angeben mußt in dem deine Clients auch selbst liegen. 192.168.0.5 liegt aus Sicht des Clients in einem nicht direkt erreichbaren Netzwerk.

----------

## Jimini

Du meinst wahrscheinlich den Guide hier: http://www.gentoo.org/doc/de/home-router-howto.xml#doc_chap4

Dieses HowTo habe ich auch schon durchgelesen, aber ich kann mir nicht vorstellen, dass

 *Quote:*   

> 
> 
> # nano /etc/conf.d/net
> 
> Fügen Sie eine Zeile wie die folgende hinzu:
> ...

 

reichen soll (in meinem Fall natürlich "config_eth1=( "192.168.1.1 broadcast 192.168.1.255 netmask 255.255.255.0" ).

Der Windows-PC hat die IP 192.168.1.9 und als Gateway ist 192.168.1.5 eingetragen. Das Problem ist aber, dass sich die PCs gar nicht erst pingen können, ich muss doch scheinbar einen Fehler beim Router gemacht haben, oder?

Das Kabel ist übrigens in Ordnung.

MfG Jimini

Edit: huch, auf einmal gehts...wenn ich jetzt wüsste, wo der Fehler lag *g* riesigen Dank!

----------

## doedel

wenn der router 192.168.1.1 hat musst du bei den clients als gateway auch 1.1 angeben, nicht 1.5.

----------

## Jimini

Moah...keine Ahnung, was ich jetzt falsch gemacht habe, aber die PCs können sich nicht mehr pingen. Ich bin nochmal alle Schritte durchgegangen, leider ohne Erfolg.

/etc/conf.d/net:

config_eth0=( "192.168.1.10/24" )

config_eth1=( "192.168.1.1/24" )

config_eth2=( "192.168.1.2/24" )

config_eth3=( "192.168.1.3/24" )

config_eth4=( "192.168.1.4/24" )

Ich bin einige Kombinationen durchgegangen, gebrachat hat es nix. Ich komme halt noch online - nur zwischen dem Windows-PC (192.168.1.9) und dem Linux-Router geht gar nichts :\

MfG Jimini

----------

## think4urs11

mal ganz blöd gefragt wozu hat eth0 überhaupt eine IP? Bei einer PPPoE-Verbindung zum ISP ist die i.d.R. völlig überflüssig.

Mehrere NIC (eth1-4) im gleichen Netzwerkrange (192.168.1.x/24) zu haben ist eh keine so besonders gute Idee, das macht die ganze Konstruktion nur unnötig kompliziert.

ins Diskussionsforum verschoben da eher eine allgemein-technische Frage.

----------

## Jimini

Also kann ich die config_eth0-Zeile einfach löschen?

Wie könnte ich eth1, eth2, eth3 und eth4 denn besser einrichten? Ich brauche zwar noch nicht diese 4 NICs, 2 aber auf jeden Fall, da ich im Moment auf jeden Fall 2 PCs hier habe, die an dem Router hängen sollen. Später kommen dann höchstwahrscheinlich noch weitere Rechner dazu - ich würde das ganze aber wenn möglich in einem Abwasch erledigen.

MfG Jimini

----------

## firefly

tschuldigung wenn ich jetzt so blöd frage, aber wiso benutzt du nicht einen HUP/Switsch um die anderen rechner und den router miteinander zu verbinden?

----------

## Jimini

Ich würde äußerst ungern Geld für dieses Projekt ausgeben - und mein Dlink-Router ist mir zu instabil. Ich will halt mit einem alten Rechner eine möglichst flexible und zuverlässige Lösung hinbekommen.

MfG Jimini

----------

## think4urs11

eine von mehreren Möglichkeiten wäre auf jeder der eth1-4 ein eigenes Netz zu fahren.

Dadurch kannst du den Traffic jedes einzelnen PCs dahinter sehr dediziert einschränken und überwachen, jeder PC hat 'sein' eigenes Gateway usw.

eine andere Möglichkeit wäre eth1-4 zu bridgen, dadurch verhält sich der PC 'nach hinten raus' quasi wie ein Switch

... wobei man auch sagen muß ein 5/8Port-Switch bewegt sich nun wirklich nicht in einer Preisregion über die man normalerweise großartig nachdenkt... und spätestens ab >8 PCs gehen dir auch langsam die Steckplätze für mehr NICs aus

----------

## Jimini

Also wäre eine Möglichkeit, das ganze so zu machen:

config_eth1=( "192.168.1.1/24" )

config_eth2=( "192.168.2.2/24" )

config_eth3=( "192.168.3.3/24" )

config_eth4=( "192.168.4.4/24" )

So korrekt?

Was wäre denn die einfachste Möglichkeit - vom Kauf eines Hubs oder Switches mal abgesehen?

MfG Jimini

----------

## Mr_Maniac

Okay...

Nun noch einige Fragen von mir  :Wink: 

1. Kannst du deinen D-Link-Router nicht einfach als Hub/Switch nutzen (er muss dann ja nicht routen)

2. Weisst du, welche NIC (Netzwerkkarte) welche IP hat? Ich meine jetzt nicht eth0/1/2 etc., sondern die PHYSIKALISCHEN Karten...

3. Sind die Interfaces auch gestartet und "up" (per "/etc/init.d/net.ethX start", wobei X natürlich die Nummer der entsprechenden Karte ist)?

Zudem sieht die Sektion in /etc/conf.d/net für eth0 (DSL-Modem) bei mir so aus, vielleicht hilft es dir ja ein wenig:

```

config_eth0=( "adsl" )

user_eth0="ANSCHLUSSNUMMERBENUTZERNUMMERMITBENUTZERNUMMER@PROVIDER"

adsl_user_eth0="ANSCHLUSSNUMMERBENUTZERNUMMERMITBENUTZERNUMMER@PROVIDER"

```

Ich habe user_eth0 UND adsl_user_eth0 eingetragen, da ich mir nicht vollkommen sicher war/bin, was von den beiden genutzt wird...

Wenn eth0 nun gestartet wird, wählt sich der PC auch automatisch ein.

Und eth1 (zum LAN) sieht folgendermaßen aus:

```

config_eth1=( "192.168.0.254 netmask 255.255.255.0" )

```

----------

## Jimini

@Mr_Maniac:

1) Klar, das wäre theoretisch möglich. Allerdings ist das Teil wie gesagt nicht das zuverlässigste - auch wenn ich keine Ahnung habe, ob es vielleicht nicht mehr abstürzt, wenn es nicht mehr routet. Allerdings fände ich es irgendwie eleganter, das ausschließlich von der Gentoo-Kiste regeln zu lassen *g*

2) Ehrlich gesagt: nein. Aber ich wäre äußerst glücklich, wenn mir jemand verraten könnte, wie ich rausbekomme, welcher Karte welche IP zugeordnet wird.

3) Laut ifconfig sind alle 5 NICs da - nur wundert mich, dass beim booten immer nur eth1 und eth2 gestartet werden.

Zum DSL:

Die Verbindung ist da, muss allerdings jedes mal mit pppoe-start gestartet werden. Ich werde mich, sobald das Netzwerk steht, dann mal daran setzen und mir deinen Tipp zu Gemüte führen (:

MfG Jimini

----------

## STiGMaTa_ch

Also um dein Vorhaben zu realisieren brauchst du folgendes:

- Kernel mit Iptables (oder heisst das jetzt ipchains?) Unterstützung.

- Iptables userland Programm.

- aktiviertes Routing.

- Mit dem Routing gibst du an, dass z.B. Anfragen aus dem Netz 192.168.x.y an den Gateway weitergeleitet werden, aber z.B. Anfragen aus 192.168.x.x an 192.168.y.y weitergeleitet werden.

- Mit Iptables konfigurierst du dir NAT (Network Address Translation). Dieses sorgt dafür, dass dein Router eine Tabelle ala (Rechner1 hat Anfrage an IP von Google gestartet) führt. Wenn nun Google an den Rechner was zurücksendet weiss dein Router (Aha, das kommt von Google, dann muss ich das Zeugs an Rechner1 weiterleiten).

- Deine Rechner müssen so konfiguriert sein, dass ihr Gateway dein Router ist.

Am einfachsten wird das, wenn dein Rechner 1 Netzwerkkarte für das Internet und eine Netzwerkkrate für das interne Netz besitzt. Um an diesem internen Netz trotzdem mehrere Rechner anschliessen zu können solltest du einen Hub/Switch davor hängen. Ich habe daheim einen 8Port Surecom Switch welcher seit ca. 5 Jahren mehrheitlich ununterbrochen am werkeln ist. Dieser hat mich damals ca. 10Euro gekostet.

Von deiner Idee 4 Netzwerkkarten für das (interne) Netz zu nutzen würde ich die Finger weg lassen. Nicht dass es nicht möglich ist, aber dir fehlt einfach das Wissen dazu. Und wenn du nicht einmal die einfachsten Netzwerkgrundlagen beherrschst, dann sind Fehler und der Frust vorprogrammiert. Wenn du wie in deinem letzten Beispiel jede Karte in ein eigenes Netzsegment steckst (was richtig und empfehlenswert ist!), dann musst du aber auf dem Router zusätzlich dafür sorgen, dass die einzelnen Segmente untereinader geroutet werden. Ansonsten wir Rechner A im 192.168.1.0 Netz den Rechner im 192.168.2.0 Netz nicht sehen.

Lieber Gruss

STiGMaTa

----------

## think4urs11

 *Jimini wrote:*   

> 2) Ehrlich gesagt: nein. Aber ich wäre äußerst glücklich, wenn mir jemand verraten könnte, wie ich rausbekomme, welcher Karte welche IP zugeordnet wird.

 

lspci + ifconfig sollten dir anhand der MAC eigentlich sagen können welche Karte welche ist

 *Jimini wrote:*   

> 3) Laut ifconfig sind alle 5 NICs da - nur wundert mich, dass beim booten immer nur eth1 und eth2 gestartet werden.

 

gibt es in /etc/init.d für alle NIC eine net.ethX?

Sind alle 5 mit dem gleichen Chipsatz oder verschiedene? Sind alle verschiedenen Chips im Kernel auch aktiviert?

----------

## zworK

Mein Router hat 3 Netzwerkkarten, eine für DSL die beiden anderen für 2 C Netze Hausintern. Ob jetzt 3 oder 5 bei dir sollte kein Problem darstellen.

Ich schreib mal auf wie ich jetzt dein Netz konfigurieren würde. Davon ausgehend, dass sich die Gentoo Kiste bereits einwählen kann und selbst Netzzugriff hat.

Wie im Router Guide muss iptables support im Kernel aktiv sein.

Dann DNS-Server sowie iptables installieren : 

```
#emerge dnsmasq iptables
```

/etc/conf.d/net

```

config_eth1=( "192.168.1.1/24" )

config_eth2=( "192.168.2.1/24 ")

config_eth3=( "192.168.3.1/24" )

config_eth4=( "192.168.4.1/24" )
```

In /etc/sysctl.conf IP-Forwarding dauerhaft aktivieren

```
net.ipv4.ip_forward = 1
```

Wird aber (meines Wissens) nur nach einen Neutstart berücksichtigt. Da aber rebooten uncool ist, machen wir ein

```
echo 1 > /proc/sys/net/ipv4/ip_forward
```

dnsmasq konfigurieren damit der Dienst nur netzintern lauscht : 

In /etc/dnsmasq.conf eintragen

```
interface=eth1

interface=eth2

interface=eth3

interface=eth4
```

Starten nicht vergessen

```
/etc/init.d/dnsmasq start
```

Mit iptables Masquerading für eth0 (bzw die Karte für den Netzzugang) dauerhaft aktivieren :

```
#/etc/init.d/iptables start

#iptables -A POSTROUTING -t nat -j MASQUERADE -o eth0

#/etc/init.d/iptables save

#rc-update add iptables default
```

Ab dieser Stelle sollte der Rechner Router-fähig sein. Praktisch wären noch DHCP Server, Samba (netbios) und eine Firewall.

Da gehe ich jetzt aber nicht drauf ein. Ebenso sollten sich die Clients in den verschiedenen Netzen auch untereinander erreichen können.

Jetzt musst du nur noch die Clients konfigurieren.

Beispiel für Rechner an eth1.

```
IP : 192.168.1.2

Netmask : 255.255.255.0

Gateway : 192.168.1.1

DNS-Server : 192.168.1.1
```

Hoffe, ich habe nichts vegessen  :Wink: 

----------

## Jimini

Sorry erstmal, dass ich mich länger nicht gemeldet habe, aber mir stand der Kopf in den letzten Wochen woanders *g*

Jetzt zurück zu meinen Problemen:

Ich habe mir, wie ihr es mir empfohlen habt, einen 5-port-Switch zugelegt. Die Gentoo-Kiste läuft und ist online (habe das mit rp-pppoe gemacht). Iptables-Support ist im Kernel aktiviert, iptables und dnsmasq laufen soweit. 

In dem Rechner sind jetzt nur noch 2 Netzwerkkarten verbaut, eth0 ("null") ist mit dem Modem verbunden, eth1 ("192.168.2.1") mit dem Switch, also dem LAN. Zum Test habe ich einen WindowsXP-Rechner an den Switch angeschlossen, so dass ich die Verbindung testen kann. Bei den Einstellungen habe ich mich an zworKs Anleitung gehalten.

Ich liste am besten mal meein Config-Dateien auf:

/etc/dnsmasq.conf

dhcp-range=192.168.2.2,192.168.2.9,24

interface=eth1

(Ist das so korrekt? In meinem LAN sollen IPs zwischen 192.168.2.2 und 192.168.2.9 vergeben werden.)

Wenn ich auf dem Windows-PC in der "Konsole" die IP erneuern lasse, nimmt er die 192.168.2.3 an, als Subnetmask 255.255.255.0.

Nun zu meiner /etc/conf.d/net

config_eth0=( "null" )

config_eth1=( "192.168.2.1/24" )

config_ppp0=( "ppp" )

link_ppp0=( "eth0" )

plugins_ppp0=( "pppoe" )

pppd_ppp0=( "updetach" "defaultroute" "usepeerdns" "lcp-echo-interval 5" "lcp-echo-failure 5" )

So, mein Problem ist jetzt, dass der Windows-Rechner partout nicht online kommt. Aber es besteht eine Verbindung zur Gentoo-Kiste, pingen und automatische IP-Vergabe funktioniert ja. Woran könnte das liegen?

MfG Jimini

----------

## Jimini

Hat sich erledigt, der Rechner ist online, es lag an den iptables. Jetzt werd ich mich mal an die Feineinstellungen begeben. Ich danke euch für eure Hilfe!

MfG Jimini

----------

